More info on Lemur

I am currently looking into Lemur as the basis for my game Gui. However documentation is limited and I want to learn more. Especialy on creating my own controls. The page on that subject is empty, does any one have a clue how to do this?

And where can I find some more information on what events (commands?) are available for what components and how to make use of them?

[By controls do you mean things like TextField etc?]

My approach to this has been to look at other examples of composite gui elements built of other base gui elements. A lot can be found in Lemur Proto. That was the approach I took when building a filepicker

1 Like

What do you mean by events?

In the case of something like button, the events are the ButtonActions:
http://jmonkeyengine-contributions.github.io/Lemur/javadoc/Lemur/com/simsilica/lemur/Button.ButtonAction.html

But there are general events for focus changes, hierarchy changes, etc. that all GuiControl-managed GUI elements can use.

“Events” is a big word.

For a lot of things, Lemur opts for VersionedReference which is much more efficient and easier for user-code to manage than events+listeners.

And in those cases, it is reasonably obvious from the javadoc what is supported because the GUI element will have some kind of VersionedReference-returning method. (DocumentModel, SelectionModel, etc.)

Edit: and for any gaps in documentation, just ask specific questions here and you will get answers very fast.

1 Like

mmm… I think the learning curve for Lemur is too steep for what I need now. Maybe I get back on that later on. I do like the idea of creating my own game specific controls.

tnx for your time.

Even so, you will have to reinvent a LOT of wheels to make a whole UI from scratch. Consider that Lemur is modular and you might be able to reuse just parts of it:

In the end, what GUI elements do you need to create that are not already there?

That is what I am hoping for, my game will feature a control that represents a brain and that allows tweaking and inspecting it.

I still think Lemur could be the way to go. But for now I need to mock up a quick interface that helps me to play with parameters in this development stage.

Yeah, I just noticed you were messing with Nifty. I found nifty so difficult to use that I wrote my own UI library.

Lemur is a lot like Swing. Nifty is a lot like “nothing else on the planet”.

And anyway, even aside from that: Lemur’s scene picking can be used totally separate from the rest, InputMapper is good enough that we’ve talked about moving it into JME itself, etc…

Search the forum for “Lemur Gems”.

I think it will be good for JME if it has it’s own native gui that does things in a JME-way. From what I have seen from Lemur I think it would be an interesting move.

It’s long been proposed. It’s the de facto UI as it stands currently.

The issue with bundling is that I can’t release it separately anymore… Lemur development can move a lot faster if it doesn’t have to drag all of JME around with it (and to some extent, vice versa).

It takes me about 10 minutes to cut a new Lemur release and then folks need only update the version in their build files. JME has a whole multi-week/month process before producing a final release.