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
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.
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.
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…
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.