summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-04-22 20:22:57 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-04-28 05:07:15 (GMT)
commit20676b4a8c43a843bd94fd5be50b9f59dcb26821 (patch)
tree9e81a60862daf0adda52dbcbdb8244f803b70e2c /src
parent47df31baf882adeac46f309066cbb17f1b43e61f (diff)
downloadeulogium-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.c27
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);