New in Nifty GUI 1.3.1 (Dec 30, 2011)
- Added the Nifty repo as a dependencies. This way, Nifty-default-controls can
- actually find it and build.
- chat control: Moved the ChatEntry data (Label and Icon) to it's own class
- instead of having it straight in the ChatEntryModelClass.
- Also added a style parameter. This is intended to enable giving a chat entry
- a custom style other then the default one.
- chat control: Added a new custom style to the nifty-chat-control.xml style
- called current-player.
- This style can be used in the nifty-chat-control to highlight the current
- player. This is done by adding the style name to the addPlayer and
- receivedChatLine methods.
- chat control: Added a new custom style to the nifty-chat-control.xml style
- called current-player.
- This style can be used in the nifty-chat-control to highlight the current
- player. This is done by adding the style name to the addPlayer and
- receivedChatLine methods.
- chat control: Added a buffer to the adding of players.
- Reason for this was that sometimes players get added before the element is
- bound. This causes a NullPointerException. This is now cought and then the
- player is added to a buffer first. After binding the element, the biffer is
- checked and any players on there are added to the listbox. The same oes for the
- chat lines, although this is way more unlikely to ever occur.
- improvement: Optimize save/restore of color values for better rendering
- performance
- bugfix: since we allow the optional display of an FPS-Counter we should
- provide the font it's using as well =)
- chat control: Added a default chat-line style.
- This should enable the restting of a chatline after highlighting has been
- added.
- chat control: added code to the ChatBoxViewConverter.java to switch to a
- default style when no style has been supplied.
- scm configuration changed to git
- improvement: throw a IllegalArgumentException when someone calls
- bindControls with null which is not allowed (and hopefully helps ractoc to find
- an issue ^^)
- bugfix: #3366363: Nifty 1.3 PopupMenu does not work
- The MenuControl is usually used inside a popup layer to create a PopupMenu.
- To be notified when a Menu Item has been clicked you'll subscribe for the
- MenuItemActivatedEvent for the MenuControl (inside of the popup layer). The
- MenuControl will automatically close the popup when a MenuItem has been clicked
- and after the popup layer is gone will publish the MenuItemActivatedEvent. The
- problem with this is that recently Nifty has been changed to automatically
- unsubscribe all event subscribers when a popup layer is being closed. This is
- in the general case expected behaviour, because when a popup layer is gone it
- doesn't make sense to subscribe for events for elements inside of that popup.
- In the MenuControl case however it broke the MenuItemActivatedEvent because the
- event subscriber was unsubscribed too :)
- Now the MenuControl will not automatically close the popup anymore. This is
- now up to you when handling the MenuItemActivatedEvent. This has the additional
- benefit that in some cases you could decide to leave the popup menu open.
- Additionally you should subscribe for any events for elements inside the popup
- layer when the popup is being shown (this is independ of the MenuControl).
- bugfix: fix a scrollpanel issue that made the scrollpanel positioning wrong
- in its initial state
- you were required to move a scrollbar to make it snap to it's correct
- position - internally the wrong element was relayouted initially
- improvement: updated the example to be compatible to the new way the
- MenuControl works
- improvement: allow read access to the child element builders of an element
- builder via the getElementBuilders() method
- improvement: add support for "wrap" attribute to TextBuilder and TextCreator
- improvement: add resetLayout() support to TextRenderer so that especially
- the word wrapping changes to the element constraint can be reset as well
- feature: added a table example
- feature: enable FPS and removed vsync
- feature: Maven multi-module setup
- bugfix: if the same mouse event is being sent to Nifty that event is not
- processed but still it was reported as handled. This has now been changed so
- that sending the same event will now return false instead of true.
- improvement: #3405931: TextFieldControl creates ClipboardAWT directly
- Moved the Clipboard implementation into the main Nifty class (so that you
- can add your own implementation if necessary) and added a check that makes sure
- the ClipboardAWT implementation is only used when the java.awt Clipboard class
- is available. If not the ClipboardNull implementation is used. This way Nifty
- should not crash when java.awt is not available.
- improvement: GC optimization
- improvement: introducing new RenderStates class to optimize managment of
- RenderStates for better GC as well as other GC optimizations
- improvement: RenderFont interface slightly changed so that
- getCharacterAdvance returns a plain int instead of an Integer so that it's not
- necessary to generate new instances of Integer to return a value which will
- improve GC performance
- improvement: GC optimization of NinePartResizeStrategy rendering (it will
- not create new Box instances anymore while rendering)
- HTML-Support: added the actual HTML translation classes
- HTML-Support: html module update
- improvement: you can now call "createFont" directly at the Nifty instance
- (using getRenderEngine().createFont() still works as well)
- HTML-Support: added a combobox to the HTML example to check different HTML
- files on the fly
- HTML-Support: more cleanup and restructuring of the HTML generation and
- especially added junit tests
- HTML-Support: support added to html generator
- HTML-Support: added support for tag
- HTML-Support: added example for right aligned image
- HTML-Support: added left aligned example
- improvement: logging of event processing added
- HTML-Support: more examples added
- HTML-Support: make sure duplicate closing tags will be detected
- HTML-Support: fix duplicate closing tags
- improvement: shut down logging
- HTML-Support: basic support added (still work in progress)
- HTML-Support: more table related attributes added
- added support for "width", "bgcolor", "border", "bordercolor" attributes to
- , and tags
- HTML-Support: added support for (works inline too!) removed
- support for align="center" because it is called align="middle" in html modified
- html examples to make sure they are html conform
- HTML-Support: support for HTML-Tag added
- HTML-Support: correctly process elements when they appear in
- elements
- improvement: Update to properties in pom.xml so that there is only one place
- to update
- improvement: old defaultControls package removed
- feature: Added the needed changes / classes to show of the new tabs control
- feature: Added the tabs control to the default controls
- feature: Added the tabs control and builder classes.
- bugfix: Fixed the bug which caused massive amounts of CenterLayout warnings.
- bugfix: Fixed a bug with buttons. They are now both displayed correctly.
- There is now only a bug left with the start of the tab control. The tabs are
- displayed one over the other instead of just the active one.
- improvement: Add a method to Nifty to return the original filename of a
- RenderFont instance
- HTML-Support: add support for setting RenderFont instances at the
- NiftyHtmlGenerator
- bugfix: fix show tab problem on initial show
- the problem: if the tabcontrol is hidden (or is a part of another panel that
- is hidden) then the individual tabs will be set to visible when the panel is
- being shown (this means all child elements will be shown as well, which
- includes the tab). we now kinda work around this by listening for the
- EventShowEvent and displaying the correct tab while explicitly hiding all the
- others.
- bugfix: the TextBreak class should keep text encoded color changes intact
- when it splits lines
- bugfix: disable the gradient pulsate effect in the background that kinda
- messes up the textrendering (which would pulsate too)
- feature: Added the tabs control to the style as well. It now supports two
- different tab button styles, one standard one and a different one for the
- active tab. Currently both images are the same, but the active-button.png
- should be changed to a slightly different colored one.
- feature: Fix an order bug where the active tab style was set before the
- actual buttons were added. This caused a NullPointerException. This is now
- fixed by adding the buttons before setting the style.
- feature: allow the tag to be used directly inside of
- feature: changed the setActiveTab methods to setSelectedTab. Added
- getSelectedTab and getSelectedTabIndex methods and added an TabSelectedEvent
- which is triggered on a tab switch.
- bugfix: fixed onEndHover onStartEffect method call error
- we need to stop onEndHover effect when the mouse enters the element again
- while the effect is running.
- bugfix: nifty-tabs.xml should be included in the nifty-default-styles.xml
- HTML-Support: use nearest block level element when adding images (and not
- only the bodyPanel)
- HTML-Support: removed a single html example file
- bugfix: fix style examples
- we can't use setStyle() as a method name when we try to call a custom method
- on a controller because this name is used internally by the NiftyControl
- interface so we need to rename that method so that we don't accidently call the
- wrong method
- bugfix: fix Clipboard creation check
- feature: Resize example added
- feature: tabs active button artwork added
- bugfix: Visible elements won't be added to the MouseOverHandler when they
- are a child of an invisible element
- feature: Experimental support for automatic rescale of the GUI added.
- Attention this changed the RenderDevice SPI (we need to scale values for font
- rendering now)
- bugfix: fix failing tests
- feature: Allow the auto scale parameter to be set manually (this way you can
- scale the GUI up or down manually)
- bugfix: clip is using two points and not a point with width/height (the
- right convert method needs to be used when using the auto scale mode)
- feature: Add a Nifty Slider to the ControlsDemo to demonstrate manual
- scaling of the GUI
- feature: added xml examples for the standard controls
- improvement: Corrected misspelling of "instantiated"
- Slick-Renderer: First version of the newly done Input Interface
- Signed-off-by: Martin Karing
- Merge pull request #1 from jwoertink/patch-1
- Corrected misspelling of "instantiated"
- feature: First version of the TreeBoxView added. Currently it all compiles
- but for some reason the related default control example doesn't show anything.
- In the TreeBoxControl.java there is no #listbox element to be found either in
- the bind method or the setTree method. No real idea why atm.
- Also added the needed classes and ahcanges to the default control example
- already although because of the bug mentioned above these don't show anything
- yet. The example in default controls will later be replaced with the
- filebrowser example.
- bugfix: missing xml tabs example added
- feature: First version of the render font implementations and loaders that
- are used to handle the font output of Nifty.
- feature: Added getWidth(String text, float size) method to RenderFont
- Interface
- This will now allow users to request the width of a text string when the
- given size parameter is applied. This is necessary to allow some effects (f.i.
- TextSize) to calculate the correct offset of a text when being rendered with a
- size different from 1.0.
- bugfix: Fix TextSize, TextSizePulsate and TextTyping effects positioning
- Nifty-Slick-Renderer: improved font loaders, impelented image loader and
- implemented rectangle drawing
- Slick-Renderer: Added mouse cursor renderer and loader. Slick-Renderer:
- Finished render implementation
- Slick-Renderer: Implemented all required handles and loaders for the music
- part of the slick binding.
- Slick-Renderer: Nifty Game and Nifty GameState implementations done
- Slick-Renderer: First complete version
- Slick-Renderer: Improved Nifty Game States Slick-Renderer: fixed a small bug
- in the input environment that prevented click events from getting consumed
- correctly
- Slick-Controls: Fixed mistake in test environment
- Slick-Renderer: Fixed problem when loading mouse cursors: image data was not
- loaded properly
- improvement: LWJGL Renderer updated to LWJGL 2.8.1
- TreeBox-Control: Added a child panel inside the TreeBox nifty-control. This
- panel contains the list, which in turn contains the tree items.
- Signed-off-by: markschrijver
- TreeBox-Control: fixed some of ractocs bugs of the TreeBox
- TreeBox-Control: Everything seems to be working, more or less. Only problem
- left is with the image in the listbox. For some reason it's not sizing
- correctly.
- bugfix: fix setting of width/height of TreeBox items
- TreeBox-Control: Switch the order in which items are added to the tree.ow
- the folder is added before the content.
- Tabs-Control: added two mandatory attributes to the tabs control:
- buttonWidth and buttonHeight. They set the tab button width and height. These
- attributes are mandatory, not having them generates a NullPointerException.
- Both px and % values are supported.
- Tabs-Control: The buttonHeight and buttonWidth are no longer mandatory. Now
- the button width is automatically calculated based on the text (default
- behavior). The buttonHeight is checked in the TabsControl.bind. If a
- buttonHeight is set, the #tab-button-panel height is adjusted accordingly and
- the button height is set to 100. if a buttonHeight is not set, the
- tab-button-panel height is not adjusted and the button height is set to 25px.
- TreeBox-Control: fixed the selection of tree items. Also put in the first
- steps towards collapse / expand of tree items. Some issues in there still
- though, for some reason it is only possible to colapse once, then no more.
- enable warnings in default controls example project
- TreeBox-Control: fix listbox access in TreeBoxControl
- TreeBox-Control: Fixed the collapse/expand issue. Turns out repeated calls
- to element.findNiftyControl(name, ListBox.class); give back an empty listbox
- each time. Storing the initially returned one in a class variable solved that.
- Also remove the resetting of the selected item in favor of setting a boolean on
- the TreeEntryModelClass. This gives the ability to add a custom style for the
- active tree entry later.
- Lasty I removed the listBox.clear in favor of a removeAbsolete, which removes
- all items in the listbox which are not visible in the tree according to the
- expanded status of the tree nodes. The adding now happens based on the index
- parameter in the listbox item list.
- TreeBox-Control: Forgot to add the TreeItemSelectedEvent.java which is used
- to send an event back to the application about which tree item has been
- selected.
- improvement: added a comment to the pom.xml to make it clear that you'll
- need to install the maven natives eclipse plugin when you use the pom.xml with
- the eclipse m2e plugin.
- improvement: changed the "maven natives eclipse plugin" comment a bit more
- Slick-Renderer: Added missing setInput at all the games and gamestates
- Slick-Renderer: Cleaned Imports Slick-Renderer: Used slick to set new mouse
- cursors, removing the last LWJGL dependencies
- TreeBox-Control: Made some changes to the treeboxcontrol and the
- treeboxviewconverter to enable displaying a different style for the active tree
- entry. Somehow it just doesn work though.
- TreeBox-Control: fixed the alternate style setup. Turns out I was replacing
- the item I just set to active with a completely new item. I also had to refresh
- the listbox to trigger another pass through the converter. Now the style is set
- correctly. The style is also present in the nifty-treebox.xml but is still
- empty.
- TreeBox-Control: Made a slight change to the TreeBoxControl. Now the nodes
- are only collapsed / expanded when they are already active. This means that
- they now longer expand / collape the moment you select them. Also added some
- extra functionality to the TreeBox example. Now there is a textfield which
- shows the caption of the selected item. This gives a good example of the
- catching and handling of the event.
- Slick-Renderer: Added font loader that loads the Slick default font in any
- case.
- Slick-Renderer: Removed final keyword from some classes Slick-Renderer:
- Added missing loadGlyphes for Slick Unicode fonts
- Slick-Renderer: Automatically enable input to fire repeated key events as
- they are needed for the Nifty GUI to handle the text input properly
- Slick-Renderer: Changed maven settings to target latest Slick version
- Slick-Renderer: Improved maven settings
- improvement: First version of the messagebox is done, no example yet though
- so probably there a lot wrong with it still.
- The messagebox contains 3 standard message types: INFO, WARNING and ERROR
- For these, images are provided in the black style.
- improvement: First part of the example for the message box control. Also did
- some cleanup (unused imports mostly)
- improvement: Consolidate loading of resources and made it the configuration
- none static
- The process of loading resources in all Nifty projects has now be
- consolidated using the NiftyResourceLoader class. This especially made it
- possible to make the configuration of ResourceLocations none static. This now
- allows each Nifty instance to be configured individually. Attention: To give
- RenderDevice, SoundDevice and InputSystem implementations access to the
- NiftyResourceLoader a new method in all three interfaces has been introduced:
- void setResourceLoader(NiftyResourceLoader loader) that must now be implemented
- as well.
- improvement: use generics to reduce compiler warnings
- improvement: More progress on the MessageBox. Switched from a builder system
- to a constructor with a show() method. This makes setting up a MessageBox a lot
- easier.
- There are still a few problems to overcome though, but slowly progress is
- being made.
- bugfix: messagebox: Made a few changes to fix the popup. Most notably
- removed the builder from the constructors and switched the childLayout of the
- popup to center.
- Now the only problem left is: No icon and a negative image height warning
- These are probably related.
- bugfix: messagebox: made some more changes. Now the icon is displayed
- correctly. To fix this, the setupMessageBox call needed to be moved from the
- constructor to the bind after the bind on the newly created element. Also added
- a new default constructor to satisfy the creation of the Controller from XML.
- After all this the icon was displayed, now a bit of magic was needed in the XML
- to make the icon align in the center (vertically).
- improvement: made ractocs new MessageBox control just a little bit niftier
- not sure if he likes it tho :P
- improvement: default align and valign of childlayout center childs will be
- center
- I might regret that later but when when the parent of an element has
- childLayout="center" we should default the align and valign values to center
- instead of the old defaults left and top. I'm
- currently not sure if this breaks something somewhere where where somebody
- relies on the old defaults. But the new defaults really make much more sense! :)
- bugfix: Fixed bug #3455990. The contains method for TreeItem had an item
- where it should have had a child.
- bugfix: center layout bug fixed when used with valign="bottom"
- improvement: Element.isEffectActive() will now cache results to improve
- performance
- the cache is only updated when an effect changes state. the old version
- always checked the state of all child elements every time which is silly
- because most of the time isEffectActive() would return the same value.
- bugfix: center layout with valign="bottom" must use bottom and not top
- padding
- bugfix: fix failing tests
- improvement: Implemented use of a getImage function in ImageSlickRengerImage
- that allows to implement alternative ways of fetchting images for this class
- when extending it
- improvement: Fixing code style of Slick-Renderer to fit the Nifty-Style
- Slick-Renderer: Marking TrueTypeFont based font implementations as
- deprecated, fitting the Slick implementation Changing Unicode implementation
- name to reflect the use of Hiero settings
- Slick-Renderer: Implemented Unicode based font implementation that replaces
- the function of the TrueTypeFont implementation Marked all TrueTypeFont based
- renderers as deprecated
- Slick-Renderer: Fixed some vulnerabilities in the Slick-Renderer
- improvement: Reviewed the source code using PMD and included a few slight
- changes that effect mainly the code style and ensure clean code
- bugfix: fix childLayout="absolute-inside"
- make it work with general parent elements (it worked only with layer as the
- parent before)
- Slick-Renderer: Adding missing classes for font rendering
- Default-Controls: Drag'n'Drop fixing bug that caused the centered layout not
- to work for droppable elements
- improvement: childLayout="center" add support for multiple child elements
- when using childLayout="center" and you have multiple childs then now all of
- the childs will be centered and overlayed above each other.
- bugfix: Fixed droppable control
- improvement: make SizeValue constants public
- might be useful for others as well :)
- improvement: align and valign defaults are now defined inside of the layout
- managers
- before the element tried to decide the defaults which didn't work in all
- cases, especially when dynamically modifing the parent relationship. now a new
- verticalDefault and horizontalDefault enum value exists that is used when no
- other value for the alignment is set. the final alignment value is now being
- decided inside of the indidivual LayoutManagers (where this belongs in the
- first place!). kudos to mkaring for the hint on how to solve that finally! :)
- improvement: Added some additional methods to initialize nifty
- Slick-Renderer: Fixing font handling
- improvement: Implemented TimeProvider by a interface -Marked old time
- provider as deprecated -Added two new default time provider (fast, accurate)
- Added LWJGL time provider to Slick-Renderer -Resolved dependencies in tests
- and examples to use the new time providers -Ensured that all effects use the
- correct instance of the time provider
- improvement: LWJGLTimeProvider fixed and added to LWJGL renderer - Fixed
- implementation for Slick-Renderer - Added implementation to LWJGL-Renderer
- bugfix: Fixed a bug which caused the tab button to have a 0px height. This
- height is now set correctly.
- LWJGLTimeProvider fixed and added to LWJGL renderer
- improvement: made some method that where named *Internal private
- improvement: URL and licence added
- feature: lwjgl 2.8.2
- bugfix: fix several FocusHandler related bugs (keyboard focus)
- creating popups with focusable elements made these elements get the keyboard
- focus even though the popup was not visible!
- dynamically adding elements to other elements that were hidden did add them
- to the chain of keyboard focus elements even though you couldn't see them at
- all! it was possible that a default focus element could be choosen that was not
- focusable.
- improvement: removed unused ParameterResolver class
- bugfix: EffectValue parameter replacement did not work at all
- some effects allow a list of parameters to be added and parameter
- replacement using the $stuff syntax didn't work
- improvement: layout the menuButtons of the controls demo in two rows
- and changed the colors of some buttons so that ractocs control get a
- different color.
- improvement: remove test file
- improvement: maven-gpg-plugin added