New Lemur release r1466

A few improvements, a couple bug fixes, and a couple new GUI elements.


  • InsetsComponent constructor now calls setInsets() instead of setting the
    field directly.
  • Updated the border.png image.
  • Added icons that can be used for a glass-style checkbox on/off state.
    (preparing for someday including ‘glass’ style by default.)
  • Added a GuiControlListener and abstract base implementation (names subject
    to change) for receiving GuiControl reshape and focus events.
  • Fixed a bug in Slider where the thumb would get invalid positions when
    the slider was resized after initial display.
  • Added another constructor to Checkbox that takes the string, model,
    element ID, and style.
  • Added a better error message to the StyleLoader when groovy is not
  • Added some trace logging to the Styles class.
  • Added a TabbedPanel GUI element.
  • Added a RollupPanel GUI element.
  • Added a BaseStyles loader for loading built-in styles.
  • Added a built-in “glass” style under resource com/simsilica/lemur/style/base/glass-styles.groovy
    Projects can define their own file under the same resource path if they
    want to extend or override parts of the glass style.
  • Fixed an issue in button click handling where the click distance was too
    sensitive… in fact for buttons there should be no click distance at all
    as long as you are still over the button. And that’s how it behaves now.

The highlights are:

  1. the new TabbedPanel and RollupPanel. These are what I used to build the GUI in the Marching Cubes demo and Sim-Arboreal Editor.

  2. The “glass” style I used in those projects is now included as a built in style for your own use. Activating it is easy:

    As part of this, the ability to easily extend an existing style was added. So if you develop your own custom components or simply use your own ElementIds, there is a mechanism for you to setup your own ‘glass’ style add-ons simply by putting a com/simsilica/lemur/style/base/glass-styles.groovy resource in your own project.

As usual, links to everything can be found here:

But for those who don’t like extra clicks, here are the direct download links:

And the full change log for all releases is here:

1 Like

While I’m here, I thought I would mention the “LemurProps” add-on project. It doesn’t have an official release yet but it’s also basically just one class:

This is the class I used to make the SimArboreal UIs and stuff as it makes it really convenient to throw a bunch of object property editors or fields into a panel.

In the next few days, I will probably also be adding a LemurProto project for incubating new or more complicated components. I try to keep Lemur core pretty tight and lean and I don’t want to add half-baked components. a LemurProto project is a way for me to get ‘baking’ GUI elements out there to get used and thus fully baked and include in core. It would also be the incubator for user-contributed elements and components.

I’ll contribute my MigLayout adapter for Lemur into LemurProto.

@david.bernard.31 said: Great! I'll contribute my MigLayout adapter for Lemur into LemurProto.

Sounds good. I hope to start tat project over the weekend maybe.

I imagine LemurProto and my jme3_skel share some goals.
Currently I used jme3_skel to create a no-gameplay project with only common screens (welcome, settings, …) and to experoiment Lemur. MigLayout code is currently host in this project. I’ll push my lastest code later today, including video settings.