diff options
-rw-r--r-- | src/eulogium.c | 23 |
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); |