From 28221c24cb706049b49961f80ba838f2c74200b0 Mon Sep 17 00:00:00 2001 From: Olliver Schinagl Date: Fri, 19 Jun 2015 17:05:36 +0200 Subject: add empty wifi network list Signed-off-by: Olliver Schinagl --- src/eulogium.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/eulogium.c b/src/eulogium.c index e8ff719..58ad9f8 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -41,6 +41,7 @@ static void _print_ignore_cb(void *data, Evas_Object *obj EINA_UNUSED, void *eve static void _set_ethernet_power_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _set_wifi_power_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _set_hotspot_power_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); +static void _network_wifi_manage_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_material_change_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_material_settings_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_system_maintenance_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED); @@ -490,7 +491,7 @@ static struct menu_def menu_settings_network = { .end = NULL, .footer = "Connect or forget", .footer_alt = NULL, - .func = NULL, + .func = _network_wifi_manage_cb, .toggle_timer = NULL, .data = NULL, }, { @@ -1440,6 +1441,17 @@ static void menu_widget_list_push(struct eulogium_data *eulogium, struct menu_de elm_naviframe_item_simple_push(eulogium->navi, content); } +static void menu_wifi_list(struct eulogium_data *eulogium) +{ + struct menu_def *wifi_list; + + wifi_list = malloc(sizeof(struct menu_def)); /* XXX memleak here. free on pop */ + wifi_list->title = _("Wifi Networks"); + wifi_list->type = LIST_WIFI; + + menu_widget_list_push(eulogium, wifi_list); +} + static void menu_internal_storage(struct eulogium_data *eulogium) { struct menu_def *menu_internal_storage; @@ -1476,6 +1488,11 @@ static void menu_usb_storage(struct eulogium_data *eulogium) menu_widget_list_push(eulogium, menu_usb_storage); } +static void _network_wifi_manage_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED) +{ + menu_wifi_list((struct eulogium_data *)data); +} + static void _but_print_local_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED) { menu_internal_storage((struct eulogium_data *)data); @@ -2393,6 +2410,17 @@ static void _set_hotspot_power_cb(void *data, Evas_Object *obj, void *event_info eldbus_proxy_call(eulogium->dbus.proxy[NETWORK], "setHotspotPower", on_method_generic_ret, NULL, -1, "b", elm_check_state_get(obj)); } +static void _menu_generate_wifilist(struct eulogium_data *eulogium, Evas_Object *list, struct wifi_def *wifi) +{ + Evas_Object *icon; + + icon = elm_icon_add(list); + elm_icon_standard_set(icon, "user-home"); + evas_object_show(icon); + eulogium_item_list_prepend(list, icon, "Return", NULL, _cb_content_prev_set, eulogium); + /* XXX TODO: when we pop the filelist from the stack, who calls elm_list_free();? */ +} + static void _menu_generate_filelist(struct eulogium_data *eulogium, Evas_Object *list, struct dir_entry_def *dir) { Evas_Object *icon; @@ -2460,6 +2488,8 @@ Evas_Object *menu_widget_list(struct eulogium_data *eulogium, Evas_Object *paren _menu_generate_menulist(eulogium, list, menu->entry); if (menu->type == LIST_FILE) _menu_generate_filelist(eulogium, list, &menu->dir); + if (menu->type == LIST_WIFI) + _menu_generate_wifilist(eulogium, list, NULL); eulogium_item_list_go(list); evas_object_show(list); elm_box_pack_end(box, list); -- cgit v0.12