bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/apps/extra.git/commit/?id=4c05710d494a3d1708575a007f4f35e04544c3dd
commit 4c05710d494a3d1708575a007f4f35e04544c3dd Author: Marcel Hollerbach <marcel-hollerb...@t-online.de> Date: Thu Jan 12 12:19:43 2017 +0100 extra: show the image as fullscreen when it gets clicked --- src/bin/extra_main.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/bin/extra_main.c b/src/bin/extra_main.c index 51772d7..29427da 100644 --- a/src/bin/extra_main.c +++ b/src/bin/extra_main.c @@ -32,6 +32,7 @@ typedef struct { Evas_Object *ask_popup; Evas_Object *win; Evas_Object *theme_list; + Evas_Object *fullscreen_image; } Ui; static Elm_Genlist_Item_Class _theme_class; @@ -43,6 +44,49 @@ static Extra_Theme *_selected_theme; static Ui ui; static void +_delete_inwin(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, Evas *e EINA_UNUSED, void *event_info) +{ + Evas_Event_Mouse_Up *ev = event_info; + + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; + + evas_object_del(ui.fullscreen_image); + ui.fullscreen_image = NULL; + + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; +} + +static void +_extra_win_fullscreen_preview(Extra_Theme *theme) +{ + Evas_Object *win, *image; + char *path; + + if (ui.fullscreen_image) return; + + path = extra_theme_preview_get(theme); + + if (!path) return; + + ui.fullscreen_image = win = elm_win_util_standard_add("Extra - Screenshot", "Extra - Screenshot"); + elm_win_fullscreen_set(win, EINA_TRUE); + evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(win, EVAS_HINT_FILL, EVAS_HINT_FILL); + + image = elm_image_add(win); + evas_object_size_hint_weight_set(image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(image, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_image_file_set(image, path, NULL); + evas_object_show(image); + + elm_object_content_set(win, image); + + evas_object_show(win); + + evas_object_event_callback_add(ui.fullscreen_image, EVAS_CALLBACK_MOUSE_UP, _delete_inwin, NULL); +} + +static void _extra_win_progress_popup_cb(double progress) { Evas_Object *p; @@ -312,6 +356,19 @@ _extra_win_install_click_cb(void *data EINA_UNUSED, _extra_win_install_execute(); } +static void +_show_fullscreen(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, Evas *e EINA_UNUSED, void *event_info) +{ + Evas_Event_Mouse_Up *ev = event_info; + + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; + + if (!ui.fullscreen_image) + { + _extra_win_fullscreen_preview(_selected_theme); + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + } +} static Evas_Object * extra_win_setup(void) @@ -386,6 +443,7 @@ extra_win_setup(void) ui.theme_ui.install = install; ui.theme_ui.screenshot = elm_image_add(table); + evas_object_event_callback_add(ui.theme_ui.screenshot, EVAS_CALLBACK_MOUSE_UP, _show_fullscreen, NULL); evas_object_size_hint_weight_set(ui.theme_ui.screenshot, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ui.theme_ui.screenshot, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_table_pack(table, ui.theme_ui.screenshot, 0, 1, 4, 2); --