From 169813a679c3ce7a07fd8cf4c7a25234f6332a4e Mon Sep 17 00:00:00 2001 From: titan Date: Mon, 7 Mar 2011 22:02:12 +0000 Subject: [PATCH] Do not update if you are not willing to expect a different ephoto.. This is a very temporary test that won't work right for most. SVN revision: 57559 --- data/themes/default/ephoto.edc | 137 +++++++++++++++++++++++++++++++- src/bin/ephoto.h | 1 + src/bin/ephoto_flow_browser.c | 22 +++-- src/bin/ephoto_main.c | 19 +++++ src/bin/ephoto_single_browser.c | 35 ++++---- src/bin/ephoto_thumb_browser.c | 40 ++++++---- 6 files changed, 214 insertions(+), 40 deletions(-) diff --git a/data/themes/default/ephoto.edc b/data/themes/default/ephoto.edc index 79bcd91..a3018a2 100644 --- a/data/themes/default/ephoto.edc +++ b/data/themes/default/ephoto.edc @@ -8,6 +8,142 @@ collections { image: "thumb_shadow.png" COMP; } group + { + name: "ephoto/layout/simple"; + parts + { + part + { + name: "layout"; + type: RECT; + description + { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.offset: 0 0; + rel2.relative: 1.0 1.0; + rel2.offset: -1 -1; + color: 255 255 255 0; + } + } + part + { + name: "ephoto.content.swallow"; + type: SWALLOW; + description + { + rel1.to_y: "ephoto.toolbar.swallow"; + rel1.relative: 0.0 1.0; + rel1.offset: -1 1; + } + } + part + { + name: "ephoto.toolbar.swallow"; + type: SWALLOW; + description + { + state: "default" 0.0; + align: 0.5 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + rel2.offset: -1 47; + fixed: 1 1; + } + } + } + } + group + { + name: "ephoto/layout/simple/autohide"; + parts + { + part + { + name: "layout"; + type: RECT; + description + { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.offset: 0 0; + rel2.relative: 1.0 1.0; + rel2.offset: -1 -1; + color: 255 255 255 0; + } + } + part + { + name: "ephoto.content.swallow"; + type: SWALLOW; + description + { + rel1.to: "layout"; + rel2.to: "layout"; + } + } + part + { + name: "ephoto.toolbar.swallow"; + type: SWALLOW; + description + { + state: "default" 0.0; + align: 0.5 1.0; + rel1.relative: 0.0 1.0; + rel2.relative: 1.0 1.0; + fixed: 1 1; + visible: 0; + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + color: 0 0 0 255; + visible: 1; + } + } + part + { + name: "toolbar_event"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + align: 0.5 1.0; + rel1.to: "ephoto.toolbar.swallow"; + rel2.to: "ephoto.toolbar.swallow"; + color: 255 255 255 0; + } + } + } + programs + { + program + { + name: "go_visible"; + signal: "mouse,clicked,1"; + source: "toolbar_event"; + filter: "ephoto.toolbar.swallow" "default" 0.0; + action: STATE_SET "visible" 0.0; + transition: LINEAR 0.4; + target: "ephoto.toolbar.swallow"; + } + program + { + name: "go_hidden"; + signal: "hide"; + source: "toolbar_event"; + filter: "ephoto.toolbar.swallow" "visible" 0.0; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.4; + target: "ephoto.toolbar.swallow"; + } + } + } + group { name: "elm/layout/ephoto/orient"; parts @@ -527,4 +663,3 @@ collections { } } } - diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h index d0b83a2..25e18dd 100644 --- a/src/bin/ephoto.h +++ b/src/bin/ephoto.h @@ -38,6 +38,7 @@ void ephoto_thumb_size_set(Ephoto *ephoto, int size); Evas_Object *ephoto_thumb_add(Ephoto *ephoto, Evas_Object *parent, const char *path); void ephoto_thumb_path_set(Evas_Object *o, const char *path); void ephoto_directory_set(Ephoto *ephoto, const char *path); +void auto_hide_toolbar(void *data __UNUSED__, Evas_Object *obj, const char *emission __UNUSED__, const char *source __UNUSED__); Ephoto_Orient ephoto_file_orient_get(const char *path); diff --git a/src/bin/ephoto_flow_browser.c b/src/bin/ephoto_flow_browser.c index bb2afd8..c0066ee 100644 --- a/src/bin/ephoto_flow_browser.c +++ b/src/bin/ephoto_flow_browser.c @@ -336,19 +336,23 @@ ephoto_flow_browser_add(Ephoto *e, Evas_Object *parent) evas_object_event_callback_add (efb->main_layout, EVAS_CALLBACK_KEY_DOWN, _key_down, efb); evas_object_data_set(efb->main_layout, "flow_browser", efb); + edje_object_signal_callback_add + (efb->edje, "mouse,clicked,1", "toolbar_event", auto_hide_toolbar, efb->ephoto); - if (!elm_layout_theme_set - (efb->main_layout, "layout", "application", "toolbar-vbox")) + if (!elm_layout_file_set + (efb->main_layout, PACKAGE_DATA_DIR "/themes/default/ephoto.edj", + "ephoto/layout/simple/autohide")) { - ERR("could not load style 'toolbar-vbox' from theme"); + ERR("could not load style 'ephoto/layout/simple' from theme"); goto error; } - efb->toolbar = edje_object_part_external_object_get - (efb->edje, "elm.external.toolbar"); + efb->toolbar = elm_toolbar_add(efb->main_layout); elm_toolbar_homogenous_set(efb->toolbar, EINA_TRUE); elm_toolbar_mode_shrink_set(efb->toolbar, ELM_TOOLBAR_SHRINK_MENU); elm_toolbar_menu_parent_set(efb->toolbar, parent); + evas_object_size_hint_weight_set(efb->toolbar, 0.0, 0.0); + evas_object_size_hint_align_set(efb->toolbar, EVAS_HINT_FILL, 0.0); efb->action.go_back = _toolbar_item_add (efb, "edit-undo", "Back", 120, _flow_back); @@ -359,6 +363,10 @@ ephoto_flow_browser_add(Ephoto *e, Evas_Object *parent) efb->action.slideshow = _toolbar_item_add (efb, "media-playback-start", "Slideshow", 70, _show_slideshow); + elm_layout_content_set + (efb->main_layout, "ephoto.toolbar.swallow", efb->toolbar); + evas_object_show(efb->toolbar); + efb->layout = elm_layout_add(efb->main_layout); elm_layout_file_set (efb->layout, PACKAGE_DATA_DIR "/themes/default/ephoto.edj", "flow"); @@ -367,8 +375,8 @@ ephoto_flow_browser_add(Ephoto *e, Evas_Object *parent) evas_object_size_hint_fill_set (efb->layout, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(efb->layout); - elm_layout_box_append - (efb->main_layout, "elm.box.content", efb->layout); + elm_layout_content_set + (efb->main_layout, "ephoto.content.swallow", efb->layout); edje_object_signal_callback_add (elm_layout_edje_get(efb->layout), "done", "ephoto", _flow_done, efb); diff --git a/src/bin/ephoto_main.c b/src/bin/ephoto_main.c index 2856e94..1c42117 100644 --- a/src/bin/ephoto_main.c +++ b/src/bin/ephoto_main.c @@ -578,3 +578,22 @@ ephoto_entries_free(Ephoto *ephoto) Ephoto_Entry *entry; EINA_LIST_FREE(ephoto->entries, entry) ephoto_entry_free(entry); } + +Eina_Bool +_toolbar_hide(void *data) +{ + Evas_Object *edje = data; + + edje_object_signal_emit(edje, "hide", "toolbar_event"); + + return EINA_TRUE; +} + +void +auto_hide_toolbar(void *data __UNUSED__, Evas_Object *obj, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + Ecore_Timer *timer; + + timer = ecore_timer_add(5, _toolbar_hide, obj); +} + diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index 946aae9..b221ff7 100644 --- a/src/bin/ephoto_single_browser.c +++ b/src/bin/ephoto_single_browser.c @@ -9,7 +9,7 @@ * Rotating the scroller is not correct and was rejected by Raster and others. */ #define ROTATION 1 - +#define HORIZONTAL 0 #define ZOOM_STEP 0.2 typedef struct _Ephoto_Single_Browser Ephoto_Single_Browser; @@ -436,11 +436,11 @@ _ephoto_single_browser_recalc(Ephoto_Single_Browser *sb) const char *bname = ecore_file_file_get(sb->entry->path); sb->viewer = _viewer_add(sb->layout, sb->entry->path); elm_layout_content_set - (sb->layout, "elm.swallow.content", sb->viewer); + (sb->layout, "ephoto.content.swallow", sb->viewer); evas_object_show(sb->viewer); evas_object_event_callback_add (sb->viewer, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel, sb); - edje_object_part_text_set(sb->edje, "elm.text.title", bname); +// edje_object_part_text_set(sb->edje, "elm.text.title", bname); ephoto_title_set(sb->ephoto, bname);; } @@ -775,7 +775,7 @@ _ephoto_single_entry_create(void *data, int type __UNUSED__, void *event __UNUSE Evas_Object * ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent) { - Evas_Object *layout = elm_layout_add(parent), *button; + Evas_Object *layout = elm_layout_add(parent); Ephoto_Single_Browser *sb; EINA_SAFETY_ON_NULL_RETURN_VAL(layout, NULL); @@ -789,28 +789,23 @@ ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent) evas_object_event_callback_add (layout, EVAS_CALLBACK_KEY_DOWN, _key_down, sb); evas_object_data_set(layout, "single_browser", sb); + edje_object_signal_callback_add + (sb->edje, "mouse,clicked,1", "toolbar_event", auto_hide_toolbar, sb->ephoto); - if (!elm_layout_theme_set - (layout, "layout", "application", "toolbar-content-back")) + if (!elm_layout_file_set + (layout, PACKAGE_DATA_DIR "/themes/default/ephoto.edj", + "ephoto/layout/simple/autohide")) { - ERR("could not load style 'toolbar-content-back' from theme"); + ERR("could not load style 'ephoto/layout/simple/autohide' from theme"); goto error; } - - /*TODO This is hack. Better Idea?*/ - button = edje_object_part_external_object_get(sb->edje, "back"); - evas_object_del(button); - sb->toolbar = edje_object_part_external_object_get - (sb->edje, "elm.external.toolbar"); - if (!sb->toolbar) - { - ERR("no toolbar in layout!"); - goto error; - } + sb->toolbar = elm_toolbar_add(sb->layout); elm_toolbar_homogenous_set(sb->toolbar, EINA_FALSE); elm_toolbar_mode_shrink_set(sb->toolbar, ELM_TOOLBAR_SHRINK_MENU); elm_toolbar_menu_parent_set(sb->toolbar, parent); + evas_object_size_hint_weight_set(sb->toolbar, 0.0, 0.0); + evas_object_size_hint_align_set(sb->toolbar, EVAS_HINT_FILL, 0.0); sb->action.back = _toolbar_item_add (sb, "edit-undo", "Back", 200, _back); @@ -863,6 +858,10 @@ ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent) _ephoto_single_browser_toolbar_eval(sb); + elm_layout_content_set + (sb->layout, "ephoto.toolbar.swallow", sb->toolbar); + evas_object_show(sb->toolbar); + sb->handlers = eina_list_append (sb->handlers, ecore_event_handler_add (EPHOTO_EVENT_POPULATE_END, _ephoto_single_populate_end, sb)); diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c index 0dff9e5..076ffbd 100644 --- a/src/bin/ephoto_thumb_browser.c +++ b/src/bin/ephoto_thumb_browser.c @@ -14,6 +14,7 @@ struct _Ephoto_Thumb_Browser { Ephoto *ephoto; Evas_Object *layout; + Evas_Object *box; Evas_Object *edje; Evas_Object *fsel; Evas_Object *grid; @@ -444,24 +445,23 @@ ephoto_thumb_browser_add(Ephoto *ephoto, Evas_Object *parent) evas_object_event_callback_add (layout, EVAS_CALLBACK_KEY_DOWN, _key_down, tb); evas_object_data_set(layout, "thumb_browser", tb); + edje_object_signal_callback_add + (tb->edje, "mouse,clicked,1", "toolbar_event", auto_hide_toolbar, tb->ephoto); - if (!elm_layout_theme_set - (layout, "layout", "application", "toolbar-vbox")) + if (!elm_layout_file_set + (layout, PACKAGE_DATA_DIR "/themes/default/ephoto.edj", + "ephoto/layout/simple/autohide")) { - ERR("could not load style 'toolbar-vbox' from theme"); + ERR("could not load style 'ephoto/layout/simple' from theme"); goto error; } - tb->toolbar = edje_object_part_external_object_get - (tb->edje, "elm.external.toolbar"); - if (!tb->toolbar) - { - ERR("no toolbar in layout!"); - goto error; - } + tb->toolbar = elm_toolbar_add(tb->layout); elm_toolbar_homogenous_set(tb->toolbar, EINA_FALSE); elm_toolbar_mode_shrink_set(tb->toolbar, ELM_TOOLBAR_SHRINK_MENU); elm_toolbar_menu_parent_set(tb->toolbar, parent); + evas_object_size_hint_weight_set(tb->toolbar, 0.0, 0.0); + evas_object_size_hint_align_set(tb->toolbar, EVAS_HINT_FILL, 0.0); tb->action.flow = _toolbar_item_add (tb, "image", "Flow", 120, _flow); @@ -474,6 +474,17 @@ ephoto_thumb_browser_add(Ephoto *ephoto, Evas_Object *parent) tb->action.view_single = _toolbar_item_add (tb, "image", "Single", 50, _view_single); + elm_layout_content_set + (tb->layout, "ephoto.toolbar.swallow", tb->toolbar); + evas_object_show(tb->toolbar); + + tb->box = elm_box_add(tb->layout); + elm_box_horizontal_set(tb->box, EINA_FALSE); + elm_box_homogenous_set(tb->box, EINA_FALSE); + evas_object_size_hint_weight_set + (tb->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(tb->box); + tb->fsel = elm_fileselector_entry_add(layout); EINA_SAFETY_ON_NULL_GOTO(tb->fsel, error); evas_object_size_hint_weight_set(tb->fsel, EVAS_HINT_EXPAND, 0.0); @@ -484,9 +495,8 @@ ephoto_thumb_browser_add(Ephoto *ephoto, Evas_Object *parent) (tb->fsel, "file,chosen", _changed_dir, tb); evas_object_smart_callback_add (tb->fsel, "activated", _changed_dir_text, tb); - evas_object_show(tb->fsel); - elm_layout_box_append(layout, "elm.box.content", tb->fsel); + elm_box_pack_end(tb->box, tb->fsel); tb->overlay = elm_layout_add(layout); elm_layout_file_set @@ -500,8 +510,8 @@ ephoto_thumb_browser_add(Ephoto *ephoto, Evas_Object *parent) (elm_layout_edje_get(tb->overlay), "ephoto.signal.up", "ephoto", _ephoto_up_clicked, tb); evas_object_show(tb->overlay); - elm_layout_box_append(tb->layout, "elm.box.content", tb->overlay); - + elm_box_pack_end(tb->box, tb->overlay); + tb->grid = elm_gengrid_add(tb->overlay); EINA_SAFETY_ON_NULL_GOTO(tb->grid, error); elm_gengrid_align_set(tb->grid, 0.5, 0.5); @@ -517,6 +527,8 @@ ephoto_thumb_browser_add(Ephoto *ephoto, Evas_Object *parent) elm_layout_content_set (tb->overlay, "ephoto.swallow.content.thumb", tb->grid); + elm_layout_content_set(tb->layout, "ephoto.content.swallow", tb->box); + tb->handlers = eina_list_append (tb->handlers, ecore_event_handler_add (EPHOTO_EVENT_POPULATE_START, _ephoto_thumb_populate_start, tb));