forked from enlightenment/ephoto
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
This commit is contained in:
parent
ac899f9de4
commit
169813a679
|
@ -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 {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in New Issue