Navigation C API Pages Python bindings Applications

Widgets

There are several key design points that make this library a bit different than the mainstream libraries but apart from that it’s a just widget library, nothing too unexpected here.

One of the major differencies is that widgets are represented by C structures that store the widget state, read only access could be done just by accessing the structure members. If you want to change the state you call helper function that changes it, it may also do sanity checks, and marks the widget to be repainted. Setting values may also invoke on_event() callback, e.g. if user changes checkbox value the application will receive an event.

Another interesting point is that the library uncouples the GUI layout from the actual application functionality. As a matter of a fact the layout can be expressed in JSON and loaded from a file. It does not matter where the GUI elements are put as far as the on_event() callbacks and widgets uid match. An example code is worth of thousands words.

Also if you ever wondered how widget library written by kernel devloper would look like this is probably as close as you can get…

Dialog documentation