summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/eulogium.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/eulogium.c b/src/eulogium.c
index dd58402..1fe5ca4 100644
--- a/src/eulogium.c
+++ b/src/eulogium.c
@@ -159,6 +159,26 @@ static void _cb_eulogium_exit(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS
elm_exit();
}
+static void _print_abort_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ struct eulogium_data *eulogium = data;
+ Elm_Object_Item *item;
+
+ item = elm_naviframe_bottom_item_get(eulogium->navi);
+ if (item)
+ elm_naviframe_item_pop_to(item); /* XXX what to do else? | XXX stack corrupted after this? (see error log) */
+ else
+ EINA_LOG_CRIT("There is no bottom of the stack!");
+
+ /* XXX Quick and ugly cleaning up */
+ free(eulogium->print.name);
+ eulogium->print.name = NULL;
+ free(eulogium->print.file);
+ eulogium->print.file = NULL;
+ eulogium->print.progress = NULL; /* XXX memleak here */
+ eulogium->print.status = NULL; /* XXX memleak here too */
+}
+
Evas_Object *eulogium_split_screen(Evas_Object *parent, Evas_Object *top, Evas_Object *bottom)
{
Evas_Object *table;
@@ -254,9 +274,10 @@ elm_progressbar_value_set(eulogium->print.progress, 0.5);
elm_table_pack(table, object, 1, 5, 1, 1);
object = elm_button_add(table);
- elm_object_text_set(object, "PAUSE"); /* TODO create pause button */
+ elm_object_text_set(object, "ABORT"); /* TODO create pause button */
evas_object_size_hint_align_set(object, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_smart_callback_add(object, "clicked", _print_abort_cb, eulogium); /* TODO use button! */
evas_object_show(object);
elm_table_pack(table, object, 2, 5, 1, 1);