summaryrefslogtreecommitdiff
path: root/fw/fe310/eos/eve/screen/form.h
diff options
context:
space:
mode:
Diffstat (limited to 'fw/fe310/eos/eve/screen/form.h')
-rw-r--r--fw/fe310/eos/eve/screen/form.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/fw/fe310/eos/eve/screen/form.h b/fw/fe310/eos/eve/screen/form.h
new file mode 100644
index 0000000..272b6ed
--- /dev/null
+++ b/fw/fe310/eos/eve/screen/form.h
@@ -0,0 +1,23 @@
+#include <stdint.h>
+
+#define EVE_FORM_LABEL_MARGIN 10
+
+struct EVEWidget;
+struct EVEWidgetSpec;
+struct EVEForm;
+
+typedef int (*eve_form_uievt_t) (struct EVEForm *, uint16_t, void *);
+typedef void (*eve_form_action_t) (struct EVEForm *);
+typedef void (*eve_form_destructor_t) (struct EVEForm *);
+
+typedef struct EVEForm {
+ EVEPage p;
+ eve_form_action_t action;
+} EVEForm;
+
+EVEForm *eve_form_create(EVEWindow *window, EVEViewStack *stack, struct EVEWidgetSpec *spec, uint16_t spec_size, eve_form_uievt_t uievt, eve_form_action_t action, eve_form_destructor_t destructor);
+void eve_form_init(EVEForm *form, EVEWindow *window, EVEViewStack *stack, struct EVEWidget *widget, uint16_t widget_size, eve_form_uievt_t uievt, eve_form_action_t action, eve_form_destructor_t destructor);
+void eve_form_update(EVEForm *form, struct EVEWidget *widget, uint16_t widget_size);
+void eve_form_destroy(EVEForm *form);
+
+int eve_form_uievt(EVEForm *form, uint16_t evt, void *param);