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);

-- 


Reply via email to