summaryrefslogtreecommitdiff
path: root/fw/fe310/eos/eve/screen/view.h
diff options
context:
space:
mode:
Diffstat (limited to 'fw/fe310/eos/eve/screen/view.h')
-rw-r--r--fw/fe310/eos/eve/screen/view.h38
1 files changed, 23 insertions, 15 deletions
diff --git a/fw/fe310/eos/eve/screen/view.h b/fw/fe310/eos/eve/screen/view.h
index 3e8c0a0..c40a620 100644
--- a/fw/fe310/eos/eve/screen/view.h
+++ b/fw/fe310/eos/eve/screen/view.h
@@ -5,13 +5,13 @@
#define EVE_VIEW_SIZE_STACK 16
struct EVEView;
-struct EVEViewStack;
+struct EVEVStack;
struct EVEWindow;
typedef uint8_t (*eve_view_draw_t) (struct EVEView *, uint8_t);
-typedef int (*eve_view_touch_t) (struct EVEView *, EVETouch *, uint16_t, uint8_t);
-typedef int (*eve_view_uievt_t) (struct EVEView *, uint16_t, void *);
-typedef int (*eve_view_constructor_t) (struct EVEWindow *window, struct EVEViewStack *);
+typedef int (*eve_view_touch_t) (struct EVEView *, EVETouch *, uint16_t);
+typedef void (*eve_view_uievt_t) (struct EVEView *, uint16_t, void *);
+typedef struct EVEView *(*eve_view_constructor_t) (struct EVEWindow *window, struct EVEVStack *);
typedef struct EVEView {
eve_view_draw_t draw;
@@ -24,21 +24,29 @@ typedef struct EVEView {
uint8_t tag;
} EVEView;
-typedef struct EVEViewStack {
+typedef struct EVEVStack {
eve_view_constructor_t constructor[EVE_VIEW_SIZE_STACK];
uint8_t level;
- uint8_t dirty;
-} EVEViewStack;
+} EVEVStack;
void eve_view_init(EVEView *view, struct EVEWindow *window, eve_view_draw_t draw, eve_view_touch_t touch, eve_view_uievt_t uievt, void *param);
+void eve_view_attach(EVEView *view, struct EVEWindow *window, void *view_id);
+void eve_view_detach(EVEView *view);
+void eve_view_set_param(EVEView *view, void *param);
void eve_view_set_color_bg(EVEView *view, uint8_t r, uint8_t g, uint8_t b);
void eve_view_set_color_fg(EVEView *view, uint8_t r, uint8_t g, uint8_t b);
uint8_t eve_view_clear(EVEView *view, uint8_t tag0, uint8_t tag_opt);
-
-int eve_view_uievt_push(EVEView *view, uint16_t evt, void *param);
-int eve_view_uievt_push_gest(EVEView *view, uint16_t evt, EVETouch *touch, uint16_t t_evt, uint8_t tag0);
-
-void eve_stack_init(EVEViewStack *stack);
-void eve_stack_create_view(EVEViewStack *stack, struct EVEWindow *window, eve_view_constructor_t constructor);
-void eve_stack_back(EVEViewStack *stack, struct EVEWindow *window);
-eve_view_constructor_t eve_stack_get(EVEViewStack *stack); \ No newline at end of file
+uint8_t eve_view_tag(EVEView *view, uint8_t tag, uint8_t tag_opt);
+
+void eve_view_uievt_push(EVEView *view, uint16_t evt, void *param);
+void eve_view_uievt_push_gest(EVEView *view, uint16_t evt, EVETouch *touch, uint16_t t_evt);
+
+void eve_vstack_init(EVEVStack *stack);
+int eve_vstack_push(EVEVStack *stack, eve_view_constructor_t constructor);
+eve_view_constructor_t eve_vstack_pull(EVEVStack *stack);
+eve_view_constructor_t eve_vstack_get(EVEVStack *stack);
+int eve_vstack_empty(EVEVStack *stack);
+int eve_vstack_full(EVEVStack *stack);
+int eve_vstack_level(EVEVStack *stack);
+int eve_vstack_create_view(EVEVStack *stack, struct EVEWindow *window, eve_view_constructor_t constructor);
+int eve_vstack_back(EVEVStack *stack, struct EVEWindow *window);