Future Work
Widgets
There are various widgets and widget options which are not yet implemented. For example:
- A possiblity to add filters to an EM_TEXTBOX (or a new class with this feature) as well as the possiblity to obscure the display for password input
- EM_TEXTAREA has a very simple implementation. Display of a cursor and empty lines are not yet supported.
- A toggle button, radio button and a button group where only one button can be active at a time
- New EM_LIST implementation which can display other content than strings. Possibly a generic solution which can display a custom widget per entry. This applies also to the combobox which displays only strings currently.
- A generic menu to simplify creation of a game's main menu as well as ingame menus
- A context menu with both a list display and a pie menu display
- Tabs
- Trees
- Tables
- New background and border types
To add a new widget to the library, it has to be fully themeable. This means the drawing and input processing has to be done through a delegate. If a special delegate is needed, a deferred version can be added to the delegates cluster. Then a simple implementation has to be done for the basic theme and put in the delegates cluster basic_delegates. That the delegate is loaded, a new factory function needs to be added to the class EM_THEME_DELEGATES as well as a setter function and the default initialisation in the load_default_delegates
Themes
There is always a need for new themes. These should be as customizable as possible so not all applications look the same.
Also color schemes for existing themes can be added.
Library improvements
- Mouse handling: A consistent behaviour when the mouse is dragged in and out of components. Also a double click detection is missing as well as an equivalent to the repeating key down event with mouse button down events.
- Dragging of objects: A mechanism to drag objects between components.
- Drawing: Widgets get redrawn to often. Maybe a mechanism can be introduced to redraw only a part of widgets.
- Layout manager: A mechanism to position the widgets automatically.