forked from enlightenment/ephoto
Add a callback when a new directory is selected : "directory,changed".
SVN revision: 52193
This commit is contained in:
parent
ea18ee503b
commit
bd1ed51ead
|
@ -44,6 +44,7 @@ Evas_Object *ephoto_create_thumb_browser(Evas_Object *parent, const char *direct
|
|||
void ephoto_populate_thumbnails(Evas_Object *obj);
|
||||
/* smart callbacks called:
|
||||
* "selected" - an item in the thumb browser is selected. The selected file is passed as event_info argument.
|
||||
* "directory,changed" - the user selected a new directory. The selected directory is passed as event_info argument.
|
||||
*/
|
||||
|
||||
typedef enum _Ephoto_State Ephoto_State;
|
||||
|
@ -68,6 +69,7 @@ struct _Ephoto
|
|||
Evas_Object *thumb_browser;
|
||||
Eina_List *images;
|
||||
Ephoto_State state;
|
||||
const char *cur_directory;
|
||||
};
|
||||
typedef struct _Ephoto Ephoto;
|
||||
|
||||
|
|
|
@ -7,17 +7,21 @@ Ephoto *em;
|
|||
static void _ephoto_delete_main_window(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _ephoto_flow_browser_delete_cb(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _ephoto_thumb_browser_selected_cb(void *data, Evas_Object *obj, void *event_info);
|
||||
|
||||
static void _ephoto_thumb_browser_directory_changed_cb(void *data, Evas_Object *obj, void *event_info);
|
||||
/* Objects Callbacks */
|
||||
static void
|
||||
_ephoto_flow_browser_delete_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
em->thumb_browser = ephoto_create_thumb_browser(em->layout, NULL/*ecore_file_dir_get(ef->cur_image)*/);
|
||||
em->thumb_browser = ephoto_create_thumb_browser(em->layout, em->cur_directory);
|
||||
elm_layout_content_set(em->layout, "ephoto.content.swallow", em->thumb_browser);
|
||||
evas_object_smart_callback_add(em->thumb_browser,
|
||||
"selected",
|
||||
_ephoto_thumb_browser_selected_cb,
|
||||
NULL);
|
||||
evas_object_smart_callback_add(em->thumb_browser,
|
||||
"directory,changed",
|
||||
_ephoto_thumb_browser_directory_changed_cb,
|
||||
NULL);
|
||||
|
||||
em->state = EPHOTO_STATE_THUMB;
|
||||
}
|
||||
|
@ -37,6 +41,16 @@ _ephoto_thumb_browser_selected_cb(void *data, Evas_Object *obj, void *event_info
|
|||
em->state = EPHOTO_STATE_FLOW;
|
||||
}
|
||||
|
||||
static void
|
||||
_ephoto_thumb_browser_directory_changed_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
const char *dir = event_info;
|
||||
|
||||
eina_stringshare_del(em->cur_directory);
|
||||
em->cur_directory = eina_stringshare_add(dir);
|
||||
printf("Directory changed : %s\n", em->cur_directory);
|
||||
}
|
||||
|
||||
/*Create the main ephoto window*/
|
||||
void
|
||||
ephoto_create_main_window(const char *directory, const char *image)
|
||||
|
@ -77,6 +91,7 @@ ephoto_create_main_window(const char *directory, const char *image)
|
|||
{
|
||||
em->flow_browser = ephoto_create_flow_browser(em->layout);
|
||||
ephoto_flow_browser_image_set(em->flow_browser, image);
|
||||
em->cur_directory = eina_stringshare_add(ecore_file_dir_get(image));
|
||||
eina_stringshare_del(image);
|
||||
elm_layout_content_set(em->layout, "ephoto.content.swallow", em->flow_browser);
|
||||
evas_object_smart_callback_add(em->flow_browser,
|
||||
|
@ -88,12 +103,17 @@ ephoto_create_main_window(const char *directory, const char *image)
|
|||
else
|
||||
{
|
||||
em->thumb_browser = ephoto_create_thumb_browser(em->layout, directory);
|
||||
em->cur_directory = eina_stringshare_add(directory);
|
||||
evas_object_show(em->thumb_browser);
|
||||
elm_layout_content_set(em->layout, "ephoto.content.swallow", em->thumb_browser);
|
||||
evas_object_smart_callback_add(em->thumb_browser,
|
||||
"selected",
|
||||
_ephoto_thumb_browser_selected_cb,
|
||||
NULL);
|
||||
evas_object_smart_callback_add(em->thumb_browser,
|
||||
"directory,changed",
|
||||
_ephoto_thumb_browser_directory_changed_cb,
|
||||
NULL);
|
||||
em->state = EPHOTO_STATE_THUMB;
|
||||
}
|
||||
|
||||
|
|
|
@ -455,6 +455,8 @@ _ephoto_directory_chosen(void *data, Evas_Object *obj, void *event_info)
|
|||
elm_win_title_set(em->win, "Ephoto");
|
||||
}
|
||||
}
|
||||
printf("before callback\n");
|
||||
evas_object_smart_callback_call(tb->layout, "directory,changed", tb->current_directory);
|
||||
|
||||
evas_object_del(tb->fsel_win);
|
||||
elm_toolbar_item_unselect_all(tb->toolbar);
|
||||
|
|
Loading…
Reference in New Issue