From 004ef27ddc89069c39b8cff1cf47f44baa3ceed1 Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Wed, 26 Feb 2020 16:17:51 +0100 Subject: text widget added, NOT TESTED --- code/fe310/eos/eve/widget/text.h | 43 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 code/fe310/eos/eve/widget/text.h (limited to 'code/fe310/eos/eve/widget/text.h') diff --git a/code/fe310/eos/eve/widget/text.h b/code/fe310/eos/eve/widget/text.h new file mode 100644 index 0000000..d75a075 --- /dev/null +++ b/code/fe310/eos/eve/widget/text.h @@ -0,0 +1,43 @@ +#include + +#include "widget.h" +#include "screen.h" +#include "font.h" + +typedef struct EVETextCursor { + char on; + uint16_t x; + uint16_t line; + uint16_t ch; +} EVETextCursor; + +typedef struct EVETextWidget { + EVEWidget w; + char *text; + uint16_t text_size; + uint16_t text_len; + uint16_t *line; + uint16_t line_size; + uint16_t line_len; + EVEFont *font; + EVETextCursor cursor1; + EVETextCursor cursor2; + uint16_t line0; + uint8_t tag0; + uint8_t tagN; + struct { + EVETextCursor *cursor; + short dx; + short dl; + char mode; + } track; +} EVETextWidget; + +void eve_textw_init(EVETextWidget *widget, uint16_t x, uint16_t y, uint16_t w, uint16_t h, char *text, uint64_t text_size, uint16_t *line, uint16_t line_size, EVEFont *font); +int eve_textw_touch(EVEWidget *_widget, EVEScreen *screen, uint8_t tag0, int touch_idx); +uint8_t eve_textw_draw(EVEWidget *_widget, EVEScreen *screen, uint8_t tag0, char active); +void eve_textw_putc(void *_w, int c); +int eve_textw_update(EVETextWidget *widget, uint16_t line); +void eve_textw_cursor_update(EVETextWidget *widget, EVETextCursor *cursor); +void eve_textw_cursor_set(EVETextWidget *widget, EVETextCursor *cursor, uint8_t tag, uint16_t x); +void eve_textw_cursor_clear(EVETextCursor *cursor); \ No newline at end of file -- cgit v1.2.3