Nifty GUI Changelog

What's new in Nifty GUI 1.3.3

Jun 22, 2013
  • JOGL: add NiftyTutorialJOGL and extract setup code to JOGLNiftyRunner
  • Enabled Core-Profile/Batch-Rendering for TutorialMainNativeLWJGL
  • BatchRenderDevice: fixed text encoded color support
  • added NullSoundHandle to NullSoundDevice for improved stability
  • fix resolution switching for batched renderer using lwjgl and jogl
  • fix core profile GL extension check so that no silly GL error appears
  • JOGL: add core profile batched renderer support
  • 110: Updated Slick2d to Build "20121001-264 "and lwjgl-2.9.0
  • JOGL: batch renderer support added
  • JOGL: mouse move support added to JoglInputSystem
  • JOGL: update jogl version
  • JOGL examples project added
  • fixes #109: Assigning an id from a custom attribute to a control
  • resolveParameters() needs to happen before makeFlatControls() since makeFlatControls() resolves the ids and propagates the id to childelements. which is ok ... unless someone comes and changes the actual ids with some $parameter! In that case makeFlatControls() did nothing since there was no actual id available! This commit seems to fix that. I'm not sure if something else breaks now although all the standard demos/examples I've checked seem to work.
  • LwjglBatchedRendererBackend: Handle missing images without NPE
  • this fixes some missing vertex buffer bind() calls as well
  • method markBatchRenderImageAsUnloaded() added to NiftyImage
  • This method allows you to modify a backing texture externally and then notify Nifty that you've changed the texture. Nifty will then upload the image to the texture atlas the next time the image is accessed. Without this method Nifty would never know about the change of the texture and would never update the texture atlas with the updated texture. This method is specific to the new BatchRenderer.
  • LwjglBatchRenderBackendCoreProfile: BatchRenderBackend for Core Profile
  • console.fnt removed from examples since the font is in the style-black
  • jglfont-core-1.2 added to enable embedded textcolor for batched rendere
  • improve renderEngine.createImage() JavaDoc since it was changed in 1.3.3
  • workaround for issue #73 added
  • The KeyboardInputEvent constructor sets the character instance variable to 0 when the control-key is pressed. This prevents characters you can only reach with the help of control and alt, like AltGr+Q on Windows to insert a @ character for certain keyboard layouts. To prevent this issue I've now removed the "if (controlDown)" check in
  • the constructor. This means any character code pressed while any of the special keys is down (alt, shift, control) will be processed as a regular key.
  • However, the InputMapping implementation, f.i. TextfieldInputMapping will handle some control+key combinations like ctrl+A or ctrl+C and so correctly and will prevent any character input into the textfield in that case. Other, unhandled combinations will still find it's way to the textfield which is not quite right but shouldn't do any harm. For instance you can now press ctrl-P and a you would see "P" in the textfield.
  • shut off spamming by changing logging from INFO to FINE, closes #65
  • Extract NiftyImageManager differences between batched and non-batched
  • additionally this fixed non batched rendering which the NiftyImageManager broke
  • BatchRenderer Image Management corrected for newly loaded screens
  • When a new XML file is loaded with nifty.fromXml() all existing screen based cache information in NiftyImageManager will now be removed. This fixes an issue that old images (referenced by old screens with the same id) are still uploaded to the texture atlas even though they are not needed in the newly version of the screen with the same id.
  • The same fixes have been applied when screens are being removed dynamically with nifty.removeScreen(). So now everything that's being uploaded to the texture atlas is really only the images that are needed.
  • It was possible that the onEndScreen() event could be triggered from a nifty.render() call which in turned would call the niftyImageManager to unload all the images. And then when the rendering continued the dynamic upload mechanism was activated that would upload the images again since they could still be references from other render calls. To prevent this issue the onEndScreen stuff is now being delayed as an EndOfFrameAction which prevents this issue.
  • So finally with this commit the whole batched renderer and extended image manager business should be in place correctly.
  • Automatically filter out newline when pasting from Clipboard. fixes #97
  • Newlines (both regular and windows ones) are now automaticallyremoved when Clipboard content is being pasted into a Textfield. This should fix the issue.
  • I agree that the other part of the issue (fixing the handling of multi-line selections) needs to be fixed as well. But this is more involved and should be worked on separately.
  • we need to mark all images as unloaded in unloadScreenImages
  • new examples and explanation added to logging.properties
  • Huge BatchRenderDevice update with better texture atlas management
  • Ok, this was more work than anticipated but it should handle the texture atlas a lot better now. Here is a short explanation - I really need to blog about all of that stuff soon in more detail tho ;)
  • So basically there is a texture atlas of a certain size. The actual size can be adjusted by the user. At the moment all of the examples I've modified to use the batch renderer uses a 2048x2048 texture which seems to be more than enough for all of the standard examples I've tried.
  • This texture atlas is now filled with images for the current active Nifty screen. So that all the images required by the current active will be part of the texture atlas. To do that Nifty keeps track of which image belongs to which Screen when it reads a XML file or when a Screen is created with a Builder. This tracking is done for all loaded screens and even for images that are dynamically created with Nifty.createImage(). These dynamic images will be added to the current active screen. If there is no current active Screen then the images will still be loaded and uploaded to the texture atlas at the first render access.
  • But in general Nifty will upload all images that are required for the current screen into the texture atlas when a new Screen is started. Consequently when a screen ends the texture atlas is being reset to an empty one.
  • Nifty already implemented a reference counting mechanism to keep track of already loaded image resources. This was used to prevent loading the same image multiple times and it is still being used for this purpose. However, the process of loading an image is now separated into two steps:
  • 1. the actual image data is loaded into whatever image representation a BatchRenderBackend supports (the example implementation using native LWJGL will simply load an image file into a ByteBuffer) and
  • 2. the loaded image data is put into the texture atlas at a position that Nifty decided when it's time for this image to be a part of the current screen.
  • When an image is accessed dynamically while a screen is running it will be uploaded at the time of the first access. For best performance static images - or at least ones that Nifty knows about before the screen is started - should be preferred so that Nifty can upload them to the texture atlas at the time the screen starts and not while the screen is already running. Although I think you can get away easily with a couple of image uploads if you don't access multiple images in a single render frame.
  • All of this is required to keep only the currently active images in the texture atlas if possible. This should work quite well for most use cases although it's still possible to use up all of the available space in the texture atlas. The batch renderer still should provide much better rendering performance and should work well when being carefully used.
  • List of changes in this commit:
  • lots of changes to the image managment in NiftyImageManager especially tracking of the screen an image is attached to renderEngine.createImage() now requires a Screen instance removeFromTexture() and clearAtlasTexture() methods added to BatchRenderBackend TextureAtlasGenerator now supports removal of images as well BatchRenderImage now supports upload() and unload() methods font resource loading now attached to upload() and unload() as well
  • Attention:
  • It is unlikely but still possible that some of these changes will break existing code especially when this code uses internal methods like renderEngine.createImage() instead of nifty.createImage(). These errors should show up as compile errors and should therefore be easily fixed though. I'm sure there are other more hidden issues but I've really tried to keep the changes at a minimum so in general it should be fine.
  • Batch API JavaDoc cleanup
  • finish BatchRenderDevice and LwjglBatchRenderBackend
  • BatchRenderFont implements RenderFont added to fix compiler issues
  • first version of BatchRenderDevice implementation
  • Merge pull request #81 from floyd1982/1.3
  • Take current threads contextClassLoader for resource loading, which is more flexible
  • start the controls example at the "start" screen
  • close issue #58 Can not load fonts in sub folders

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