diff options
author | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-06-23 13:57:33 (GMT) |
---|---|---|
committer | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-06-23 13:57:33 (GMT) |
commit | bb9593c750f326e732e957b6c9d552f548df91cf (patch) | |
tree | 5b6d579ba265abaa82a63ec0a1b482c1d2b70e2a /src/eulogium.c | |
parent | cdc2d181e2f2877eacb7dbd4fb4951d3a25b2b88 (diff) | |
download | eulogium-bb9593c750f326e732e957b6c9d552f548df91cf.zip eulogium-bb9593c750f326e732e957b6c9d552f548df91cf.tar.gz eulogium-bb9593c750f326e732e957b6c9d552f548df91cf.tar.bz2 |
Fix and use network data
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src/eulogium.c')
-rw-r--r-- | src/eulogium.c | 54 |
1 files changed, 37 insertions, 17 deletions
diff --git a/src/eulogium.c b/src/eulogium.c index 8e3b951..d3774e1 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -78,7 +78,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); +static void _but_network_info_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_settings_network_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_settings_language_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static void _but_settings_hotend_1_offset_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); @@ -497,7 +497,7 @@ static struct menu_def menu_settings_network = { .end = NULL, .footer = NULL, .footer_alt = NULL, - .func = _but_network_stats_cb, + .func = _but_network_info_cb, .toggle_timer = NULL, .data = NULL, }, { @@ -1603,28 +1603,48 @@ static void _but_settings_language_cb(void *data, Evas_Object *obj EINA_UNUSED, 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) +static char *parse_networks_for_display(struct network_data *networks) +{ + char *buf = NULL; + uint_fast16_t i; + uint_fast32_t pos = 0; + + if (!networks) + return NULL; + + for (i = 0; networks[i].obj_path; i++) { + buf = realloc(buf, pos + 34 * sizeof(char *)); + pos += sprintf(buf + pos, "%s%s IP: %s", i == 0 ? "": "<br>", (networks[i].tech == TECH_ETHERNET) ? "Ethernet" : (networks[i].tech == TECH_WIFI) ? "WiFi" : "", networks[i].ipv4); + } + + return buf; +} + +static void _but_network_info_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"); + Evas_Object *content, *_top, *_bottom; + char *buf; /* XXX Quick hack to make the adv feature a little more useful, this needs to be made much better! */ - box = elm_box_add(eulogium->navi); - evas_object_show(box); + _top = elm_box_add(eulogium->navi); + evas_object_show(_top); - object = elm_label_add(box); - elm_object_text_set(object, "Ethernet IP: 1.2.3.4<br>WiFi IP: 5.6.7.8"); /* TODO: text outline left */ - evas_object_show(object); - elm_box_pack_end(box, object); + _top = elm_label_add(eulogium->navi); /* TODO, dynamically update IPs */ + buf = parse_networks_for_display(eulogium->networks); + elm_object_text_set(_top, buf); + free(buf); + evas_object_show(_top); - object = elm_button_add(box); - elm_object_text_set(object, _(but_return.text)); /* not pretty using the global XXX */ - evas_object_smart_callback_add(object, "clicked", but_return.cb.func, but_return.cb.data); - evas_object_show(object); - elm_box_pack_end(box, object); + _bottom = elm_button_add(eulogium->navi); + elm_object_text_set(_bottom, _(but_return.text)); /* not pretty using the global XXX */ + evas_object_smart_callback_add(_bottom, "clicked", but_return.cb.func, but_return.cb.data); + evas_object_show(_bottom); - elm_naviframe_item_simple_push(eulogium->navi, box); +// elm_naviframe_item_simple_push(eulogium->navi, box); + content = eulogium_split_screen(eulogium->navi, _top, _bottom); + if (content) + elm_naviframe_item_simple_push(eulogium->navi, content); } static void _but_main_mathot_cb(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED) |