From cf7c06297d04bade9cd04c056f9ed510e64dd7bd Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Wed, 5 Aug 2020 03:39:22 +0200 Subject: code -> fw --- fw/fe310/eos/eve/widget/widget.c | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 fw/fe310/eos/eve/widget/widget.c (limited to 'fw/fe310/eos/eve/widget/widget.c') diff --git a/fw/fe310/eos/eve/widget/widget.c b/fw/fe310/eos/eve/widget/widget.c new file mode 100644 index 0000000..ab121d8 --- /dev/null +++ b/fw/fe310/eos/eve/widget/widget.c @@ -0,0 +1,41 @@ +#include +#include + +#include "eve.h" +#include "eve_kbd.h" +#include "unicode.h" + +#include "screen/screen.h" +#include "screen/window.h" +#include "screen/page.h" +#include "screen/font.h" + +#include "label.h" +#include "widget.h" +#include "pagew.h" +#include "strw.h" +#include "textw.h" + +static const size_t _eve_wsize[] = { + 0, + sizeof(EVEPageWidget), + sizeof(EVEStrWidget), + sizeof(EVETextWidget) +}; + +void eve_widget_init(EVEWidget *widget, uint8_t type, EVERect *g, eve_widget_touch_t touch, eve_widget_draw_t draw, eve_kbd_input_handler_t putc) { + if (g) widget->g = *g; + widget->touch = touch; + widget->draw = draw; + widget->putc = putc; + widget->type = type; +} + +void eve_widget_set_label(EVEWidget *widget, EVELabel *label) { + widget->label = label; +} + +EVEWidget *eve_widget_next(EVEWidget *widget) { + char *_w = (char *)widget; + return (EVEWidget *)(_w + _eve_wsize[widget->type]); +} -- cgit v1.2.3