Skip to content

Releases: jMonkeyEngine-Contributions/Lemur

Lemur version 1.16.0

05 Apr 12:34
Compare
Choose a tag to compare

Small maintenance release with some potentially breaking changes. See full change log below.
Also upgraded to support gradle 7.4.2 and publishing to maven central.

Change log:

  • Added QuadBackgroundComponent.set/getAlphaDiscard().
    Breaking change: QuadBackgroundComponent now defaults to 0 alpha discard
    instead of the previous hard-coded 0.1 discard threshold. Discard
    should be unnecessary for 2D UIs and may only be rarely necessary for
    3D UIs.
  • Added IconComponent.set/getAlphaDiscard().
    Breaking change: IconComponent now defaults to 0 alpha discard
    instead of the previous hard-coded 0.1 discard threshold. Discard
    should be unnecessary for 2D UIs and may only be rarely necessary for
    3D UIs.
  • Migrated the build to gradle 7.4.2
  • Moved distribution to maven central.

LemurProto version 1.13.0

05 Apr 12:32
Compare
Choose a tag to compare

Small maintenance release.
Also upgraded to support gradle 7.4.2 and publishing to maven central.

Change log:

  • Added DefaultCellRenderer.getElementId() and deprecated DefaultCellRenderer.getElement() since it was a typo that made it into a release.
  • Fixed the cell renderer configureStyle() behavior to pass the original element ID instead of the ListBox.getElementId() which will have already been a container child of the original. This fixes a bug where the list style would drastically change when swapping in a new renderer.
  • Fixed Spinner to disable/enable the previous/next buttons when the spinner is disabled/enabled.
  • Fixed Selector to reset its selected item reference when setSelectedItem() is called instead of delaying it until next frame.
  • Migrated the build to gradle 7.4.2
  • Moved distribution to maven central.

LemurProps version 1.2.0

05 Apr 12:29
Compare
Choose a tag to compare

This is a non-code release that just upgrades the build and sets up publishing to maven central instead of jcenter.

Change log:

  • Migrated the build to gradle 7.4.2
  • Moved distribution to maven central.

Lemur version 1.15.0

31 Mar 17:07
Compare
Choose a tag to compare

Incremental release with mostly bug fixes and javadocs. A few new convenience methods.

Change log:

  • Fixed a bug where moving a GuiComponent from one GUI element to another
    caused lingering state issues. This most prominently manifested when
    using icons in ListBox labels.
  • Added PopupState.clampToGui() for conveniently moving a GUI element so
    that it is fully on screen.
  • Added additional convenience constructors to DocumentModelFilter that
    allow passing filters directly instead of setting them post-construction.
  • Added PopupState.centerInGui() for conveniently centering a GUI element
    in the popup space.
  • Added CommandMap.addCommands() and Button.addClickCommands() that take
    a single argument instead of var-args. This is the most common case
    and prevents a bunch of extra 'unchecked' warnings because of the
    var-args arrays.
  • Fixed a subtle bug in the FocusManagerState where changing the focus
    during a focus change event may cause parts of the focus hierarchy
    to be left in an indeterminate state.
  • FocusNavigationState.requestChangeFocus() now checks for null parameters
    and throws an IllegalArgumentException instead of an NPE further down
    in the stack.
  • Added a TextField(model, elementId, style) constructor.
  • Fixed TextEntryComponent to skip navigating focus if there is no current
    focus.
  • Add some focusGained/focusLost trace logging to GuiControl.
  • Added VersionedReference, VersionedObject, and VersionedHolder method
    javadocs.
  • Fixed GuiControl.getPreferredSize() to return a clone of the preferred size
    override so that it's 'sharing' behvior matches that of when there is
    no preferred size override. (ie: you no longer have to defensively clone
    getPreferredSize() results even when there is an override in place.)
  • Fixed an assertion error in PickEventSession.getPickRay() caused by 'bad'
    camera setups.

LemurProto version 1.12.0

31 Mar 17:02
Compare
Choose a tag to compare
Pre-release

Usability improvements and the new Selector and Spinner controls.

Change log:

  • Added SelectionModel.createSelectionReference() for obtaining a VersionedReference
    of just the single-selection state.
  • Fixed DefaultCellRenderer to use 'null' as the default style instead of "root".
    This fits the overall API better and was probably a hold over from before there
    were default styles. It still might be a breaking change for someone.
  • Fixed a bug where ListBox click listeners weren't getting executed.
  • Added a Selector GUI element for selecting options for a list of values.
    Basically it's a single value field that pops up a list box when clicked.
  • Added ColorChooser.set/getColor() that can be used to more conveniently access
    the edited color.
  • Added ValueRender and a default implemenation DefaultValueRenderer that are
    more general non-list-specific value renderers similar to ListBox's cell
    renderer.
  • Added ValueRenders which provides convenience factories for common value renderer
    use-cases.
  • Updated CellRenderer to extend ValueRenderer.
  • Modified ListBox to take a ValueRender to be more general. Since method
    signatures have changes this will be a breaking change for any ListBox-using
    code that cannot be recompiled.
  • Added a SequenceModel interface and some default implementations to represent
    a potentially unbounded sequence of values that can be navigated forwards
    or backwards.
  • Added a Spinner GUI element that allows next/previous through a SequenceModel
    as well as (optionally) direct entering a value.
  • Added a ListBox.getSelectedItem() convenience method for retrieving the single-selection
    item in the list box.

Lemur version 1.14.0

02 Jul 18:39
Compare
Choose a tag to compare

Bug fixes and some usability improvements

Change log:

  • Added a default getId() implementation to BaseAppState so that it is compatible with the AppState interface in JME 3.3+.
  • Updated the style layer to clone cloneable values before applyting them to style targets. It will also deep clone lists and maps if necessary to allow for cloning child values. (Especially important for clonable action handlers in action maps.)
  • Fixed an NPE related to calling PasswordField.setOutputChar(null). Thanks, syluna.
  • Fixed GuiGlobals to add the LayerComparator to the Translucent bucket.
  • Modified GuiGlobals to support JME's headless mode for writing Lemur-using command line tools.
  • Modified InputMapper to check for null listeners in the add/remove listener methods. Throws IllegalArgumentException if null.
  • Added Texture-based constructor to IconComponent;
  • Added IconComponent.setMargin(Vector2f)
  • Added QuadBackgroundComponent.setMargin(Vector2f)
  • Added TbtQuadBackgroundComponent..setMargin(Vector2f)

LemurProps version 1.1.1

02 Jul 18:36
Compare
Choose a tag to compare

Just one tweak to the build file to no longer use wild-card versions for JME.

Lemur version 1.13.0

27 Apr 21:06
Compare
Choose a tag to compare

Multi-gamepad support, tweaks to Popup effect management, other minor updates.

Change log:

  • Added constants EFFECT_OPEN and EFFECT_CLOSE to Panel to make it easier
    to standardize open/close effects.
  • Modified PopupState to use the new Panel.EFFECT_OPEN and Panel.EFFECT_CLOSE
    instead of string literals.
  • Added PopupState.getGuiSize() that returns the (potentially scaled) screen size
    based on the PopupState's guiNode.
  • Modified PopupState to properly request focus of the things it is popping up.
    Without this, keyboard navigation was trickier.
  • Modified InputMapper to map all gamepad buttons and axes, even if they don't
    match up with predefined constants.
  • Modified Axis to include constants for JOYSTICK_LEFT_TRIGGER and JOYSTICK_RIGHT_TRIGGER
    along with support in InputMapper.
  • Added support for multiple gamepads/joysticks. There is now a new InputDevice
    class that provides gamepad-specific versions of the regular Button/Axis
    constants. Support for non-joystick-specific mappings still works like before.
  • Modified DragHandler to have set/getConsumeDrags() and set/getConsumeDrops() for
    tweaking the internal boolean settings.
  • Added GuiGlobals.releaseFocus() and the corresponding FocusManagerState.releaseFocus()
    which are safe ways to clear the focus for a currently focused element if it is
    still focused. Useful for conditionally clearing focus when tearing down a window.
  • Modified PopupState to call releaseFocus() for the popup when it is closing.

LemurProto version 1.11.0

27 Apr 21:04
Compare
Choose a tag to compare
Pre-release

Changes to OptionPanelState to use the standard PopupState instead of its own pop-up management.

Change log:

  • Modified OptionPanelState to delegate all popup stuff to PopupState.
    Breaking change: OptionPanelState will use PopupState's guiNode
    and will ignore the setting of any other local guiNode.
  • OptionPanel no longer releases cursor enabling because it was not the thing that
    requested cursor enabling. That's up to the caller now.
    Breaking change: any caller that was manually managing OptionPanels
    and expecting them to clean this up will now need to clean it up themselves.
  • OptionPanelState no longer calls OptionPanel.close() and instead delegates to
    PopupState.closePopup() to avoid double-running close effects, etc. and also
    to properly handle cursor/focus release.
    Breaking change: any user application relying on OptionPanel.close() to be
    called in an OptionPanel subclass will have to hook things a different way.

Lemur version 1.12.0

14 Feb 09:29
Compare
Choose a tag to compare

Bug fixes and small feature updates.

Change log:

  • Fixed a bug in the new getPickRay() code where incorrect Rays were being created if the Gui Bucket didn't have a spatial at z=0.
  • Modified how TextEntryComponent calculates its cursor width to avoid cases where cursors weren't being drawn because of sub-pixel widths at certain screen locations.
  • Added a TextField.setPreferredCursorWidth() styleable attribute that can be used to change the default cursor width for text fields.
  • Modified DynamicInsetsComponent to treat the insets values as percentages instead of always making them sum to 1. (That behavior still happens if the total of min+max is more than 1.) This modification lets dynamic insets support dynamic stretching instead of just positioning. This is potentially a breaking change for code relying on the old normalization. (though that was kind of weird)
  • Fixed pick session bug caused by empty GUI nodes. (added a null check)
  • Added Button.EFFECT_ENABLE and Button.EFFECT_DISABLE constants and modified Button to call the appropriate effect chain during setEnabled(true/false).
  • Added Button.ButtonAction.Enabled and Button.ButtonAction.Disabled and modified Button to call the appropriate command chain during setEnabled(true/false).