Add the ability to change directories. Also add some 3D mapping to the flow... Please tell me your thoughts? It works great with small images... but as current right now the flow is very slow with large images(even without the mapping)... Does anyone have a solution for this?

SVN revision: 56941
This commit is contained in:
titan 2011-02-10 23:41:02 +00:00 committed by titan
parent 1a52097901
commit b9432f30d6
5 changed files with 133 additions and 28 deletions

View File

@ -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";

View File

@ -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

View File

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

View File

@ -59,6 +59,12 @@ ephoto_window_add(void)
return ephoto->win;
}
void
ephoto_populate()
{
_ephoto_thumb_populate();
}
void
ephoto_title_set(const char *title)
{

View File

@ -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__)
{