summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-19 15:05:36 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-19 15:05:36 (GMT)
commit28221c24cb706049b49961f80ba838f2c74200b0 (patch)
tree1f55282b3f9e255f9aab1edfb944e67ad2a71aa3
parent4d057ce66320b3904bdc44fa09a0e735e76017d9 (diff)
downloadeulogium-28221c24cb706049b49961f80ba838f2c74200b0.zip
eulogium-28221c24cb706049b49961f80ba838f2c74200b0.tar.gz
eulogium-28221c24cb706049b49961f80ba838f2c74200b0.tar.bz2
add empty wifi network list
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
-rw-r--r--src/eulogium.c32
1 files changed, 31 insertions, 1 deletions
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);