From 64dfeb9067650e9ab517c5c3fa852109679a195b Mon Sep 17 00:00:00 2001 From: Olliver Schinagl Date: Thu, 4 Jun 2015 21:46:37 +0200 Subject: [griffin.display] add network stats button Signed-off-by: Olliver Schinagl --- src/eulogium.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/src/eulogium.c b/src/eulogium.c index 979af86..22f05a7 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -26,6 +26,8 @@ #define MONTH (4UL * WEEK) #define YEAR (52UL * WEEK) +/* TODO Create def for a menu/screen to house all the buttons */ + static void _on_print_abort_ret(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED); static void _cb_content_prev_set(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _print_abort_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); @@ -51,6 +53,7 @@ static void _but_settings_hotend_1_cb(void *data, Evas_Object *object EINA_UNUSE static void _but_settings_hotend_2_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_change_hotend_1_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_change_hotend_2_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED); +static void _but_network_stats_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED); /* Buttons */ static struct button_def but_return = { @@ -475,7 +478,7 @@ static void eulogium_print_data_clear(struct eulogium_data *eulogium) if (eulogium->progress_data_refresh) ecore_timer_del(eulogium->progress_data_refresh); eulogium->progress_data_refresh = NULL; - eulogium->progress = NULL; /* XXX memleak here? when or how is this freeed by efl */ + eulogium->progress = NULL; /* XXX memleak here? when or how is this freed by efl */ eulogium->status = NULL; /* XXX memleak here too? how does efl do it */ eulogium->time = NULL; /* XXX memleak here too? how does efl do it */ eulogium->name = NULL; /* XXX memleak here too? how does efl do it */ @@ -524,7 +527,7 @@ static void _cb_content_prev_set(void *data, Evas_Object *obj EINA_UNUSED, void printf("prev ret\n"); list_size = eina_list_count(elm_naviframe_items_get(eulogium->navi)); if (list_size < 2) - printf("Not popping last item cowboy\n"); /* TODO, use proper debug contruct */ + printf("Not popping last item cowboy\n"); /* TODO, use proper debug construct */ else elm_naviframe_item_pop(eulogium->navi); } @@ -668,6 +671,18 @@ static void _cb_button_main_print(void *data, Evas_Object *object EINA_UNUSED, v static void _but_system_settings_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { struct eulogium_data *eulogium = data; + Evas_Object *content = NULL; + + printf("But system settings settings\n"); + content = menu_widget_list(eulogium, eulogium->navi, &menu_system_settings); + if (!content) + return; + elm_naviframe_item_simple_push(eulogium->navi, content); +} + +static void _but_network_stats_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + struct eulogium_data *eulogium = data; Evas_Object *box, *object; printf("But settings settings\n"); @@ -879,12 +894,43 @@ Evas_Object *eulogium_button_list_prepend(Evas_Object *list, const char *label, return button; } +Evas_Object *eulogium_button_list_append(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 ((!box) && (!list)) + return NULL; + + button = elm_button_add(box); + if (label) + elm_object_text_set(button, label); + if (icon) + elm_object_part_content_set(button, "icon", icon); + if (func) + evas_object_smart_callback_add(button, "clicked", func, data); + evas_object_show(button); + + if (l) + l = eina_list_append(l, button); + else + l = eina_list_append(NULL, button); + evas_object_data_set(list, "eulogium_list", l); + + evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0); + + return button; +} + 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; + Evas_Object *button; /* item */ if ((!box) && (!list)) return NULL; @@ -895,7 +941,7 @@ Evas_Object *eulogium_button_list_sorted_insert(Evas_Object *list, const char *l if (icon) elm_object_part_content_set(button, "icon", icon); if (data) - evas_object_data_set(button, "filelist_data", data); + evas_object_data_set(button, "sort_data", data); if (func) evas_object_smart_callback_add(button, "clicked", func, data); evas_object_show(button); @@ -1281,8 +1327,8 @@ static void _cb_select_file(void *data, Evas_Object *obj EINA_UNUSED, void *even static int _cb_dirfile_sort(const void *data1, const void *data2) { - const char *filepath1 = ((struct _filelist_data *)evas_object_data_get(data1, "filelist_data"))->filepath; - const char *filepath2 = ((struct _filelist_data *)evas_object_data_get(data2, "filelist_data"))->filepath; + const char *filepath1 = ((struct _filelist_data *)evas_object_data_get(data1, "sort_data"))->filepath; + const char *filepath2 = ((struct _filelist_data *)evas_object_data_get(data2, "sort_data"))->filepath; if (!filepath1) return 1; @@ -1395,7 +1441,7 @@ Evas_Object *eulogium_print_menu(struct eulogium_data *eulogium, char *filepath) icon = elm_icon_add(list); elm_icon_standard_set(icon, "user-home"); - eulogium_button_list_prepend(list, "RETURN", icon, _cb_content_prev_set, eulogium); + eulogium_button_list_prepend(list, "Return", icon, _cb_content_prev_set, eulogium); /* XXX TODO: when we pop the filelist from the stack, who calls elm_list_free();? */ eulogium_button_list_go(list); @@ -1679,7 +1725,7 @@ Evas_Object *eulogium_dual_button_add(Evas_Object *parent, const struct button_d elm_box_horizontal_set(butbox, EINA_TRUE); elm_box_pack_end(box, butbox); - /* Dummy seperator that is not visible to make both buttons identical in size */ + /* Dummy separator that is not visible to make both buttons identical in size */ obj = elm_separator_add(box); elm_separator_horizontal_set(obj, EINA_FALSE); evas_object_size_hint_weight_set(obj, 0, 0); -- cgit v0.12