diff options
author | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-04-22 20:22:57 (GMT) |
---|---|---|
committer | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-04-28 05:07:15 (GMT) |
commit | 20676b4a8c43a843bd94fd5be50b9f59dcb26821 (patch) | |
tree | 9e81a60862daf0adda52dbcbdb8244f803b70e2c /src | |
parent | 47df31baf882adeac46f309066cbb17f1b43e61f (diff) | |
download | eulogium-20676b4a8c43a843bd94fd5be50b9f59dcb26821.zip eulogium-20676b4a8c43a843bd94fd5be50b9f59dcb26821.tar.gz eulogium-20676b4a8c43a843bd94fd5be50b9f59dcb26821.tar.bz2 |
Add generic scroller. TODO: fix mousewheel
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/eulogium.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/eulogium.c b/src/eulogium.c index d220889..f2f2243 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -22,26 +22,29 @@ Evas_Object *eulogium_button_list_add(Evas_Object *parent) Evas_Object *list, *box; Eina_List *l = NULL; - /* Wrap scroller widget around the box when we can disable mousewheel/use Z-axis directly */ list = elm_scroller_add(parent); box = elm_box_add(list); - evas_object_data_set(box, "eulogium_list", l); + evas_object_data_set(list, "eulogium_list", l); + evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_scroller_bounce_set(list, EINA_FALSE, EINA_TRUE); elm_object_content_set(list, box); evas_object_show(box); + evas_object_data_set(list, "content", box); - return box; + return list; } Evas_Object *eulogium_button_list_prepend(Evas_Object *list, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) { + Evas_Object *box = evas_object_data_get(list, "content"); Eina_List *l = evas_object_data_get(list, "eulogium_list"); Evas_Object *button; - if (!list) + if ((!box) && (!list)) return NULL; - button = elm_button_add(list); + button = elm_button_add(box); if (label) elm_object_text_set(button, label); if (icon) @@ -65,13 +68,14 @@ Evas_Object *eulogium_button_list_prepend(Evas_Object *list, const char *label, Evas_Object *eulogium_button_list_sorted_insert(Evas_Object *list, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func) { + Evas_Object *box = evas_object_data_get(list, "content"); Eina_List *l = evas_object_data_get(list, "eulogium_list"); Evas_Object *button; - if (!list) + if ((!box) && (!list)) return NULL; - button = elm_button_add(list); + button = elm_button_add(box); if (label) elm_object_text_set(button, label); if (icon) @@ -92,11 +96,15 @@ Evas_Object *eulogium_button_list_sorted_insert(Evas_Object *list, const char *l void eulogium_button_list_go(Evas_Object *list) { + Evas_Object *box = evas_object_data_get(list, "content"); Eina_List *l, *item_list = evas_object_data_get(list, "eulogium_list"); Evas_Object *button; + if ((!box) && (!list)) + return; + EINA_LIST_FOREACH(item_list, l, button) - elm_box_pack_end(list, button); + elm_box_pack_end(box, button); } void eulogium_button_cb_set(struct button_def *button, struct button_cb *cb) @@ -403,10 +411,11 @@ Evas_Object *eulogium_print_menu(struct eulogium_data *eulogium, char *filepath) list = eulogium_button_list_add(box); evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(list, 0, 0); + evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); //elm_scroller_bounce_set(list, EINA_FALSE, EINA_FALSE); //elm_list_mode_set(list, ELM_LIST_COMPRESS); elm_box_pack_end(box, list); + evas_object_show(list); eulogium->data = (void *)list; eina_file_dir_list(filepath, EINA_FALSE, _cb_populate_filelist, eulogium); |