blob: b213b177ef761719b6d658b9ed917c67424d1dc3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
ℹ This widget does not yet exist. This is just a to-do list on how I'd like to implement the widget.
It hasn't been implemented as it is impossible to place text at arbitrary coordinates with `ss_oled`. See *App API* in todo.md.
API List widget
====
Widget headers along with their source file will be stored in /hal/ui/widget. So `ListWidget` will be under `/hal/ui/widget/list.hpp` and `/hal/ui/widget/list.cpp`.
There will also be a `ListWidgetElement` class for each list element.
See the QT list widget class for ideas: https://doc.qt.io/qt-5/qlistwidget.html
- The list widget will be a class
- The constructor will take a pointer to `app_api`, the widget's top-left x, y coordinates and width, height.
- Styling will be done by the implementation. The only exposed option would be to possibly invert the whole widget colour.
- To add elements to list (methods):
- All return `ListWidgetElement*`
- `element_append(ListWidgetElement*)`
- `element_insert() // insert at specific pos`
- `element_append_list() // add a whole array of elements (struct) to the widget`
- To scroll the widget (methods):
- `scroll() // num of elements to scroll down by (can be negative)`
- `scroll_to(ListWidgetElement* element) // scroll to a specific element`
- To change geometry (methods):
- `geometry(x, y, width, height)`
- To draw (methods):
- `paint()`
- ...
|