diff options
Diffstat (limited to 'fw/fe310/eos/eve/widget/widget.h')
-rw-r--r-- | fw/fe310/eos/eve/widget/widget.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/fw/fe310/eos/eve/widget/widget.h b/fw/fe310/eos/eve/widget/widget.h new file mode 100644 index 0000000..f081b4c --- /dev/null +++ b/fw/fe310/eos/eve/widget/widget.h @@ -0,0 +1,31 @@ +#include <stdint.h> + +#define EVE_WIDGET_TYPE_FREE 1 +#define EVE_WIDGET_TYPE_SPACER 2 +#define EVE_WIDGET_TYPE_PAGE 3 +#define EVE_WIDGET_TYPE_STR 4 +#define EVE_WIDGET_TYPE_TEXT 5 +#define EVE_WIDGET_TYPE_SELECT 6 + +struct EVEWidget; + +typedef uint8_t (*eve_widget_draw_t) (struct EVEWidget *, uint8_t); +typedef int (*eve_widget_touch_t) (struct EVEWidget *, EVETouch *, uint16_t); + +typedef struct EVEWidget { + EVERect g; + EVEPage *page; + eve_widget_draw_t draw; + eve_widget_touch_t touch; + eve_kbd_input_handler_t putc; + EVELabel *label; + uint8_t type; + uint8_t tag0; + uint8_t tagN; +} EVEWidget; + +void eve_widget_init(EVEWidget *widget, uint8_t type, EVERect *g, EVEPage *page, eve_widget_draw_t draw, eve_widget_touch_t touch, eve_kbd_input_handler_t putc); +size_t eve_widget_size(uint8_t type); +void eve_widget_set_label(EVEWidget *widget, EVELabel *label); +EVEWidget *eve_widget_next(EVEWidget *widget); +void eve_widget_focus(EVEWidget *widget, EVERect *rect);
\ No newline at end of file |