bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/apps/extra.git/commit/?id=36661e17c48a9d600ae734bc54cda77230c2a9f2

commit 36661e17c48a9d600ae734bc54cda77230c2a9f2
Author: Marcel Hollerbach <[email protected]>
Date:   Wed Apr 5 16:37:02 2017 +0200

    extra: move the inwin creation code to utils
---
 src/bin/extra_private.h        |  1 +
 src/bin/extra_theme_selector.c | 41 ++++++++++++-----------------------------
 src/bin/extra_util.c           | 33 +++++++++++++++++++++++++++++++++
 3 files changed, 46 insertions(+), 29 deletions(-)

diff --git a/src/bin/extra_private.h b/src/bin/extra_private.h
index 8c6c7cc..6b1cdf9 100644
--- a/src/bin/extra_private.h
+++ b/src/bin/extra_private.h
@@ -27,6 +27,7 @@ typedef struct {
 } Extra_Ui_Small_Preview_Accessor;
 
 Evas_Object* extra_ui_small_preview_new(Extra_Ui_Small_Preview_Accessor acc, 
Evas_Object *par, void *data);
+void extra_ui_details_window_show(Evas_Object *content);
 void extra_ui_fullscreen_preview(char *path);
 void extra_ui_show_popup_toolbar(Evas_Object *content);
 void gengrid_reapply_state(Evas_Object *grid);
diff --git a/src/bin/extra_theme_selector.c b/src/bin/extra_theme_selector.c
index 82fa315..8967863 100644
--- a/src/bin/extra_theme_selector.c
+++ b/src/bin/extra_theme_selector.c
@@ -30,19 +30,6 @@ _fullscreen_picture(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSE
 }
 
 static void
-_detail_preview_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event_info)
-{
-   Evas_Event_Mouse_Up *up = event_info;
-   Eina_Rectangle box;
-
-   evas_object_geometry_get(data, &box.x, &box.y, &box.w, &box.h);
-
-   if (eina_rectangle_coords_inside(&box, up->output.x , up->output.y)) return;
-
-   evas_object_del(obj);
-}
-
-static void
 _install_done(void *data)
 {
    Extra_Theme *theme = data;
@@ -132,27 +119,22 @@ _action_button_create(Evas_Object *par, Extra_Theme 
*theme)
 }
 
 static void
-_popup_theme(Evas_Object *win, Extra_Theme *theme)
+_popup_theme(Extra_Theme *theme)
 {
-   Evas_Object *o, *inwin, *table;
+   Evas_Object *o, *table;
    Eina_Strbuf *buf;
 
-   inwin = o = elm_win_inwin_add(win);
+   table = o = elm_table_add(_ui.win);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
 
-   table = o = elm_table_add(inwin);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_object_content_set(inwin, o);
    evas_object_show(o);
 
-   evas_object_event_callback_add(inwin, EVAS_CALLBACK_MOUSE_UP, 
_detail_preview_del, o);
 
    buf = eina_strbuf_new();
    eina_strbuf_append_printf(buf, "<title>%s</title>", theme->obj.name);
 
-   o = elm_label_add(inwin);
+   o = elm_label_add(table);
    elm_object_text_set(o, eina_strbuf_release(buf));
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(o, 0.0, EVAS_HINT_FILL);
@@ -162,7 +144,7 @@ _popup_theme(Evas_Object *win, Extra_Theme *theme)
    o = _action_button_create(table, theme);
    elm_table_pack(table, o, 1, 0, 1, 1);
 
-   o = extra_ui_small_preview_new(acc, inwin, theme);
+   o = extra_ui_small_preview_new(acc, table, theme);
    evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, 
_fullscreen_picture, theme);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -172,7 +154,7 @@ _popup_theme(Evas_Object *win, Extra_Theme *theme)
    buf = eina_strbuf_new();
    eina_strbuf_append_printf(buf, "<link>%s</link>", theme->obj.author);
 
-   o = elm_entry_add(inwin);
+   o = elm_entry_add(table);
    elm_object_text_set(o, eina_strbuf_release(buf));
    elm_entry_editable_set(o, EINA_FALSE);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
@@ -180,7 +162,7 @@ _popup_theme(Evas_Object *win, Extra_Theme *theme)
    evas_object_show(o);
    elm_table_pack(table, o, 0, 2, 2, 1);
 
-   o = elm_entry_add(inwin);
+   o = elm_entry_add(table);
    elm_entry_editable_set(o, EINA_FALSE);
    elm_object_text_set(o, theme->description);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
@@ -189,9 +171,9 @@ _popup_theme(Evas_Object *win, Extra_Theme *theme)
    elm_table_pack(table, o, 0, 3, 2, 2);
 
    buf = eina_strbuf_new();
-   eina_strbuf_append_printf(buf, "<link>%s</link>", theme->obj.source, 
theme->obj.source);
+   eina_strbuf_append_printf(buf, "<link>%s</link>", theme->obj.source);
 
-   o = elm_entry_add(inwin);
+   o = elm_entry_add(table);
    elm_entry_editable_set(o, EINA_FALSE);
    elm_object_text_set(o, eina_strbuf_release(buf));
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
@@ -199,7 +181,8 @@ _popup_theme(Evas_Object *win, Extra_Theme *theme)
    evas_object_show(o);
    elm_table_pack(table, o, 0, 4, 2, 2);
 
-   elm_win_inwin_activate(inwin);
+   extra_ui_details_window_show(table);
+
 }
 
 static Evas_Object*
@@ -223,7 +206,7 @@ _text_basic_get(void *data, Evas_Object *obj EINA_UNUSED, 
const char *source EIN
 static void
 _show_details(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
-   _popup_theme(_ui.win, data);
+   _popup_theme(data);
    evas_object_del(_ui.popup_toolbar);
 }
 
diff --git a/src/bin/extra_util.c b/src/bin/extra_util.c
index 834ff47..32b47a7 100644
--- a/src/bin/extra_util.c
+++ b/src/bin/extra_util.c
@@ -355,3 +355,36 @@ extra_ui_show_popup_toolbar(Evas_Object *content)
 
     _ui.popup_toolbar = tooltip;
 }
+
+static void
+_detail_preview_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event_info)
+{
+   Evas_Object *content;
+   Evas_Event_Mouse_Up *up = event_info;
+   Eina_Rectangle box;
+
+   content = elm_object_content_get(obj);
+
+   evas_object_geometry_get(content, &box.x, &box.y, &box.w, &box.h);
+
+   if (eina_rectangle_coords_inside(&box, up->output.x , up->output.y)) return;
+
+   evas_object_del(obj);
+}
+
+void
+extra_ui_details_window_show(Evas_Object *content)
+{
+   Evas_Object *o;
+
+   o = elm_win_inwin_add(_ui.win);
+   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, 
_detail_preview_del, o);
+   evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, o);
+   elm_win_inwin_activate(o);
+
+   elm_object_content_set(o, content);
+
+   elm_object_focus_set(content, EINA_TRUE);
+}

-- 


Reply via email to