I can't decide if you want to use it or not, but I can tell my story with IMGUI.
I read Sol's tutorial about it and then ported to GLBasic and I'm truly impressed what effective IMGUI is.
You work with a very small codebase and only the basic Widgets (scrollbar, button, textfield) and then you can easily expand the basic Widgets to complex ones (Combo box, drop down menu, tree-list, tabs, radio buttons, windows, complet forms).
You don't need to inicialize the widgets (no need to create a button) only use it. You don't store any data in the widgets so not need to update them if a value changed externally.
There are some fundamental difference beetween IMGUI and RMGUI (like DDGUI).
With RMGUI you need:
1. Create widgets
2. Update widgets to reflect internal state of application
3. Update internal state of application to reflect state of widgets
4. Destroy widgets.
With IMGUI you only need:
1. Use widget with internal state of application
You calculate, render and check an IMGUI widget in every frame, so it uses more CPU than RMGUI, but IMGUI mostly used in games, where FPS targetted 40-60 FPS and only with a few widgets at once, so this is not a problem overall.
An excellent writing about IMGUI with code examples:
http://www.johno.se/book/imgui.htmlI found some really nice BlitzBasic and C++ IMGUI sources, there are a lot of good idea in these I want to port to GLBasic (automatic layout for example).
I found out that NVidia implemented its own IMGUI which it using in it's demos:
http://code.google.com/p/nvidia-widgets/Also Unity using IMGUI since Unity 2.5 (2009), and they said that working with IMGUI was a very pleaseful job: