OpenGl-based custom UIs
This is the first developed custom UI type, and is based on OpenGl. It is relatively flexible, but might be unpractical and overly time-consuming when developing complex UIs. Additionally, it is unlikely that it will be further developed or improved in future. For that reason, we highly recommend to use the Qt-based custom UIs instead.
The OpenGl-based custom UI can take the form of dialogs that integrate buttons, edit-boxes, sliders or labels. Any action on custom UIs (e.g. button-click, text edition, slider movement) is reported as a message that can be intercepted by appropriate API calls. This allows customizing a simulation to a great extent. Following displays several OpenGl-based custom UI examples:
[OpenGl-based custom UI examples]
OpenGl-based custom UIs can be free (unassociated), or associated with objects. In the case a custom UI is associated with a scene object, copying/pasting/cutting/deleting the object will also automatically copy/paste/cut/delete the associated custom UI. This is an important feature (e.g. when copying a robot that displays its proximity sensor readings in a custom UI, you also want the sensor display to be copied). OpenGl-based custom UIs are saved together with a scene (all OpenGl-based custom UIs are saved), or together with a model if associated with any object in the model. OpenGl-based custom UIs can also be saved/loaded on their own: [Menu bar --> File --> Save OpenGl-based custom UIs as...] or [Menu bar --> File --> Load OpenGl-based custom UIs...]
If you prefer using customized Windows style dialogs instead of OpenGl-based custom UIs, refer to the plugin section. Additionally, make sure to have a look at the Qt-based custom UIs, which is the prefered method.