| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /**
- * @file widget_element_i.h
- * GUI: internal Widget Element API
- */
- #pragma once
- #include <furi.h>
- #include <gui/view.h>
- #include <input/input.h>
- typedef enum {
- GuiButtonTypeLeft,
- GuiButtonTypeCenter,
- GuiButtonTypeRight,
- } GuiButtonType;
- typedef void (*ButtonCallback)(GuiButtonType result, InputType type, void* context);
- typedef struct WidgetElement WidgetElement;
- typedef struct Widget Widget;
- struct WidgetElement {
- // generic draw and input callbacks
- void (*draw)(Canvas* canvas, WidgetElement* element);
- bool (*input)(InputEvent* event, WidgetElement* element);
- // free callback
- void (*free)(WidgetElement* element);
- // generic model holder
- void* model;
- FuriMutex* model_mutex;
- // pointer to widget that hold our element
- Widget* parent;
- };
- /** Create multi string element */
- WidgetElement* widget_element_string_multiline_create(
- uint8_t x,
- uint8_t y,
- Align horizontal,
- Align vertical,
- Font font,
- const char* text);
- /** Create string element */
- WidgetElement* widget_element_string_create(
- uint8_t x,
- uint8_t y,
- Align horizontal,
- Align vertical,
- Font font,
- const char* text);
- /** Create text box element */
- WidgetElement* widget_element_text_box_create(
- uint8_t x,
- uint8_t y,
- uint8_t width,
- uint8_t height,
- Align horizontal,
- Align vertical,
- const char* text,
- bool strip_to_dots);
- /** Create button element */
- WidgetElement* widget_element_button_create(
- GuiButtonType button_type,
- const char* text,
- ButtonCallback callback,
- void* context);
- /** Create icon element */
- WidgetElement* widget_element_icon_create(uint8_t x, uint8_t y, const Icon* icon);
- /** Create frame element */
- WidgetElement* widget_element_frame_create(
- uint8_t x,
- uint8_t y,
- uint8_t width,
- uint8_t height,
- uint8_t radius);
- WidgetElement* widget_element_text_scroll_create(
- uint8_t x,
- uint8_t y,
- uint8_t width,
- uint8_t height,
- const char* text);
|