GUI: status bar rendering. Power: battery indicator. (#207)
* Menu: animation. Irukagotchi: idle image. * Power: battery, usb activity widget * Power: tune battery max voltage and clamp overshoot * get initial charge state Co-authored-by: Aleksandr Kutuzov <aku@plooks.com> Co-authored-by: aanper <mail@s3f.ru>
This commit is contained in:
@@ -10,15 +10,6 @@
|
||||
|
||||
// TODO add mutex to widget ops
|
||||
|
||||
struct Widget {
|
||||
Gui* gui;
|
||||
bool is_enabled;
|
||||
WidgetDrawCallback draw_callback;
|
||||
void* draw_callback_context;
|
||||
WidgetInputCallback input_callback;
|
||||
void* input_callback_context;
|
||||
};
|
||||
|
||||
Widget* widget_alloc(WidgetDrawCallback callback, void* callback_context) {
|
||||
Widget* widget = furi_alloc(sizeof(Widget));
|
||||
widget->is_enabled = true;
|
||||
@@ -31,6 +22,26 @@ void widget_free(Widget* widget) {
|
||||
free(widget);
|
||||
}
|
||||
|
||||
void widget_set_width(Widget* widget, uint8_t width) {
|
||||
assert(widget);
|
||||
widget->width = width;
|
||||
}
|
||||
|
||||
uint8_t widget_get_width(Widget* widget) {
|
||||
assert(widget);
|
||||
return widget->width;
|
||||
}
|
||||
|
||||
void widget_set_height(Widget* widget, uint8_t height) {
|
||||
assert(widget);
|
||||
widget->height = height;
|
||||
}
|
||||
|
||||
uint8_t widget_get_height(Widget* widget) {
|
||||
assert(widget);
|
||||
return widget->height;
|
||||
}
|
||||
|
||||
void widget_enabled_set(Widget* widget, bool enabled) {
|
||||
furi_assert(widget);
|
||||
if(widget->is_enabled != enabled) {
|
||||
@@ -80,7 +91,9 @@ void widget_draw(Widget* widget, CanvasApi* canvas_api) {
|
||||
void widget_input(Widget* widget, InputEvent* event) {
|
||||
furi_assert(widget);
|
||||
furi_assert(event);
|
||||
|
||||
furi_check(widget->gui);
|
||||
if(widget->input_callback) widget->input_callback(event, widget->input_callback_context);
|
||||
|
||||
if(widget->input_callback) {
|
||||
widget->input_callback(event, widget->input_callback_context);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user