Lemur version 1.10.1
A feature update that also includes several bug fixes. Highlights include refactoring DocumentModel usage, mouse wheel support, and a PasswordField.
Full change list for this release:
- Added a proper toString() method to the LayerComparator.
- Added a 'debug mode' to the PickEventSession which lets a caller selectively
raise the logging level for a particular instance. - Removed a leftover unused 'index' field in GuiControl.
- Added support for GuiUpdateListeners to GuiControl so that things like
child GuiComponents can hook into the controlUpdate() without having
to create another full control themselves. - Modified GuiControl to lazily instantiate its listener lists.
- Added a TextField(DocumentModel) convenience constructor.
- Added a DocumentModel.createCaratReference() method that returns a versioned
reference for the carat position. - Fixed TextEntryComponent to be more reactive to external DocumentModel changes
and it now uses that even for its own internal changes to the document. - Breaking change: DocumentModel has been moved to the com.simsilica.lemur.text
package and is now an interface. Make sure any of your classes that use
DocumentModel directly import it from the new location. If you instantiate
a DocumentModel directly then now you will instantiate DefaultDocumentModel
instead. Sorry. It needed to be done and was only going to get worse
the longer I waited. - Added a DocumentModelFilter class that is a DocumentModel that wraps other
DocumentModels to provide filtering and transformation. Callers can do simple
filtering with Guava Functions and Subclasses can override the methods to
provide more advanced transformation and input filtering. - Added a TextFilters class with a bunch of default input and output implementations
for commonly used things. - Refactored TextField a bit to make it easier to subclass and override the model
or TextEntryComponent. - Added a PasswordField that is auto-wired with some useful DocumentModelFilter
behavior suitable for password fields. Includes stylable attributes for
setting the output character and allowed input characters. - Fixed a bug where focus wasn't cleared for objects removed from the scene
graph. The fix is a bit of a hack but there really isn't any other way.
This fixes issues #42 and #28. - Modified the MouseAppState to pass along the scroll wheel information to the
PickEventSessions. PickEventSession was modified to then pass on the appropriate
scroll values and deltas to the MouseMotionEvents and CursorMotionEvents.
CursorMotionEvent was enhanced to have getScrollValue() and getScrollDelta()
methods. - Added an insert(String) method to DocumentModel and its implementations that
allows bulk-insertion of text instead of just one character at a time - Fixed GuiGlobals to not crash under certain circumstances if the build info isn't
available. Fixes issue #38 - Fixed the human-readable names for some of the joystick-related input.Button constants.
- Fixed an issue with mouse button events sending the wrong mouse wheel delta to cursor
event listeners. Fixes issue #49