diff options
Diffstat (limited to 'fw/fe310/eos/eve/screen/view.c')
-rw-r--r-- | fw/fe310/eos/eve/screen/view.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/fw/fe310/eos/eve/screen/view.c b/fw/fe310/eos/eve/screen/view.c index 30229e5..ce4101f 100644 --- a/fw/fe310/eos/eve/screen/view.c +++ b/fw/fe310/eos/eve/screen/view.c @@ -4,18 +4,38 @@ #include "eve.h" #include "eve_kbd.h" -#include "screen.h" #include "window.h" -#include "view.h" -void eve_view_init(EVEView *view, EVEWindow *window, eve_view_touch_t touch, eve_view_draw_t draw, void *param) { +void eve_view_init(EVEView *view, EVEWindow *window, eve_view_draw_t draw, eve_view_touch_t touch, void *param) { view->touch = touch; view->draw = draw; view->param = param; view->window = window; + view->color_bg = 0x000000; + view->color_fg = 0xffffff; window->view = view; } +void eve_view_set_color_bg(EVEView *view, uint8_t r, uint8_t g, uint8_t b) { + view->color_bg = (r << 16) | (g << 8) | b; +} + +void eve_view_set_color_fg(EVEView *view, uint8_t r, uint8_t g, uint8_t b) { + view->color_fg = (r << 16) | (g << 8) | b; +} + +uint8_t eve_view_clear(EVEView *view, uint8_t tag0) { + eve_cmd_dl(CLEAR_COLOR_RGBC(view->color_bg)); + eve_cmd_dl(COLOR_RGBC(view->color_fg)); + view->tag = tag0; + if (tag0 != EVE_TAG_NOTAG) { + eve_cmd_dl(CLEAR_TAG(tag0)); + tag0++; + } + eve_cmd_dl(CLEAR(1,1,1)); + return tag0; +} + void eve_view_stack_init(EVEViewStack *stack) { memset(stack, 0, sizeof(EVEViewStack)); } |