summaryrefslogtreecommitdiffstats
path: root/src/eulogium.c
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-23 13:57:33 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-23 13:57:33 (GMT)
commitbb9593c750f326e732e957b6c9d552f548df91cf (patch)
tree5b6d579ba265abaa82a63ec0a1b482c1d2b70e2a /src/eulogium.c
parentcdc2d181e2f2877eacb7dbd4fb4951d3a25b2b88 (diff)
downloadeulogium-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.c54
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)