diff --git a/data/themes/default/ephoto.edc b/data/themes/default/ephoto.edc index 5372995..049675a 100644 --- a/data/themes/default/ephoto.edc +++ b/data/themes/default/ephoto.edc @@ -28,29 +28,40 @@ collections { { state: default 0.0; visible: 0; - rel1.relative: 0.0 0.4; + map.on: 1; + rel1.relative: 0.0 0.2; rel1.offset: 0 0; - rel2.relative: 0.0 0.6; + rel2.relative: 0.0 0.8; rel2.offset: 0 0; - color: 255 255 255 255; + color: 255 255 255 255; } description { state: right 0.0; visible: 1; - rel1.relative: 0.0 0.3; + rel1.relative: 0.0 0.2; rel1.offset: 0 0; - rel2.relative: 0.1 0.7; + rel2.relative: 0.2 0.8; rel2.offset: 0 0; + map { + on: 1; + perspective_on: 1; + rotation.y: 75.0; + } + perspective { + zplane: 0; + focal: 1000; + } color: 255 255 255 255; } description { state: left 0.0; visible: 0; - rel1.relative: 1.0 0.4; + map.on: 1; + rel1.relative: 1.0 0.2; rel1.offset: 0 0; - rel2.relative: 1.0 0.6; + rel2.relative: 1.0 0.8; rel2.offset: 0 0; color: 255 255 255 255; } @@ -64,15 +75,25 @@ collections { { state: default 0.0; visible: 1; - rel1.relative: 0.0 0.3; + rel1.relative: 0.0 0.2; rel1.offset: 0 0; - rel2.relative: 0.1 0.7; + rel2.relative: 0.2 0.8; rel2.offset: 0 0; + map { + on: 1; + perspective_on: 1; + rotation.y: 75.0; + } + perspective { + zplane: 0; + focal: 1000; + } color: 255 255 255 255; } description { state: right 0.0; + map.on: 1; rel1.relative: 0.2 0.2; rel1.offset: 0 0; rel2.relative: 0.8 0.8; @@ -82,15 +103,17 @@ collections { description { state: left 0.0; - rel1.relative: 0.0 0.4; + map.on: 1; + rel1.relative: 0.0 0.2; rel1.offset: 0 0; - rel2.relative: 0.0 0.6; + rel2.relative: 0.0 0.8; rel2.offset: 0 0; color: 255 255 255 255; } description { state: full 0.0; + map.on: 1; inherit: default 0.0; visible: 0; color: 255 255 255 0; @@ -105,24 +128,35 @@ collections { { state: default 0.0; visible: 1; - rel1.relative: 0.9 0.3; + rel1.relative: 0.8 0.2; rel1.offset: 0 0; - rel2.relative: 1.0 0.7; + rel2.relative: 1.0 0.8; rel2.offset: 0 0; + map { + on: 1; + perspective_on: 1; + rotation.y: -75.0; + } + perspective { + zplane: 0; + focal: 1000; + } color: 255 255 255 255; } description { state: right 0.0; - rel1.relative: 1.0 0.4; + map.on: 1; + rel1.relative: 1.0 0.2; rel1.offset: 0 0; - rel2.relative: 1.0 0.6; + rel2.relative: 1.0 0.8; rel2.offset: 0 0; color: 255 255 255 255; } description { state: left 0.0; + map.on: 1; rel1.relative: 0.2 0.2; rel1.offset: 0 0; rel2.relative: 0.8 0.8; @@ -132,6 +166,7 @@ collections { description { state: full 0.0; + map.on: 1; inherit: default 0.0; visible: 0; color: 255 255 255 0; @@ -145,6 +180,7 @@ collections { description { state: default 0.0; + map.on :1; rel1.relative: 0.2 0.2; rel1.offset: 0 0; rel2.relative: 0.8 0.8; @@ -154,24 +190,43 @@ collections { description { state: right 0.0; - rel1.relative: 0.9 0.3; + rel1.relative: 0.8 0.2; rel1.offset: 0 0; - rel2.relative: 1.0 0.7; + rel2.relative: 1.0 0.8; rel2.offset: 0 0; + map { + on: 1; + perspective_on: 1; + rotation.y: -75.0; + } + perspective { + zplane: 0; + focal: 1000; + } color: 255 255 255 255; } description { state: left 0.0; - rel1.relative: 0.0 0.3; + rel1.relative: 0.0 0.2; rel1.offset: 0 0; - rel2.relative: 0.1 0.7; + rel2.relative: 0.2 0.8; rel2.offset: 0 0; + map { + on: 1; + perspective_on: 1; + rotation.y: 75.0; + } + perspective { + zplane: 0; + focal: 1000; + } color: 255 255 255 255; } description { state: full 0.0; + map.on: 1; rel1.relative: 0.0 0.0; rel1.offset: 0 0; rel2.relative: 1.0 1.0; @@ -187,9 +242,10 @@ collections { { state: default 0.0; visible: 0; - rel1.relative: 1.0 0.4; + map.on: 1; + rel1.relative: 1.0 0.2; rel1.offset: 0 0; - rel2.relative: 1.0 0.6; + rel2.relative: 1.0 0.8; rel2.offset: 0 0; color: 255 255 255 255; } @@ -197,9 +253,10 @@ collections { { state: right 0.0; visible: 0; - rel1.relative: 0.0 0.4; + map.on: 1; + rel1.relative: 0.0 0.2; rel1.offset: 0 0; - rel2.relative: 0.0 0.6; + rel2.relative: 0.0 0.8; rel2.offset: 0 0; color: 255 255 255 255; } @@ -207,10 +264,19 @@ collections { { state: left 0.0; visible: 1; - rel1.relative: 0.9 0.3; + rel1.relative: 0.8 0.2; rel1.offset: 0 0; - rel2.relative: 1.0 0.7; + rel2.relative: 1.0 0.8; rel2.offset: 0 0; + map { + on: 1; + perspective_on: 1; + rotation.y: -75.0; + } + perspective { + zplane: 0; + focal: 1000; + } color: 255 255 255 255; } } @@ -237,7 +303,7 @@ collections { signal: "left"; source: "ephoto"; action: STATE_SET left 0.0; - transition: LINEAR 0.4; + transition: LINEAR 0.4; target: "offscreen_left"; target: "left"; target: "center"; @@ -251,7 +317,7 @@ collections { signal: "full"; source: "ephoto"; action: STATE_SET full 0.0; - transition: LINEAR 0.4; + transition: LINEAR 0.2; target: "left"; target: "right"; target: "center"; @@ -262,7 +328,7 @@ collections { signal: "full_reset"; source: "ephoto"; action: STATE_SET default 0.0; - transition: LINEAR 0.4; + transition: LINEAR 0.2; target: "left"; target: "right"; target: "center"; diff --git a/data/themes/default/images/Makefile.am b/data/themes/default/images/Makefile.am index 16444e3..bf6682b 100644 --- a/data/themes/default/images/Makefile.am +++ b/data/themes/default/images/Makefile.am @@ -2,6 +2,7 @@ MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = \ thumb_shadow.png \ +black.png \ bt_sm_base1.png \ bt_sm_shine.png \ bt_sm_hilight.png \ @@ -11,5 +12,6 @@ up-512.png \ directory-128.png \ directory-256.png \ directory-512.png \ +shadow.png \ raise.png diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h index 60aefb7..5cf7395 100644 --- a/src/bin/ephoto.h +++ b/src/bin/ephoto.h @@ -28,6 +28,7 @@ typedef enum _Ephoto_State Ephoto_State; /*Main Functions*/ Evas_Object *ephoto_window_add(void); +void ephoto_populate(void); void ephoto_title_set(const char *title); void ephoto_thumb_size_set(int size); void ephoto_directory_set(const char *path); diff --git a/src/bin/ephoto_main.c b/src/bin/ephoto_main.c index e4af686..5ac01df 100644 --- a/src/bin/ephoto_main.c +++ b/src/bin/ephoto_main.c @@ -59,6 +59,12 @@ ephoto_window_add(void) return ephoto->win; } +void +ephoto_populate() +{ + _ephoto_thumb_populate(); +} + void ephoto_title_set(const char *title) { diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c index aed648a..f1314b8 100644 --- a/src/bin/ephoto_thumb_browser.c +++ b/src/bin/ephoto_thumb_browser.c @@ -8,6 +8,7 @@ static Evas_Object *_ephoto_thumbnail_icon_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__); static char *_ephoto_thumbnail_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__); static void _ephoto_thumbnail_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__); +static void _ephoto_change_dir(void *data __UNUSED__, Evas_Object *o __UNUSED__, void *event_info); static void _ephoto_zoom_in(void *data __UNUSED__, Evas_Object *o __UNUSED__, void *event_info __UNUSED__); static void _ephoto_zoom_out(void *data __UNUSED__, Evas_Object *o __UNUSED__, void *event_info __UNUSED__); static void _ephoto_show_flow(void *data __UNUSED__, Evas_Object *o __UNUSED__, void *event_info __UNUSED__); @@ -26,6 +27,7 @@ typedef struct _Ephoto_Thumb_Browser Ephoto_Thumb_Browser; struct _Ephoto_Thumb_Browser { Evas_Object *box; + Evas_Object *dir_entry; Evas_Object *grid; Evas_Object *toolbar; int thumb_size; @@ -77,6 +79,19 @@ ephoto_thumb_browser_add(void) elm_box_pack_end(etb->box, etb->toolbar); evas_object_show(etb->toolbar); + etb->dir_entry = elm_fileselector_entry_add(etb->box); + elm_fileselector_entry_path_set(etb->dir_entry, ephoto->directory); + elm_fileselector_entry_button_label_set(etb->dir_entry, "Choose"); + elm_fileselector_entry_folder_only_set(etb->dir_entry, EINA_TRUE); + elm_fileselector_entry_is_save_set(etb->dir_entry, EINA_FALSE); + elm_fileselector_entry_inwin_mode_set(etb->dir_entry, EINA_TRUE); + evas_object_size_hint_weight_set(etb->dir_entry, 0.0, 0.0); + evas_object_size_hint_align_set(etb->dir_entry, EVAS_HINT_FILL, 0.0); + evas_object_smart_callback_add + (etb->dir_entry, "file,chosen", _ephoto_change_dir, NULL); + elm_box_pack_end(etb->box, etb->dir_entry); + evas_object_show(etb->dir_entry); + etb->grid = elm_gengrid_add(etb->box); elm_gengrid_align_set(etb->grid, 0.5, 0.5); elm_gengrid_bounce_set(etb->grid, EINA_FALSE, EINA_TRUE); @@ -152,6 +167,21 @@ _ephoto_thumbnail_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__) } +static void +_ephoto_change_dir(void *data __UNUSED__, Evas_Object *o __UNUSED__, void *event_info) +{ + const char *path = event_info; + + if (!path) return; + + elm_gengrid_clear(etb->grid); + ephoto->images = eina_list_free(ephoto->images); + ephoto->current_index = NULL; + eina_stringshare_del(ephoto->directory); + ephoto->directory = eina_stringshare_add(path); + ephoto_populate(); +} + static void _ephoto_zoom_in(void *data __UNUSED__, Evas_Object *o __UNUSED__, void *event_info __UNUSED__) {