diff options
Diffstat (limited to 'src/ui_widgets.h')
-rw-r--r-- | src/ui_widgets.h | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/src/ui_widgets.h b/src/ui_widgets.h index d4b1524..2e4fc9d 100644 --- a/src/ui_widgets.h +++ b/src/ui_widgets.h @@ -23,7 +23,10 @@ struct button_cb { void (*func)(void *data, Evas_Object *object, void *event_info); - void *data; + union { + void *data; + uint_fast32_t nr; + }; const char *info; }; @@ -76,50 +79,28 @@ struct screen_def { * to never have more then a handful of states. */ enum navi_page_state { - PAGE_NORMAL, PAGE_BOTTOM, + PAGE_NORMAL, + PAGE_WIZARD, PAGE_USB, PAGE_FLASH, PAGE_PRINTING, PAGE_INVALID, PAGE_ERROR, -}; - -enum screen_type { - NONE, - FUNC, - MATERIAL, - PROGRESS, - END, /* sentinel */ -}; - -struct wizard_screen_data { - uint_fast8_t count; - struct { - enum screen_type type; - char *text; - void (*func)(void *data); - void *data; - char *prev_button; - char *next_button; - void (*prev_func)(void *data); - void (*next_func)(void *data); - /* TODO consider adding a button_def for the buttons */ - } screens[]; -}; +} _navi_page_state; /* Kind of a hack, to pass a pointer to the enum so we can pass it to functions that only take void* */ void eulogium_button_cb_set(struct button_def *button, struct button_cb *cb); void eulogium_button_cb_data_set(struct button_def *button, void *data); void eulogium_button_data_set(struct button_def *button, void *data); -struct eulogium_data; /* XXX remove when we pass a navi */ -Elm_Object_Item *ui_stack_push(const struct eulogium_data *eulogium, Evas_Object *content, const enum navi_page_state page_state); -Eina_Bool ui_stack_pop(const struct eulogium_data *eulogium); -void ui_stack_page_invalidate(Evas_Object *navi, const enum navi_page_state page_state); +Elm_Object_Item *ui_stack_push(Evas_Object *navi, Evas_Object *content, const enum navi_page_state page_state); +Eina_Bool ui_stack_pop(const Evas_Object *navi); void ui_stack_pop_cb(void *data, Evas_Object *eo EINA_UNUSED, void *event_info EINA_UNUSED); +void ui_stack_page_invalidate(Evas_Object *navi, const enum navi_page_state page_state); Evas_Object *ui_widget_slider(Evas_Object *parent, struct eulogium_data *eulogium, struct settings_dial_data *dial_data); Evas_Object *ui_widget_spinner(Evas_Object *parent, struct eulogium_data *eulogium, struct settings_dial_data *dial_data); -Evas_Object *ui_widget_progress(Evas_Object *parent, struct eulogium_data *eulogium, const struct procedure_data *procedure); +Evas_Object *ui_widget_spinner_add(Evas_Object *parent, struct settings_dial_data *dial_data); +Evas_Object *ui_widget_progress(Evas_Object *parent, const struct procedure_data *procedure); void ui_init(void); |