Ephoto: Ephoto goes edjey! Give ephoto an edje style overlayed interface.
For screenshots and video, you can visit this post: http://smhouston.us/ephoto-gets-edjey/
This commit is contained in:
parent
31ff22d7a3
commit
86b827e5fa
|
@ -1,7 +1,7 @@
|
|||
AUTOMAKE_OPTIONS = subdir-objects
|
||||
MAINTAINERCLEANFILES = Makefile.in Makefile
|
||||
|
||||
EXTRA_DIST = ephoto.png
|
||||
EXTRA_DIST = ephoto.png grid.png single.png
|
||||
|
||||
filesdir = $(datadir)/$(PACKAGE)/images
|
||||
files_DATA = ephoto.png
|
||||
files_DATA = ephoto.png grid.png single.png
|
||||
|
|
|
@ -5,19 +5,22 @@ EDJE_CC = @edje_cc@
|
|||
EDJE_FLAGS = -id $(top_srcdir)/data/themes
|
||||
|
||||
filesdir = $(datadir)/$(PACKAGE)/themes
|
||||
files_DATA = crop.edj
|
||||
files_DATA = ephoto.edj
|
||||
|
||||
EXTRA_DIST = crop.edc \
|
||||
sel_border.png \
|
||||
sel_corner1.png \
|
||||
sel_corner3.png \
|
||||
sel_corner5.png \
|
||||
sel_corner7.png
|
||||
EXTRA_DIST = ephoto.edc \
|
||||
images/sel_border.png \
|
||||
images/sel_corner1.png \
|
||||
images/sel_corner3.png \
|
||||
images/sel_corner5.png \
|
||||
images/sel_corner7.png \
|
||||
images/shadow_circle_horiz.png \
|
||||
images/shadow_circle_vert.png \
|
||||
images/tile.png
|
||||
|
||||
crop.edj: Makefile $(EXTRA_DIST)
|
||||
ephoto.edj: Makefile $(EXTRA_DIST)
|
||||
$(EDJE_CC) $(EDJE_FLAGS) \
|
||||
$(top_srcdir)/data/themes/crop.edc \
|
||||
$(top_builddir)/data/themes/crop.edj
|
||||
$(top_srcdir)/data/themes/ephoto.edc \
|
||||
$(top_builddir)/data/themes/ephoto.edj
|
||||
|
||||
clean-local:
|
||||
rm -f *.edj
|
||||
|
|
|
@ -24,6 +24,7 @@ ephoto_SOURCES = \
|
|||
ephoto_color.c \
|
||||
ephoto_config.c \
|
||||
ephoto_cropper.c \
|
||||
ephoto_directory_browser.c \
|
||||
ephoto_editor.c \
|
||||
ephoto_file.c \
|
||||
ephoto_filters.c \
|
||||
|
|
|
@ -11,7 +11,7 @@ elm_main(int argc, char **argv)
|
|||
elm_need_efreet();
|
||||
elm_language_set("");
|
||||
elm_app_compile_data_dir_set(PACKAGE_DATA_DIR);
|
||||
elm_app_info_set(elm_main, "ephoto", "themes/crop.edj");
|
||||
elm_app_info_set(elm_main, "ephoto", "themes/ephoto.edj");
|
||||
#if HAVE_GETTEXT && ENABLE_NLS
|
||||
elm_app_compile_locale_set(LOCALEDIR);
|
||||
bindtextdomain(PACKAGE, elm_app_locale_dir_get());
|
||||
|
|
|
@ -59,6 +59,7 @@ Evas_Object *ephoto_thumb_add(Ephoto *ephoto, Evas_Object *parent,
|
|||
void ephoto_thumb_path_set(Evas_Object *obj, const char *path);
|
||||
void ephoto_directory_set(Ephoto *ephoto, const char *path,
|
||||
Elm_Object_Item *expanded, Eina_Bool dirs_only, Eina_Bool thumbs_only);
|
||||
void ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle);
|
||||
|
||||
/*config panel functions*/
|
||||
Eina_Bool ephoto_config_init(Ephoto *em);
|
||||
|
@ -68,6 +69,7 @@ void ephoto_config_main(Ephoto *em);
|
|||
|
||||
/*single image functions*/
|
||||
Evas_Object *ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent);
|
||||
void ephoto_single_browser_show_controls(Ephoto *ephoto);
|
||||
void ephoto_single_browser_entries_set(Evas_Object *obj, Eina_List *entries);
|
||||
void ephoto_single_browser_entry_set(Evas_Object *obj, Ephoto_Entry *entry);
|
||||
void ephoto_single_browser_focus_set(Ephoto *ephoto);
|
||||
|
@ -80,6 +82,8 @@ void ephoto_single_browser_image_data_update(Evas_Object *main,
|
|||
void ephoto_single_browser_image_data_done(Evas_Object *main,
|
||||
unsigned int *image_data, Evas_Coord w, Evas_Coord h);
|
||||
void ephoto_single_browser_cancel_editing(Evas_Object *main);
|
||||
void ephoto_single_browser_slideshow(Evas_Object *obj);
|
||||
void ephoto_single_browser_adjust_offsets(Ephoto *ephoto);
|
||||
/* smart callbacks called: "back" - the user wants to go back to the previous
|
||||
* screen. */
|
||||
|
||||
|
@ -87,19 +91,27 @@ void ephoto_single_browser_cancel_editing(Evas_Object *main);
|
|||
Evas_Object *ephoto_slideshow_add(Ephoto *ephoto, Evas_Object *parent);
|
||||
void ephoto_slideshow_entries_set(Evas_Object *obj, Eina_List *entries);
|
||||
void ephoto_slideshow_entry_set(Evas_Object *obj, Ephoto_Entry *entry);
|
||||
void ephoto_slideshow_show_controls(Ephoto *ephoto);
|
||||
/* smart callbacks called: "back" - the user wants to go back to the previous
|
||||
* screen. */
|
||||
|
||||
/*thumbnail browser functions*/
|
||||
Evas_Object *ephoto_thumb_browser_add(Ephoto *ephoto, Evas_Object *parent);
|
||||
void ephoto_thumb_browser_fsel_clear(Ephoto *ephoto);
|
||||
void ephoto_thumb_browser_top_dir_set(Ephoto *ephoto, const char *dir);
|
||||
void ephoto_thumb_browser_show_controls(Ephoto *ephoto);
|
||||
void ephoto_thumb_browser_insert(Ephoto *ephoto, Ephoto_Entry *entry);
|
||||
void ephoto_thumb_browser_remove(Ephoto *ephoto, Ephoto_Entry *entry);
|
||||
void ephoto_thumb_browser_update(Ephoto *ephoto, Ephoto_Entry *entry);
|
||||
void ephoto_thumb_browser_update_info_label(Ephoto *ephoto);
|
||||
void ephoto_thumb_browser_slideshow(Evas_Object *obj);
|
||||
void ephoto_thumb_browser_paste(Ephoto *ephoto, Elm_Object_Item *item);
|
||||
/* smart callbacks called: "selected" - an item in the thumb browser is
|
||||
* selected. The selected Ephoto_Entry is passed as event_info argument. */
|
||||
|
||||
/*directory browser functions*/
|
||||
Evas_Object *ephoto_directory_browser_add(Ephoto *ephoto, Evas_Object *parent);
|
||||
void ephoto_directory_browser_initialize_structure(Ephoto *ephoto);
|
||||
void ephoto_directory_browser_top_dir_set(Ephoto *ephoto, const char *dir);
|
||||
|
||||
/*thumbnailing functions taken from enlightenment*/
|
||||
int e_thumb_init(void);
|
||||
int e_thumb_shutdown(void);
|
||||
|
@ -116,18 +128,18 @@ int e_ipc_init(void);
|
|||
int e_ipc_shutdown(void);
|
||||
|
||||
/*editing functions*/
|
||||
Evas_Object *ephoto_editor_add(Evas_Object *parent, const char *title,
|
||||
Evas_Object *ephoto_editor_add(Ephoto *ephoto, const char *title,
|
||||
const char *data_name, void *data);
|
||||
void ephoto_editor_del(Evas_Object *obj);
|
||||
void ephoto_cropper_add(Evas_Object *main, Evas_Object *parent,
|
||||
void ephoto_cropper_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
|
||||
Evas_Object *image_parent, Evas_Object *image);
|
||||
void ephoto_bcg_add(Evas_Object *main, Evas_Object *parent,
|
||||
void ephoto_bcg_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
|
||||
Evas_Object *image);
|
||||
void ephoto_hsv_add(Evas_Object *main, Evas_Object *parent,
|
||||
void ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
|
||||
Evas_Object *image);
|
||||
void ephoto_color_add(Evas_Object *main, Evas_Object *parent,
|
||||
void ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
|
||||
Evas_Object *image);
|
||||
void ephoto_red_eye_add(Evas_Object *main, Evas_Object *parent,
|
||||
void ephoto_red_eye_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
|
||||
Evas_Object *image);
|
||||
void ephoto_filter_blur(Evas_Object *main, Evas_Object *image);
|
||||
void ephoto_filter_sharpen(Evas_Object *main, Evas_Object *image);
|
||||
|
@ -196,14 +208,12 @@ struct _Ephoto_Config
|
|||
int window_width;
|
||||
int window_height;
|
||||
Eina_Bool fsel_hide;
|
||||
Eina_Bool tool_hide;
|
||||
double lpane_size;
|
||||
const char *open;
|
||||
Eina_Bool prompts;
|
||||
Eina_Bool drop;
|
||||
Evas_Object *slide_time;
|
||||
Evas_Object *slide_trans;
|
||||
Evas_Object *hide_toolbar;
|
||||
Evas_Object *open_dir;
|
||||
Evas_Object *open_dir_custom;
|
||||
Evas_Object *show_prompts;
|
||||
|
@ -213,12 +223,18 @@ struct _Ephoto_Config
|
|||
struct _Ephoto
|
||||
{
|
||||
Evas_Object *win;
|
||||
Evas_Object *panel;
|
||||
Evas_Object *layout;
|
||||
Evas_Object *pager;
|
||||
Evas_Object *statusbar;
|
||||
Evas_Object *controls_left;
|
||||
Evas_Object *controls_right;
|
||||
Evas_Object *infolabel;
|
||||
|
||||
Evas_Object *thumb_browser;
|
||||
Evas_Object *single_browser;
|
||||
Evas_Object *slideshow;
|
||||
Evas_Object *dir_browser;
|
||||
Evas_Object *right_menu;
|
||||
Elm_Object_Item *tb;
|
||||
Elm_Object_Item *sb;
|
||||
Elm_Object_Item *sl;
|
||||
|
@ -228,10 +244,18 @@ struct _Ephoto
|
|||
Eina_List *searchentries;
|
||||
Eina_List *thumbs;
|
||||
|
||||
Eina_Bool blocking;
|
||||
Eina_Bool menu_blocking;
|
||||
Eina_Bool hover_blocking;
|
||||
Eina_Bool right_blocking;
|
||||
Eina_Bool folders_toggle;
|
||||
Eina_Bool editor_blocking;
|
||||
|
||||
Ecore_File_Monitor *monitor;
|
||||
Ecore_Idler *file_idler;
|
||||
Eina_List *file_idler_pos;
|
||||
Eina_List *upload_handlers;
|
||||
Ecore_Timer *overlay_timer;
|
||||
Ecore_Con_Url *url_up;
|
||||
char *url_ret;
|
||||
char *upload_error;
|
||||
|
@ -256,7 +280,6 @@ struct _Ephoto
|
|||
Ephoto_State state, prev_state;
|
||||
|
||||
Ephoto_Config *config;
|
||||
Ephoto_Entry *thumb_entry;
|
||||
};
|
||||
|
||||
struct _Ephoto_Entry
|
||||
|
|
|
@ -317,7 +317,7 @@ _editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
void
|
||||
ephoto_bcg_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
ephoto_bcg_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
{
|
||||
Evas_Object *slider;
|
||||
Ephoto_BCG *ebcg;
|
||||
|
@ -343,7 +343,7 @@ ephoto_bcg_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
|||
memcpy(ebcg->original_im_data, im_data,
|
||||
sizeof(unsigned int) * ebcg->w * ebcg->h);
|
||||
|
||||
ebcg->editor = ephoto_editor_add(parent, _("Brightness/Contrast/Gamma"),
|
||||
ebcg->editor = ephoto_editor_add(ephoto, _("Brightness/Contrast/Gamma"),
|
||||
"ebcg", ebcg);
|
||||
evas_object_event_callback_add(ebcg->editor, EVAS_CALLBACK_DEL, _editor_del,
|
||||
ebcg);
|
||||
|
|
|
@ -302,7 +302,7 @@ _editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
void
|
||||
ephoto_color_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
{
|
||||
Evas_Object *slider;
|
||||
Ephoto_Color *eco;
|
||||
|
@ -328,7 +328,7 @@ ephoto_color_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
|||
memcpy(eco->original_im_data, im_data,
|
||||
sizeof(unsigned int) * eco->w * eco->h);
|
||||
|
||||
eco->editor = ephoto_editor_add(parent, _("Adjust Color Levels"),
|
||||
eco->editor = ephoto_editor_add(ephoto, _("Adjust Color Levels"),
|
||||
"eco", eco);
|
||||
evas_object_event_callback_add(eco->editor, EVAS_CALLBACK_DEL, _editor_del,
|
||||
eco);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "ephoto.h"
|
||||
|
||||
#define CONFIG_VERSION 15
|
||||
#define CONFIG_VERSION 16
|
||||
|
||||
static int _ephoto_config_load(Ephoto *ephoto);
|
||||
static Eina_Bool _ephoto_on_config_save(void *data);
|
||||
|
@ -37,8 +37,6 @@ _config_save_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
|
||||
if (ecore_file_is_dir(path) || !strcmp(path, "Last"))
|
||||
eina_stringshare_replace(&ephoto->config->open, path);
|
||||
ephoto->config->tool_hide =
|
||||
elm_check_state_get(ephoto->config->hide_toolbar);
|
||||
ephoto->config->prompts = elm_check_state_get(ephoto->config->show_prompts);
|
||||
ephoto->config->drop = elm_check_state_get(ephoto->config->move_drop);
|
||||
if (elm_spinner_value_get(ephoto->config->slide_time) > 0)
|
||||
|
@ -83,14 +81,6 @@ _config_general(Ephoto *ephoto, Evas_Object *parent)
|
|||
elm_object_content_set(frame, table);
|
||||
evas_object_show(table);
|
||||
|
||||
check = elm_check_add(table);
|
||||
elm_object_text_set(check, _("Hide Toolbar On Fullscreen"));
|
||||
evas_object_size_hint_align_set(check, 0.0, EVAS_HINT_FILL);
|
||||
elm_check_state_set(check, ephoto->config->tool_hide);
|
||||
elm_table_pack(table, check, 0, 0, 1, 1);
|
||||
evas_object_show(check);
|
||||
ephoto->config->hide_toolbar = check;
|
||||
|
||||
check = elm_check_add(table);
|
||||
elm_object_text_set(check, _("Prompt Before Changing The Filesystem"));
|
||||
evas_object_size_hint_align_set(check, 0.0, EVAS_HINT_FILL);
|
||||
|
@ -331,9 +321,9 @@ _config_bindings(Evas_Object *parent)
|
|||
_("<b><hilight>General Bindings</hilight></b><br/>"
|
||||
"<b>F1:</b> Settings Panel<br/>"
|
||||
"<b>F5:</b> Start Slideshow<br/>"
|
||||
"<b>F11:</b> Toggle Fullscreen<br/><br/>"
|
||||
"<b>F11:</b> Toggle Fullscreen<br/>"
|
||||
"<b>Ctrl+Shift+f:</b> Toggle File Selector<br/><br/>"
|
||||
"<b><hilight>Thumbnail Browser Bindings</hilight></b><br/>"
|
||||
"<b>Ctrl+Shift+f:</b> Toggle File Selector<br/>"
|
||||
"<b>Ctrl++:</b> Zoom In<br/>"
|
||||
"<b>Ctrl+-:</b> Zoom Out<br/>"
|
||||
"<b>Ctrl+Tab:</b> View Image<br/>"
|
||||
|
@ -711,7 +701,6 @@ ephoto_config_init(Ephoto *ephoto)
|
|||
C_VAL(D, T, window_width, EET_T_INT);
|
||||
C_VAL(D, T, window_height, EET_T_INT);
|
||||
C_VAL(D, T, fsel_hide, EET_T_INT);
|
||||
C_VAL(D, T, tool_hide, EET_T_INT);
|
||||
C_VAL(D, T, lpane_size, EET_T_DOUBLE);
|
||||
C_VAL(D, T, open, EET_T_STRING);
|
||||
C_VAL(D, T, prompts, EET_T_INT);
|
||||
|
@ -726,7 +715,6 @@ ephoto_config_init(Ephoto *ephoto)
|
|||
ephoto->config->window_width = 900;
|
||||
ephoto->config->window_height = 600;
|
||||
ephoto->config->fsel_hide = 0;
|
||||
ephoto->config->tool_hide = 0;
|
||||
ephoto->config->lpane_size = .15;
|
||||
ephoto->config->open = eina_stringshare_add(getenv("HOME"));
|
||||
ephoto->config->prompts = 1;
|
||||
|
|
|
@ -627,7 +627,7 @@ _editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
void
|
||||
ephoto_cropper_add(Evas_Object *main, Evas_Object *parent,
|
||||
ephoto_cropper_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
|
||||
Evas_Object *image_parent, Evas_Object *image)
|
||||
{
|
||||
Ephoto_Cropper *ec;
|
||||
|
@ -656,7 +656,7 @@ ephoto_cropper_add(Evas_Object *main, Evas_Object *parent,
|
|||
evas_object_show(ec->box);
|
||||
|
||||
ec->layout = elm_layout_add(ec->box);
|
||||
elm_layout_file_set(ec->layout, PACKAGE_DATA_DIR "/themes/crop.edj",
|
||||
elm_layout_file_set(ec->layout, PACKAGE_DATA_DIR "/themes/ephoto.edj",
|
||||
"ephoto,image,cropper,base");
|
||||
evas_object_size_hint_weight_set(ec->layout, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
|
@ -671,7 +671,7 @@ ephoto_cropper_add(Evas_Object *main, Evas_Object *parent,
|
|||
evas_object_show(ec->image);
|
||||
|
||||
ec->cropper = edje_object_add(evas_object_evas_get(ec->layout));
|
||||
edje_object_file_set(ec->cropper, PACKAGE_DATA_DIR "/themes/crop.edj",
|
||||
edje_object_file_set(ec->cropper, PACKAGE_DATA_DIR "/themes/ephoto.edj",
|
||||
"ephoto,image,cropper");
|
||||
edje_object_signal_callback_add(elm_layout_edje_get(ec->layout),
|
||||
"cropper,changed", "ephoto.swallow.cropper", _calculate_cropper_size,
|
||||
|
@ -701,7 +701,7 @@ ephoto_cropper_add(Evas_Object *main, Evas_Object *parent,
|
|||
evas_object_event_callback_add(ec->layout, EVAS_CALLBACK_RESIZE,
|
||||
_image_resize, ec);
|
||||
|
||||
ec->editor = ephoto_editor_add(parent, _("Crop Image"),
|
||||
ec->editor = ephoto_editor_add(ephoto, _("Crop Image"),
|
||||
"ec", ec);
|
||||
evas_object_event_callback_add(ec->editor, EVAS_CALLBACK_DEL,
|
||||
_editor_del, ec);
|
||||
|
|
|
@ -8,31 +8,47 @@ _editor_reset(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
static void
|
||||
_editor_apply(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
_editor_apply(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
|
||||
ecore_event_add(EPHOTO_EVENT_EDITOR_APPLY, NULL, NULL, NULL);
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,editor,hide", "ephoto");
|
||||
ephoto->editor_blocking = EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_editor_cancel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
_editor_cancel(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
|
||||
ecore_event_add(EPHOTO_EVENT_EDITOR_CANCEL, NULL, NULL, NULL);
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,editor,hide", "ephoto");
|
||||
ephoto->editor_blocking = EINA_FALSE;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
ephoto_editor_add(Evas_Object *parent, const char *title, const char *data_name,
|
||||
ephoto_editor_add(Ephoto *ephoto, const char *title, const char *data_name,
|
||||
void *data)
|
||||
{
|
||||
Evas_Object *frame, *box, *ic, *button;
|
||||
|
||||
frame = elm_frame_add(parent);
|
||||
ephoto->editor_blocking = EINA_TRUE;
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,controls,hide", "ephoto");
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,folders,hide", "ephoto");
|
||||
|
||||
frame = elm_frame_add(ephoto->layout);
|
||||
elm_object_text_set(frame, title);
|
||||
evas_object_size_hint_weight_set(frame, 0.3, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_data_set(frame, data_name, data);
|
||||
elm_box_pack_end(parent, frame);
|
||||
elm_layout_content_set(ephoto->layout, "ephoto.swallow.editor", frame);
|
||||
evas_object_show(frame);
|
||||
|
||||
box = elm_box_add(frame);
|
||||
|
@ -46,6 +62,7 @@ ephoto_editor_add(Evas_Object *parent, const char *title, const char *data_name,
|
|||
|
||||
ic = elm_icon_add(box);
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), 20*elm_config_scale_get());
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
elm_icon_standard_set(ic, "edit-undo");
|
||||
|
||||
|
@ -55,10 +72,12 @@ ephoto_editor_add(Evas_Object *parent, const char *title, const char *data_name,
|
|||
evas_object_smart_callback_add(button, "clicked", _editor_reset, box);
|
||||
evas_object_size_hint_weight_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_min_set(button, 220*elm_config_scale_get(), 30*elm_config_scale_get());
|
||||
elm_box_pack_end(box, button);
|
||||
evas_object_show(button);
|
||||
|
||||
ic = elm_icon_add(box);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), 20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
elm_icon_standard_set(ic, "document-save");
|
||||
|
@ -66,13 +85,15 @@ ephoto_editor_add(Evas_Object *parent, const char *title, const char *data_name,
|
|||
button = elm_button_add(box);
|
||||
elm_object_text_set(button, _("Apply"));
|
||||
elm_object_part_content_set(button, "icon", ic);
|
||||
evas_object_smart_callback_add(button, "clicked", _editor_apply, box);
|
||||
evas_object_smart_callback_add(button, "clicked", _editor_apply, ephoto);
|
||||
evas_object_size_hint_weight_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_min_set(button, 220*elm_config_scale_get(), 30*elm_config_scale_get());
|
||||
elm_box_pack_end(box, button);
|
||||
evas_object_show(button);
|
||||
|
||||
ic = elm_icon_add(box);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), 20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
elm_icon_standard_set(ic, "window-close");
|
||||
|
@ -80,12 +101,16 @@ ephoto_editor_add(Evas_Object *parent, const char *title, const char *data_name,
|
|||
button = elm_button_add(box);
|
||||
elm_object_text_set(button, _("Cancel"));
|
||||
elm_object_part_content_set(button, "icon", ic);
|
||||
evas_object_smart_callback_add(button, "clicked", _editor_cancel, box);
|
||||
evas_object_smart_callback_add(button, "clicked", _editor_cancel, ephoto);
|
||||
evas_object_size_hint_weight_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_min_set(button, 220*elm_config_scale_get(), 30*elm_config_scale_get());
|
||||
elm_box_pack_end(box, button);
|
||||
evas_object_show(button);
|
||||
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,editor,show", "ephoto");
|
||||
|
||||
return box;
|
||||
}
|
||||
|
||||
|
|
|
@ -130,18 +130,6 @@ _save_image_as_overwrite(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
_("Error: Image could not be saved here!"));
|
||||
ephoto_single_browser_path_pending_unset(ephoto->single_browser);
|
||||
}
|
||||
else
|
||||
{
|
||||
char *dir = ecore_file_dir_get(file);
|
||||
if (strcmp(dir, ephoto->config->directory))
|
||||
{
|
||||
ephoto_thumb_browser_fsel_clear(ephoto);
|
||||
ephoto_directory_set(ephoto, dir, NULL, EINA_FALSE, EINA_FALSE);
|
||||
ephoto_thumb_browser_top_dir_set(ephoto,
|
||||
ephoto->config->directory);
|
||||
free(dir);
|
||||
}
|
||||
}
|
||||
evas_object_del(popup);
|
||||
elm_object_focus_set(ephoto->pager, EINA_TRUE);
|
||||
evas_object_freeze_events_set(ephoto->pager, EINA_FALSE);
|
||||
|
@ -1057,6 +1045,7 @@ _prompt_upload_apply(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
evas_object_del(ppopup);
|
||||
popup = _processing(ephoto, _("Upload Image"),
|
||||
("Please wait while your image is uploaded."));
|
||||
evas_object_show(popup);
|
||||
|
||||
f = fopen(entry->path, "rb");
|
||||
fseek(f, 0, SEEK_END);
|
||||
|
@ -1214,21 +1203,6 @@ _prompt_save_image_as_apply(void *data, Evas_Object *obj EINA_UNUSED, void *even
|
|||
ephoto_single_browser_path_pending_unset
|
||||
(ephoto->single_browser);
|
||||
}
|
||||
else
|
||||
{
|
||||
evas_object_del(opopup);
|
||||
char *dir = ecore_file_dir_get(buf);
|
||||
|
||||
if (strcmp(dir, ephoto->config->directory))
|
||||
{
|
||||
ephoto_thumb_browser_fsel_clear(ephoto);
|
||||
ephoto_directory_set(ephoto, dir, NULL,
|
||||
EINA_FALSE, EINA_FALSE);
|
||||
ephoto_thumb_browser_top_dir_set(ephoto,
|
||||
ephoto->config->directory);
|
||||
free(dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
evas_object_del(opopup);
|
||||
|
|
|
@ -324,7 +324,7 @@ _editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
void
|
||||
ephoto_hsv_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
{
|
||||
Evas_Object *slider;
|
||||
Ephoto_HSV *ehsv;
|
||||
|
@ -350,7 +350,7 @@ ephoto_hsv_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
|||
memcpy(ehsv->original_im_data, im_data,
|
||||
sizeof(unsigned int) * ehsv->w * ehsv->h);
|
||||
|
||||
ehsv->editor = ephoto_editor_add(parent, _("Hue/Saturation/Value"),
|
||||
ehsv->editor = ephoto_editor_add(ephoto, _("Hue/Saturation/Value"),
|
||||
"ehsv", ehsv);
|
||||
evas_object_event_callback_add(ehsv->editor, EVAS_CALLBACK_DEL, _editor_del,
|
||||
ehsv);
|
||||
|
|
|
@ -40,9 +40,15 @@ _ephoto_thumb_browser_show(Ephoto *ephoto, Ephoto_Entry *entry)
|
|||
elm_object_focus_set(ephoto->thumb_browser, EINA_TRUE);
|
||||
_ephoto_state_set(ephoto, EPHOTO_STATE_THUMB);
|
||||
ephoto_title_set(ephoto, ephoto->config->directory);
|
||||
ephoto_thumb_browser_update_info_label(ephoto);
|
||||
elm_box_clear(ephoto->controls_left);
|
||||
elm_box_clear(ephoto->controls_right);
|
||||
ephoto->blocking = EINA_FALSE;
|
||||
ephoto->menu_blocking = EINA_FALSE;
|
||||
ephoto->hover_blocking = EINA_FALSE;
|
||||
ephoto->editor_blocking = EINA_FALSE;
|
||||
ephoto_thumb_browser_show_controls(ephoto);
|
||||
|
||||
if (ephoto->thumb_entry)
|
||||
elm_gengrid_item_selected_set(ephoto->thumb_entry->item, EINA_TRUE);
|
||||
if ((entry) && (entry->item))
|
||||
elm_gengrid_item_bring_in(entry->item, ELM_GENGRID_ITEM_SCROLLTO_IN);
|
||||
}
|
||||
|
@ -60,16 +66,26 @@ _ephoto_single_browser_show(Ephoto *ephoto, Ephoto_Entry *entry)
|
|||
ephoto_single_browser_entries_set(ephoto->single_browser,
|
||||
ephoto->entries);
|
||||
|
||||
ephoto->thumb_entry = entry;
|
||||
ephoto_single_browser_entry_set(ephoto->single_browser, entry);
|
||||
elm_naviframe_item_simple_promote(ephoto->pager, ephoto->single_browser);
|
||||
elm_object_focus_set(ephoto->single_browser, EINA_TRUE);
|
||||
_ephoto_state_set(ephoto, EPHOTO_STATE_SINGLE);
|
||||
|
||||
elm_box_clear(ephoto->controls_left);
|
||||
elm_box_clear(ephoto->controls_right);
|
||||
ephoto->blocking = EINA_FALSE;
|
||||
ephoto->menu_blocking = EINA_FALSE;
|
||||
ephoto->hover_blocking = EINA_FALSE;
|
||||
ephoto->editor_blocking = EINA_FALSE;
|
||||
ephoto_single_browser_show_controls(ephoto);
|
||||
ephoto_single_browser_adjust_offsets(ephoto);
|
||||
}
|
||||
|
||||
static void
|
||||
_ephoto_slideshow_show(Ephoto *ephoto, Ephoto_Entry *entry)
|
||||
{
|
||||
ephoto_slideshow_show_controls(ephoto);
|
||||
|
||||
if (ephoto->selentries)
|
||||
ephoto_slideshow_entries_set(ephoto->slideshow, ephoto->selentries);
|
||||
else if (ephoto->searchentries)
|
||||
|
@ -80,6 +96,15 @@ _ephoto_slideshow_show(Ephoto *ephoto, Ephoto_Entry *entry)
|
|||
elm_naviframe_item_simple_promote(ephoto->pager, ephoto->slideshow);
|
||||
elm_object_focus_set(ephoto->slideshow, EINA_TRUE);
|
||||
_ephoto_state_set(ephoto, EPHOTO_STATE_SLIDESHOW);
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,controls,hide", "ephoto");
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,folders,hide", "ephoto");
|
||||
ephoto->folders_toggle = EINA_FALSE;
|
||||
ephoto->blocking = EINA_FALSE;
|
||||
ephoto->menu_blocking = EINA_FALSE;
|
||||
ephoto->hover_blocking = EINA_FALSE;
|
||||
ephoto->editor_blocking = EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -184,10 +209,40 @@ _win_free(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
ecore_timer_del(ephoto->timer.thumb_regen);
|
||||
if (ephoto->monitor)
|
||||
ecore_file_monitor_del(ephoto->monitor);
|
||||
if (ephoto->overlay_timer)
|
||||
ecore_timer_del(ephoto->overlay_timer);
|
||||
ephoto_config_save(ephoto);
|
||||
free(ephoto);
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
Evas_Object *but = evas_object_data_get(ephoto->layout, "folder_button");
|
||||
Evas_Coord x, y, w, h, bx, by, bw, bh, cx, cy;
|
||||
|
||||
evas_pointer_canvas_xy_get(evas_object_evas_get(ephoto->dir_browser), &cx, &cy);
|
||||
evas_object_geometry_get(ephoto->dir_browser, &x, &y, &w, &h);
|
||||
evas_object_geometry_get(but, &bx, &by, &bw, &bh);
|
||||
|
||||
if (cx >= x && cx <= x+w)
|
||||
{
|
||||
if (cy >= y && cy <= y+h)
|
||||
return;
|
||||
}
|
||||
if (cx >= bx && cx <= bx+bw)
|
||||
{
|
||||
if (cy >= by && cy <= by+bh)
|
||||
return;
|
||||
}
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,folders,hide", "ephoto");
|
||||
ephoto->folders_toggle = EINA_FALSE;
|
||||
elm_object_tooltip_text_set(but, _("Show Folders"));
|
||||
}
|
||||
|
||||
static void
|
||||
_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
|
@ -203,24 +258,135 @@ _resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_timer_cb(void *data)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
Edje_Object *edje = elm_layout_edje_get(ephoto->layout);
|
||||
|
||||
if (ephoto->blocking || ephoto->menu_blocking ||
|
||||
ephoto->right_blocking || ephoto->hover_blocking ||
|
||||
ephoto->editor_blocking)
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
|
||||
edje_object_signal_emit(edje, "ephoto,controls,hide", "ephoto");
|
||||
if (ephoto->folders_toggle)
|
||||
edje_object_signal_emit(edje, "ephoto,folders,hide", "ephoto");
|
||||
ecore_timer_del(ephoto->overlay_timer);
|
||||
ephoto->overlay_timer = NULL;
|
||||
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
static void
|
||||
_pager_focused(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
_mouse_move_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
Edje_Object *edje = elm_layout_edje_get(ephoto->layout);
|
||||
|
||||
if (ephoto->blocking || ephoto->menu_blocking ||
|
||||
ephoto->right_blocking || ephoto->hover_blocking ||
|
||||
ephoto->editor_blocking)
|
||||
return;
|
||||
|
||||
if (ephoto->overlay_timer)
|
||||
ecore_timer_del(ephoto->overlay_timer);
|
||||
ephoto->overlay_timer = NULL;
|
||||
edje_object_signal_emit(edje, "ephoto,controls,show", "ephoto");
|
||||
if (ephoto->folders_toggle)
|
||||
edje_object_signal_emit(edje, "ephoto,folders,show", "ephoto");
|
||||
ephoto->overlay_timer = ecore_timer_add(3.0, _timer_cb, ephoto);
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_out_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
ephoto->blocking = EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_in_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
ephoto->blocking = EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_folder_icon_clicked(void *data, Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
|
||||
if (!ephoto->folders_toggle)
|
||||
{
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,folders,show", "ephoto");
|
||||
ephoto->folders_toggle = EINA_TRUE;
|
||||
elm_object_tooltip_text_set(obj, _("Hide Folders"));
|
||||
}
|
||||
else
|
||||
{
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,folders,hide", "ephoto");
|
||||
ephoto->folders_toggle = EINA_FALSE;
|
||||
elm_object_tooltip_text_set(obj, _("Show Folders"));
|
||||
}
|
||||
}
|
||||
|
||||
/*Ephoto Thumb Browser Main Callbacks*/
|
||||
static void
|
||||
_slideshow_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
|
||||
if (ephoto->state == EPHOTO_STATE_THUMB)
|
||||
elm_object_focus_set(ephoto->tb, EINA_TRUE);
|
||||
ephoto_thumb_browser_slideshow(ephoto->thumb_browser);
|
||||
else if (ephoto->state == EPHOTO_STATE_SINGLE)
|
||||
ephoto_single_browser_focus_set(ephoto);
|
||||
else
|
||||
elm_object_focus_set(ephoto->sl, EINA_TRUE);
|
||||
ephoto_single_browser_slideshow(ephoto->single_browser);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_settings_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto *ephoto = data;
|
||||
|
||||
ephoto_config_main(ephoto);
|
||||
}
|
||||
|
||||
/*Toggle determines whether to toggle folder visibility, or just force visible*/
|
||||
void
|
||||
ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle)
|
||||
{
|
||||
Evas_Object *but = evas_object_data_get(ephoto->layout, "folder_button");
|
||||
if (!ephoto->folders_toggle || !toggle)
|
||||
{
|
||||
_mouse_move_cb(ephoto, NULL, NULL, NULL);
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,folders,show", "ephoto");
|
||||
ephoto->folders_toggle = EINA_TRUE;
|
||||
elm_object_tooltip_text_set(but, _("Hide Folders"));
|
||||
}
|
||||
else if (ephoto->folders_toggle && toggle)
|
||||
{
|
||||
edje_object_signal_emit(elm_layout_edje_get(ephoto->layout),
|
||||
"ephoto,folders,hide", "ephoto");
|
||||
ephoto->folders_toggle = EINA_FALSE;
|
||||
elm_object_tooltip_text_set(but, _("Show Folders"));
|
||||
}
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
ephoto_window_add(const char *path)
|
||||
{
|
||||
Ephoto *ephoto = calloc(1, sizeof(Ephoto));
|
||||
Evas_Object *ic, *but;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(ephoto, NULL);
|
||||
|
@ -234,6 +400,11 @@ ephoto_window_add(const char *path)
|
|||
EPHOTO_EVENT_EDITOR_CANCEL = ecore_event_type_new();
|
||||
|
||||
ephoto->selentries = NULL;
|
||||
ephoto->blocking = EINA_FALSE;
|
||||
ephoto->menu_blocking = EINA_FALSE;
|
||||
ephoto->hover_blocking = EINA_FALSE;
|
||||
ephoto->folders_toggle = EINA_FALSE;
|
||||
ephoto->editor_blocking = EINA_FALSE;
|
||||
ephoto->win = elm_win_util_standard_add("ephoto", "Ephoto");
|
||||
if (!ephoto->win)
|
||||
{
|
||||
|
@ -241,8 +412,8 @@ ephoto_window_add(const char *path)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
evas_object_event_callback_add(ephoto->win, EVAS_CALLBACK_FREE, _win_free,
|
||||
ephoto);
|
||||
evas_object_event_callback_add(ephoto->win, EVAS_CALLBACK_FREE,
|
||||
_win_free, ephoto);
|
||||
evas_object_event_callback_add(ephoto->win, EVAS_CALLBACK_RESIZE,
|
||||
_resize_cb, ephoto);
|
||||
elm_win_autodel_set(ephoto->win, EINA_TRUE);
|
||||
|
@ -258,6 +429,20 @@ ephoto_window_add(const char *path)
|
|||
(ephoto->config->thumb_gen_size != 512))
|
||||
ephoto_thumb_size_set(ephoto, ephoto->config->thumb_size);
|
||||
|
||||
ephoto->layout = elm_layout_add(ephoto->win);
|
||||
elm_layout_file_set(ephoto->layout, PACKAGE_DATA_DIR "/themes/ephoto.edj",
|
||||
"ephoto,main,layout");
|
||||
evas_object_size_hint_weight_set(ephoto->layout, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(ephoto->layout, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_event_callback_add(ephoto->layout, EVAS_CALLBACK_MOUSE_MOVE,
|
||||
_mouse_move_cb, ephoto);
|
||||
evas_object_event_callback_add(ephoto->layout, EVAS_CALLBACK_MOUSE_UP,
|
||||
_mouse_up_cb, ephoto);
|
||||
elm_win_resize_object_add(ephoto->win, ephoto->layout);
|
||||
evas_object_show(ephoto->layout);
|
||||
|
||||
ephoto->pager = elm_naviframe_add(ephoto->win);
|
||||
elm_object_focus_allow_set(ephoto->pager, EINA_FALSE);
|
||||
elm_naviframe_prev_btn_auto_pushed_set(ephoto->pager, EINA_FALSE);
|
||||
|
@ -265,12 +450,10 @@ ephoto_window_add(const char *path)
|
|||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(ephoto->pager, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_event_callback_add(ephoto->pager, EVAS_CALLBACK_FOCUS_IN,
|
||||
_pager_focused, ephoto);
|
||||
elm_win_resize_object_add(ephoto->win, ephoto->pager);
|
||||
elm_layout_content_set(ephoto->layout, "ephoto.swallow.main", ephoto->pager);
|
||||
evas_object_show(ephoto->pager);
|
||||
|
||||
ephoto->thumb_browser = ephoto_thumb_browser_add(ephoto, ephoto->pager);
|
||||
ephoto->thumb_browser = ephoto_thumb_browser_add(ephoto, ephoto->layout);
|
||||
if (!ephoto->thumb_browser)
|
||||
{
|
||||
evas_object_del(ephoto->win);
|
||||
|
@ -287,7 +470,7 @@ ephoto_window_add(const char *path)
|
|||
evas_object_smart_callback_add(ephoto->thumb_browser, "slideshow",
|
||||
_ephoto_thumb_browser_slideshow, ephoto);
|
||||
|
||||
ephoto->single_browser = ephoto_single_browser_add(ephoto, ephoto->pager);
|
||||
ephoto->single_browser = ephoto_single_browser_add(ephoto, ephoto->layout);
|
||||
if (!ephoto->single_browser)
|
||||
{
|
||||
evas_object_del(ephoto->win);
|
||||
|
@ -301,8 +484,7 @@ ephoto_window_add(const char *path)
|
|||
_ephoto_single_browser_back, ephoto);
|
||||
evas_object_smart_callback_add(ephoto->single_browser, "slideshow",
|
||||
_ephoto_single_browser_slideshow, ephoto);
|
||||
|
||||
ephoto->slideshow = ephoto_slideshow_add(ephoto, ephoto->pager);
|
||||
ephoto->slideshow = ephoto_slideshow_add(ephoto, ephoto->layout);
|
||||
if (!ephoto->slideshow)
|
||||
{
|
||||
evas_object_del(ephoto->win);
|
||||
|
@ -315,6 +497,104 @@ ephoto_window_add(const char *path)
|
|||
evas_object_smart_callback_add(ephoto->slideshow, "back",
|
||||
_ephoto_slideshow_back, ephoto);
|
||||
|
||||
ephoto->dir_browser = ephoto_directory_browser_add(ephoto, ephoto->layout);
|
||||
elm_layout_content_set(ephoto->layout, "ephoto.swallow.folders",
|
||||
ephoto->dir_browser);
|
||||
evas_object_event_callback_add(ephoto->dir_browser, EVAS_CALLBACK_MOUSE_IN,
|
||||
_mouse_in_cb, ephoto);
|
||||
evas_object_event_callback_add(ephoto->dir_browser, EVAS_CALLBACK_MOUSE_OUT,
|
||||
_mouse_out_cb, ephoto);
|
||||
evas_object_show(ephoto->dir_browser);
|
||||
|
||||
ephoto->statusbar = elm_box_add(ephoto->layout);
|
||||
elm_object_tree_focus_allow_set(ephoto->statusbar, EINA_FALSE);
|
||||
elm_box_horizontal_set(ephoto->statusbar, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(ephoto->statusbar,
|
||||
EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(ephoto->statusbar, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_layout_content_set(ephoto->layout, "ephoto.swallow.controls",
|
||||
ephoto->statusbar);
|
||||
evas_object_event_callback_add(ephoto->statusbar, EVAS_CALLBACK_MOUSE_IN,
|
||||
_mouse_in_cb, ephoto);
|
||||
evas_object_event_callback_add(ephoto->statusbar, EVAS_CALLBACK_MOUSE_OUT,
|
||||
_mouse_out_cb, ephoto);
|
||||
evas_object_show(ephoto->statusbar);
|
||||
|
||||
ic = elm_icon_add(ephoto->statusbar);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
elm_icon_standard_set(ic, "folder");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->statusbar);
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
evas_object_smart_callback_add(but, "clicked", _folder_icon_clicked, ephoto);
|
||||
elm_object_tooltip_text_set(but, _("Show Folders"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_RIGHT);
|
||||
elm_box_pack_end(ephoto->statusbar, but);
|
||||
evas_object_show(but);
|
||||
evas_object_data_set(ephoto->layout, "folder_button", but);
|
||||
|
||||
ephoto->controls_left = elm_box_add(ephoto->statusbar);
|
||||
elm_box_horizontal_set(ephoto->controls_left, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(ephoto->controls_left,
|
||||
0.0, 0.0);
|
||||
evas_object_size_hint_align_set(ephoto->controls_left, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_box_pack_end(ephoto->statusbar, ephoto->controls_left);
|
||||
evas_object_show(ephoto->controls_left);
|
||||
|
||||
ephoto->infolabel = elm_label_add(ephoto->statusbar);
|
||||
elm_object_style_set(ephoto->infolabel, "info");
|
||||
elm_label_line_wrap_set(ephoto->infolabel, ELM_WRAP_MIXED);
|
||||
elm_object_text_set(ephoto->infolabel, _("Information"));
|
||||
evas_object_size_hint_weight_set(ephoto->infolabel,
|
||||
EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ephoto->infolabel, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_aspect_set(ephoto->infolabel, EVAS_ASPECT_CONTROL_HORIZONTAL,
|
||||
1, 1);
|
||||
elm_box_pack_end(ephoto->statusbar, ephoto->infolabel);
|
||||
evas_object_show(ephoto->infolabel);
|
||||
|
||||
ephoto->controls_right = elm_box_add(ephoto->statusbar);
|
||||
elm_box_horizontal_set(ephoto->controls_right, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(ephoto->controls_right,
|
||||
0.0, 0.0);
|
||||
evas_object_size_hint_align_set(ephoto->controls_right, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_box_pack_end(ephoto->statusbar, ephoto->controls_right);
|
||||
evas_object_show(ephoto->controls_right);
|
||||
|
||||
ic = elm_icon_add(ephoto->statusbar);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
elm_icon_standard_set(ic, "media-playback-start");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->statusbar);
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
evas_object_smart_callback_add(but, "clicked", _slideshow_icon_clicked, ephoto);
|
||||
elm_object_tooltip_text_set(but, _("Slideshow"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
|
||||
elm_box_pack_end(ephoto->statusbar, but);
|
||||
evas_object_show(but);
|
||||
|
||||
ic = elm_icon_add(ephoto->statusbar);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
elm_icon_standard_set(ic, "preferences-system");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->statusbar);
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
evas_object_smart_callback_add(but, "clicked", _settings_icon_clicked, ephoto);
|
||||
elm_object_tooltip_text_set(but, _("Settings"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_LEFT);
|
||||
elm_box_pack_end(ephoto->statusbar, but);
|
||||
evas_object_show(but);
|
||||
|
||||
if ((!path) || (!ecore_file_exists(path)))
|
||||
{
|
||||
if (ephoto->config->open)
|
||||
|
@ -337,14 +617,16 @@ ephoto_window_add(const char *path)
|
|||
|
||||
if (ecore_file_is_dir(path))
|
||||
{
|
||||
ephoto_directory_set(ephoto, path, NULL, EINA_FALSE, EINA_FALSE);
|
||||
eina_stringshare_replace(&ephoto->config->directory,
|
||||
ecore_file_realpath(path));
|
||||
_ephoto_thumb_browser_show(ephoto, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
char *dir = ecore_file_dir_get(path);
|
||||
|
||||
ephoto_directory_set(ephoto, dir, NULL, EINA_FALSE, EINA_FALSE);
|
||||
eina_stringshare_replace(&ephoto->config->directory,
|
||||
ecore_file_realpath(dir));
|
||||
free(dir);
|
||||
ephoto_single_browser_path_pending_set(ephoto->single_browser, path);
|
||||
|
||||
|
@ -352,11 +634,14 @@ ephoto_window_add(const char *path)
|
|||
ephoto->single_browser);
|
||||
ephoto->state = EPHOTO_STATE_SINGLE;
|
||||
}
|
||||
ephoto_thumb_browser_top_dir_set(ephoto, ephoto->config->directory);
|
||||
ephoto_directory_browser_top_dir_set(ephoto, ephoto->config->directory);
|
||||
ephoto_directory_browser_initialize_structure(ephoto);
|
||||
evas_object_resize(ephoto->win, ephoto->config->window_width,
|
||||
ephoto->config->window_height);
|
||||
evas_object_show(ephoto->win);
|
||||
|
||||
ephoto->overlay_timer = ecore_timer_add(5.0, _timer_cb, ephoto);
|
||||
|
||||
return ephoto->win;
|
||||
}
|
||||
|
||||
|
@ -490,7 +775,6 @@ _ephoto_change_dir(void *data)
|
|||
{
|
||||
Ephoto_Dir_Data *ed = data;
|
||||
|
||||
ed->ephoto->thumb_entry = NULL;
|
||||
ed->ephoto->job.change_dir = NULL;
|
||||
_ephoto_populate_entries(ed);
|
||||
}
|
||||
|
|
|
@ -195,7 +195,7 @@ _editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
void
|
||||
ephoto_red_eye_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
ephoto_red_eye_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
||||
{
|
||||
Evas_Object *slider, *label;
|
||||
Ephoto_Reye *er;
|
||||
|
@ -222,7 +222,7 @@ ephoto_red_eye_add(Evas_Object *main, Evas_Object *parent, Evas_Object *image)
|
|||
evas_object_event_callback_add(er->image, EVAS_CALLBACK_MOUSE_UP,
|
||||
_reye_clicked, er);
|
||||
|
||||
er->editor = ephoto_editor_add(parent, _("Red Eye Removal"),
|
||||
er->editor = ephoto_editor_add(ephoto, _("Red Eye Removal"),
|
||||
"ereye", er);
|
||||
evas_object_event_callback_add(er->editor, EVAS_CALLBACK_DEL, _editor_del,
|
||||
er);
|
||||
|
|
|
@ -14,9 +14,7 @@ struct _Ephoto_Single_Browser
|
|||
Evas_Object *mhbox;
|
||||
Evas_Object *table;
|
||||
Evas_Object *viewer;
|
||||
Evas_Object *infolabel;
|
||||
Evas_Object *nolabel;
|
||||
Evas_Object *botbox;
|
||||
Evas_Object *event;
|
||||
Elm_Object_Item *save;
|
||||
const char *pending_path;
|
||||
|
@ -54,8 +52,6 @@ static void _ephoto_main_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
Evas_Object *obj EINA_UNUSED,void *event_info EINA_UNUSED);
|
||||
static void _ephoto_main_focused(void *data, Evas *e EINA_UNUSED,
|
||||
Evas_Object *obj EINA_UNUSED,void *event_info EINA_UNUSED);
|
||||
static void _ephoto_show_slideshow(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED);
|
||||
static void _ephoto_show_settings(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED);
|
||||
static void _ephoto_main_back(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
|
@ -108,29 +104,7 @@ _ephoto_update_bottom_bar(Ephoto_Single_Browser *sb)
|
|||
_("Resolution"), w, h, _("File Size"), tmp);
|
||||
free(tmp);
|
||||
|
||||
if (!evas_object_visible_get(sb->botbox))
|
||||
{
|
||||
|
||||
evas_object_del(sb->botbox);
|
||||
|
||||
sb->botbox = elm_notify_add(sb->ephoto->win);
|
||||
elm_notify_align_set(sb->botbox, 0.5, 1.0);
|
||||
evas_object_size_hint_weight_set(sb->botbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(sb->botbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
sb->infolabel = elm_label_add(sb->botbox);
|
||||
elm_label_line_wrap_set(sb->infolabel, ELM_WRAP_NONE);
|
||||
evas_object_size_hint_weight_set(sb->infolabel, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_align_set(sb->infolabel, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_object_content_set(sb->botbox, sb->infolabel);
|
||||
evas_object_show(sb->infolabel);
|
||||
}
|
||||
|
||||
elm_object_text_set(sb->infolabel, image_info);
|
||||
elm_notify_timeout_set(sb->botbox, 5);
|
||||
evas_object_show(sb->botbox);
|
||||
elm_object_text_set(sb->ephoto->infolabel, image_info);
|
||||
}
|
||||
|
||||
static char *
|
||||
|
@ -1053,13 +1027,11 @@ _crop_image(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
sb->cropping = EINA_TRUE;
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
elm_table_unpack(v->table, v->image);
|
||||
ephoto_cropper_add(sb->main, sb->mhbox, v->table, v->image);
|
||||
ephoto_cropper_add(sb->ephoto, sb->main, sb->mhbox, v->table, v->image);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1071,11 +1043,9 @@ _go_bcg(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_bcg_add(sb->main, sb->mhbox, v->image);
|
||||
ephoto_bcg_add(sb->ephoto, sb->main, sb->mhbox, v->image);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1087,11 +1057,9 @@ _go_hsv(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_hsv_add(sb->main, sb->mhbox, v->image);
|
||||
ephoto_hsv_add(sb->ephoto, sb->main, sb->mhbox, v->image);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1104,11 +1072,9 @@ _go_color(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_color_add(sb->main, sb->mhbox, v->image);
|
||||
ephoto_color_add(sb->ephoto, sb->main, sb->mhbox, v->image);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1121,11 +1087,9 @@ _go_reye(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_red_eye_add(sb->main, sb->mhbox, v->image);
|
||||
ephoto_red_eye_add(sb->ephoto, sb->main, sb->mhbox, v->image);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1138,8 +1102,6 @@ _go_auto_eq(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_filter_histogram_eq(sb->main, v->image);
|
||||
|
@ -1155,8 +1117,6 @@ _go_blur(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_filter_blur(sb->main, v->image);
|
||||
|
@ -1172,8 +1132,6 @@ _go_sharpen(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_filter_sharpen(sb->main, v->image);
|
||||
|
@ -1189,8 +1147,6 @@ _go_black_and_white(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_filter_black_and_white(sb->main, v->image);
|
||||
|
@ -1206,14 +1162,37 @@ _go_old_photo(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
if (sb->viewer)
|
||||
{
|
||||
sb->editing = EINA_TRUE;
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
|
||||
ephoto_filter_old_photo(sb->main, v->image);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_image_changed(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Ephoto_Single_Browser *sb = data;
|
||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||
Evas_Coord w, h, sw, sh;
|
||||
Edje_Message_Int_Set *msg;
|
||||
|
||||
if (sb->ephoto->state != EPHOTO_STATE_SINGLE)
|
||||
return;
|
||||
|
||||
elm_scroller_region_get(v->scroller, 0, 0, &w, &h);
|
||||
evas_object_geometry_get(v->scroller, 0, 0, &sw, &sh);
|
||||
|
||||
sw -= w;
|
||||
sh -= h;
|
||||
msg = alloca(sizeof(Edje_Message_Int_Set) + (2 * sizeof(int)));
|
||||
msg->count = 2;
|
||||
msg->val[0] = sw;
|
||||
msg->val[1] = sh;
|
||||
edje_object_message_send(elm_layout_edje_get(sb->ephoto->layout),
|
||||
EDJE_MESSAGE_INT_SET, 1, msg);
|
||||
}
|
||||
|
||||
/*Image Viewer Function*/
|
||||
static Evas_Object *
|
||||
_viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
||||
|
@ -1222,7 +1201,6 @@ _viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
|||
int err;
|
||||
|
||||
v->zoom_first = EINA_TRUE;
|
||||
|
||||
Evas_Coord w, h;
|
||||
const char *group = _ephoto_get_edje_group(path);
|
||||
|
||||
|
@ -1246,6 +1224,7 @@ _viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
|||
evas_object_show(v->table);
|
||||
|
||||
v->image = elm_image_add(v->table);
|
||||
elm_object_style_set(v->image, "ephoto");
|
||||
elm_image_preload_disabled_set(v->image, EINA_TRUE);
|
||||
elm_image_file_set(v->image, path, group);
|
||||
err = evas_object_image_load_error_get(elm_image_object_get(v->image));
|
||||
|
@ -1260,6 +1239,7 @@ _viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
|||
_image_mouse_down_cb, sb);
|
||||
evas_object_event_callback_add(v->image, EVAS_CALLBACK_MOUSE_UP,
|
||||
_image_mouse_up_cb, sb);
|
||||
evas_object_event_callback_add(v->image, EVAS_CALLBACK_RESIZE, _image_changed, sb);
|
||||
elm_table_pack(v->table, v->image, 0, 0, 1, 1);
|
||||
evas_object_show(v->image);
|
||||
if (elm_image_animated_available_get(v->image))
|
||||
|
@ -1375,9 +1355,6 @@ _add_edit_menu_items(Ephoto_Single_Browser *sb, Evas_Object *menu)
|
|||
{
|
||||
Evas_Object *menu_it, *menu_itt;
|
||||
|
||||
elm_menu_item_add(menu, NULL, "go-previous", _("Back"), _ephoto_main_back, sb);
|
||||
elm_menu_item_separator_add(menu, NULL);
|
||||
|
||||
menu_it =
|
||||
elm_menu_item_add(menu, NULL, "system-file-manager", _("File"), NULL, NULL);
|
||||
elm_menu_item_add(menu, menu_it, "edit-undo", _("Reset"), _reset_image, sb);
|
||||
|
@ -1453,11 +1430,6 @@ _add_edit_menu_items(Ephoto_Single_Browser *sb, Evas_Object *menu)
|
|||
_zoom_fit_cb, sb);
|
||||
elm_menu_item_add(menu, menu_itt, "zoom-original", _("Zoom 1:1"),
|
||||
_zoom_1_cb, sb);
|
||||
elm_menu_item_separator_add(menu, NULL);
|
||||
elm_menu_item_add(menu, NULL, "media-playback-start", _("Slideshow"),
|
||||
_ephoto_show_slideshow, sb);
|
||||
elm_menu_item_add(menu, NULL, "preferences-system", _("Settings"),
|
||||
_ephoto_show_settings, sb);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1500,6 +1472,11 @@ _ephoto_main_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU
|
|||
else
|
||||
_zoom_set(sb, 1.0);
|
||||
}
|
||||
else if (!strcmp(k, "f") && !sb->editing)
|
||||
{
|
||||
if (shift)
|
||||
ephoto_show_folders(sb->ephoto, EINA_TRUE);
|
||||
}
|
||||
else if (!strcmp(k, "l") && !sb->editing)
|
||||
{
|
||||
if (!shift)
|
||||
|
@ -1539,7 +1516,6 @@ _ephoto_main_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU
|
|||
evas_object_del(sb->event);
|
||||
sb->event = NULL;
|
||||
}
|
||||
evas_object_hide(sb->botbox);
|
||||
evas_object_smart_callback_call(sb->main, "back", sb->entry);
|
||||
}
|
||||
else if (!strcmp(k, "Left") && !sb->editing)
|
||||
|
@ -1567,8 +1543,7 @@ _ephoto_main_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU
|
|||
evas_object_del(sb->event);
|
||||
sb->event = NULL;
|
||||
}
|
||||
evas_object_hide(sb->botbox);
|
||||
evas_object_smart_callback_call(sb->main, "slideshow", sb->entry);
|
||||
evas_object_smart_callback_call(sb->main, "slideshow", sb->entry);
|
||||
}
|
||||
}
|
||||
else if (!strcmp(k, "F11"))
|
||||
|
@ -1579,11 +1554,10 @@ _ephoto_main_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_ephoto_show_slideshow(void *data, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
void
|
||||
ephoto_single_browser_slideshow(Evas_Object *obj)
|
||||
{
|
||||
Ephoto_Single_Browser *sb = data;
|
||||
Ephoto_Single_Browser *sb = evas_object_data_get(obj, "single_browser");
|
||||
|
||||
if (sb->entry)
|
||||
{
|
||||
|
@ -1592,8 +1566,6 @@ _ephoto_show_slideshow(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
evas_object_del(sb->event);
|
||||
sb->event = NULL;
|
||||
}
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
evas_object_smart_callback_call(sb->main, "slideshow", sb->entry);
|
||||
}
|
||||
}
|
||||
|
@ -1617,8 +1589,6 @@ _ephoto_main_back(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EIN
|
|||
evas_object_del(sb->event);
|
||||
sb->event = NULL;
|
||||
}
|
||||
if (sb->botbox)
|
||||
evas_object_hide(sb->botbox);
|
||||
evas_object_smart_callback_call(sb->main, "back", sb->entry);
|
||||
}
|
||||
|
||||
|
@ -1666,6 +1636,23 @@ _ephoto_main_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
/*Ephoto Single Browser Public Functions*/
|
||||
void
|
||||
ephoto_single_browser_adjust_offsets(Ephoto *ephoto)
|
||||
{
|
||||
Ephoto_Single_Browser *sb = evas_object_data_get(ephoto->single_browser,
|
||||
"single_browser");
|
||||
Edje_Message_Int_Set *msg;
|
||||
|
||||
msg = alloca(sizeof(Edje_Message_Int_Set) + (2 * sizeof(int)));
|
||||
msg->count = 2;
|
||||
msg->val[0] = 0;
|
||||
msg->val[1] = 0;
|
||||
edje_object_message_send(elm_layout_edje_get(sb->ephoto->layout),
|
||||
EDJE_MESSAGE_INT_SET, 1, msg);
|
||||
|
||||
_image_changed(sb, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
ephoto_single_browser_entries_set(Evas_Object *obj, Eina_List *entries)
|
||||
{
|
||||
|
@ -1825,6 +1812,109 @@ ephoto_single_browser_cancel_editing(Evas_Object *main)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
ephoto_single_browser_show_controls(Ephoto *ephoto)
|
||||
{
|
||||
Ephoto_Single_Browser *sb = evas_object_data_get(ephoto->single_browser,
|
||||
"single_browser");
|
||||
Evas_Object *but, *ic;
|
||||
int ret;
|
||||
|
||||
ic = elm_icon_add(ephoto->controls_left);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
ret = elm_image_file_set(ic, PACKAGE_DATA_DIR "/images/grid.png", NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->controls_left);
|
||||
if (!ret)
|
||||
elm_object_text_set(but, _("View Thumbnails"));
|
||||
else
|
||||
{
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
elm_object_tooltip_text_set(but, _("View Thumbnails"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
|
||||
}
|
||||
evas_object_smart_callback_add(but, "clicked", _ephoto_main_back, sb);
|
||||
elm_box_pack_end(ephoto->controls_left, but);
|
||||
evas_object_show(but);
|
||||
|
||||
ic = elm_icon_add(ephoto->controls_left);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
ret = elm_icon_standard_set(ic, "zoom-in");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->controls_left);
|
||||
if (!ret)
|
||||
elm_object_text_set(but, _("Zoom In"));
|
||||
else
|
||||
{
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
elm_object_tooltip_text_set(but, _("Zoom In"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
|
||||
}
|
||||
evas_object_smart_callback_add(but, "clicked", _zoom_in_cb, sb);
|
||||
elm_box_pack_end(ephoto->controls_left, but);
|
||||
evas_object_show(but);
|
||||
|
||||
ic = elm_icon_add(ephoto->controls_left);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
elm_icon_standard_set(ic, "zoom-out");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->controls_left);
|
||||
if (!ret)
|
||||
elm_object_text_set(but, _("Zoom Out"));
|
||||
else
|
||||
{
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
elm_object_tooltip_text_set(but, _("Zoom Out"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
|
||||
}
|
||||
evas_object_smart_callback_add(but, "clicked", _zoom_out_cb, sb);
|
||||
elm_box_pack_end(ephoto->controls_left, but);
|
||||
evas_object_show(but);
|
||||
|
||||
ic = elm_icon_add(ephoto->controls_right);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
ret = elm_icon_standard_set(ic, "go-previous");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->controls_right);
|
||||
if (!ret)
|
||||
elm_object_text_set(but, _("Previous"));
|
||||
else
|
||||
{
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
elm_object_tooltip_text_set(but, _("Previous"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
|
||||
}
|
||||
evas_object_smart_callback_add(but, "clicked", _go_prev, sb);
|
||||
elm_box_pack_end(ephoto->controls_right, but);
|
||||
evas_object_show(but);
|
||||
|
||||
ic = elm_icon_add(ephoto->controls_right);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
elm_icon_standard_set(ic, "go-next");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(ephoto->controls_right);
|
||||
if (!ret)
|
||||
elm_object_text_set(but, _("Next"));
|
||||
else
|
||||
{
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
elm_object_tooltip_text_set(but, _("Next"));
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
|
||||
}
|
||||
evas_object_smart_callback_add(but, "clicked", _go_next, sb);
|
||||
elm_box_pack_end(ephoto->controls_right, but);
|
||||
evas_object_show(but);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent)
|
||||
{
|
||||
|
@ -1861,20 +1951,6 @@ ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent)
|
|||
elm_box_pack_end(sb->main, sb->mhbox);
|
||||
evas_object_show(sb->mhbox);
|
||||
|
||||
sb->botbox = elm_notify_add(sb->ephoto->win);
|
||||
elm_notify_align_set(sb->botbox, 0.5, 1.0);
|
||||
elm_notify_timeout_set(sb->botbox, 5);
|
||||
evas_object_size_hint_weight_set(sb->botbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(sb->botbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
sb->infolabel = elm_label_add(sb->botbox);
|
||||
elm_label_line_wrap_set(sb->infolabel, ELM_WRAP_NONE);
|
||||
evas_object_size_hint_weight_set(sb->infolabel, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_align_set(sb->infolabel, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_object_content_set(sb->botbox, sb->infolabel);
|
||||
evas_object_show(sb->infolabel);
|
||||
|
||||
sb->handlers =
|
||||
eina_list_append(sb->handlers,
|
||||
|
|
|
@ -6,18 +6,20 @@ struct _Ephoto_Slideshow
|
|||
{
|
||||
Ephoto *ephoto;
|
||||
Evas_Object *slideshow;
|
||||
Evas_Object *notify;
|
||||
Evas_Object *bar;
|
||||
Evas_Object *event;
|
||||
Evas_Object *notify;
|
||||
Eina_List *entries;
|
||||
Elm_Object_Item *pause;
|
||||
Elm_Object_Item *pause_after;
|
||||
Elm_Object_Item *fullscreen;
|
||||
Elm_Object_Item *fullscreen_after;
|
||||
Evas_Object *pause;
|
||||
Evas_Object *pause_after;
|
||||
Evas_Object *fullscreen;
|
||||
Evas_Object *fullscreen_after;
|
||||
Ephoto_Entry *entry;
|
||||
Eina_Bool playing;
|
||||
};
|
||||
|
||||
static Evas_Object *_add_icon(Evas_Object *parent, const char *icon,
|
||||
const char *label, Evas_Object *before);
|
||||
|
||||
static void
|
||||
_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
|
@ -26,6 +28,11 @@ _mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
Elm_Object_Item *slideshow_item;
|
||||
Ephoto_Entry *entry;
|
||||
|
||||
elm_layout_content_unset(ss->ephoto->layout, "ephoto.swallow.controls");
|
||||
evas_object_del(ss->notify);
|
||||
elm_layout_content_set(ss->ephoto->layout, "ephoto.swallow.controls",
|
||||
ss->ephoto->statusbar);
|
||||
|
||||
slideshow_item = elm_slideshow_item_current_get(ss->slideshow);
|
||||
if (slideshow_item)
|
||||
entry = elm_object_item_data_get(slideshow_item);
|
||||
|
@ -38,7 +45,6 @@ _mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
evas_object_smart_callback_call(ss->slideshow, "back", entry);
|
||||
elm_slideshow_clear(ss->slideshow);
|
||||
evas_object_hide(ss->notify);
|
||||
ss->playing = 0;
|
||||
evas_object_freeze_events_set(ss->slideshow, EINA_TRUE);
|
||||
}
|
||||
|
@ -62,13 +68,6 @@ _slideshow_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
free(ss);
|
||||
}
|
||||
|
||||
static void
|
||||
_notify_show(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
evas_object_show(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_back(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
|
@ -76,6 +75,11 @@ _back(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|||
Elm_Object_Item *slideshow_item;
|
||||
Ephoto_Entry *entry;
|
||||
|
||||
elm_layout_content_unset(ss->ephoto->layout, "ephoto.swallow.controls");
|
||||
evas_object_del(ss->notify);
|
||||
elm_layout_content_set(ss->ephoto->layout, "ephoto.swallow.controls",
|
||||
ss->ephoto->statusbar);
|
||||
|
||||
slideshow_item = elm_slideshow_item_current_get(ss->slideshow);
|
||||
if (slideshow_item)
|
||||
entry = elm_object_item_data_get(slideshow_item);
|
||||
|
@ -88,7 +92,6 @@ _back(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|||
}
|
||||
evas_object_smart_callback_call(ss->slideshow, "back", entry);
|
||||
elm_slideshow_clear(ss->slideshow);
|
||||
evas_object_hide(ss->notify);
|
||||
ss->playing = 0;
|
||||
evas_object_freeze_events_set(ss->slideshow, EINA_TRUE);
|
||||
}
|
||||
|
@ -110,23 +113,25 @@ _pause(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|||
{
|
||||
Ephoto_Slideshow *ss = data;
|
||||
|
||||
elm_object_item_del(ss->pause);
|
||||
evas_object_del(ss->pause);
|
||||
|
||||
if (ss->playing)
|
||||
{
|
||||
elm_slideshow_timeout_set(ss->slideshow, 0.0);
|
||||
ss->pause =
|
||||
elm_toolbar_item_insert_before(ss->bar, ss->pause_after,
|
||||
"media-playback-start", _("Play"), _pause, ss);
|
||||
_add_icon(ss->notify, "media-playback-start", _("Play"),
|
||||
ss->pause_after);
|
||||
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
|
||||
ss->playing = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_slideshow_timeout_set(ss->slideshow,
|
||||
ss->ephoto->config->slideshow_timeout);
|
||||
ss->pause =
|
||||
elm_toolbar_item_insert_before(ss->bar, ss->pause_after,
|
||||
"media-playback-pause", _("Pause"), _pause, ss);
|
||||
ss->pause =
|
||||
_add_icon(ss->notify, "media-playback-pause", _("Pause"),
|
||||
ss->pause_after);
|
||||
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
|
||||
ss->playing = 1;
|
||||
}
|
||||
}
|
||||
|
@ -152,20 +157,24 @@ _fullscreen(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
{
|
||||
Ephoto_Slideshow *ss = data;
|
||||
|
||||
elm_object_item_del(ss->fullscreen);
|
||||
evas_object_del(ss->fullscreen);
|
||||
|
||||
if (elm_win_fullscreen_get(ss->ephoto->win))
|
||||
{
|
||||
ss->fullscreen =
|
||||
elm_toolbar_item_insert_before(ss->bar, ss->fullscreen_after,
|
||||
"view-fullscreen", _("Fullscreen"), _fullscreen, ss);
|
||||
_add_icon(ss->notify, "view-fullscreen", _("Fullscreen"),
|
||||
ss->fullscreen_after);
|
||||
evas_object_smart_callback_add(ss->fullscreen, "clicked",
|
||||
_fullscreen, ss);
|
||||
elm_win_fullscreen_set(ss->ephoto->win, EINA_FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ss->fullscreen =
|
||||
elm_toolbar_item_insert_before(ss->bar, ss->fullscreen_after,
|
||||
"view-restore", _("Normal"), _fullscreen, ss);
|
||||
_add_icon(ss->notify, "view-restore", _("Normal"),
|
||||
ss->fullscreen_after);
|
||||
evas_object_smart_callback_add(ss->fullscreen, "clicked",
|
||||
_fullscreen, ss);
|
||||
elm_win_fullscreen_set(ss->ephoto->win, EINA_TRUE);
|
||||
}
|
||||
}
|
||||
|
@ -179,21 +188,6 @@ _settings(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
ephoto_config_main(ss->ephoto);
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
elm_notify_timeout_set(data, 0.0);
|
||||
evas_object_show(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
elm_notify_timeout_set(data, 3.0);
|
||||
}
|
||||
|
||||
static void
|
||||
_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info)
|
||||
|
@ -251,6 +245,75 @@ _main_focused(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
}
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_add_icon(Evas_Object *parent, const char *icon, const char *label, Evas_Object *before)
|
||||
{
|
||||
Evas_Object *ic, *but;
|
||||
int ret;
|
||||
|
||||
ic = elm_icon_add(parent);
|
||||
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
|
||||
20*elm_config_scale_get());
|
||||
elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
ret = elm_icon_standard_set(ic, icon);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
but = elm_button_add(parent);
|
||||
if (!ret)
|
||||
elm_object_text_set(but, label);
|
||||
else
|
||||
{
|
||||
elm_object_part_content_set(but, "icon", ic);
|
||||
elm_object_tooltip_text_set(but, label);
|
||||
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
|
||||
}
|
||||
if (before)
|
||||
elm_box_pack_before(parent, but, before);
|
||||
else
|
||||
elm_box_pack_end(parent, but);
|
||||
evas_object_show(but);
|
||||
|
||||
return but;
|
||||
}
|
||||
|
||||
void
|
||||
ephoto_slideshow_show_controls(Ephoto *ephoto)
|
||||
{
|
||||
Ephoto_Slideshow *ss = evas_object_data_get(ephoto->slideshow, "slideshow");
|
||||
Evas_Object *but;
|
||||
|
||||
elm_layout_content_unset(ephoto->layout, "ephoto.swallow.controls");
|
||||
evas_object_hide(ephoto->statusbar);
|
||||
|
||||
ss->notify = elm_box_add(ephoto->win);
|
||||
elm_box_horizontal_set(ss->notify, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(ss->notify, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_fill_set(ss->notify, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
but = _add_icon(ss->notify, "window-close", _("Back"), NULL);
|
||||
evas_object_smart_callback_add(but, "clicked", _back, ss);
|
||||
but = _add_icon(ss->notify, "go-first", _("First"), NULL);
|
||||
evas_object_smart_callback_add(but, "clicked", _first, ss->slideshow);
|
||||
but = _add_icon(ss->notify, "go-previous", _("Previous"), NULL);
|
||||
evas_object_smart_callback_add(but, "clicked", _previous, ss->slideshow);
|
||||
ss->pause =
|
||||
_add_icon(ss->notify, "media-playback-start", _("Play"), NULL);
|
||||
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
|
||||
ss->pause_after =
|
||||
_add_icon(ss->notify, "go-next", _("Next"), NULL);
|
||||
evas_object_smart_callback_add(ss->pause_after, "clicked", _next,
|
||||
ss->slideshow);
|
||||
but = _add_icon(ss->notify, "go-last", _("Last"), NULL);
|
||||
evas_object_smart_callback_add(but, "clicked", _last, ss->slideshow);
|
||||
ss->fullscreen =
|
||||
_add_icon(ss->notify, "view-fullscreen", _("Fullscreen"), NULL);
|
||||
evas_object_smart_callback_add(ss->fullscreen, "clicked", _fullscreen, ss);
|
||||
ss->fullscreen_after =
|
||||
_add_icon(ss->notify, "preferences-system", _("Settings"), NULL);
|
||||
evas_object_smart_callback_add(ss->fullscreen_after, "clicked", _settings, ss);
|
||||
|
||||
elm_layout_content_set(ephoto->layout, "ephoto.swallow.controls", ss->notify);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
ephoto_slideshow_add(Ephoto *ephoto, Evas_Object *parent)
|
||||
{
|
||||
|
@ -280,52 +343,6 @@ ephoto_slideshow_add(Ephoto *ephoto, Evas_Object *parent)
|
|||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(slideshow, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ss->notify = elm_notify_add(ephoto->win);
|
||||
elm_notify_align_set(ss->notify, 0.5, 1.0);
|
||||
evas_object_size_hint_weight_set(ss->notify, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
elm_notify_timeout_set(ss->notify, 3.0);
|
||||
evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_MOVE,
|
||||
_notify_show, ss->notify);
|
||||
elm_object_tree_focus_allow_set(ss->notify, EINA_FALSE);
|
||||
|
||||
ss->bar = elm_toolbar_add(ss->notify);
|
||||
elm_toolbar_horizontal_set(ss->bar, EINA_TRUE);
|
||||
elm_toolbar_homogeneous_set(ss->bar, EINA_TRUE);
|
||||
elm_toolbar_shrink_mode_set(ss->bar, ELM_TOOLBAR_SHRINK_NONE);
|
||||
elm_toolbar_select_mode_set(ss->bar, ELM_OBJECT_SELECT_MODE_NONE);
|
||||
elm_toolbar_icon_order_lookup_set(ss->bar, ELM_ICON_LOOKUP_FDO_THEME);
|
||||
evas_object_size_hint_weight_set(ss->bar, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(ss->bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_content_set(ss->notify, ss->bar);
|
||||
elm_object_tree_focus_allow_set(ss->bar, EINA_FALSE);
|
||||
evas_object_event_callback_add(ss->bar, EVAS_CALLBACK_MOUSE_IN, _mouse_in,
|
||||
ss->notify);
|
||||
evas_object_event_callback_add(ss->bar, EVAS_CALLBACK_MOUSE_OUT, _mouse_out,
|
||||
ss->notify);
|
||||
|
||||
elm_toolbar_item_append(ss->bar, "window-close", _("Back"), _back, ss);
|
||||
elm_toolbar_item_append(ss->bar, "go-first", _("First"), _first,
|
||||
ss->slideshow);
|
||||
elm_toolbar_item_append(ss->bar, "go-previous", _("Previous"), _previous,
|
||||
ss->slideshow);
|
||||
ss->pause =
|
||||
elm_toolbar_item_append(ss->bar, "media-playback-start", _("Play"),
|
||||
_pause, ss);
|
||||
ss->pause_after =
|
||||
elm_toolbar_item_append(ss->bar, "go-next", _("Next"), _next,
|
||||
ss->slideshow);
|
||||
elm_toolbar_item_append(ss->bar, "go-last", _("Last"),
|
||||
_last, ss->slideshow);
|
||||
ss->fullscreen =
|
||||
elm_toolbar_item_append(ss->bar, "view-fullscreen", _("Fullscreen"),
|
||||
_fullscreen, ss);
|
||||
ss->fullscreen_after =
|
||||
elm_toolbar_item_append(ss->bar, "preferences-system", _("Settings"),
|
||||
_settings, ss);
|
||||
|
||||
evas_object_show(ss->bar);
|
||||
|
||||
evas_object_freeze_events_set(ss->slideshow, EINA_TRUE);
|
||||
|
||||
return ss->slideshow;
|
||||
|
@ -418,26 +435,31 @@ ephoto_slideshow_entry_set(Evas_Object *obj, Ephoto_Entry *entry)
|
|||
|
||||
if (ss->pause)
|
||||
{
|
||||
elm_object_item_del(ss->pause);
|
||||
evas_object_del(ss->pause);
|
||||
ss->pause =
|
||||
elm_toolbar_item_insert_before(ss->bar, ss->pause_after,
|
||||
"media-playback-pause", _("Pause"), _pause, ss);
|
||||
_add_icon(ss->notify, "media-playback-pause", _("Pause"),
|
||||
ss->pause_after);
|
||||
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
|
||||
ss->playing = 1;
|
||||
}
|
||||
if (ss->fullscreen)
|
||||
{
|
||||
elm_object_item_del(ss->fullscreen);
|
||||
evas_object_del(ss->fullscreen);
|
||||
if (elm_win_fullscreen_get(ss->ephoto->win))
|
||||
{
|
||||
ss->fullscreen =
|
||||
elm_toolbar_item_insert_before(ss->bar, ss->fullscreen_after,
|
||||
"view-restore", _("Normal"), _fullscreen, ss);
|
||||
ss->fullscreen =
|
||||
_add_icon(ss->notify, "view-restore", _("Normal"),
|
||||
ss->fullscreen_after);
|
||||
evas_object_smart_callback_add(ss->fullscreen, "clicked",
|
||||
_fullscreen, ss);
|
||||
}
|
||||
else
|
||||
{
|
||||
ss->fullscreen =
|
||||
elm_toolbar_item_insert_before(ss->bar, ss->fullscreen_after,
|
||||
"view-fullscreen", _("Fullscreen"), _fullscreen, ss);
|
||||
ss->fullscreen =
|
||||
_add_icon(ss->notify, "view-fullscreen", _("Fullscreen"),
|
||||
ss->fullscreen_after);
|
||||
evas_object_smart_callback_add(ss->fullscreen, "clicked",
|
||||
_fullscreen, ss);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue