summaryrefslogtreecommitdiffstats
path: root/src/eulogium.c
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-10 12:30:11 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-12 05:30:16 (GMT)
commit045aca52d80834c38384d1562b36a62e62c82c2e (patch)
treebd3ca66c72134d63ee9eba85d7e2533ebeefa35f /src/eulogium.c
parentd5bd1f023685a1a1afe7f4168045744e0a3ef88f (diff)
downloadeulogium-045aca52d80834c38384d1562b36a62e62c82c2e.zip
eulogium-045aca52d80834c38384d1562b36a62e62c82c2e.tar.gz
eulogium-045aca52d80834c38384d1562b36a62e62c82c2e.tar.bz2
[griffin.hmi] add generic confirmation box and add it to print abort
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src/eulogium.c')
-rw-r--r--src/eulogium.c59
1 files changed, 57 insertions, 2 deletions
diff --git a/src/eulogium.c b/src/eulogium.c
index 1f8cdda..9dc5a5b 100644
--- a/src/eulogium.c
+++ b/src/eulogium.c
@@ -33,6 +33,7 @@
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_confirm_cb(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);
static void _on_blink_ret(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED);
static void _but_material_change_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
@@ -74,9 +75,19 @@ static struct button_def but_return = {
.data = NULL,
};
-static struct button_def but_print_abort = {
+static struct button_def but_print_abort_confirm = {
.text = "ABORT",
.cb = {
+ .func = &_print_abort_confirm_cb,
+ .data = NULL,
+ .info = "print abort confirm button pressed",
+ },
+ .data = NULL,
+};
+
+static struct button_def but_print_abort = {
+ .text = "Yes",
+ .cb = {
.func = &_print_abort_cb,
.data = NULL,
.info = "print abort button pressed",
@@ -1165,6 +1176,17 @@ static void _cb_content_prev_set(void *data, Evas_Object *obj EINA_UNUSED, void
elm_naviframe_item_pop(eulogium->navi);
}
+static void _print_abort_confirm_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ struct eulogium_data *eulogium = data;
+ Evas_Object *content;
+
+ content = eulogium_menu_confirm(eulogium->navi, gettext_noop("<br>Abort the print?"), "No", &but_print_abort);
+ if (!content)
+ return;
+ elm_naviframe_item_simple_push(eulogium->navi, content);
+}
+
static void _print_abort_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
struct eulogium_data *eulogium = data;
@@ -1794,7 +1816,7 @@ Evas_Object *eulogium_print_progress(struct eulogium_data *eulogium)
evas_object_show(eulogium->progress);
elm_box_pack_end(_top, eulogium->progress);
- _bottom = eulogium_dual_button_add(eulogium->navi, &but_print_progress_tune, &but_print_abort);
+ _bottom = eulogium_dual_button_add(eulogium->navi, &but_print_progress_tune, &but_print_abort_confirm);
evas_object_show(_bottom);
return eulogium_split_screen(eulogium->navi, _top, _bottom);
@@ -2302,6 +2324,38 @@ Evas_Object *eulogium_multi_screen_menu(struct eulogium_data *eulogium, Evas_Obj
return eulogium_split_screen(parent, _top, _bottom);
}
+Evas_Object *eulogium_menu_confirm(Evas_Object *parent, const char *msg, const char *prev,
+ const struct button_def *next)
+{
+ Evas_Object *_top, *_bottom, *obj;
+
+ _top = elm_label_add(parent);
+ elm_object_text_set(_top, _(msg));
+ evas_object_show(_top);
+
+ _bottom = elm_box_add(parent);
+ elm_box_horizontal_set(_bottom, EINA_TRUE);
+ evas_object_show(_bottom);
+
+ obj = elm_button_add(_bottom);
+ evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_smart_callback_add(obj, "clicked", next->cb.func, next->cb.data);
+ elm_object_text_set(obj, _(next->text));
+ evas_object_show(obj);
+ elm_box_pack_start(_bottom, obj);
+
+ obj = elm_button_add(_bottom);
+ evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_smart_callback_add(obj, "clicked", but_return.cb.func, but_return.cb.data);
+ elm_object_text_set(obj, _(prev));
+ evas_object_show(obj);
+ elm_box_pack_end(_bottom, obj);
+
+ return eulogium_split_screen(parent, _top, _bottom);
+}
+
Evas_Object *eulogium_dual_button_add(Evas_Object *parent, const struct button_def *left, const struct button_def *right)
{
Evas_Object *box;
@@ -2453,6 +2507,7 @@ static void eulogium_setup(struct eulogium_data *eulogium)
eulogium->printer.file_handlers = NULL;
eulogium->footer = NULL;
eulogium_button_cb_data_set(&but_return, eulogium);
+ eulogium_button_cb_data_set(&but_print_abort_confirm, eulogium);
eulogium_button_cb_data_set(&but_print_abort, eulogium);
eulogium_button_cb_data_set(&but_print_progress_tune, eulogium);
eulogium_button_cb_data_set(&but_main_print, eulogium);