EasyGUI  v0.1
Platform independent GUI Library
Widgets

Group for visible widgets on screen. More...

Modules

 Button
 Button which can be pressed.
 
 Checkbox
 Checkbox widget.
 
 Container
 Container widget holding widgets.
 
 Dialog base element
 Base element for dialog, usually parent of dialog window.
 
 Dropdown
 Dropdown widget.
 
 Edit text
 Single-line edit text widget.
 
 Graph
 Graph which can display plots.
 
 Image
 Image display widget.
 
 Led
 Simple LED.
 
 List view container
 List view container is basic widget for scrolling.
 
 Listbox
 LISTBOX widget.
 
 List view
 List view object.
 
 Progress bar
 Progress bar for progress visualization.
 
 Radio box
 Radio box widget.
 
 Slider
 Simple slider widget for user interaction.
 
 GUI_TEMPLATE
 
 Text view
 Text view widget.
 
 Core widget functions
 Core functions for all widgets.
 
 Window
 Basic widget and core parent to all other widgets.
 

Detailed Description

Group for visible widgets on screen.

Widget organization

Widgets are organized in multi depth linked list of parent widgets where each widget has reference to:

Next widget link

Next widget in linked list is used to get next widget for drawing operation. Widget which is at the end of linked list is later visible on top on LCD.

Previous widget link

Previous link is used to get widget which is "behind" current widget. This link is used for touch management where widget at the end of linked list is first checked for events (touch, mouse, etc) because it is visible on top

Parent widget

Link to parent widget is always required to calculate currect widget position on LCD and for other tasks (like percentage width, etc)

Children first widget

Children links are supported on widgets which implement GUI_HANDLE_ROOT_t structure to handle children widgets (such as windows). It holds link to first children widget on the list.

Children last widget

Children last widget is used for events processing (touch, mouse, etc)


Any operation on widget structure (change Z-index, put on front, etc) is only moving widgets on linked list. With this, you can change visible order and also order how events are processed (touch, keyboard). Linked list is most important part of GUI library therefore it is designed in robust way.