Ephoto: Ecrustify Formatting

This commit is contained in:
Stephen 'Okra' Houston 2017-08-30 09:01:07 -05:00
parent ab43168f90
commit a705f9a626
20 changed files with 3270 additions and 3180 deletions

View File

@ -30,50 +30,50 @@ elm_main(int argc, char **argv)
if (argc > 2)
{
printf("Too Many Arguments!\n");
_ephoto_display_usage();
r = 1;
goto end;
printf("Too Many Arguments!\n");
_ephoto_display_usage();
r = 1;
goto end;
}
else if (argc < 2)
{
Evas_Object *win = ephoto_window_add(NULL);
Evas_Object *win = ephoto_window_add(NULL);
if (!win)
{
r = 1;
goto end;
}
if (!win)
{
r = 1;
goto end;
}
}
else if (!strncmp(argv[1], "--help", 6))
{
_ephoto_display_usage();
r = 0;
goto end;
_ephoto_display_usage();
r = 0;
goto end;
}
else
{
char *real = ecore_file_realpath(argv[1]);
char *real = ecore_file_realpath(argv[1]);
if (!real)
{
printf("invalid file or directory: '%s'\n", argv[1]);
r = 1;
goto end;
}
Evas_Object *win = ephoto_window_add(real);
if (!real)
{
printf("invalid file or directory: '%s'\n", argv[1]);
r = 1;
goto end;
}
Evas_Object *win = ephoto_window_add(real);
free(real);
if (!win)
{
r = 1;
goto end;
}
free(real);
if (!win)
{
r = 1;
goto end;
}
}
elm_run();
end:
end:
e_thumb_shutdown();
efreet_mime_shutdown();
eio_shutdown();
@ -86,8 +86,8 @@ static void
_ephoto_display_usage(void)
{
printf("Ephoto Usage: \n" "ephoto --help : This page\n"
"ephoto filename : Specifies a file to open\n"
"ephoto dirname : Specifies a directory to open\n");
"ephoto filename : Specifies a file to open\n"
"ephoto dirname : Specifies a directory to open\n");
}
ELM_MAIN()

View File

@ -31,148 +31,148 @@
#if HAVE_GETTEXT && ENABLE_NLS
# include <libintl.h>
# define _(string) gettext (string)
# define _(string) gettext(string)
#else
# define _(string) (string)
# define _(string) (string)
# define ngettext(String1, String2, Var) Var == 1 ? String1 : String2
#endif
# define USE_IPC
/*local types*/
typedef struct _Ephoto_Config Ephoto_Config;
typedef struct _Ephoto Ephoto;
typedef struct _Ephoto_Entry Ephoto_Entry;
typedef struct _Ephoto_Config Ephoto_Config;
typedef struct _Ephoto Ephoto;
typedef struct _Ephoto_Entry Ephoto_Entry;
typedef struct _Ephoto_Event_Entry_Create Ephoto_Event_Entry_Create;
typedef enum _Ephoto_State Ephoto_State;
typedef enum _Ephoto_Orient Ephoto_Orient;
typedef enum _Ephoto_Sort Ephoto_Sort;
typedef enum _Ephoto_Ipc_Domain Ephoto_Ipc_Domain;
typedef enum _Ephoto_State Ephoto_State;
typedef enum _Ephoto_Orient Ephoto_Orient;
typedef enum _Ephoto_Sort Ephoto_Sort;
typedef enum _Ephoto_Ipc_Domain Ephoto_Ipc_Domain;
/*main window functions*/
Evas_Object *ephoto_window_add(const char *path);
void ephoto_title_set(Ephoto *ephoto, const char *title);
void ephoto_thumb_size_set(Ephoto *ephoto, int size);
void ephoto_title_set(Ephoto *ephoto, const char *title);
void ephoto_thumb_size_set(Ephoto *ephoto, int size);
Evas_Object *ephoto_thumb_add(Ephoto *ephoto, Evas_Object *parent,
Ephoto_Entry *entry);
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);
Ephoto_Entry *entry);
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);
void ephoto_config_save(Ephoto *em);
void ephoto_config_free(Ephoto *em);
void ephoto_config_main(Ephoto *em);
Eina_Bool ephoto_config_init(Ephoto *em);
void ephoto_config_save(Ephoto *em);
void ephoto_config_free(Ephoto *em);
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);
void ephoto_single_browser_path_pending_set(Evas_Object *obj,
const char *path);
void ephoto_single_browser_path_pending_unset(Evas_Object *obj);
void ephoto_single_browser_path_created(Evas_Object *obj, Ephoto_Entry *entry);
void ephoto_single_browser_image_data_update(Evas_Object *main,
Evas_Object *image, unsigned int *image_data, Evas_Coord w, Evas_Coord h);
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_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);
void ephoto_single_browser_path_pending_set(Evas_Object *obj,
const char *path);
void ephoto_single_browser_path_pending_unset(Evas_Object *obj);
void ephoto_single_browser_path_created(Evas_Object *obj, Ephoto_Entry *entry);
void ephoto_single_browser_image_data_update(Evas_Object *main,
Evas_Object *image, unsigned int *image_data, Evas_Coord w, Evas_Coord h);
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);
/* smart callbacks called: "back" - the user wants to go back to the previous
* screen. */
/*slideshow functions*/
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);
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_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);
void ephoto_thumb_browser_clear(Ephoto *ephoto);
void ephoto_thumb_browser_recalc(Ephoto *ephoto);
void ephoto_thumb_browser_dirs_only_set(Ephoto *ephoto, Eina_Bool dirs_only);
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);
void ephoto_thumb_browser_clear(Ephoto *ephoto);
void ephoto_thumb_browser_recalc(Ephoto *ephoto);
void ephoto_thumb_browser_dirs_only_set(Ephoto *ephoto, Eina_Bool dirs_only);
/* 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);
void ephoto_directory_browser_clear(Ephoto *ephoto);
void ephoto_directory_browser_initialize_structure(Ephoto *ephoto);
void ephoto_directory_browser_top_dir_set(Ephoto *ephoto, const char *dir);
void ephoto_directory_browser_clear(Ephoto *ephoto);
/*thumbnailing functions taken from enlightenment*/
int e_thumb_init(void);
int e_thumb_shutdown(void);
int e_thumb_init(void);
int e_thumb_shutdown(void);
Evas_Object *e_thumb_icon_add(Evas *evas, Eina_Bool aspect);
void e_thumb_icon_file_set(Evas_Object *obj, const char *file, const char *key);
void e_thumb_icon_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
void e_thumb_icon_begin(Evas_Object *obj);
void e_thumb_icon_end(Evas_Object *obj);
void e_thumb_icon_rethumb(Evas_Object *obj);
const char *e_thumb_sort_id_get(Evas_Object *obj);
void e_thumb_client_data(Ecore_Ipc_Event_Client_Data *e);
void e_thumb_client_del(Ecore_Ipc_Event_Client_Del *e);
int e_ipc_init(void);
int e_ipc_shutdown(void);
void e_thumb_icon_file_set(Evas_Object *obj, const char *file, const char *key);
void e_thumb_icon_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
void e_thumb_icon_begin(Evas_Object *obj);
void e_thumb_icon_end(Evas_Object *obj);
void e_thumb_icon_rethumb(Evas_Object *obj);
const char *e_thumb_sort_id_get(Evas_Object *obj);
void e_thumb_client_data(Ecore_Ipc_Event_Client_Data *e);
void e_thumb_client_del(Ecore_Ipc_Event_Client_Del *e);
int e_ipc_init(void);
int e_ipc_shutdown(void);
/*editing functions*/
Evas_Object *ephoto_editor_add(Ephoto *ephoto, Evas_Object *parent, const char *title,
const char *data_name, void *data);
void ephoto_editor_del(Evas_Object *obj, 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(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_red_eye_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_scale_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image, const char *file);
void ephoto_filter_blur(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_sharpen(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_dither(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_black_and_white(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_old_photo(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_painting(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_posterize(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_sketch(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_invert(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_edge(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_emboss(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_histogram_eq(Ephoto *ephoto, Evas_Object *image);
const char *data_name, void *data);
void ephoto_editor_del(Evas_Object *obj, 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(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_red_eye_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image);
void ephoto_scale_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image, const char *file);
void ephoto_filter_blur(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_sharpen(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_dither(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_black_and_white(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_old_photo(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_painting(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_posterize(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_sketch(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_invert(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_edge(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_emboss(Ephoto *ephoto, Evas_Object *image);
void ephoto_filter_histogram_eq(Ephoto *ephoto, Evas_Object *image);
/*file functions*/
void ephoto_file_save_image(Ephoto *ephoto, Ephoto_Entry *entry,
Evas_Object *image);
void ephoto_file_save_image_as(Ephoto *ephoto, Ephoto_Entry *entry,
Evas_Object *image);
void ephoto_file_upload_image(Ephoto *ephoto, Ephoto_Entry *entry);
void ephoto_file_new_dir(Ephoto *ephoto, const char *path);
void ephoto_file_rename(Ephoto *ephoto, const char *path);
void ephoto_file_move(Ephoto *ephoto, Eina_List *files, const char *path);
void ephoto_file_copy(Ephoto *ephoto, Eina_List *files, const char *path);
void ephoto_file_paste(Ephoto *ephoto, Eina_List *files, Eina_Bool copy,
const char *path);
void ephoto_file_delete(Ephoto *ephoto, Eina_List *files,
Eina_File_Type type);
void ephoto_file_empty_trash(Ephoto *ephoto, Eina_List *files);
void ephoto_file_save_image(Ephoto *ephoto, Ephoto_Entry *entry,
Evas_Object *image);
void ephoto_file_save_image_as(Ephoto *ephoto, Ephoto_Entry *entry,
Evas_Object *image);
void ephoto_file_upload_image(Ephoto *ephoto, Ephoto_Entry *entry);
void ephoto_file_new_dir(Ephoto *ephoto, const char *path);
void ephoto_file_rename(Ephoto *ephoto, const char *path);
void ephoto_file_move(Ephoto *ephoto, Eina_List *files, const char *path);
void ephoto_file_copy(Ephoto *ephoto, Eina_List *files, const char *path);
void ephoto_file_paste(Ephoto *ephoto, Eina_List *files, Eina_Bool copy,
const char *path);
void ephoto_file_delete(Ephoto *ephoto, Eina_List *files,
Eina_File_Type type);
void ephoto_file_empty_trash(Ephoto *ephoto, Eina_List *files);
/*data types and structures*/
@ -211,25 +211,25 @@ enum _Ephoto_Ipc_Domain
struct _Ephoto_Config
{
int config_version;
int thumb_size;
int thumb_gen_size;
int window_width;
int window_height;
double slideshow_timeout;
double left_size;
double right_size;
const char *directory;
const char *slideshow_transition;
const char *open;
Eina_Bool fsel_hide;
Eina_Bool prompts;
Eina_Bool drop;
Eina_Bool movess;
Eina_Bool smooth;
Eina_Bool firstrun;
Eina_Bool folders;
Eina_Bool thumbnail_aspect;
int config_version;
int thumb_size;
int thumb_gen_size;
int window_width;
int window_height;
double slideshow_timeout;
double left_size;
double right_size;
const char *directory;
const char *slideshow_transition;
const char *open;
Eina_Bool fsel_hide;
Eina_Bool prompts;
Eina_Bool drop;
Eina_Bool movess;
Eina_Bool smooth;
Eina_Bool firstrun;
Eina_Bool folders;
Eina_Bool thumbnail_aspect;
Evas_Object *slide_time;
Evas_Object *slide_trans;
Evas_Object *open_dir;
@ -245,47 +245,47 @@ struct _Ephoto_Config
struct _Ephoto
{
Evas_Object *win;
Evas_Object *main;
Evas_Object *layout;
Evas_Object *pager;
Evas_Object *statusbar;
Evas_Object *folders_button;
Evas_Object *folders_icon;
Evas_Object *view_button;
Evas_Object *controls_left;
Evas_Object *controls_right;
Evas_Object *infolabel;
Evas_Object *exit;
Evas_Object *win;
Evas_Object *main;
Evas_Object *layout;
Evas_Object *pager;
Evas_Object *statusbar;
Evas_Object *folders_button;
Evas_Object *folders_icon;
Evas_Object *view_button;
Evas_Object *controls_left;
Evas_Object *controls_right;
Evas_Object *infolabel;
Evas_Object *exit;
Evas_Object *thumb_browser;
Evas_Object *single_browser;
Evas_Object *slideshow;
Evas_Object *dir_browser;
Evas_Object *file_popup;
Evas_Object *thumb_browser;
Evas_Object *single_browser;
Evas_Object *slideshow;
Evas_Object *dir_browser;
Evas_Object *file_popup;
Eina_Bool folders_toggle;
Eina_List *entries;
Eina_List *selentries;
Eina_List *searchentries;
Eina_List *thumbs;
Eina_Bool folders_toggle;
Eina_List *entries;
Eina_List *selentries;
Eina_List *searchentries;
Eina_List *thumbs;
Eio_Monitor *monitor;
Eina_List *monitor_handlers;
Eina_List *file_pos;
Eina_List *upload_handlers;
Ecore_Thread *file_thread;
Eio_Monitor *monitor;
Eina_List *monitor_handlers;
Eina_List *file_pos;
Eina_List *upload_handlers;
Ecore_Thread *file_thread;
Ecore_Con_Url *url_up;
char *url_ret;
char *upload_error;
int file_errors;
char *url_ret;
char *upload_error;
int file_errors;
const char *top_directory;
const char *config_path;
const char *trash_path;
const char *destination;
const char *top_directory;
const char *config_path;
const char *trash_path;
const char *destination;
int thumb_gen_size;
int thumb_gen_size;
struct
{
@ -296,34 +296,34 @@ struct _Ephoto
Ecore_Job *change_dir;
} job;
Eio_File *ls;
Eio_File *ls;
Evas_Object *prefs_win;
Ephoto_State state, prev_state;
Evas_Object *prefs_win;
Ephoto_State state, prev_state;
Ephoto_Config *config;
Ephoto_Sort sort;
Ephoto_Sort sort;
};
struct _Ephoto_Entry
{
const char *path;
const char *basename;
const char *label;
const char *sort_id;
double size;
Ephoto *ephoto;
Eio_Monitor *monitor;
Eina_List *monitor_handlers;
const char *path;
const char *basename;
const char *label;
const char *sort_id;
double size;
Ephoto *ephoto;
Eio_Monitor *monitor;
Eina_List *monitor_handlers;
Elm_Object_Item *item;
Elm_Object_Item *parent;
Eina_List *free_listeners;
Eina_Bool is_dir;
Eina_Bool is_link;
Eina_Bool no_delete;
Evas_Object *genlist;
Evas_Object *gengrid;
Evas_Object *thumb;
Eina_List *free_listeners;
Eina_Bool is_dir;
Eina_Bool is_link;
Eina_Bool no_delete;
Evas_Object *genlist;
Evas_Object *gengrid;
Evas_Object *thumb;
};
struct _Ephoto_Event_Entry_Create
@ -333,15 +333,15 @@ struct _Ephoto_Event_Entry_Create
/*ephoto file functions*/
Ephoto_Entry *ephoto_entry_new(Ephoto *ephoto, const char *path,
const char *label, Eina_File_Type type);
Eina_Bool ephoto_entry_exists(Ephoto *ephoto, const char *path);
void ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry);
void ephoto_entry_free_listener_add(Ephoto_Entry *entry,
void (*cb) (void *data, const Ephoto_Entry *entry), const void *data);
void ephoto_entry_free_listener_del(Ephoto_Entry *entry,
void (*cb) (void *data, const Ephoto_Entry *entry), const void *data);
void ephoto_entries_free(Ephoto *ephoto);
int ephoto_entries_cmp(const void *pa, const void *pb);
const char *label, Eina_File_Type type);
Eina_Bool ephoto_entry_exists(Ephoto *ephoto, const char *path);
void ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry);
void ephoto_entry_free_listener_add(Ephoto_Entry *entry,
void (*cb)(void *data, const Ephoto_Entry *entry), const void *data);
void ephoto_entry_free_listener_del(Ephoto_Entry *entry,
void (*cb)(void *data, const Ephoto_Entry *entry), const void *data);
void ephoto_entries_free(Ephoto *ephoto);
int ephoto_entries_cmp(const void *pa, const void *pb);
/*check if image can be loaded*/
static inline Eina_Bool
@ -361,20 +361,20 @@ _ephoto_eina_file_direct_info_image_useful(const Eina_File_Direct_Info *info)
bname = info->path + info->name_start;
if (bname[0] == '.')
return EINA_FALSE;
return EINA_FALSE;
if ((info->type != EINA_FILE_REG) && (info->type != EINA_FILE_UNKNOWN) &&
(info->type != EINA_FILE_LNK))
return EINA_FALSE;
return EINA_FALSE;
type = strrchr(bname, '.');
if (!type)
return EINA_FALSE;
return EINA_FALSE;
count = sizeof(filters) / sizeof(filters[0]);
for (i = 0; i < count; i++)
{
if (!strcasecmp(type + 1, filters[i]))
return evas_object_image_extension_can_load_get(bname);
if (!strcasecmp(type + 1, filters[i]))
return evas_object_image_extension_can_load_get(bname);
}
return EINA_FALSE;
}
@ -393,7 +393,7 @@ _ephoto_file_image_can_save(const char *ext)
for (i = 0; i < count; i++)
{
if (!strcasecmp(ext, filters[i]))
return EINA_TRUE;
return EINA_TRUE;
}
return EINA_FALSE;
}
@ -408,7 +408,7 @@ ephoto_normalize_color(int color)
static inline int
ephoto_mul_color_alpha(int color, int alpha)
{
return (alpha > 0 && alpha <= 255) ? (color * (255 /alpha)) : color;
return (alpha > 0 && alpha <= 255) ? (color * (255 / alpha)) : color;
}
static inline int
@ -427,15 +427,14 @@ extern int EPHOTO_EVENT_EDITOR_APPLY;
extern int EPHOTO_EVENT_EDITOR_CANCEL;
extern int EPHOTO_EVENT_EDITOR_BACK;
#define CRIT(...) EINA_LOG_CRIT(__VA_ARGS__)
#define ERR(...) EINA_LOG_ERR(__VA_ARGS__)
#define WRN(...) EINA_LOG_WARN(__VA_ARGS__)
#define INF(...) EINA_LOG_INFO(__VA_ARGS__)
#define DBG(...) EINA_LOG_DBG(__VA_ARGS__)
#define CRIT(...) EINA_LOG_CRIT(__VA_ARGS__)
#define ERR(...) EINA_LOG_ERR(__VA_ARGS__)
#define WRN(...) EINA_LOG_WARN(__VA_ARGS__)
#define INF(...) EINA_LOG_INFO(__VA_ARGS__)
#define DBG(...) EINA_LOG_DBG(__VA_ARGS__)
#define EPHOTO_WEIGHT evas_object_size_hint_weight_set
#define EPHOTO_ALIGN evas_object_size_hint_align_set
#define EPHOTO_ALIGN evas_object_size_hint_align_set
#define EPHOTO_EXPAND(X) EPHOTO_WEIGHT((X), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND)
#define EPHOTO_FILL(X) EPHOTO_ALIGN((X), EVAS_HINT_FILL, EVAS_HINT_FILL)
#define EPHOTO_FILL(X) EPHOTO_ALIGN((X), EVAS_HINT_FILL, EVAS_HINT_FILL)
#endif

View File

@ -3,24 +3,24 @@
typedef struct _Ephoto_BCG Ephoto_BCG;
struct _Ephoto_BCG
{
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *bslider;
Evas_Object *cslider;
Evas_Object *gslider;
Eina_List *handlers;
int contrast;
int brightness;
double gamma;
Evas_Coord w, h;
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *bslider;
Evas_Object *cslider;
Evas_Object *gslider;
Eina_List *handlers;
int contrast;
int brightness;
double gamma;
Evas_Coord w, h;
unsigned int *original_im_data;
};
unsigned int *
_ephoto_bcg_adjust_brightness(Ephoto_BCG *ebcg, int brightness,
unsigned int *image_data)
unsigned int *image_data)
{
unsigned int *im_data, *im_data_new, *p1, *p2;
Evas_Coord x, y;
@ -28,50 +28,50 @@ _ephoto_bcg_adjust_brightness(Ephoto_BCG *ebcg, int brightness,
im_data = malloc(sizeof(unsigned int) * ebcg->w * ebcg->h);
if (image_data)
memcpy(im_data, image_data, sizeof(unsigned int) * ebcg->w * ebcg->h);
memcpy(im_data, image_data, sizeof(unsigned int) * ebcg->w * ebcg->h);
else
memcpy(im_data, ebcg->original_im_data,
sizeof(unsigned int) * ebcg->w * ebcg->h);
memcpy(im_data, ebcg->original_im_data,
sizeof(unsigned int) * ebcg->w * ebcg->h);
ebcg->brightness = brightness;
im_data_new = malloc(sizeof(unsigned int) * ebcg->w * ebcg->h);
for (y = 0; y < ebcg->h; y++)
{
p1 = im_data + (y * ebcg->w);
p2 = im_data_new + (y * ebcg->w);
for (x = 0; x < ebcg->w; x++)
{
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
bb = (int) b + ebcg->brightness;
gg = (int) g + ebcg->brightness;
rr = (int) r + ebcg->brightness;
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
p1 = im_data + (y * ebcg->w);
p2 = im_data_new + (y * ebcg->w);
for (x = 0; x < ebcg->w; x++)
{
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
bb = (int)b + ebcg->brightness;
gg = (int)g + ebcg->brightness;
rr = (int)r + ebcg->brightness;
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
}
ephoto_single_browser_image_data_update(ebcg->main, ebcg->image,
im_data_new, ebcg->w, ebcg->h);
im_data_new, ebcg->w, ebcg->h);
free(im_data);
return im_data_new;
}
unsigned int *
_ephoto_bcg_adjust_contrast(Ephoto_BCG *ebcg, int contrast,
unsigned int *image_data)
unsigned int *image_data)
{
unsigned int *im_data, *im_data_new, *p1, *p2;
Evas_Coord x, y;
@ -80,53 +80,53 @@ _ephoto_bcg_adjust_contrast(Ephoto_BCG *ebcg, int contrast,
im_data = malloc(sizeof(unsigned int) * ebcg->w * ebcg->h);
if (image_data)
memcpy(im_data, image_data, sizeof(unsigned int) * ebcg->w * ebcg->h);
memcpy(im_data, image_data, sizeof(unsigned int) * ebcg->w * ebcg->h);
else
memcpy(im_data, ebcg->original_im_data,
sizeof(unsigned int) * ebcg->w * ebcg->h);
memcpy(im_data, ebcg->original_im_data,
sizeof(unsigned int) * ebcg->w * ebcg->h);
ebcg->contrast = contrast;
top = ((255 + (contrast)) * 259);
bottom = ((259 - (contrast)) * 255);
factor = (float) top / (float) bottom;
factor = (float)top / (float)bottom;
im_data_new = malloc(sizeof(unsigned int) * ebcg->w * ebcg->h);
for (y = 0; y < ebcg->h; y++)
{
p1 = im_data + (y * ebcg->w);
p2 = im_data_new + (y * ebcg->w);
for (x = 0; x < ebcg->w; x++)
{
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
bb = (int) ((factor * (b - 128)) + 128);
gg = (int) ((factor * (g - 128)) + 128);
rr = (int) ((factor * (r - 128)) + 128);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
p1 = im_data + (y * ebcg->w);
p2 = im_data_new + (y * ebcg->w);
for (x = 0; x < ebcg->w; x++)
{
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
bb = (int)((factor * (b - 128)) + 128);
gg = (int)((factor * (g - 128)) + 128);
rr = (int)((factor * (r - 128)) + 128);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
}
ephoto_single_browser_image_data_update(ebcg->main, ebcg->image,
im_data_new, ebcg->w, ebcg->h);
im_data_new, ebcg->w, ebcg->h);
free(im_data);
return im_data_new;
}
unsigned int *
_ephoto_bcg_adjust_gamma(Ephoto_BCG *ebcg, double gamma,
unsigned int *image_data)
unsigned int *image_data)
{
unsigned int *im_data, *im_data_new, *p1, *p2;
Evas_Coord x, y;
@ -134,50 +134,50 @@ _ephoto_bcg_adjust_gamma(Ephoto_BCG *ebcg, double gamma,
im_data = malloc(sizeof(unsigned int) * ebcg->w * ebcg->h);
if (image_data)
memcpy(im_data, image_data, sizeof(unsigned int) * ebcg->w * ebcg->h);
memcpy(im_data, image_data, sizeof(unsigned int) * ebcg->w * ebcg->h);
else
memcpy(im_data, ebcg->original_im_data,
sizeof(unsigned int) * ebcg->w * ebcg->h);
memcpy(im_data, ebcg->original_im_data,
sizeof(unsigned int) * ebcg->w * ebcg->h);
ebcg->gamma = 1 / gamma;
im_data_new = malloc(sizeof(unsigned int) * ebcg->w * ebcg->h);
for (y = 0; y < ebcg->h; y++)
{
p1 = im_data + (y * ebcg->w);
p2 = im_data_new + (y * ebcg->w);
for (x = 0; x < ebcg->w; x++)
{
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
bb = (int) (pow(((double) b / 255), ebcg->gamma) * 255);
gg = (int) (pow(((double) g / 255), ebcg->gamma) * 255);
rr = (int) (pow(((double) r / 255), ebcg->gamma) * 255);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
p1 = im_data + (y * ebcg->w);
p2 = im_data_new + (y * ebcg->w);
for (x = 0; x < ebcg->w; x++)
{
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
bb = (int)(pow(((double)b / 255), ebcg->gamma) * 255);
gg = (int)(pow(((double)g / 255), ebcg->gamma) * 255);
rr = (int)(pow(((double)r / 255), ebcg->gamma) * 255);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
}
ephoto_single_browser_image_data_update(ebcg->main, ebcg->image,
im_data_new, ebcg->w, ebcg->h);
im_data_new, ebcg->w, ebcg->h);
free(im_data);
return im_data_new;
}
static void
_brightness_slider_changed(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_BCG *ebcg = data;
int brightness;
@ -186,13 +186,13 @@ _brightness_slider_changed(void *data, Evas_Object *obj,
brightness = elm_slider_value_get(obj);
image_data = _ephoto_bcg_adjust_brightness(ebcg, brightness, NULL);
image_data_two =
_ephoto_bcg_adjust_contrast(ebcg, ebcg->contrast, image_data);
_ephoto_bcg_adjust_contrast(ebcg, ebcg->contrast, image_data);
_ephoto_bcg_adjust_gamma(ebcg, ebcg->gamma, image_data_two);
}
static void
_contrast_slider_changed(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_BCG *ebcg = data;
int contrast;
@ -201,13 +201,13 @@ _contrast_slider_changed(void *data, Evas_Object *obj,
contrast = elm_slider_value_get(obj);
image_data = _ephoto_bcg_adjust_contrast(ebcg, contrast, NULL);
image_data_two =
_ephoto_bcg_adjust_brightness(ebcg, ebcg->brightness, image_data);
_ephoto_bcg_adjust_brightness(ebcg, ebcg->brightness, image_data);
_ephoto_bcg_adjust_gamma(ebcg, ebcg->gamma, image_data_two);
}
static void
_gamma_slider_changed(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_BCG *ebcg = data;
double gamma;
@ -216,13 +216,13 @@ _gamma_slider_changed(void *data, Evas_Object *obj,
gamma = elm_slider_value_get(obj);
image_data = _ephoto_bcg_adjust_gamma(ebcg, gamma, NULL);
image_data_two =
_ephoto_bcg_adjust_brightness(ebcg, ebcg->brightness, image_data);
_ephoto_bcg_adjust_brightness(ebcg, ebcg->brightness, image_data);
_ephoto_bcg_adjust_contrast(ebcg, ebcg->contrast, image_data_two);
}
static Eina_Bool
_bcg_reset(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_BCG *ebcg = data;
@ -239,7 +239,7 @@ _bcg_reset(void *data, int type EINA_UNUSED,
static Eina_Bool
_bcg_apply(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_BCG *ebcg = data;
unsigned int *image_data;
@ -254,7 +254,7 @@ _bcg_apply(void *data, int type EINA_UNUSED,
else
{
image_data =
evas_object_image_data_get(ebcg->image, EINA_FALSE);
evas_object_image_data_get(ebcg->image, EINA_FALSE);
evas_object_image_size_get(ebcg->image, &w, &h);
ephoto_single_browser_image_data_done(ebcg->main, image_data, w, h);
}
@ -265,7 +265,7 @@ _bcg_apply(void *data, int type EINA_UNUSED,
static Eina_Bool
_bcg_cancel(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_BCG *ebcg = data;
@ -284,7 +284,7 @@ _bcg_cancel(void *data, int type EINA_UNUSED,
static void
_editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_BCG *ebcg = data;
Ecore_Event_Handler *handler;
@ -314,18 +314,18 @@ ephoto_bcg_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
ebcg->parent = parent;
ebcg->image = image;
im_data =
evas_object_image_data_get(ebcg->image,
EINA_FALSE);
evas_object_image_data_get(ebcg->image,
EINA_FALSE);
evas_object_image_size_get(ebcg->image, &ebcg->w,
&ebcg->h);
&ebcg->h);
ebcg->original_im_data = malloc(sizeof(unsigned int) * ebcg->w * ebcg->h);
memcpy(ebcg->original_im_data, im_data,
sizeof(unsigned int) * ebcg->w * ebcg->h);
sizeof(unsigned int) * ebcg->w * ebcg->h);
ebcg->editor = ephoto_editor_add(ephoto, parent, _("Brightness/Contrast/Gamma"),
"ebcg", ebcg);
"ebcg", ebcg);
evas_object_event_callback_add(ebcg->editor, EVAS_CALLBACK_DEL, _editor_del,
ebcg);
ebcg);
slider = elm_slider_add(ebcg->editor);
elm_object_text_set(slider, _("Gamma"));
@ -337,7 +337,7 @@ ephoto_bcg_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_gamma_slider_changed, ebcg);
_gamma_slider_changed, ebcg);
elm_box_pack_start(ebcg->editor, slider);
evas_object_show(slider);
ebcg->gslider = slider;
@ -352,7 +352,7 @@ ephoto_bcg_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_contrast_slider_changed, ebcg);
_contrast_slider_changed, ebcg);
elm_box_pack_start(ebcg->editor, slider);
evas_object_show(slider);
ebcg->cslider = slider;
@ -367,26 +367,27 @@ ephoto_bcg_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_brightness_slider_changed, ebcg);
_brightness_slider_changed, ebcg);
elm_box_pack_start(ebcg->editor, slider);
evas_object_show(slider);
ebcg->bslider = slider;
ebcg->handlers =
eina_list_append(ebcg->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_bcg_reset, ebcg));
eina_list_append(ebcg->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_bcg_reset, ebcg));
ebcg->handlers =
eina_list_append(ebcg->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_bcg_apply, ebcg));
eina_list_append(ebcg->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_bcg_apply, ebcg));
ebcg->handlers =
eina_list_append(ebcg->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_bcg_cancel, ebcg));
eina_list_append(ebcg->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_bcg_cancel, ebcg));
return;
error:
error:
return;
}

View File

@ -3,18 +3,18 @@
typedef struct _Ephoto_Color Ephoto_Color;
struct _Ephoto_Color
{
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *bslider;
Evas_Object *gslider;
Evas_Object *rslider;
Eina_List *handlers;
int blue;
int green;
int red;
Evas_Coord w, h;
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *bslider;
Evas_Object *gslider;
Evas_Object *rslider;
Eina_List *handlers;
int blue;
int green;
int red;
Evas_Coord w, h;
unsigned int *original_im_data;
};
@ -35,10 +35,10 @@ _ephoto_apply_color_adjustment(Ephoto_Color *eco, unsigned int *image_data, int
im_data = malloc(sizeof(unsigned int) * eco->w * eco->h);
if (image_data)
memcpy(im_data, image_data, sizeof(unsigned int) * eco->w * eco->h);
memcpy(im_data, image_data, sizeof(unsigned int) * eco->w * eco->h);
else
memcpy(im_data, eco->original_im_data,
sizeof(unsigned int) * eco->w * eco->h);
memcpy(im_data, eco->original_im_data,
sizeof(unsigned int) * eco->w * eco->h);
im_data_new = malloc(sizeof(unsigned int) * eco->w * eco->h);
@ -48,32 +48,35 @@ _ephoto_apply_color_adjustment(Ephoto_Color *eco, unsigned int *image_data, int
p2 = im_data_new + (y * eco->w);
for (x = 0; x < eco->w; x++)
{
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
switch (color)
{
case EPHOTO_COLOR_ADJUST_RED:
eco->red = adjust;
cc = (int) r + eco->red;
r = cc;
break;
case EPHOTO_COLOR_ADJUST_BLUE:
eco->blue = adjust;
cc = (int) b + eco->blue;
b = cc;
break;
case EPHOTO_COLOR_ADJUST_GREEN:
eco->green = adjust;
cc = (int) g + eco->green;
g = cc;
break;
default:
break;
case EPHOTO_COLOR_ADJUST_RED:
eco->red = adjust;
cc = (int)r + eco->red;
r = cc;
break;
case EPHOTO_COLOR_ADJUST_BLUE:
eco->blue = adjust;
cc = (int)b + eco->blue;
b = cc;
break;
case EPHOTO_COLOR_ADJUST_GREEN:
eco->green = adjust;
cc = (int)g + eco->green;
g = cc;
break;
default:
break;
}
b = ephoto_normalize_color(b);
g = ephoto_normalize_color(g);
@ -87,7 +90,7 @@ _ephoto_apply_color_adjustment(Ephoto_Color *eco, unsigned int *image_data, int
}
}
ephoto_single_browser_image_data_update(eco->main, eco->image,
im_data_new, eco->w, eco->h);
im_data_new, eco->w, eco->h);
free(im_data);
return im_data_new;
}
@ -107,7 +110,7 @@ _red_slider_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
static void
_green_slider_changed(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Color *eco = data;
int green;
@ -121,7 +124,7 @@ _green_slider_changed(void *data, Evas_Object *obj,
static void
_blue_slider_changed(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Color *eco = data;
int blue;
@ -135,7 +138,7 @@ _blue_slider_changed(void *data, Evas_Object *obj,
static Eina_Bool
_color_reset(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Color *eco = data;
@ -152,7 +155,7 @@ _color_reset(void *data, int type EINA_UNUSED,
static Eina_Bool
_color_apply(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Color *eco = data;
unsigned int *image_data;
@ -167,7 +170,7 @@ _color_apply(void *data, int type EINA_UNUSED,
else
{
image_data =
evas_object_image_data_get(eco->image, EINA_FALSE);
evas_object_image_data_get(eco->image, EINA_FALSE);
evas_object_image_size_get(eco->image, &w, &h);
ephoto_single_browser_image_data_done(eco->main, image_data, w, h);
}
@ -178,7 +181,7 @@ _color_apply(void *data, int type EINA_UNUSED,
static Eina_Bool
_color_cancel(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Color *eco = data;
@ -197,7 +200,7 @@ _color_cancel(void *data, int type EINA_UNUSED,
static void
_editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Color *eco = data;
Ecore_Event_Handler *handler;
@ -227,18 +230,18 @@ ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Ob
eco->parent = parent;
eco->image = image;
im_data =
evas_object_image_data_get(eco->image,
EINA_FALSE);
evas_object_image_data_get(eco->image,
EINA_FALSE);
evas_object_image_size_get(eco->image, &eco->w,
&eco->h);
&eco->h);
eco->original_im_data = malloc(sizeof(unsigned int) * eco->w * eco->h);
memcpy(eco->original_im_data, im_data,
sizeof(unsigned int) * eco->w * eco->h);
sizeof(unsigned int) * eco->w * eco->h);
eco->editor = ephoto_editor_add(ephoto, parent, _("Adjust Color Levels"),
"eco", eco);
"eco", eco);
evas_object_event_callback_add(eco->editor, EVAS_CALLBACK_DEL, _editor_del,
eco);
eco);
slider = elm_slider_add(eco->editor);
elm_object_text_set(slider, _("Blue"));
@ -250,7 +253,7 @@ ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Ob
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_blue_slider_changed, eco);
_blue_slider_changed, eco);
elm_box_pack_start(eco->editor, slider);
evas_object_show(slider);
eco->bslider = slider;
@ -265,7 +268,7 @@ ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Ob
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_green_slider_changed, eco);
_green_slider_changed, eco);
elm_box_pack_start(eco->editor, slider);
evas_object_show(slider);
eco->gslider = slider;
@ -280,26 +283,27 @@ ephoto_color_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Ob
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_red_slider_changed, eco);
_red_slider_changed, eco);
elm_box_pack_start(eco->editor, slider);
evas_object_show(slider);
eco->rslider = slider;
eco->handlers =
eina_list_append(eco->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_color_reset, eco));
eina_list_append(eco->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_color_reset, eco));
eco->handlers =
eina_list_append(eco->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_color_apply, eco));
eina_list_append(eco->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_color_apply, eco));
eco->handlers =
eina_list_append(eco->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_color_cancel, eco));
eina_list_append(eco->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_color_cancel, eco));
return;
error:
error:
return;
}

View File

@ -2,14 +2,14 @@
#define CONFIG_VERSION 21
static int _ephoto_config_load(Ephoto *ephoto);
static int _ephoto_config_load(Ephoto *ephoto);
static Eina_Bool _ephoto_on_config_save(void *data);
static Eet_Data_Descriptor *edd = NULL;
static void
_config_save_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Evas_Object *popup = data;
Ephoto *ephoto = evas_object_data_get(popup, "ephoto");
@ -17,18 +17,18 @@ _config_save_cb(void *data, Evas_Object *obj EINA_UNUSED,
const char *text = elm_object_text_get(ephoto->config->open_dir);
if (!strcmp(text, _("Root Directory")))
path = "/";
path = "/";
else if (!strcmp(text, _("Home Directory")))
path = eina_environment_home_get();
path = eina_environment_home_get();
else if (!strcmp(text, _("Last Open Directory")))
path = "Last";
path = "Last";
else
path = elm_object_text_get(ephoto->config->open_dir_custom);
path = elm_object_text_get(ephoto->config->open_dir_custom);
if (ecore_file_is_dir(path) || !strcmp(path, "Last"))
eina_stringshare_replace(&ephoto->config->open, path);
eina_stringshare_replace(&ephoto->config->open, path);
if (strcmp(path, ephoto->config->directory) && strcmp(path, "Last") &&
ecore_file_exists(path))
ecore_file_exists(path))
{
char *rp = ecore_file_realpath(path);
ephoto_directory_browser_clear(ephoto);
@ -52,11 +52,11 @@ _config_save_cb(void *data, Evas_Object *obj EINA_UNUSED,
}
if (elm_spinner_value_get(ephoto->config->slide_time) > 0)
ephoto->config->slideshow_timeout =
elm_spinner_value_get(ephoto->config->slide_time);
ephoto->config->slideshow_timeout =
elm_spinner_value_get(ephoto->config->slide_time);
if (elm_object_text_get(ephoto->config->slide_trans))
eina_stringshare_replace(&ephoto->config->slideshow_transition,
elm_object_text_get(ephoto->config->slide_trans));
eina_stringshare_replace(&ephoto->config->slideshow_transition,
elm_object_text_get(ephoto->config->slide_trans));
evas_object_del(popup);
elm_object_focus_set(ephoto->pager, EINA_TRUE);
@ -71,9 +71,9 @@ _open_hv_select(void *data, Evas_Object *obj, void *event_info)
elm_object_text_set(obj, elm_object_item_text_get(event_info));
if (!strcmp(elm_object_item_text_get(event_info), _("Custom Directory")))
elm_object_disabled_set(ephoto->config->open_dir_custom, EINA_FALSE);
elm_object_disabled_set(ephoto->config->open_dir_custom, EINA_FALSE);
else
elm_object_disabled_set(ephoto->config->open_dir_custom, EINA_TRUE);
elm_object_disabled_set(ephoto->config->open_dir_custom, EINA_TRUE);
}
static void
@ -156,13 +156,13 @@ _config_general(Ephoto *ephoto, Evas_Object *parent)
hoversel = elm_hoversel_add(table);
elm_hoversel_hover_parent_set(hoversel, ephoto->win);
elm_hoversel_item_add(hoversel, _("Root Directory"), NULL, 0,
_open_hv_select, ephoto);
_open_hv_select, ephoto);
elm_hoversel_item_add(hoversel, _("Home Directory"), NULL, 0,
_open_hv_select, ephoto);
_open_hv_select, ephoto);
elm_hoversel_item_add(hoversel, _("Last Open Directory"), NULL, 0,
_open_hv_select, ephoto);
_open_hv_select, ephoto);
elm_hoversel_item_add(hoversel, _("Custom Directory"), NULL, 0,
_open_hv_select, ephoto);
_open_hv_select, ephoto);
elm_object_text_set(hoversel, ephoto->config->open);
evas_object_data_set(hoversel, "ephoto", ephoto);
EPHOTO_WEIGHT(hoversel, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
@ -177,7 +177,7 @@ _config_general(Ephoto *ephoto, Evas_Object *parent)
elm_object_text_set(entry, _("Custom Directory"));
elm_object_disabled_set(entry, EINA_TRUE);
elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF,
ELM_SCROLLER_POLICY_OFF);
ELM_SCROLLER_POLICY_OFF);
EPHOTO_EXPAND(entry);
EPHOTO_FILL(entry);
elm_table_pack(table, entry, 0, 9, 1, 1);
@ -193,7 +193,7 @@ _hv_select(void *data EINA_UNUSED, Evas_Object *obj, void *event_info)
static void
_spinner_changed(void *data EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
double val;
char buf[PATH_MAX];
@ -281,13 +281,14 @@ _config_slideshow(Ephoto *ephoto, Evas_Object *parent)
evas_object_show(label);
transitions = _ephoto_transitions_list_get(edje_object_data_get(elm_layout_edje_get
(ephoto->slideshow), "transitions"));
(ephoto->slideshow), "transitions"));
hoversel = elm_hoversel_add(table);
elm_hoversel_hover_parent_set(hoversel, ephoto->win);
EINA_LIST_FOREACH(transitions, l,
transition) elm_hoversel_item_add(hoversel, transition, NULL, 0,
_hv_select, transition);
transition)
elm_hoversel_item_add(hoversel, transition, NULL, 0,
_hv_select, transition);
elm_hoversel_item_add(hoversel, "none", NULL, 0, _hv_select, NULL);
elm_object_text_set(hoversel, ephoto->config->slideshow_transition);
EPHOTO_EXPAND(hoversel);
@ -297,8 +298,6 @@ _config_slideshow(Ephoto *ephoto, Evas_Object *parent)
ephoto->config->slide_trans = hoversel;
}
static Evas_Object *
_config_settings(Ephoto *ephoto, Evas_Object *parent, Eina_Bool slideshow)
{
@ -330,7 +329,7 @@ _config_settings(Ephoto *ephoto, Evas_Object *parent, Eina_Bool slideshow)
static void
_link_anchor_bt(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
char buf[PATH_MAX];
Evas_Object *av = data;
@ -347,7 +346,7 @@ _link_anchor_bt(void *data, Evas_Object *obj,
static void
_copy_anchor_bt(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
char buf[PATH_MAX];
Evas_Object *av = data;
@ -356,7 +355,7 @@ _copy_anchor_bt(void *data, Evas_Object *obj,
elm_entry_anchor_hover_end(av);
snprintf(buf, PATH_MAX, "%s", link);
elm_cnp_selection_set(av, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_MARKUP,
buf, strlen(buf));
buf, strlen(buf));
}
static void
@ -370,7 +369,7 @@ _link_anchor(void *data, Evas_Object *obj, void *event_info)
elm_object_text_set(button, _("Open Link In Browser"));
elm_object_part_content_set(ei->hover, "middle", button);
evas_object_smart_callback_add(button, "clicked", _link_anchor_bt,
av);
av);
evas_object_data_set(button, "link", strdup(ei->anchor_info->name));
evas_object_show(button);
@ -378,7 +377,7 @@ _link_anchor(void *data, Evas_Object *obj, void *event_info)
elm_object_text_set(button, _("Copy Link"));
elm_object_part_content_set(ei->hover, "bottom", button);
evas_object_smart_callback_add(button, "clicked", _copy_anchor_bt,
av);
av);
evas_object_data_set(button, "link", strdup(ei->anchor_info->name));
evas_object_show(button);
}
@ -414,53 +413,53 @@ _config_bindings(Evas_Object *parent)
EPHOTO_WEIGHT(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
EPHOTO_FILL(entry);
eina_strbuf_append_printf(sbuf,
_("<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/>"
"<b>Ctrl+Shift+f:</b> Toggle File Selector<br/><br/>"
"<b><hilight>Thumbnail Browser Bindings</hilight></b><br/>"
"<b>Ctrl++:</b> Zoom In<br/>"
"<b>Ctrl+-:</b> Zoom Out<br/>"
"<b>Ctrl+Tab:</b> View Image<br/>"
"<b>Ctrl+c:</b> Copy Image<br/>"
"<b>Ctrl+x:</b> Cut Image<br/>"
"<b>Ctrl+v:</b> Paste Image<br/>"
"<b>Ctrl+a:</b> Select All<br/>"
"<b>Ctrl+f:</b> Toggle Search<br/>"
"<b>Ctrl+Delete:</b> Delete Image<br/>"
"<b>F2:</b> Rename Image<br/>"
"<b>Escape:</b> Clear Selection<br/><br/>"
"<b><hilight>Single Browser Bindings</hilight></b><br/>"
"<b>Ctrl+Shift+0:</b> Zoom 1:1<br/>"
"<b>Ctrl++:</b> Zoom In<br/>"
"<b>Ctrl+-:</b> Zoom Out<br/>"
"<b>Ctrl+0:</b> Zoom Fit<br/>"
"<b>Ctrl+Shift+l:</b> Rotate Counter Clockwise<br/>"
"<b>Ctrl+l:</b> Flip Horizontal<br/>"
"<b>Ctrl+Shift+r:</b> Rotate Clockwise<br/>"
"<b>Ctrl+r:</b> Flip Vertical<br/>"
"<b>Ctrl+Shift+s:</b> Save Image As<br/>"
"<b>Ctrl+s:</b> Save Image<br/>"
"<b>Ctrl+u:</b> Reset Image<br/>"
"<b>Ctrl+y:</b> Redo<br/>"
"<b>Ctrl+Shift+z:</b> Redo<br/>"
"<b>Ctrl+z:</b> Undo<br/>"
"<b>Home:</b> Navigate First<br/>"
"<b>Left Arrow:</b> Navigate Previous<br/>"
"<b>Right Arrow:</b> Navigate Next<br/>"
"<b>Space:</b> Navigate Next<br/>"
"<b>End:</b> Navigate Last<br/>"
"<b>Ctrl+Delete:</b> Delete Image<br/>"
"<b>F2</b> Rename Image<br/>"
"<b>Escape:</b> Return to Thumbnail Browser<br/><br/>"
"<b><hilight>Slideshow Bindings</hilight></b><br/>"
"<b>Space:</b> Play/Pause Slideshow<br/>"
"<b>Home:</b> Navigate First<br/>"
"<b>Left Arrow:</b> Navigate Previous<br/>"
"<b>Right Arrow:</b> Navigate Next<br/>"
"<b>End:</b> Navigate Last<br/>"
"<b>Escape:</b> Quit Slideshow<br/>"));
_("<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/>"
"<b>Ctrl+Shift+f:</b> Toggle File Selector<br/><br/>"
"<b><hilight>Thumbnail Browser Bindings</hilight></b><br/>"
"<b>Ctrl++:</b> Zoom In<br/>"
"<b>Ctrl+-:</b> Zoom Out<br/>"
"<b>Ctrl+Tab:</b> View Image<br/>"
"<b>Ctrl+c:</b> Copy Image<br/>"
"<b>Ctrl+x:</b> Cut Image<br/>"
"<b>Ctrl+v:</b> Paste Image<br/>"
"<b>Ctrl+a:</b> Select All<br/>"
"<b>Ctrl+f:</b> Toggle Search<br/>"
"<b>Ctrl+Delete:</b> Delete Image<br/>"
"<b>F2:</b> Rename Image<br/>"
"<b>Escape:</b> Clear Selection<br/><br/>"
"<b><hilight>Single Browser Bindings</hilight></b><br/>"
"<b>Ctrl+Shift+0:</b> Zoom 1:1<br/>"
"<b>Ctrl++:</b> Zoom In<br/>"
"<b>Ctrl+-:</b> Zoom Out<br/>"
"<b>Ctrl+0:</b> Zoom Fit<br/>"
"<b>Ctrl+Shift+l:</b> Rotate Counter Clockwise<br/>"
"<b>Ctrl+l:</b> Flip Horizontal<br/>"
"<b>Ctrl+Shift+r:</b> Rotate Clockwise<br/>"
"<b>Ctrl+r:</b> Flip Vertical<br/>"
"<b>Ctrl+Shift+s:</b> Save Image As<br/>"
"<b>Ctrl+s:</b> Save Image<br/>"
"<b>Ctrl+u:</b> Reset Image<br/>"
"<b>Ctrl+y:</b> Redo<br/>"
"<b>Ctrl+Shift+z:</b> Redo<br/>"
"<b>Ctrl+z:</b> Undo<br/>"
"<b>Home:</b> Navigate First<br/>"
"<b>Left Arrow:</b> Navigate Previous<br/>"
"<b>Right Arrow:</b> Navigate Next<br/>"
"<b>Space:</b> Navigate Next<br/>"
"<b>End:</b> Navigate Last<br/>"
"<b>Ctrl+Delete:</b> Delete Image<br/>"
"<b>F2</b> Rename Image<br/>"
"<b>Escape:</b> Return to Thumbnail Browser<br/><br/>"
"<b><hilight>Slideshow Bindings</hilight></b><br/>"
"<b>Space:</b> Play/Pause Slideshow<br/>"
"<b>Home:</b> Navigate First<br/>"
"<b>Left Arrow:</b> Navigate Previous<br/>"
"<b>Right Arrow:</b> Navigate Next<br/>"
"<b>End:</b> Navigate Last<br/>"
"<b>Escape:</b> Quit Slideshow<br/>"));
elm_object_text_set(entry, eina_strbuf_string_get(sbuf));
elm_object_content_set(scroller, entry);
evas_object_show(entry);
@ -523,63 +522,63 @@ _config_about(Evas_Object *parent)
EPHOTO_WEIGHT(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
EPHOTO_FILL(entry);
eina_strbuf_append_printf(sbuf,
_("Ephoto is a comprehensive image viewer based on the EFL. For more"
"information, please visit the Ephoto project page:<br/>"
"<a href=http://www.smhouston.us/ephoto/>"
"http://www.smhouston.us/ephoto/</a><br/><br/>"
"Ephoto also has a page on the Enlightenment wiki:<br/>"
"<a href=https://phab.enlightenment.org/w/projects/ephoto>"
"https://phab.enlightenment.org/w/projects/ephoto</a><br/><br/>"
"Ephoto's source can be found through Enlightenment's git:<br/>"
"<a href=http://git.enlightenment.org/apps/ephoto.git>"
"http://git.enlightenment.org/apps/ephoto.git</a><br/><br/>"
"<b>Authors:</b><br/>"));
_("Ephoto is a comprehensive image viewer based on the EFL. For more"
"information, please visit the Ephoto project page:<br/>"
"<a href=http://www.smhouston.us/ephoto/>"
"http://www.smhouston.us/ephoto/</a><br/><br/>"
"Ephoto also has a page on the Enlightenment wiki:<br/>"
"<a href=https://phab.enlightenment.org/w/projects/ephoto>"
"https://phab.enlightenment.org/w/projects/ephoto</a><br/><br/>"
"Ephoto's source can be found through Enlightenment's git:<br/>"
"<a href=http://git.enlightenment.org/apps/ephoto.git>"
"http://git.enlightenment.org/apps/ephoto.git</a><br/><br/>"
"<b>Authors:</b><br/>"));
f = fopen(PACKAGE_DATA_DIR "/AUTHORS", "r");
if (f)
{
char buf[PATH_MAX];
char buf[PATH_MAX];
while (fgets(buf, sizeof(buf), f))
{
int len;
while (fgets(buf, sizeof(buf), f))
{
int len;
len = strlen(buf);
if (len > 0)
{
if (buf[len - 1] == '\n')
{
buf[len - 1] = 0;
len--;
}
if (len > 0)
{
char *p;
len = strlen(buf);
if (len > 0)
{
if (buf[len - 1] == '\n')
{
buf[len - 1] = 0;
len--;
}
if (len > 0)
{
char *p;
do
{
p = strchr(buf, '<');
if (p)
*p = 0;
}
while (p);
do
{
p = strchr(buf, '>');
if (p)
*p = 0;
}
while (p);
eina_strbuf_append_printf(sbuf, "%s<br/>", buf);
}
if (len == 0)
eina_strbuf_append_printf(sbuf, "<br/>");
}
}
fclose(f);
do
{
p = strchr(buf, '<');
if (p)
*p = 0;
}
while (p);
do
{
p = strchr(buf, '>');
if (p)
*p = 0;
}
while (p);
eina_strbuf_append_printf(sbuf, "%s<br/>", buf);
}
if (len == 0)
eina_strbuf_append_printf(sbuf, "<br/>");
}
}
fclose(f);
}
elm_object_text_set(entry, eina_strbuf_string_get(sbuf));
evas_object_smart_callback_add(entry, "anchor,hover,opened",
_link_anchor, entry);
_link_anchor, entry);
elm_box_pack_end(box, entry);
evas_object_show(entry);
@ -616,9 +615,9 @@ _ephoto_config_load(Ephoto *ephoto)
ef = eet_open(buf, EET_FILE_MODE_READ);
if (!ef)
{
ephoto_config_free(ephoto);
ephoto->config = calloc(1, sizeof(Ephoto_Config));
return 0;
ephoto_config_free(ephoto);
ephoto->config = calloc(1, sizeof(Ephoto_Config));
return 0;
}
ephoto->config = eet_data_read(ef, edd, "config");
@ -626,17 +625,17 @@ _ephoto_config_load(Ephoto *ephoto)
if (!ephoto->config || ephoto->config->config_version > CONFIG_VERSION)
{
ephoto_config_free(ephoto);
ephoto->config = calloc(1, sizeof(Ephoto_Config));
return 0;
ephoto_config_free(ephoto);
ephoto->config = calloc(1, sizeof(Ephoto_Config));
return 0;
}
if (ephoto->config->config_version < CONFIG_VERSION)
{
ecore_file_unlink(buf);
ephoto_config_free(ephoto);
ephoto->config = calloc(1, sizeof(Ephoto_Config));
return 0;
ecore_file_unlink(buf);
ephoto_config_free(ephoto);
ephoto->config = calloc(1, sizeof(Ephoto_Config));
return 0;
}
return 1;
}
@ -653,16 +652,16 @@ _ephoto_on_config_save(void *data)
ef = eet_open(buf2, EET_FILE_MODE_WRITE);
if (!ef)
goto save_end;
goto save_end;
eet_data_write(ef, edd, "config", ephoto->config, 1);
if (eet_close(ef))
goto save_end;
goto save_end;
if (!ecore_file_mv(buf2, buf))
goto save_end;
goto save_end;
save_end:
save_end:
ecore_file_unlink(buf2);
return ECORE_CALLBACK_CANCEL;
@ -713,28 +712,28 @@ ephoto_config_main(Ephoto *ephoto)
elm_icon_standard_set(ic, "preferences-system");
evas_object_show(ic);
settingsi = elm_list_item_append(list, _("General"), ic, NULL,
_list_clicked, settings);
_list_clicked, settings);
ic = elm_icon_add(list);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
elm_icon_standard_set(ic, "media-playback-start");
evas_object_show(ic);
slideshowi = elm_list_item_append(list, _("Slideshow"), ic, NULL,
_list_clicked, slideshow);
_list_clicked, slideshow);
ic = elm_icon_add(list);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
elm_icon_standard_set(ic, "input-keyboard");
evas_object_show(ic);
kbi = elm_list_item_append(list, _("Bindings"), ic, NULL,
_list_clicked, kb);
_list_clicked, kb);
ic = elm_icon_add(list);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
elm_icon_standard_set(ic, "help-about");
evas_object_show(ic);
abouti = elm_list_item_append(list, _("About"), ic, NULL,
_list_clicked, about);
_list_clicked, about);
elm_list_go(list);
@ -776,13 +775,13 @@ ephoto_config_init(Ephoto *ephoto)
Eet_Data_Descriptor_Class eddc;
if (!eet_eina_stream_data_descriptor_class_set(&eddc, sizeof(eddc),
"Ephoto_Config", sizeof(Ephoto_Config)))
"Ephoto_Config", sizeof(Ephoto_Config)))
{
return EINA_FALSE;
return EINA_FALSE;
}
if (!edd)
edd = eet_data_descriptor_stream_new(&eddc);
edd = eet_data_descriptor_stream_new(&eddc);
#undef T
#undef D
@ -812,28 +811,28 @@ ephoto_config_init(Ephoto *ephoto)
C_VAL(D, T, thumbnail_aspect, EET_T_INT);
switch (_ephoto_config_load(ephoto))
{
case 0:
/* Start a new config */
ephoto->config->config_version = CONFIG_VERSION;
ephoto->config->slideshow_timeout = 4.0;
ephoto->config->slideshow_transition = eina_stringshare_add("fade");
ephoto->config->window_width = 900*elm_config_scale_get();
ephoto->config->window_height = 500*elm_config_scale_get();
ephoto->config->fsel_hide = 0;
ephoto->config->left_size = .25;
ephoto->config->right_size = .25;
ephoto->config->open = eina_stringshare_add(eina_environment_home_get());
ephoto->config->prompts = 1;
ephoto->config->drop = 0;
ephoto->config->movess = 1;
ephoto->config->smooth = 1;
ephoto->config->firstrun = 1;
ephoto->config->folders = 1;
ephoto->config->thumbnail_aspect = 0;
break;
case 0:
/* Start a new config */
ephoto->config->config_version = CONFIG_VERSION;
ephoto->config->slideshow_timeout = 4.0;
ephoto->config->slideshow_transition = eina_stringshare_add("fade");
ephoto->config->window_width = 900 * elm_config_scale_get();
ephoto->config->window_height = 500 * elm_config_scale_get();
ephoto->config->fsel_hide = 0;
ephoto->config->left_size = .25;
ephoto->config->right_size = .25;
ephoto->config->open = eina_stringshare_add(eina_environment_home_get());
ephoto->config->prompts = 1;
ephoto->config->drop = 0;
ephoto->config->movess = 1;
ephoto->config->smooth = 1;
ephoto->config->firstrun = 1;
ephoto->config->folders = 1;
ephoto->config->thumbnail_aspect = 0;
break;
default:
return EINA_TRUE;
default:
return EINA_TRUE;
}
ephoto_config_save(ephoto);

View File

@ -13,17 +13,17 @@ struct _Ephoto_Cropper
Evas_Object *layout;
Evas_Object *cropw;
Evas_Object *croph;
Eina_List *handlers;
Evas_Coord startx;
Evas_Coord starty;
Evas_Coord offsetx;
Evas_Coord offsety;
Eina_Bool resizing;
Eina_List *handlers;
Evas_Coord startx;
Evas_Coord starty;
Evas_Coord offsetx;
Evas_Coord offsety;
Eina_Bool resizing;
};
static void
_calculate_cropper_size(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msg;
@ -31,13 +31,13 @@ _calculate_cropper_size(void *data, Evas_Object *obj EINA_UNUSED,
double scalew, scaleh;
edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
"ephoto.swallow.image", 0, 0, &w, &h);
"ephoto.swallow.image", 0, 0, &w, &h);
edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
"ephoto.swallow.cropper", 0, 0, &cw, &ch);
"ephoto.swallow.cropper", 0, 0, &cw, &ch);
evas_object_image_size_get(ec->image, &iw, &ih);
scalew = (double) cw / (double) w;
scaleh = (double) ch / (double) h;
scalew = (double)cw / (double)w;
scaleh = (double)ch / (double)h;
nw = iw * scalew;
nh = ih * scaleh;
@ -51,12 +51,12 @@ _calculate_cropper_size(void *data, Evas_Object *obj EINA_UNUSED,
msg->val[1] = nw;
msg->val[2] = nh;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
EDJE_MESSAGE_INT_SET, 1, msg);
}
static void
_cropper_changed_width(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msgl, *msgr;
@ -66,11 +66,11 @@ _cropper_changed_width(void *data, Evas_Object *obj EINA_UNUSED,
mw = elm_slider_value_get(ec->cropw);
edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
"ephoto.swallow.image", &lx, 0, &lw, 0);
"ephoto.swallow.image", &lx, 0, &lw, 0);
edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
"ephoto.swallow.cropper", &cx, 0, &cw, 0);
"ephoto.swallow.cropper", &cx, 0, &cw, 0);
evas_object_image_size_get(ec->image, &iw, 0);
scalew = (double) mw / (double) iw;
scalew = (double)mw / (double)iw;
nw = lw * scalew;
left = (nw - cw) / 2;
@ -78,13 +78,13 @@ _cropper_changed_width(void *data, Evas_Object *obj EINA_UNUSED,
if ((cx + cw + right) >= (lx + lw))
{
right = (lx + lw) - (cx + cw);
left += left - right;
right = (lx + lw) - (cx + cw);
left += left - right;
}
else if ((cx - left) <= lx)
{
left = cx - lx;
right += right - left;
left = cx - lx;
right += right - left;
}
left *= -1;
@ -94,7 +94,7 @@ _cropper_changed_width(void *data, Evas_Object *obj EINA_UNUSED,
msgl->val[1] = left;
msgl->val[2] = 0;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msgl);
EDJE_MESSAGE_INT_SET, 1, msgl);
msgr = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msgr->count = 3;
@ -102,12 +102,12 @@ _cropper_changed_width(void *data, Evas_Object *obj EINA_UNUSED,
msgr->val[1] = right;
msgr->val[2] = 0;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msgr);
EDJE_MESSAGE_INT_SET, 1, msgr);
}
static void
_cropper_changed_height(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msgt, *msgb;
@ -117,25 +117,25 @@ _cropper_changed_height(void *data, Evas_Object *obj EINA_UNUSED,
mh = elm_slider_value_get(ec->croph);
edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
"ephoto.swallow.image", 0, &ly, 0, &lh);
"ephoto.swallow.image", 0, &ly, 0, &lh);
edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
"ephoto.swallow.cropper", 0, &cy, 0, &ch);
"ephoto.swallow.cropper", 0, &cy, 0, &ch);
evas_object_image_size_get(ec->image, 0, &ih);
scaleh = (double) mh / (double) ih;
scaleh = (double)mh / (double)ih;
nh = lh * scaleh;
top = (nh - ch) / 2;
bottom = (nh - ch) / 2;
if ((cy + ch + bottom) >= (ly + lh))
{
bottom = (ly + lh) - (cy + ch);
top += top - bottom;
bottom = (ly + lh) - (cy + ch);
top += top - bottom;
}
else if ((cy - top) <= ly)
{
top = cy - ly;
bottom += bottom - top;
top = cy - ly;
bottom += bottom - top;
}
top *= -1;
@ -145,7 +145,7 @@ _cropper_changed_height(void *data, Evas_Object *obj EINA_UNUSED,
msgt->val[1] = 0;
msgt->val[2] = top;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msgt);
EDJE_MESSAGE_INT_SET, 1, msgt);
msgb = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msgb->count = 3;
@ -153,12 +153,12 @@ _cropper_changed_height(void *data, Evas_Object *obj EINA_UNUSED,
msgb->val[1] = 0;
msgb->val[2] = bottom;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msgb);
EDJE_MESSAGE_INT_SET, 1, msgb);
}
static void
_reset_crop(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msg;
@ -169,12 +169,12 @@ _reset_crop(void *data, Evas_Object *obj EINA_UNUSED,
msg->val[1] = 0;
msg->val[2] = 0;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
EDJE_MESSAGE_INT_SET, 1, msg);
}
static void
_apply_crop(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Evas_Object *edje = elm_layout_edje_get(ec->layout);
@ -186,16 +186,16 @@ _apply_crop(void *data, Evas_Object *obj EINA_UNUSED,
edje_object_part_geometry_get(edje, "ephoto.swallow.image", &x, &y, &w, &h);
edje_object_part_geometry_get(edje, "ephoto.swallow.cropper", &cx, &cy, &cw,
&ch);
&ch);
evas_object_image_size_get(ec->image, &iw, &ih);
idata =
evas_object_image_data_get(ec->image, EINA_FALSE);
evas_object_image_data_get(ec->image, EINA_FALSE);
scalex = (double) (cx-x) / (double) w;
scaley = (double) (cy-y) / (double) h;
scalew = (double) cw / (double) w;
scaleh = (double) ch / (double) h;
scalex = (double)(cx - x) / (double)w;
scaley = (double)(cy - y) / (double)h;
scalew = (double)cw / (double)w;
scaleh = (double)ch / (double)h;
nx = iw * scalex;
ny = ih * scaley;
@ -207,20 +207,20 @@ _apply_crop(void *data, Evas_Object *obj EINA_UNUSED,
for (i = 0; i < nh; i++)
{
tmpy = (i + ny) * iw;
for (j = 0; j < nw; j++)
{
tmpx = j + nx;
ind = tmpy + tmpx;
idata_new[index] = idata[ind];
index++;
}
tmpy = (i + ny) * iw;
for (j = 0; j < nw; j++)
{
tmpx = j + nx;
ind = tmpy + tmpx;
idata_new[index] = idata[ind];
index++;
}
}
elm_table_unpack(ec->image_parent, ec->box);
elm_layout_content_unset(ec->layout, "ephoto.swallow.image");
elm_table_pack(ec->image_parent, ec->image, 0, 0, 1, 1);
ephoto_single_browser_image_data_done(ec->main,
idata_new, nw, nh);
idata_new, nw, nh);
evas_object_del(ec->cropper);
evas_object_del(ec->layout);
evas_object_del(ec->box);
@ -229,7 +229,7 @@ _apply_crop(void *data, Evas_Object *obj EINA_UNUSED,
static void
_cancel_crop(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
@ -245,7 +245,7 @@ _cancel_crop(void *data, Evas_Object *obj EINA_UNUSED,
static void
_cropper_both_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source)
const char *emission EINA_UNUSED, const char *source)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msg;
@ -256,13 +256,13 @@ _cropper_both_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_geometry_get(ec->layout, &lx, &ly, &lw, &lh);
if (mx < lx)
mx = lx;
mx = lx;
else if (mx > lx + lw)
mx = lx + lw;
mx = lx + lw;
if (my < ly)
my = ly;
my = ly;
else if (my > ly + lh)
my = ly + lh;
my = ly + lh;
nx = mx - ec->startx;
ny = my - ec->starty;
@ -272,36 +272,36 @@ _cropper_both_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
msg = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msg->count = 3;
if (!strcmp(source, "handle1"))
msg->val[0] = 1;
msg->val[0] = 1;
else if (!strcmp(source, "handle3"))
msg->val[0] = 3;
msg->val[0] = 3;
else if (!strcmp(source, "handle5"))
msg->val[0] = 5;
msg->val[0] = 5;
else if (!strcmp(source, "handle7"))
msg->val[0] = 7;
msg->val[0] = 7;
msg->val[1] = nx;
msg->val[2] = ny;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
EDJE_MESSAGE_INT_SET, 1, msg);
}
static void
_cropper_both_mouse_up(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source)
const char *emission EINA_UNUSED, const char *source)
{
Ephoto_Cropper *ec = data;
edje_object_signal_callback_del_full(ec->cropper, "mouse,move", source,
_cropper_both_mouse_move, ec);
_cropper_both_mouse_move, ec);
edje_object_signal_callback_del_full(ec->cropper, "mouse,up,1", source,
_cropper_both_mouse_up, ec);
_cropper_both_mouse_up, ec);
ec->resizing = 0;
}
static void
_cropper_resize_both(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source)
const char *emission EINA_UNUSED, const char *source)
{
Ephoto_Cropper *ec = data;
Evas_Coord mx, my, cx, cy;
@ -315,14 +315,14 @@ _cropper_resize_both(void *data, Evas_Object *obj EINA_UNUSED,
ec->starty = my;
edje_object_signal_callback_add(ec->cropper, "mouse,move", source,
_cropper_both_mouse_move, ec);
_cropper_both_mouse_move, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,up,1", source,
_cropper_both_mouse_up, ec);
_cropper_both_mouse_up, ec);
}
static void
_cropper_horiz_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source)
const char *emission EINA_UNUSED, const char *source)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msg;
@ -333,9 +333,9 @@ _cropper_horiz_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_geometry_get(ec->layout, &lx, 0, &lw, 0);
if (mx < lx)
mx = lx;
mx = lx;
else if (mx > lx + lw)
mx = lx + lw;
mx = lx + lw;
nx = mx - ec->startx;
ec->startx = mx;
@ -343,31 +343,31 @@ _cropper_horiz_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
msg = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msg->count = 3;
if (!strcmp(source, "handle4"))
msg->val[0] = 4;
msg->val[0] = 4;
else if (!strcmp(source, "handle8"))
msg->val[0] = 8;
msg->val[0] = 8;
msg->val[1] = nx;
msg->val[2] = 0;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
EDJE_MESSAGE_INT_SET, 1, msg);
}
static void
_cropper_horiz_mouse_up(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source)
const char *emission EINA_UNUSED, const char *source)
{
Ephoto_Cropper *ec = data;
edje_object_signal_callback_del_full(ec->cropper, "mouse,move", source,
_cropper_horiz_mouse_move, ec);
_cropper_horiz_mouse_move, ec);
edje_object_signal_callback_del_full(ec->cropper, "mouse,up,1", source,
_cropper_horiz_mouse_up, ec);
_cropper_horiz_mouse_up, ec);
ec->resizing = 0;
}
static void
_cropper_resize_horiz(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Evas_Coord mx, my, cx, cy;
@ -381,14 +381,14 @@ _cropper_resize_horiz(void *data, Evas_Object *obj EINA_UNUSED,
ec->starty = my;
edje_object_signal_callback_add(ec->cropper, "mouse,move", source,
_cropper_horiz_mouse_move, ec);
_cropper_horiz_mouse_move, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,up,1", source,
_cropper_horiz_mouse_up, ec);
_cropper_horiz_mouse_up, ec);
}
static void
_cropper_vert_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source)
const char *emission EINA_UNUSED, const char *source)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msg;
@ -399,9 +399,9 @@ _cropper_vert_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_geometry_get(ec->layout, 0, &ly, 0, &lh);
if (my < ly)
my = ly;
my = ly;
else if (my > ly + lh)
my = ly + lh;
my = ly + lh;
ny = my - ec->starty;
ec->starty = my;
@ -409,31 +409,31 @@ _cropper_vert_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
msg = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msg->count = 3;
if (!strcmp(source, "handle2"))
msg->val[0] = 2;
msg->val[0] = 2;
else if (!strcmp(source, "handle6"))
msg->val[0] = 6;
msg->val[0] = 6;
msg->val[1] = 0;
msg->val[2] = ny;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
EDJE_MESSAGE_INT_SET, 1, msg);
}
static void
_cropper_vert_mouse_up(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source)
const char *emission EINA_UNUSED, const char *source)
{
Ephoto_Cropper *ec = data;
edje_object_signal_callback_del_full(ec->cropper, "mouse,move", source,
_cropper_vert_mouse_move, ec);
_cropper_vert_mouse_move, ec);
edje_object_signal_callback_del_full(ec->cropper, "mouse,up,1", source,
_cropper_vert_mouse_up, ec);
_cropper_vert_mouse_up, ec);
ec->resizing = 0;
}
static void
_cropper_resize_vert(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Evas_Coord mx, my, cx, cy;
@ -447,66 +447,66 @@ _cropper_resize_vert(void *data, Evas_Object *obj EINA_UNUSED,
ec->starty = my;
edje_object_signal_callback_add(ec->cropper, "mouse,move", source,
_cropper_vert_mouse_move, ec);
_cropper_vert_mouse_move, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,up,1", source,
_cropper_vert_mouse_up, ec);
_cropper_vert_mouse_up, ec);
}
static void
_cropper_mouse_move(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
if (!ec->resizing)
{
Edje_Message_Int_Set *msg;
Evas_Coord mx, my, cx, cy, cw, ch, nx, ny, lx, ly, lw, lh;
Edje_Message_Int_Set *msg;
Evas_Coord mx, my, cx, cy, cw, ch, nx, ny, lx, ly, lw, lh;
evas_pointer_canvas_xy_get(evas_object_evas_get(ec->cropper),
&mx, &my);
evas_object_geometry_get(ec->cropper, &cx, &cy, &cw, &ch);
evas_object_geometry_get(ec->layout, &lx, &ly, &lw, &lh);
evas_pointer_canvas_xy_get(evas_object_evas_get(ec->cropper),
&mx, &my);
evas_object_geometry_get(ec->cropper, &cx, &cy, &cw, &ch);
evas_object_geometry_get(ec->layout, &lx, &ly, &lw, &lh);
if (mx < lx)
mx = lx;
else if (mx > lx + lw)
mx = lx + lw;
if (my < ly)
my = ly;
else if (my > ly + lh)
my = ly + lh;
if (mx < lx)
mx = lx;
else if (mx > lx + lw)
mx = lx + lw;
if (my < ly)
my = ly;
else if (my > ly + lh)
my = ly + lh;
nx = mx - ec->startx;
ny = my - ec->starty;
ec->startx = mx;
ec->starty = my;
nx = mx - ec->startx;
ny = my - ec->starty;
ec->startx = mx;
ec->starty = my;
msg = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msg->count = 3;
msg->val[0] = 0;
msg->val[1] = nx;
msg->val[2] = ny;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
msg = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msg->count = 3;
msg->val[0] = 0;
msg->val[1] = nx;
msg->val[2] = ny;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
}
}
static void
_cropper_mouse_up(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
edje_object_signal_callback_del_full(ec->cropper, "mouse,move", "dragger",
_cropper_mouse_move, ec);
_cropper_mouse_move, ec);
edje_object_signal_callback_del_full(ec->cropper, "mouse,up,1", "dragger",
_cropper_mouse_up, ec);
_cropper_mouse_up, ec);
}
static void
_cropper_move(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Evas_Coord mx, my, cx, cy;
@ -519,14 +519,14 @@ _cropper_move(void *data, Evas_Object *obj EINA_UNUSED,
ec->offsety = my - cy;
edje_object_signal_callback_add(ec->cropper, "mouse,move", "dragger",
_cropper_mouse_move, ec);
_cropper_mouse_move, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,up,1", "dragger",
_cropper_mouse_up, ec);
_cropper_mouse_up, ec);
}
static void
_image_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Edje_Message_Int_Set *msg;
@ -540,31 +540,31 @@ _image_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
if (sw > sh)
{
nw = sw;
nh = ih * ((double) sw / (double) iw);
if (nh > sh)
{
Evas_Coord onw, onh;
nw = sw;
nh = ih * ((double)sw / (double)iw);
if (nh > sh)
{
Evas_Coord onw, onh;
onw = nw;
onh = nh;
nh = sh;
nw = onw * ((double) nh / (double) onh);
}
onw = nw;
onh = nh;
nh = sh;
nw = onw * ((double)nh / (double)onh);
}
}
else
{
nh = sh;
nw = iw * ((double) sh / (double) ih);
if (nw > sw)
{
Evas_Coord onw, onh;
nh = sh;
nw = iw * ((double)sh / (double)ih);
if (nw > sw)
{
Evas_Coord onw, onh;
onw = nw;
onh = nh;
nw = sw;
nh = onh * ((double) nw / (double) onw);
}
onw = nw;
onh = nh;
nw = sw;
nh = onh * ((double)nw / (double)onw);
}
}
diffw = sw - nw;
diffh = sh - nh;
@ -582,12 +582,12 @@ _image_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
msg->val[1] = 0;
msg->val[2] = 0;
edje_object_message_send(elm_layout_edje_get(ec->layout),
EDJE_MESSAGE_INT_SET, 1, msg);
EDJE_MESSAGE_INT_SET, 1, msg);
}
static Eina_Bool
_crop_reset(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
_reset_crop(data, NULL, NULL);
@ -596,7 +596,7 @@ _crop_reset(void *data, int type EINA_UNUSED,
static Eina_Bool
_crop_apply(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
_apply_crop(data, NULL, NULL);
@ -605,7 +605,7 @@ _crop_apply(void *data, int type EINA_UNUSED,
static Eina_Bool
_crop_cancel(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
_cancel_crop(data, NULL, NULL);
@ -614,7 +614,7 @@ _crop_cancel(void *data, int type EINA_UNUSED,
static void
_editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Cropper *ec = data;
Ecore_Event_Handler *handler;
@ -627,7 +627,7 @@ _editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void
ephoto_cropper_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image_parent, Evas_Object *image)
Evas_Object *image_parent, Evas_Object *image)
{
Ephoto_Cropper *ec;
Evas_Coord w, h;
@ -655,7 +655,7 @@ ephoto_cropper_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
ec->layout = elm_layout_add(ec->box);
elm_layout_file_set(ec->layout, PACKAGE_DATA_DIR "/themes/ephoto.edj",
"ephoto,image,cropper,base");
"ephoto,image,cropper,base");
EPHOTO_EXPAND(ec->layout);
EPHOTO_FILL(ec->layout);
elm_box_pack_end(ec->box, ec->layout);
@ -668,39 +668,39 @@ ephoto_cropper_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
ec->cropper = edje_object_add(evas_object_evas_get(ec->layout));
edje_object_file_set(ec->cropper, PACKAGE_DATA_DIR "/themes/ephoto.edj",
"ephoto,image,cropper");
"ephoto,image,cropper");
edje_object_signal_callback_add(elm_layout_edje_get(ec->layout),
"cropper,changed", "ephoto.swallow.cropper", _calculate_cropper_size,
ec);
"cropper,changed", "ephoto.swallow.cropper", _calculate_cropper_size,
ec);
elm_layout_content_set(ec->layout, "ephoto.swallow.cropper", ec->cropper);
evas_object_show(ec->cropper);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "dragger",
_cropper_move, ec);
_cropper_move, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle1",
_cropper_resize_both, ec);
_cropper_resize_both, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle2",
_cropper_resize_vert, ec);
_cropper_resize_vert, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle3",
_cropper_resize_both, ec);
_cropper_resize_both, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle4",
_cropper_resize_horiz, ec);
_cropper_resize_horiz, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle5",
_cropper_resize_both, ec);
_cropper_resize_both, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle6",
_cropper_resize_vert, ec);
_cropper_resize_vert, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle7",
_cropper_resize_both, ec);
_cropper_resize_both, ec);
edje_object_signal_callback_add(ec->cropper, "mouse,down,1", "handle8",
_cropper_resize_horiz, ec);
_cropper_resize_horiz, ec);
evas_object_event_callback_add(ec->layout, EVAS_CALLBACK_RESIZE,
_image_resize, ec);
_image_resize, ec);
ec->editor = ephoto_editor_add(ephoto, parent, _("Crop Image"),
"ec", ec);
"ec", ec);
evas_object_event_callback_add(ec->editor, EVAS_CALLBACK_DEL,
_editor_del, ec);
_editor_del, ec);
ec->croph = elm_slider_add(ec->editor);
elm_slider_min_max_set(ec->croph, 1, h);
@ -712,7 +712,7 @@ ephoto_cropper_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
EPHOTO_ALIGN(ec->croph, EVAS_HINT_FILL, 0.5);
elm_box_pack_start(ec->editor, ec->croph);
evas_object_smart_callback_add(ec->croph, "slider,drag,stop",
_cropper_changed_height, ec);
_cropper_changed_height, ec);
evas_object_show(ec->croph);
ec->cropw = elm_slider_add(ec->editor);
@ -725,24 +725,25 @@ ephoto_cropper_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
EPHOTO_ALIGN(ec->cropw, EVAS_HINT_FILL, 0.5);
elm_box_pack_start(ec->editor, ec->cropw);
evas_object_smart_callback_add(ec->cropw, "slider,drag,stop",
_cropper_changed_width, ec);
_cropper_changed_width, ec);
evas_object_show(ec->cropw);
ec->handlers =
eina_list_append(ec->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_crop_reset, ec));
eina_list_append(ec->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_crop_reset, ec));
ec->handlers =
eina_list_append(ec->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_crop_apply, ec));
eina_list_append(ec->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_crop_apply, ec));
ec->handlers =
eina_list_append(ec->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_crop_cancel, ec));
eina_list_append(ec->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_crop_cancel, ec));
return;
error:
error:
return;
}

View File

@ -11,48 +11,48 @@ typedef struct _Ephoto_Directory_Browser Ephoto_Directory_Browser;
struct _Ephoto_Directory_Browser
{
Ephoto *ephoto;
Evas_Object *main;
Evas_Object *fsel;
Evas_Object *fsel_back;
Evas_Object *leftbox;
Ephoto *ephoto;
Evas_Object *main;
Evas_Object *fsel;
Evas_Object *fsel_back;
Evas_Object *leftbox;
Elm_Object_Item *dir_current;
Elm_Object_Item *last_sel;
Eio_File *ls;
Eina_Bool dirs_only;
Eina_Bool thumbs_only;
Eio_Monitor *monitor;
Eina_List *monitor_handlers;
Eina_List *handlers;
Eina_List *todo_items;
Ecore_Job *change_dir_job;
Ecore_Timer *click_timer;
Eina_Bool processing;
Eina_Bool initializing;
Eio_File *ls;
Eina_Bool dirs_only;
Eina_Bool thumbs_only;
Eio_Monitor *monitor;
Eina_List *monitor_handlers;
Eina_List *handlers;
Eina_List *todo_items;
Ecore_Job *change_dir_job;
Ecore_Timer *click_timer;
Eina_Bool processing;
Eina_Bool initializing;
struct
{
Ecore_Animator *todo_items;
int count;
int processed;
int count;
int processed;
} animator;
Eina_Bool main_deleted:1;
const char *back_directory;
Eina_Bool main_deleted : 1;
const char *back_directory;
};
static Elm_Genlist_Item_Class *_ephoto_dir_class;
static Elm_Genlist_Item_Class *_ephoto_dir_tree_class;
static char * _drag_data_extract(char **drag_data);
static char *_drag_data_extract(char **drag_data);
static Eina_Bool _monitor_cb(void *data, int type,
void *event);
static void _fsel_mouse_up_cb(void *data, Evas *e EINA_UNUSED,
Evas_Object *obj EINA_UNUSED, void *event_info);
void *event);
static void _fsel_mouse_up_cb(void *data, Evas *e EINA_UNUSED,
Evas_Object *obj EINA_UNUSED, void *event_info);
/*File Pane Callbacks*/
static void
_menu_dismissed_cb(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
@ -62,7 +62,7 @@ _menu_dismissed_cb(void *data, Evas_Object *obj,
static void
_menu_empty_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
Eina_List *paths = NULL;
@ -83,7 +83,7 @@ _menu_empty_cb(void *data, Evas_Object *obj EINA_UNUSED,
static Eina_Bool
_drop_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it,
Elm_Selection_Data *ev, int xposret EINA_UNUSED, int yposret EINA_UNUSED)
Elm_Selection_Data *ev, int xposret EINA_UNUSED, int yposret EINA_UNUSED)
{
if (!it)
return EINA_FALSE;
@ -93,16 +93,16 @@ _drop_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it,
Ephoto_Directory_Browser *db = evas_object_data_get(obj, "directory_browser");
if (!ev->data)
return EINA_FALSE;
return EINA_FALSE;
if (ev->len <= 0)
return EINA_FALSE;
return EINA_FALSE;
if (!path)
return EINA_FALSE;
return EINA_FALSE;
char *dd = strdup(ev->data);
if (!dd)
return EINA_FALSE;
return EINA_FALSE;
char *s = _drag_data_extract(&dd);
@ -110,8 +110,8 @@ _drop_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it,
{
if (evas_object_image_extension_can_load_get(s))
files = eina_list_append(files, s);
files = eina_list_append(files, s);
s = _drag_data_extract(&dd);
files = eina_list_append(files, s);
s = _drag_data_extract(&dd);
}
free(dd);
@ -128,7 +128,7 @@ _drop_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it,
static Elm_Object_Item *
_drop_item_getcb(Evas_Object *obj, Evas_Coord x, Evas_Coord y,
int *xposret EINA_UNUSED, int *yposret)
int *xposret EINA_UNUSED, int *yposret)
{
Elm_Object_Item *gli;
@ -154,9 +154,9 @@ _drop_leave(void *data, Evas_Object *obj EINA_UNUSED)
static void
_drop_pos(void *data EINA_UNUSED, Evas_Object *cont EINA_UNUSED,
Elm_Object_Item *it, Evas_Coord x EINA_UNUSED,
Evas_Coord y EINA_UNUSED, int xposret EINA_UNUSED,
int yposret EINA_UNUSED, Elm_Xdnd_Action action EINA_UNUSED)
Elm_Object_Item *it, Evas_Coord x EINA_UNUSED,
Evas_Coord y EINA_UNUSED, int xposret EINA_UNUSED,
int yposret EINA_UNUSED, Elm_Xdnd_Action action EINA_UNUSED)
{
elm_genlist_item_selected_set(it, EINA_TRUE);
}
@ -167,42 +167,42 @@ _drag_data_extract(char **drag_data)
char *uri = NULL;
if (!drag_data)
return uri;
return uri;
char *p = *drag_data;
if (!p)
return uri;
return uri;
char *s = strstr(p, FILESEP);
if (s)
p += FILESEP_LEN;
p += FILESEP_LEN;
s = strchr(p, '\n');
uri = p;
if (s)
{
if (s - p > 0)
{
char *s1 = s - 1;
if (s - p > 0)
{
char *s1 = s - 1;
if (s1[0] == '\r')
s1[0] = '\0';
else
{
char *s2 = s + 1;
if (s1[0] == '\r')
s1[0] = '\0';
else
{
char *s2 = s + 1;
if (s2[0] == '\r')
{
s[0] = '\0';
s++;
}
if (s2[0] == '\r')
{
s[0] = '\0';
s++;
}
else
s[0] = '\0';
}
}
s[0] = '\0';
}
}
else
s[0] = '\0';
s++;
s[0] = '\0';
s++;
}
else
p = NULL;
@ -224,7 +224,7 @@ _entry_cmp(const void *pa, const void *pb)
static void
_on_list_expand_req(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *it = event_info;
@ -241,7 +241,7 @@ _on_list_expand_req(void *data, Evas_Object *obj EINA_UNUSED,
static void
_on_list_contract_req(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *it = event_info;
@ -307,9 +307,9 @@ _on_list_contracted(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
db->thumbs_only = 1;
db->dirs_only = 0;
ephoto_directory_set(db->ephoto, path, NULL,
db->dirs_only, db->thumbs_only);
db->dirs_only, db->thumbs_only);
ephoto_title_set(db->ephoto,
db->ephoto->config->directory);
db->ephoto->config->directory);
}
static void
@ -326,7 +326,7 @@ _dir_job(void *data)
db->thumbs_only = 1;
db->dirs_only = 0;
ephoto_directory_set(db->ephoto, path, NULL,
db->dirs_only, db->thumbs_only);
db->dirs_only, db->thumbs_only);
ephoto_title_set(db->ephoto, db->ephoto->config->directory);
}
@ -342,7 +342,7 @@ _wait_job(void *data)
static void
_on_list_selected(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *it = event_info;
@ -357,7 +357,7 @@ _on_list_selected(void *data, Evas_Object *obj EINA_UNUSED,
static char *
_dir_item_text_get(void *data, Evas_Object *obj EINA_UNUSED,
const char *part EINA_UNUSED)
const char *part EINA_UNUSED)
{
Ephoto_Entry *e = data;
@ -366,12 +366,12 @@ _dir_item_text_get(void *data, Evas_Object *obj EINA_UNUSED,
static Evas_Object *
_dir_item_icon_get(void *data, Evas_Object *obj,
const char *part)
const char *part)
{
Ephoto_Entry *entry = data;
if (!strcmp(part, "elm.swallow.end"))
return NULL;
return NULL;
Evas_Object *ic = elm_icon_add(obj);
if (entry->item)
@ -428,7 +428,7 @@ _check_for_subdirs(Ephoto_Entry *entry)
static void
_trash_back(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
@ -441,13 +441,13 @@ _trash_back(void *data, Evas_Object *obj EINA_UNUSED,
db->thumbs_only = 1;
db->dirs_only = 0;
ephoto_directory_set(db->ephoto, db->back_directory, NULL,
db->dirs_only, db->thumbs_only);
db->dirs_only, db->thumbs_only);
ephoto_title_set(db->ephoto, db->back_directory);
}
static void
_dir_go_trash(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
Evas_Object *ic, *but;
@ -474,28 +474,28 @@ _dir_go_trash(void *data, Evas_Object *obj EINA_UNUSED,
elm_genlist_highlight_mode_set(db->fsel, EINA_TRUE);
EPHOTO_EXPAND(db->fsel);
EPHOTO_FILL(db->fsel);
evas_object_size_hint_min_set(db->fsel, 195*elm_config_scale_get(), 0);
evas_object_size_hint_min_set(db->fsel, 195 * elm_config_scale_get(), 0);
evas_object_smart_callback_add(db->fsel, "expand,request",
_on_list_expand_req, db);
_on_list_expand_req, db);
evas_object_smart_callback_add(db->fsel, "contract,request",
_on_list_contract_req, db);
_on_list_contract_req, db);
evas_object_smart_callback_add(db->fsel, "expanded", _on_list_expanded, db);
evas_object_smart_callback_add(db->fsel, "contracted", _on_list_contracted,
db);
db);
evas_object_event_callback_add(db->fsel, EVAS_CALLBACK_MOUSE_UP,
_fsel_mouse_up_cb, db);
_fsel_mouse_up_cb, db);
evas_object_data_set(db->fsel, "directory_browser", db);
elm_box_pack_end(db->leftbox, db->fsel);
evas_object_show(db->fsel);
eina_stringshare_replace(&db->back_directory,
db->ephoto->config->directory);
db->ephoto->config->directory);
if (!ecore_file_exists(db->ephoto->trash_path))
ecore_file_mkpath(db->ephoto->trash_path);
ecore_file_mkpath(db->ephoto->trash_path);
db->thumbs_only = 0;
db->dirs_only = 0;
ephoto_directory_set(db->ephoto, db->ephoto->trash_path, NULL,
db->dirs_only, db->thumbs_only);
db->dirs_only, db->thumbs_only);
ephoto_title_set(db->ephoto, _("Trash"));
ephoto_directory_browser_top_dir_set(db->ephoto, db->ephoto->config->directory);
}
@ -544,7 +544,7 @@ _fsel_menu_go_home(void *data, Evas_Object *obj EINA_UNUSED, void *event_data EI
static void
_fsel_menu_new_dir_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *item = elm_genlist_selected_item_get(db->fsel);
@ -565,7 +565,7 @@ _fsel_menu_new_dir_cb(void *data, Evas_Object *obj EINA_UNUSED,
static void
_fsel_menu_paste_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *item = elm_genlist_selected_item_get(db->fsel);
@ -575,7 +575,7 @@ _fsel_menu_paste_cb(void *data, Evas_Object *obj EINA_UNUSED,
static void
_fsel_menu_rename_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *item = elm_genlist_selected_item_get(db->fsel);
@ -593,7 +593,7 @@ _fsel_menu_rename_cb(void *data, Evas_Object *obj EINA_UNUSED,
static void
_fsel_menu_delete_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *item = elm_genlist_selected_item_get(db->fsel);
@ -613,7 +613,7 @@ _fsel_menu_delete_cb(void *data, Evas_Object *obj EINA_UNUSED,
static void
_fsel_mouse_up_cb(void *data, Evas *e EINA_UNUSED,
Evas_Object *obj EINA_UNUSED, void *event_info)
Evas_Object *obj EINA_UNUSED, void *event_info)
{
Ephoto_Directory_Browser *db = data;
Evas_Object *menu;
@ -635,7 +635,7 @@ _fsel_mouse_up_cb(void *data, Evas *e EINA_UNUSED,
ecore_timer_del(db->click_timer);
db->click_timer = NULL;
elm_genlist_item_expanded_set(item,
!elm_genlist_item_expanded_get(item));
!elm_genlist_item_expanded_get(item));
}
}
}
@ -650,8 +650,7 @@ _fsel_mouse_up_cb(void *data, Evas *e EINA_UNUSED,
}
}
if (info->button != 3)
return;
return;
if (item)
elm_genlist_item_selected_set(item, EINA_TRUE);
@ -659,36 +658,36 @@ _fsel_mouse_up_cb(void *data, Evas *e EINA_UNUSED,
menu = elm_menu_add(db->ephoto->win);
elm_menu_move(menu, x, y);
elm_menu_item_add(menu, NULL, "computer", _("Root"),
_fsel_menu_go_root, db->ephoto);
_fsel_menu_go_root, db->ephoto);
elm_menu_item_add(menu, NULL, "user-home", _("Home"),
_fsel_menu_go_home, db->ephoto);
_fsel_menu_go_home, db->ephoto);
if (strcmp(db->ephoto->config->directory, db->ephoto->trash_path))
{
elm_menu_item_add(menu, NULL, "folder-new", _("New Folder"),
_fsel_menu_new_dir_cb, db);
_fsel_menu_new_dir_cb, db);
}
if (item)
{
elm_menu_item_add(menu, NULL, "edit", _("Rename"),
_fsel_menu_rename_cb, db);
elm_menu_item_add(menu, NULL, "edit-paste", _("Paste"),
_fsel_menu_paste_cb, db);
_fsel_menu_rename_cb, db);
elm_menu_item_add(menu, NULL, "edit-paste", _("Paste"),
_fsel_menu_paste_cb, db);
}
else if (!strcmp(db->ephoto->config->directory, db->ephoto->trash_path) &&
elm_genlist_first_item_get(db->fsel))
elm_genlist_first_item_get(db->fsel))
{
elm_menu_item_add(menu, NULL, "edit-delete", _("Empty Trash"),
_menu_empty_cb, db);
_menu_empty_cb, db);
}
if (strcmp(db->ephoto->config->directory, db->ephoto->trash_path) && item)
{
elm_menu_item_add(menu, NULL, "edit-delete", _("Delete"),
_fsel_menu_delete_cb, db);
_fsel_menu_delete_cb, db);
elm_menu_item_add(menu, NULL, "user-trash", _("Trash"),
_dir_go_trash, db);
_dir_go_trash, db);
}
evas_object_smart_callback_add(menu, "dismissed", _menu_dismissed_cb,
db);
db);
evas_object_show(menu);
}
@ -708,23 +707,23 @@ _ephoto_directory_view_add(Ephoto_Directory_Browser *db)
elm_genlist_highlight_mode_set(db->fsel, EINA_TRUE);
EPHOTO_EXPAND(db->fsel);
EPHOTO_FILL(db->fsel);
evas_object_size_hint_min_set(db->fsel, 195*elm_config_scale_get(), 0);
evas_object_size_hint_min_set(db->fsel, 195 * elm_config_scale_get(), 0);
evas_object_smart_callback_add(db->fsel, "expand,request",
_on_list_expand_req, db);
_on_list_expand_req, db);
evas_object_smart_callback_add(db->fsel, "contract,request",
_on_list_contract_req, db);
_on_list_contract_req, db);
evas_object_smart_callback_add(db->fsel, "expanded", _on_list_expanded, db);
evas_object_smart_callback_add(db->fsel, "contracted", _on_list_contracted,
db);
db);
evas_object_event_callback_add(db->fsel, EVAS_CALLBACK_MOUSE_UP,
_fsel_mouse_up_cb, db);
_fsel_mouse_up_cb, db);
evas_object_data_set(db->fsel, "directory_browser", db);
elm_box_pack_end(db->leftbox, db->fsel);
evas_object_show(db->fsel);
elm_drop_item_container_add(db->fsel, ELM_SEL_FORMAT_TARGETS,
_drop_item_getcb, _drop_enter, db, _drop_leave, db, _drop_pos, db,
_drop_dropcb, NULL);
_drop_item_getcb, _drop_enter, db, _drop_leave, db, _drop_pos, db,
_drop_dropcb, NULL);
}
/*Ephoto Populating Functions*/
@ -743,36 +742,36 @@ _monitor_add(Ephoto_Entry *e)
e->monitor = eio_monitor_add(rp);
e->monitor_handlers =
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_CREATED,
_monitor_cb, e));
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_CREATED,
_monitor_cb, e));
e->monitor_handlers =
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
_monitor_cb, e));
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
_monitor_cb, e));
e->monitor_handlers =
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_DELETED,
_monitor_cb, e));
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_DELETED,
_monitor_cb, e));
e->monitor_handlers =
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_CREATED,
_monitor_cb, e));
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_CREATED,
_monitor_cb, e));
e->monitor_handlers =
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_MODIFIED,
_monitor_cb, e));
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_MODIFIED,
_monitor_cb, e));
e->monitor_handlers =
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_DELETED,
_monitor_cb, e));
eina_list_append(e->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_DELETED,
_monitor_cb, e));
free(rp);
}
static Eina_Bool
_monitor_cb(void *data, int type,
void *event)
void *event)
{
Elm_Object_Item *item;
Ephoto_Entry *entry = data;
@ -813,17 +812,17 @@ _monitor_cb(void *data, int type,
ic = _ephoto_dir_class;
snprintf(buf, PATH_MAX, "%s", ev->filename);
e = ephoto_entry_new(entry->ephoto, ev->filename, basename(buf),
EINA_FILE_DIR);
EINA_FILE_DIR);
e->genlist = entry->genlist;
e->parent = entry->item;
if (!_check_for_subdirs(e))
e->item =
elm_genlist_item_sorted_insert(entry->genlist, ic, e,
e->parent, ELM_GENLIST_ITEM_NONE, _entry_cmp, NULL, NULL);
e->parent, ELM_GENLIST_ITEM_NONE, _entry_cmp, NULL, NULL);
else
e->item =
elm_genlist_item_sorted_insert(entry->genlist, ic, e,
e->parent, ELM_GENLIST_ITEM_TREE, _entry_cmp, NULL, NULL);
e->parent, ELM_GENLIST_ITEM_TREE, _entry_cmp, NULL, NULL);
if (e->item)
_monitor_add(e);
}
@ -833,8 +832,8 @@ _monitor_cb(void *data, int type,
ic = _ephoto_dir_tree_class;
parent =
elm_genlist_item_insert_before(entry->genlist, ic, entry,
entry->parent, entry->item, ELM_GENLIST_ITEM_TREE, NULL, NULL);
elm_genlist_item_insert_before(entry->genlist, ic, entry,
entry->parent, entry->item, ELM_GENLIST_ITEM_TREE, NULL, NULL);
entry->no_delete = EINA_TRUE;
elm_object_item_del(entry->item);
entry->item = parent;
@ -865,8 +864,8 @@ _monitor_cb(void *data, int type,
Elm_Object_Item *parent;
ic = _ephoto_dir_class;
parent =
elm_genlist_item_insert_before(entry->genlist, ic, entry,
entry->parent, entry->item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_insert_before(entry->genlist, ic, entry,
entry->parent, entry->item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
entry->no_delete = EINA_TRUE;
elm_object_item_del(entry->item);
@ -917,7 +916,7 @@ _monitor_cb(void *data, int type,
static Eina_Bool
_top_monitor_cb(void *data, int type,
void *event)
void *event)
{
Elm_Object_Item *item;
Ephoto_Directory_Browser *db = data;
@ -951,12 +950,12 @@ _top_monitor_cb(void *data, int type,
}
snprintf(buf, PATH_MAX, "%s", ev->filename);
e = ephoto_entry_new(db->ephoto, ev->filename, basename(buf),
EINA_FILE_DIR);
EINA_FILE_DIR);
e->genlist = db->fsel;
ic = _ephoto_dir_class;
e->item =
elm_genlist_item_append(db->fsel, ic, e,
NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_append(db->fsel, ic, e,
NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
if (e->item)
_monitor_add(e);
free(rp);
@ -1018,53 +1017,53 @@ _todo_items_process(void *data)
return EINA_TRUE;
db->animator.todo_items = NULL;
db->processing = 0;
return EINA_FALSE;
return EINA_FALSE;
}
if ((db->ls) && (eina_list_count(db->todo_items) < TODO_ITEM_MIN_BATCH))
return EINA_TRUE;
return EINA_TRUE;
db->animator.todo_items = NULL;
db->processing = 1;
EINA_LIST_FREE(db->todo_items, entry)
{
i++;
if (i > TODO_ITEM_MIN_BATCH)
return EINA_TRUE;
if (entry->is_dir && !entry->item)
{
const Elm_Genlist_Item_Class *ic;
if (_check_for_subdirs(entry))
{
ic = _ephoto_dir_tree_class;
entry->item =
{
i++;
if (i > TODO_ITEM_MIN_BATCH)
return EINA_TRUE;
if (entry->is_dir && !entry->item)
{
const Elm_Genlist_Item_Class *ic;
if (_check_for_subdirs(entry))
{
ic = _ephoto_dir_tree_class;
entry->item =
elm_genlist_item_sorted_insert(db->fsel, ic, entry,
entry->parent, ELM_GENLIST_ITEM_TREE, _entry_cmp, NULL, NULL);
}
else
{
ic = _ephoto_dir_class;
entry->item =
entry->parent, ELM_GENLIST_ITEM_TREE, _entry_cmp, NULL, NULL);
}
else
{
ic = _ephoto_dir_class;
entry->item =
elm_genlist_item_sorted_insert(db->fsel, ic, entry,
entry->parent, ELM_GENLIST_ITEM_NONE, _entry_cmp, NULL, NULL);
}
if (!entry->item)
{
ephoto_entry_free(db->ephoto, entry);
}
else
{
_monitor_add(entry);
entry->genlist = db->fsel;
}
}
db->animator.processed++;
}
entry->parent, ELM_GENLIST_ITEM_NONE, _entry_cmp, NULL, NULL);
}
if (!entry->item)
{
ephoto_entry_free(db->ephoto, entry);
}
else
{
_monitor_add(entry);
entry->genlist = db->fsel;
}
}
db->animator.processed++;
}
return EINA_TRUE;
}
static Eina_Bool
_ephoto_dir_populate_start(void *data, int type EINA_UNUSED,
void *event EINA_UNUSED)
void *event EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
@ -1078,15 +1077,15 @@ _ephoto_dir_populate_start(void *data, int type EINA_UNUSED,
static Eina_Bool
_ephoto_dir_populate_end(void *data, int type EINA_UNUSED,
void *event EINA_UNUSED)
void *event EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
db->ls = NULL;
if (db->main_deleted)
{
free(db);
return ECORE_CALLBACK_PASS_ON;
free(db);
return ECORE_CALLBACK_PASS_ON;
}
db->dirs_only = 0;
ephoto_thumb_browser_dirs_only_set(db->ephoto, EINA_FALSE);
@ -1097,7 +1096,7 @@ _ephoto_dir_populate_end(void *data, int type EINA_UNUSED,
static Eina_Bool
_ephoto_dir_populate_error(void *data, int type EINA_UNUSED,
void *event EINA_UNUSED)
void *event EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
@ -1120,8 +1119,8 @@ _ephoto_dir_entry_create(void *data, int type EINA_UNUSED, void *event)
rp = ecore_file_realpath(e->path);
if (e->is_dir)
{
db->todo_items = eina_list_append(db->todo_items, e);
db->animator.count++;
db->todo_items = eina_list_append(db->todo_items, e);
db->animator.count++;
}
else if (ecore_file_is_dir((const char *)rp))
{
@ -1129,7 +1128,7 @@ _ephoto_dir_entry_create(void *data, int type EINA_UNUSED, void *event)
db->animator.count++;
}
if (!db->animator.todo_items)
db->animator.todo_items = ecore_animator_add(_todo_items_process, db);
db->animator.todo_items = ecore_animator_add(_todo_items_process, db);
free(rp);
return ECORE_CALLBACK_PASS_ON;
@ -1138,24 +1137,25 @@ _ephoto_dir_entry_create(void *data, int type EINA_UNUSED, void *event)
/*Ephoto Directory Browser Main Callbacks*/
static void
_ephoto_main_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Directory_Browser *db = data;
Ecore_Event_Handler *handler;
_todo_items_free(db);
elm_drop_item_container_del(db->fsel);
EINA_LIST_FREE(db->handlers, handler) ecore_event_handler_del(handler);
EINA_LIST_FREE(db->handlers, handler)
ecore_event_handler_del(handler);
if (db->animator.todo_items)
{
ecore_animator_del(db->animator.todo_items);
db->animator.todo_items = NULL;
ecore_animator_del(db->animator.todo_items);
db->animator.todo_items = NULL;
}
if (db->ls)
{
db->main_deleted = EINA_TRUE;
eio_file_cancel(db->ls);
return;
db->main_deleted = EINA_TRUE;
eio_file_cancel(db->ls);
return;
}
if (db->monitor)
{
@ -1170,7 +1170,7 @@ void
ephoto_directory_browser_clear(Ephoto *ephoto)
{
Ephoto_Directory_Browser *db =
evas_object_data_get(ephoto->dir_browser, "directory_browser");
evas_object_data_get(ephoto->dir_browser, "directory_browser");
elm_genlist_clear(db->fsel);
}
@ -1179,7 +1179,7 @@ void
ephoto_directory_browser_top_dir_set(Ephoto *ephoto, const char *dir)
{
Ephoto_Directory_Browser *db =
evas_object_data_get(ephoto->dir_browser, "directory_browser");
evas_object_data_get(ephoto->dir_browser, "directory_browser");
Ecore_Event_Handler *handler;
char *rp = ecore_file_realpath(dir);
@ -1195,29 +1195,29 @@ ephoto_directory_browser_top_dir_set(Ephoto *ephoto, const char *dir)
ephoto->top_directory = eina_stringshare_add(dir);
db->monitor = eio_monitor_add(rp);
db->monitor_handlers =
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_CREATED,
_top_monitor_cb, db));
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_CREATED,
_top_monitor_cb, db));
db->monitor_handlers =
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
_top_monitor_cb, db));
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
_top_monitor_cb, db));
db->monitor_handlers =
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_DELETED,
_top_monitor_cb, db));
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_DELETED,
_top_monitor_cb, db));
db->monitor_handlers =
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_CREATED,
_top_monitor_cb, db));
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_CREATED,
_top_monitor_cb, db));
db->monitor_handlers =
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_MODIFIED,
_top_monitor_cb, db));
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_MODIFIED,
_top_monitor_cb, db));
db->monitor_handlers =
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_DELETED,
_top_monitor_cb, db));
eina_list_append(db->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_DIRECTORY_DELETED,
_top_monitor_cb, db));
free(rp);
}
@ -1225,7 +1225,7 @@ void
ephoto_directory_browser_initialize_structure(Ephoto *ephoto)
{
Ephoto_Directory_Browser *db =
evas_object_data_get(ephoto->dir_browser, "directory_browser");
evas_object_data_get(ephoto->dir_browser, "directory_browser");
Eina_List *dirs = NULL, *l;
Elm_Object_Item *next = NULL, *cur = NULL;
char path[PATH_MAX], *dir, *end_dir;
@ -1276,7 +1276,7 @@ ephoto_directory_browser_initialize_structure(Ephoto *ephoto)
if (strncmp(finfo->path + finfo->name_start, ".", 1))
{
Ephoto_Entry *entry = ephoto_entry_new(ephoto, finfo->path,
finfo->path+finfo->name_start, finfo->type);
finfo->path + finfo->name_start, finfo->type);
entry->parent = cur;
if (entry->is_dir && !entry->item)
{
@ -1285,17 +1285,17 @@ ephoto_directory_browser_initialize_structure(Ephoto *ephoto)
{
ic = _ephoto_dir_tree_class;
entry->item =
elm_genlist_item_sorted_insert(db->fsel, ic, entry,
entry->parent, ELM_GENLIST_ITEM_TREE, _entry_cmp,
NULL, NULL);
elm_genlist_item_sorted_insert(db->fsel, ic, entry,
entry->parent, ELM_GENLIST_ITEM_TREE, _entry_cmp,
NULL, NULL);
}
else
{
ic = _ephoto_dir_class;
entry->item =
elm_genlist_item_sorted_insert(db->fsel, ic, entry,
entry->parent, ELM_GENLIST_ITEM_NONE, _entry_cmp,
NULL, NULL);
elm_genlist_item_sorted_insert(db->fsel, ic, entry,
entry->parent, ELM_GENLIST_ITEM_NONE, _entry_cmp,
NULL, NULL);
}
if (!entry->item)
{
@ -1370,36 +1370,37 @@ ephoto_directory_browser_add(Ephoto *ephoto, Evas_Object *parent)
db->main = box;
elm_box_horizontal_set(db->main, EINA_FALSE);
evas_object_size_hint_min_set(db->main, 195*elm_config_scale_get(), 0);
evas_object_size_hint_min_set(db->main, 195 * elm_config_scale_get(), 0);
evas_object_event_callback_add(db->main, EVAS_CALLBACK_DEL,
_ephoto_main_del, db);
_ephoto_main_del, db);
evas_object_data_set(db->main, "directory_browser", db);
_ephoto_directory_view_add(db);
db->handlers =
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_POPULATE_START,
_ephoto_dir_populate_start, db));
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_POPULATE_START,
_ephoto_dir_populate_start, db));
db->handlers =
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_POPULATE_END,
_ephoto_dir_populate_end, db));
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_POPULATE_END,
_ephoto_dir_populate_end, db));
db->handlers =
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_POPULATE_ERROR,
_ephoto_dir_populate_error, db));
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_POPULATE_ERROR,
_ephoto_dir_populate_error, db));
db->handlers =
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_ENTRY_CREATE,
_ephoto_dir_entry_create, db));
eina_list_append(db->handlers,
ecore_event_handler_add(EPHOTO_EVENT_ENTRY_CREATE,
_ephoto_dir_entry_create, db));
return db->main;
error:
error:
evas_object_del(db->main);
return NULL;
}

View File

@ -2,28 +2,28 @@
static void
_editor_reset(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
ecore_event_add(EPHOTO_EVENT_EDITOR_RESET, NULL, NULL, NULL);
}
static void
_editor_apply(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
ecore_event_add(EPHOTO_EVENT_EDITOR_APPLY, NULL, NULL, NULL);
}
static void
_editor_cancel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
ecore_event_add(EPHOTO_EVENT_EDITOR_CANCEL, NULL, NULL, NULL);
}
Evas_Object *
ephoto_editor_add(Ephoto *ephoto, Evas_Object *parent, const char *title, const char *data_name,
void *data)
void *data)
{
Evas_Object *frame, *box, *ic, *button;
@ -45,8 +45,8 @@ ephoto_editor_add(Ephoto *ephoto, Evas_Object *parent, const char *title, const
evas_object_show(box);
ic = elm_icon_add(box);
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get());
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");
@ -60,8 +60,8 @@ ephoto_editor_add(Ephoto *ephoto, Evas_Object *parent, const char *title, const
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());
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, "document-save");
@ -75,8 +75,8 @@ ephoto_editor_add(Ephoto *ephoto, Evas_Object *parent, const char *title, const
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());
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, "window-close");

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#include "ephoto.h"
typedef enum _Ephoto_Image_Filter Ephoto_Image_Filter;
typedef struct _Ephoto_Filter Ephoto_Filter;
typedef struct _Ephoto_Filter Ephoto_Filter;
enum _Ephoto_Image_Filter
{
@ -22,24 +22,24 @@ enum _Ephoto_Image_Filter
struct _Ephoto_Filter
{
Ephoto_Image_Filter filter;
Ephoto *ephoto;
Evas_Object *image;
Evas_Object *popup;
Ecore_Thread *thread;;
Eina_List *queue;
Evas_Coord w;
Evas_Coord h;
int rad;
int qpos;
int qcount;
double drad;
unsigned int *hist;
unsigned int *cdf;
unsigned int *im_data;
unsigned int *im_data_new;
unsigned int *im_data_orig;
unsigned int *im_data_two;
Eina_Bool save_data;
Ephoto *ephoto;
Evas_Object *image;
Evas_Object *popup;
Ecore_Thread *thread;
Eina_List *queue;
Evas_Coord w;
Evas_Coord h;
int rad;
int qpos;
int qcount;
double drad;
unsigned int *hist;
unsigned int *cdf;
unsigned int *im_data;
unsigned int *im_data_new;
unsigned int *im_data_orig;
unsigned int *im_data_two;
Eina_Bool save_data;
};
static void _blur(void *data, Ecore_Thread *th EINA_UNUSED);
@ -56,14 +56,14 @@ static void _histogram_eq(void *data, Ecore_Thread *th EINA_UNUSED);
static Ephoto_Filter *
_initialize_filter(Ephoto_Image_Filter filter,
Ephoto *ephoto, Evas_Object *image)
Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = calloc(1, sizeof(Ephoto_Filter));
Evas_Coord w, h;
unsigned int *im_data;
im_data =
evas_object_image_data_get(image, EINA_FALSE);
evas_object_image_data_get(image, EINA_FALSE);
evas_object_image_size_get(image, &w, &h);
ef->filter = filter;
@ -93,7 +93,7 @@ _create_hist(Ephoto_Filter *ef)
{
int i;
for (i = 0; i < 256; i++)
ef->hist[i] = 0;
ef->hist[i] = 0;
}
static Evas_Object *
@ -113,7 +113,7 @@ _processing(Evas_Object *main)
label = elm_label_add(box);
elm_object_text_set(label,
_("Please wait while this filter is applied to your image."));
_("Please wait while this filter is applied to your image."));
EPHOTO_EXPAND(label);
EPHOTO_FILL(label);
elm_box_pack_end(box, label);
@ -141,7 +141,7 @@ _thread_finished_cb(void *data, Ecore_Thread *th EINA_UNUSED)
if (ef->qcount == 0)
{
ephoto_single_browser_image_data_done(ef->ephoto->single_browser,
ef->im_data_new, ef->w, ef->h);
ef->im_data_new, ef->w, ef->h);
if (ef->popup)
{
evas_object_del(ef->popup);
@ -165,14 +165,14 @@ _thread_finished_cb(void *data, Ecore_Thread *th EINA_UNUSED)
}
ef->im_data_two = malloc(sizeof(unsigned int) * ef->w * ef->h);
memcpy(ef->im_data_two, ef->im_data,
sizeof(unsigned int) * ef->w * ef->h);
sizeof(unsigned int) * ef->w * ef->h);
ef->save_data = EINA_FALSE;
}
free(ef->im_data);
ef->im_data = NULL;
ef->im_data = malloc(sizeof(unsigned int) * ef->w * ef->h);
memcpy(ef->im_data, ef->im_data_new,
sizeof(unsigned int) * ef->w * ef->h);
sizeof(unsigned int) * ef->w * ef->h);
if (ef->hist)
free(ef->hist);
ef->hist = NULL;
@ -180,18 +180,18 @@ _thread_finished_cb(void *data, Ecore_Thread *th EINA_UNUSED)
free(ef->cdf);
ef->cdf = NULL;
ef->qpos++;
if (ef->qpos-1 < ef->qcount)
if (ef->qpos - 1 < ef->qcount)
{
free(ef->im_data_new);
ef->im_data_new = NULL;
ef->im_data_new = malloc(sizeof(unsigned int) * ef->w * ef->h);
ef->thread = ecore_thread_run(eina_list_nth(ef->queue, ef->qpos-1),
_thread_finished_cb, NULL, ef);
ef->thread = ecore_thread_run(eina_list_nth(ef->queue, ef->qpos - 1),
_thread_finished_cb, NULL, ef);
}
else
{
ephoto_single_browser_image_data_done(ef->ephoto->single_browser,
ef->im_data_new, ef->w, ef->h);
ef->im_data_new, ef->w, ef->h);
if (ef->popup)
{
evas_object_del(ef->popup);
@ -231,7 +231,7 @@ _blur_vertical(Ephoto_Filter *ef, double rad)
as[i] = (ef->im_data[i] >> 24) & 0xff;
}
iarr = (double) 1 / (rad + rad + 1);
iarr = (double)1 / (rad + rad + 1);
for (y = 0; y < h; y++)
{
int t, l, rr;
@ -274,17 +274,17 @@ _blur_vertical(Ephoto_Filter *ef, double rad)
valr += rs[r] - fr;
vala += as[r] - fa;
bt = (int) round(valb * iarr);
gt = (int) round(valg * iarr);
rt = (int) round(valr * iarr);
at = (int) round(vala * iarr);
bt = (int)round(valb * iarr);
gt = (int)round(valg * iarr);
rt = (int)round(valr * iarr);
at = (int)round(vala * iarr);
bt = ephoto_normalize_color(bt);
gt = ephoto_normalize_color(gt);
rt = ephoto_normalize_color(rt);
at = ephoto_normalize_color(at);
ef->im_data_new[t++] = (at << 24) | (rt << 16)
| (gt << 8) | bt;
| (gt << 8) | bt;
}
for (i = rad + 1; i < w - rad; i++)
{
@ -296,16 +296,16 @@ _blur_vertical(Ephoto_Filter *ef, double rad)
valr += rs[r] - rs[ll];
vala += as[r] - as[ll];
bt = (int) round(valb * iarr);
gt = (int) round(valg * iarr);
rt = (int) round(valr * iarr);
at = (int) round(vala * iarr);
bt = (int)round(valb * iarr);
gt = (int)round(valg * iarr);
rt = (int)round(valr * iarr);
at = (int)round(vala * iarr);
bt = ephoto_normalize_color(bt);
gt = ephoto_normalize_color(gt);
rt = ephoto_normalize_color(rt);
at = ephoto_normalize_color(at);
ef->im_data_new[t++] = (at << 24) | (rt << 16)
| (gt << 8) | bt;
| (gt << 8) | bt;
}
for (i = w - rad; i < w; i++)
{
@ -316,16 +316,16 @@ _blur_vertical(Ephoto_Filter *ef, double rad)
valr += lvr - rs[ll];
vala += lva - as[ll];
bt = (int) round(valb * iarr);
gt = (int) round(valg * iarr);
rt = (int) round(valr * iarr);
at = (int) round(vala * iarr);
bt = (int)round(valb * iarr);
gt = (int)round(valg * iarr);
rt = (int)round(valr * iarr);
at = (int)round(vala * iarr);
bt = ephoto_normalize_color(bt);
gt = ephoto_normalize_color(gt);
rt = ephoto_normalize_color(rt);
at = ephoto_normalize_color(at);
ef->im_data_new[t++] = (at << 24) | (rt << 16)
| (gt << 8) | bt;
| (gt << 8) | bt;
}
}
free(bs);
@ -399,16 +399,16 @@ _blur_horizontal(Ephoto_Filter *ef, double rad)
valr += rs[rr] - fr;
vala += as[rr] - fa;
bt = (int) round(valb * iarr);
gt = (int) round(valg * iarr);
rt = (int) round(valr * iarr);
at = (int) round(vala * iarr);
bt = (int)round(valb * iarr);
gt = (int)round(valg * iarr);
rt = (int)round(valr * iarr);
at = (int)round(vala * iarr);
bt = ephoto_normalize_color(bt);
gt = ephoto_normalize_color(gt);
rt = ephoto_normalize_color(rt);
at = ephoto_normalize_color(at);
ef->im_data[t] = (at << 24) | (rt << 16)
| (gt << 8) | bt;
| (gt << 8) | bt;
rr += w;
t += w;
@ -418,18 +418,18 @@ _blur_horizontal(Ephoto_Filter *ef, double rad)
valb += bs[rr] - bs[l];
valg += gs[rr] - gs[l];
valr += rs[rr] - rs[l];
vala += as[rr] - as[l];;
vala += as[rr] - as[l];
bt = (int) round(valb * iarr);
gt = (int) round(valg * iarr);
rt = (int) round(valr * iarr);
at = (int) round(vala * iarr);
bt = (int)round(valb * iarr);
gt = (int)round(valg * iarr);
rt = (int)round(valr * iarr);
at = (int)round(vala * iarr);
bt = ephoto_normalize_color(bt);
gt = ephoto_normalize_color(gt);
rt = ephoto_normalize_color(rt);
at = ephoto_normalize_color(at);
ef->im_data[t] = (at << 24) | (rt << 16)
| (gt << 8) | bt;
| (gt << 8) | bt;
l += w;
rr += w;
@ -442,16 +442,16 @@ _blur_horizontal(Ephoto_Filter *ef, double rad)
valr += lvr - rs[l];
vala += lva - as[l];
bt = (int) round(valb * iarr);
gt = (int) round(valg * iarr);
rt = (int) round(valr * iarr);
at = (int) round(vala * iarr);
bt = (int)round(valb * iarr);
gt = (int)round(valg * iarr);
rt = (int)round(valr * iarr);
at = (int)round(vala * iarr);
bt = ephoto_normalize_color(bt);
gt = ephoto_normalize_color(gt);
rt = ephoto_normalize_color(rt);
at = ephoto_normalize_color(at);
ef->im_data[t] = (at << 24) | (rt << 16)
| (gt << 8) | bt;
| (gt << 8) | bt;
l += w;
t += w;
@ -482,7 +482,7 @@ _blur(void *data, Ecore_Thread *th EINA_UNUSED)
wl--;
wu = wl + 2;
ideal = (12 * rad * rad - 3 * wl * wl -
4 * 3 * wl - 3 * 3) / (-4 * wl - 4);
4 * 3 * wl - 3 * 3) / (-4 * wl - 4);
m = round(ideal);
for (i = 0; i < 3; i++)
@ -495,7 +495,7 @@ _blur(void *data, Ecore_Thread *th EINA_UNUSED)
rad = (sizes[i] - 1) / 2;
memcpy(ef->im_data_new, ef->im_data,
sizeof(unsigned int) * w * h);
sizeof(unsigned int) * w * h);
_blur_vertical(ef, rad);
_blur_horizontal(ef, rad);
}
@ -521,19 +521,19 @@ _sharpen(void *data, Ecore_Thread *th EINA_UNUSED)
p3 = ef->im_data_new + (y * w);
for (x = 1; x < (w - 1); x++)
{
b = (int) (*p1 & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
bb = (int) (*p2 & 0xff);
gg = (int) ((*p2 >> 8) & 0xff);
rr = (int) ((*p2 >> 16) & 0xff);
aa = (int) ((*p2 >> 24) & 0xff);
b = (int)(*p1 & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
bb = (int)(*p2 & 0xff);
gg = (int)((*p2 >> 8) & 0xff);
rr = (int)((*p2 >> 16) & 0xff);
aa = (int)((*p2 >> 24) & 0xff);
bbb = (int) ((2 * bb) - b);
ggg = (int) ((2 * gg) - g);
rrr = (int) ((2 * rr) - r);
aaa = (int) ((2 * aa) - a);
bbb = (int)((2 * bb) - b);
ggg = (int)((2 * gg) - g);
rrr = (int)((2 * rr) - r);
aaa = (int)((2 * aa) - a);
bbb = ephoto_normalize_color(bbb);
ggg = ephoto_normalize_color(ggg);
@ -583,12 +583,12 @@ _dither(void *data, Ecore_Thread *th EINA_UNUSED)
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
ef->im_data_new[index] = (a << 24) | (rr << 16) |
(gg << 8) | bb;
(gg << 8) | bb;
errb = b - bb;
errg = g - gg;
errr = r - rr;
if ((x+1) < w)
if ((x + 1) < w)
{
index = y * w + x + 1;
b = (ef->im_data_new[index] & 0xff);
@ -608,9 +608,9 @@ _dither(void *data, Ecore_Thread *th EINA_UNUSED)
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
ef->im_data_new[index] = (a << 24) | (rr << 16) |
(gg << 8) | bb;
(gg << 8) | bb;
}
if (x > 0 && (y+1) < h)
if (x > 0 && (y + 1) < h)
{
index = (y + 1) * w + (x - 1);
b = (ef->im_data_new[index] & 0xff);
@ -630,9 +630,9 @@ _dither(void *data, Ecore_Thread *th EINA_UNUSED)
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
ef->im_data_new[index] = (a << 24) | (rr << 16) |
(gg << 8) | bb;
(gg << 8) | bb;
}
if ((y+1) < h)
if ((y + 1) < h)
{
index = (y + 1) * w + x;
b = (ef->im_data_new[index] & 0xff);
@ -652,9 +652,9 @@ _dither(void *data, Ecore_Thread *th EINA_UNUSED)
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
ef->im_data_new[index] = (a << 24) | (rr << 16) |
(gg << 8) | bb;
(gg << 8) | bb;
}
if ((y+1) < h && (x+1) < w)
if ((y + 1) < h && (x + 1) < w)
{
index = (y + 1) * w + (x + 1);
b = (ef->im_data_new[index] & 0xff);
@ -674,7 +674,7 @@ _dither(void *data, Ecore_Thread *th EINA_UNUSED)
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
ef->im_data_new[index] = (a << 24) | (rr << 16) |
(gg << 8) | bb;
(gg << 8) | bb;
}
}
}
@ -694,14 +694,14 @@ _grayscale(void *data, Ecore_Thread *th EINA_UNUSED)
for (x = 0; x < w; x++)
{
i = y * w + x;
b = (int) ((ef->im_data[i]) & 0xff);
g = (int) ((ef->im_data[i] >> 8) & 0xff);
r = (int) ((ef->im_data[i] >> 16) & 0xff);
a = (int) ((ef->im_data[i] >> 24) & 0xff);
b = (int)((ef->im_data[i]) & 0xff);
g = (int)((ef->im_data[i] >> 8) & 0xff);
r = (int)((ef->im_data[i] >> 16) & 0xff);
a = (int)((ef->im_data[i] >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
gray = (int) ((0.3 * r) + (0.59 * g) + (0.11 * b));
gray = (int)((0.3 * r) + (0.59 * g) + (0.11 * b));
if (a >= 0 && a < 255)
gray = (gray * a) / 255;
ef->im_data_new[i] = (a << 24) | (gray << 16) | (gray << 8) | gray;
@ -731,11 +731,11 @@ _sepia(void *data, Ecore_Thread *th EINA_UNUSED)
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
rr = (int) ((r * .393) + (g * .769) + (b * .189));
rr = (int)((r * .393) + (g * .769) + (b * .189));
rr = ephoto_normalize_color(rr);
gg = ((r * .349) + (g * .686) + (b * .168));
gg = ephoto_normalize_color(gg);
bb = (int) ((r * .272) + (g * .534) + (b * .131));
bb = (int)((r * .272) + (g * .534) + (b * .131));
bb = ephoto_normalize_color(bb);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
@ -900,8 +900,8 @@ _sobel(void *data, Ecore_Thread *th EINA_UNUSED)
index = (y + i) * w + x + j;
pix = ef->im_data[index];
hpval += pix * sobx[i+1][j+1];
vpval += pix * soby[i+1][j+1];
hpval += pix * sobx[i + 1][j + 1];
vpval += pix * soby[i + 1][j + 1];
}
}
}
@ -938,7 +938,7 @@ _emboss(void *data, Ecore_Thread *th EINA_UNUSED)
{
p = ef->im_data_new + (y * w);
for (x = 0; x < w; x++)
{
{
int aa = 0, rr = 0, gg = 0, bb = 0;
if (y > 0 && x > 0 && y < (h - 2) && x < (w - 2))
{
@ -949,14 +949,14 @@ _emboss(void *data, Ecore_Thread *th EINA_UNUSED)
int index, pix;
index = (y + i) * w + x + j;
pix = ef->im_data[index];
bb += (int) ((pix) & 0xff) *
emboss[i+1][j+1];
gg += (int) ((pix >> 8) & 0xff) *
emboss[i+1][j+1];
rr += (int) ((pix >> 16) & 0xff) *
emboss[i+1][j+1];
aa += (int) ((pix >> 24) & 0xff) *
emboss[i+1][j+1];
bb += (int)((pix) & 0xff) *
emboss[i + 1][j + 1];
gg += (int)((pix >> 8) & 0xff) *
emboss[i + 1][j + 1];
rr += (int)((pix >> 16) & 0xff) *
emboss[i + 1][j + 1];
aa += (int)((pix >> 24) & 0xff) *
emboss[i + 1][j + 1];
}
}
}
@ -997,7 +997,7 @@ _histogram_eq(void *data, Ecore_Thread *th EINA_UNUSED)
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
norm = (int) round((double) v * (double) 255);
norm = (int)round((double)v * (double)255);
ef->hist[norm] += 1;
p1++;
}
@ -1005,9 +1005,9 @@ _histogram_eq(void *data, Ecore_Thread *th EINA_UNUSED)
sum = 0;
for (i = 0; i < 256; i++)
{
sum += ((double) ef->hist[i] /
(double) total);
ef->cdf[i] = (int) round(sum * 255);
sum += ((double)ef->hist[i] /
(double)total);
ef->cdf[i] = (int)round(sum * 255);
}
for (y = 0; y < h; y++)
{
@ -1023,8 +1023,8 @@ _histogram_eq(void *data, Ecore_Thread *th EINA_UNUSED)
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
norm = (int) round((double) v * (double) 255);
nv = (float) ef->cdf[norm] / (float) 255;
norm = (int)round((double)v * (double)255);
nv = (float)ef->cdf[norm] / (float)255;
evas_color_hsv_to_rgb(hh, s, nv, &rr, &gg, &bb);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
@ -1043,22 +1043,22 @@ void
ephoto_filter_blur(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_BLUR,
ephoto, image);
ephoto, image);
ef->rad = 9;
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_blur, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void
ephoto_filter_sharpen(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_SHARPEN,
ephoto, image);
ephoto, image);
ef->im_data_orig = malloc(sizeof(unsigned int) * ef->w * ef->h);
memcpy(ef->im_data_orig, ef->im_data,
sizeof(unsigned int) * ef->w * ef->h);
sizeof(unsigned int) * ef->w * ef->h);
ef->rad = 9;
ef->qcount = 1;
@ -1066,61 +1066,61 @@ ephoto_filter_sharpen(Ephoto *ephoto, Evas_Object *image)
ef->queue = eina_list_append(ef->queue, _sharpen);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_blur, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void
ephoto_filter_dither(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_DITHER,
ephoto, image);
ephoto, image);
memcpy(ef->im_data_new, ef->im_data,
sizeof(unsigned int) * ef->w * ef->h);
sizeof(unsigned int) * ef->w * ef->h);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_dither, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void
ephoto_filter_black_and_white(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_GRAYSCALE,
ephoto, image);
ephoto, image);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_grayscale, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void
ephoto_filter_old_photo(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_SEPIA,
ephoto, image);
ephoto, image);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_sepia, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void
ephoto_filter_posterize(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_POSTERIZE,
ephoto, image);
ephoto, image);
ef->drad = 2.0;
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_posterize, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void
ephoto_filter_painting(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_PAINTING,
ephoto, image);
ephoto, image);
ef->rad = 5;
ef->drad = 5.0;
@ -1129,23 +1129,25 @@ ephoto_filter_painting(Ephoto *ephoto, Evas_Object *image)
ef->queue = eina_list_append(ef->queue, _posterize);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_blur, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void ephoto_filter_invert(Ephoto *ephoto, Evas_Object *image)
void
ephoto_filter_invert(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_INVERT,
ephoto, image);
ephoto, image);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_negative, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void ephoto_filter_sketch(Ephoto *ephoto, Evas_Object *image)
void
ephoto_filter_sketch(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_SKETCH,
ephoto, image);
ephoto, image);
ef->rad = 4;
ef->qpos = 0;
@ -1155,13 +1157,14 @@ void ephoto_filter_sketch(Ephoto *ephoto, Evas_Object *image)
ef->queue = eina_list_append(ef->queue, _dodge);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_grayscale, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void ephoto_filter_edge(Ephoto *ephoto, Evas_Object *image)
void
ephoto_filter_edge(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_SOBEL,
ephoto, image);
ephoto, image);
ef->rad = 3;
ef->qpos = 0;
@ -1170,29 +1173,31 @@ void ephoto_filter_edge(Ephoto *ephoto, Evas_Object *image)
ef->queue = eina_list_append(ef->queue, _sobel);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_blur, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void ephoto_filter_emboss(Ephoto *ephoto, Evas_Object *image)
void
ephoto_filter_emboss(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_EMBOSS,
ephoto, image);
ephoto, image);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_emboss, _thread_finished_cb,
NULL, ef);
NULL, ef);
}
void
ephoto_filter_histogram_eq(Ephoto *ephoto, Evas_Object *image)
{
Ephoto_Filter *ef = _initialize_filter(EPHOTO_IMAGE_FILTER_EQUALIZE,
ephoto, image);
ephoto, image);
ef->hist = malloc(sizeof(unsigned int) * 256);
ef->cdf = malloc(sizeof(unsigned int) * 256);
_create_hist(ef);
ef->popup = _processing(ephoto->win);
ef->thread = ecore_thread_run(_histogram_eq, _thread_finished_cb,
NULL, ef);
NULL, ef);
}

View File

@ -3,18 +3,18 @@
typedef struct _Ephoto_HSV Ephoto_HSV;
struct _Ephoto_HSV
{
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *hslider;
Evas_Object *sslider;
Evas_Object *vslider;
Eina_List *handlers;
double hue;
double saturation;
double value;
Evas_Coord w, h;
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *hslider;
Evas_Object *sslider;
Evas_Object *vslider;
Eina_List *handlers;
double hue;
double saturation;
double value;
Evas_Coord w, h;
unsigned int *original_im_data;
};
@ -28,54 +28,54 @@ _ephoto_hsv_adjust_hue(Ephoto_HSV *ehsv, double hue, unsigned int *image_data)
im_data = malloc(sizeof(unsigned int) * ehsv->w * ehsv->h);
if (image_data)
memcpy(im_data, image_data, sizeof(unsigned int) * ehsv->w * ehsv->h);
memcpy(im_data, image_data, sizeof(unsigned int) * ehsv->w * ehsv->h);
else
memcpy(im_data, ehsv->original_im_data,
sizeof(unsigned int) * ehsv->w * ehsv->h);
memcpy(im_data, ehsv->original_im_data,
sizeof(unsigned int) * ehsv->w * ehsv->h);
im_data_new = malloc(sizeof(unsigned int) * ehsv->w * ehsv->h);
for (y = 0; y < ehsv->h; y++)
{
p1 = im_data + (y * ehsv->w);
p2 = im_data_new + (y * ehsv->w);
for (x = 0; x < ehsv->w; x++)
{
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
hh += hue;
if (hh < 0)
hh += 360;
if (hh > 360)
hh -= 360;
evas_color_hsv_to_rgb(hh, s, v, &rr, &gg, &bb);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
p1 = im_data + (y * ehsv->w);
p2 = im_data_new + (y * ehsv->w);
for (x = 0; x < ehsv->w; x++)
{
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
hh += hue;
if (hh < 0)
hh += 360;
if (hh > 360)
hh -= 360;
evas_color_hsv_to_rgb(hh, s, v, &rr, &gg, &bb);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
}
ehsv->hue = hue;
ephoto_single_browser_image_data_update(ehsv->main, ehsv->image,
im_data_new, ehsv->w, ehsv->h);
im_data_new, ehsv->w, ehsv->h);
free(im_data);
return im_data_new;
}
unsigned int *
_ephoto_hsv_adjust_saturation(Ephoto_HSV *ehsv, double saturation,
unsigned int *image_data)
unsigned int *image_data)
{
unsigned int *im_data, *im_data_new, *p1, *p2;
Evas_Coord x, y;
@ -84,54 +84,54 @@ _ephoto_hsv_adjust_saturation(Ephoto_HSV *ehsv, double saturation,
im_data = malloc(sizeof(unsigned int) * ehsv->w * ehsv->h);
if (image_data)
memcpy(im_data, image_data, sizeof(unsigned int) * ehsv->w * ehsv->h);
memcpy(im_data, image_data, sizeof(unsigned int) * ehsv->w * ehsv->h);
else
memcpy(im_data, ehsv->original_im_data,
sizeof(unsigned int) * ehsv->w * ehsv->h);
memcpy(im_data, ehsv->original_im_data,
sizeof(unsigned int) * ehsv->w * ehsv->h);
im_data_new = malloc(sizeof(unsigned int) * ehsv->w * ehsv->h);
for (y = 0; y < ehsv->h; y++)
{
p1 = im_data + (y * ehsv->w);
p2 = im_data_new + (y * ehsv->w);
for (x = 0; x < ehsv->w; x++)
{
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
s += s * ((float) saturation / 100);
if (s < 0)
s = 0;
if (s > 1)
s = 1;
evas_color_hsv_to_rgb(hh, s, v, &rr, &gg, &bb);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
p1 = im_data + (y * ehsv->w);
p2 = im_data_new + (y * ehsv->w);
for (x = 0; x < ehsv->w; x++)
{
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
s += s * ((float)saturation / 100);
if (s < 0)
s = 0;
if (s > 1)
s = 1;
evas_color_hsv_to_rgb(hh, s, v, &rr, &gg, &bb);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
}
ehsv->saturation = saturation;
ephoto_single_browser_image_data_update(ehsv->main, ehsv->image,
im_data_new, ehsv->w, ehsv->h);
im_data_new, ehsv->w, ehsv->h);
free(im_data);
return im_data_new;
}
unsigned int *
_ephoto_hsv_adjust_value(Ephoto_HSV *ehsv, double value,
unsigned int *image_data)
unsigned int *image_data)
{
unsigned int *im_data, *im_data_new, *p1, *p2;
Evas_Coord x, y;
@ -140,47 +140,47 @@ _ephoto_hsv_adjust_value(Ephoto_HSV *ehsv, double value,
im_data = malloc(sizeof(unsigned int) * ehsv->w * ehsv->h);
if (image_data)
memcpy(im_data, image_data, sizeof(unsigned int) * ehsv->w * ehsv->h);
memcpy(im_data, image_data, sizeof(unsigned int) * ehsv->w * ehsv->h);
else
memcpy(im_data, ehsv->original_im_data,
sizeof(unsigned int) * ehsv->w * ehsv->h);
memcpy(im_data, ehsv->original_im_data,
sizeof(unsigned int) * ehsv->w * ehsv->h);
im_data_new = malloc(sizeof(unsigned int) * ehsv->w * ehsv->h);
for (y = 0; y < ehsv->h; y++)
{
p1 = im_data + (y * ehsv->w);
p2 = im_data_new + (y * ehsv->w);
for (x = 0; x < ehsv->w; x++)
{
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
v += (v * ((float) value / 100));
if (v < 0)
v = 0;
if (v > 1)
v = 1;
evas_color_hsv_to_rgb(hh, s, v, &rr, &gg, &bb);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
p1 = im_data + (y * ehsv->w);
p2 = im_data_new + (y * ehsv->w);
for (x = 0; x < ehsv->w; x++)
{
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
evas_color_rgb_to_hsv(r, g, b, &hh, &s, &v);
v += (v * ((float)value / 100));
if (v < 0)
v = 0;
if (v > 1)
v = 1;
evas_color_hsv_to_rgb(hh, s, v, &rr, &gg, &bb);
bb = ephoto_normalize_color(bb);
gg = ephoto_normalize_color(gg);
rr = ephoto_normalize_color(rr);
bb = ephoto_demul_color_alpha(bb, a);
gg = ephoto_demul_color_alpha(gg, a);
rr = ephoto_demul_color_alpha(rr, a);
*p2 = (a << 24) | (rr << 16) | (gg << 8) | bb;
p2++;
p1++;
}
}
ehsv->value = value;
ephoto_single_browser_image_data_update(ehsv->main, ehsv->image,
im_data_new, ehsv->w, ehsv->h);
im_data_new, ehsv->w, ehsv->h);
free(im_data);
return im_data_new;
}
@ -195,13 +195,13 @@ _hue_slider_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
hue = elm_slider_value_get(obj);
image_data = _ephoto_hsv_adjust_hue(ehsv, hue, NULL);
image_data_two =
_ephoto_hsv_adjust_saturation(ehsv, ehsv->saturation, image_data);
_ephoto_hsv_adjust_saturation(ehsv, ehsv->saturation, image_data);
_ephoto_hsv_adjust_value(ehsv, ehsv->value, image_data_two);
}
static void
_saturation_slider_changed(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_HSV *ehsv = data;
double saturation;
@ -215,7 +215,7 @@ _saturation_slider_changed(void *data, Evas_Object *obj,
static void
_value_slider_changed(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_HSV *ehsv = data;
double value;
@ -229,7 +229,7 @@ _value_slider_changed(void *data, Evas_Object *obj,
static Eina_Bool
_hsv_reset(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_HSV *ehsv = data;
@ -246,7 +246,7 @@ _hsv_reset(void *data, int type EINA_UNUSED,
static Eina_Bool
_hsv_apply(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_HSV *ehsv = data;
unsigned int *image_data;
@ -261,7 +261,7 @@ _hsv_apply(void *data, int type EINA_UNUSED,
else
{
image_data =
evas_object_image_data_get(ehsv->image, EINA_FALSE);
evas_object_image_data_get(ehsv->image, EINA_FALSE);
evas_object_image_size_get(ehsv->image, &w, &h);
ephoto_single_browser_image_data_done(ehsv->main, image_data, w, h);
}
@ -272,7 +272,7 @@ _hsv_apply(void *data, int type EINA_UNUSED,
static Eina_Bool
_hsv_cancel(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_HSV *ehsv = data;
@ -291,7 +291,7 @@ _hsv_cancel(void *data, int type EINA_UNUSED,
static void
_editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_HSV *ehsv = data;
Ecore_Event_Handler *handler;
@ -321,18 +321,18 @@ ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
ehsv->parent = parent;
ehsv->image = image;
im_data =
evas_object_image_data_get(ehsv->image,
EINA_FALSE);
evas_object_image_data_get(ehsv->image,
EINA_FALSE);
evas_object_image_size_get(ehsv->image, &ehsv->w,
&ehsv->h);
&ehsv->h);
ehsv->original_im_data = malloc(sizeof(unsigned int) * ehsv->w * ehsv->h);
memcpy(ehsv->original_im_data, im_data,
sizeof(unsigned int) * ehsv->w * ehsv->h);
sizeof(unsigned int) * ehsv->w * ehsv->h);
ehsv->editor = ephoto_editor_add(ephoto, parent, _("Hue/Saturation/Value"),
"ehsv", ehsv);
"ehsv", ehsv);
evas_object_event_callback_add(ehsv->editor, EVAS_CALLBACK_DEL, _editor_del,
ehsv);
ehsv);
slider = elm_slider_add(ehsv->editor);
elm_object_text_set(slider, _("Value"));
@ -344,7 +344,7 @@ ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed", _value_slider_changed,
ehsv);
ehsv);
elm_box_pack_start(ehsv->editor, slider);
evas_object_show(slider);
ehsv->vslider = slider;
@ -359,7 +359,7 @@ ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_saturation_slider_changed, ehsv);
_saturation_slider_changed, ehsv);
elm_box_pack_start(ehsv->editor, slider);
evas_object_show(slider);
ehsv->sslider = slider;
@ -374,25 +374,26 @@ ephoto_hsv_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_Obje
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_hue_slider_changed, ehsv);
_hue_slider_changed, ehsv);
elm_box_pack_start(ehsv->editor, slider);
evas_object_show(slider);
ehsv->hslider = slider;
ehsv->handlers =
eina_list_append(ehsv->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_hsv_reset, ehsv));
eina_list_append(ehsv->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_hsv_reset, ehsv));
ehsv->handlers =
eina_list_append(ehsv->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_hsv_apply, ehsv));
eina_list_append(ehsv->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_hsv_apply, ehsv));
ehsv->handlers =
eina_list_append(ehsv->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_hsv_cancel, ehsv));
eina_list_append(ehsv->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_hsv_cancel, ehsv));
return;
error:
error:
return;
}

View File

@ -1,6 +1,6 @@
#include "ephoto.h"
#undef ERR
#define ERR(...) do { printf(__VA_ARGS__); putc('\n', stdout); } while(0)
#define ERR(...) do { printf(__VA_ARGS__); putc('\n', stdout); } while (0)
#ifdef USE_IPC
/* local subsystem functions */
@ -22,7 +22,7 @@ e_ipc_init(void)
snprintf(port_str, sizeof(port_str), "%d", port);
setenv("EPHOTO_IPC_PORT", port_str, 1);
_e_ipc_server = ecore_ipc_server_add
(ECORE_IPC_LOCAL_SYSTEM, "ephoto", port, NULL);
(ECORE_IPC_LOCAL_SYSTEM, "ephoto", port, NULL);
if (!_e_ipc_server)
{
ERR("Couldn't create Ephoto IPC server port=%d", port);

View File

@ -12,17 +12,17 @@ int EPHOTO_EVENT_EDITOR_BACK = 0;
typedef struct _Ephoto_Entry_Free_Listener Ephoto_Entry_Free_Listener;
struct _Ephoto_Entry_Free_Listener
{
void (*cb) (void *data, const Ephoto_Entry *dead);
void (*cb)(void *data, const Ephoto_Entry *dead);
const void *data;
};
typedef struct _Ephoto_Dir_Data Ephoto_Dir_Data;
struct _Ephoto_Dir_Data
{
Ephoto *ephoto;
Ephoto *ephoto;
Elm_Object_Item *expanded;
Eina_Bool dirs_only;
Eina_Bool thumbs_only;
Eina_Bool dirs_only;
Eina_Bool thumbs_only;
};
static void
@ -72,13 +72,13 @@ _ephoto_single_browser_show(Ephoto *ephoto, Ephoto_Entry *entry)
{
if (ephoto->selentries)
ephoto_single_browser_entries_set(ephoto->single_browser,
ephoto->selentries);
ephoto->selentries);
else if (ephoto->searchentries)
ephoto_single_browser_entries_set(ephoto->single_browser,
ephoto->searchentries);
ephoto->searchentries);
else
ephoto_single_browser_entries_set(ephoto->single_browser,
ephoto->entries);
ephoto->entries);
ephoto_single_browser_entry_set(ephoto->single_browser, entry);
evas_object_hide(ephoto->slideshow);
@ -122,7 +122,7 @@ _ephoto_slideshow_show(Ephoto *ephoto, Ephoto_Entry *entry)
static void
_ephoto_single_browser_back(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto *ephoto = data;
Ephoto_Entry *entry = event_info;
@ -133,25 +133,25 @@ _ephoto_single_browser_back(void *data, Evas_Object *obj EINA_UNUSED,
static void
_ephoto_slideshow_back(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto *ephoto = data;
Ephoto_Entry *entry = event_info;
switch (ephoto->prev_state)
{
case EPHOTO_STATE_SINGLE:
_ephoto_single_browser_show(ephoto, entry);
break;
case EPHOTO_STATE_SINGLE:
_ephoto_single_browser_show(ephoto, entry);
break;
case EPHOTO_STATE_THUMB:
ephoto->selentries = NULL;
_ephoto_thumb_browser_show(ephoto, entry);
break;
case EPHOTO_STATE_THUMB:
ephoto->selentries = NULL;
_ephoto_thumb_browser_show(ephoto, entry);
break;
default:
ephoto->selentries = NULL;
_ephoto_thumb_browser_show(ephoto, entry);
default:
ephoto->selentries = NULL;
_ephoto_thumb_browser_show(ephoto, entry);
}
if (ephoto->folders_toggle)
{
@ -164,7 +164,7 @@ _ephoto_slideshow_back(void *data, Evas_Object *obj EINA_UNUSED,
static void
_ephoto_thumb_browser_view(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto *ephoto = data;
Ephoto_Entry *entry = event_info;
@ -174,7 +174,7 @@ _ephoto_thumb_browser_view(void *data, Evas_Object *obj EINA_UNUSED,
static void
_ephoto_thumb_browser_changed_directory(void *data,
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
@ -185,7 +185,7 @@ _ephoto_thumb_browser_changed_directory(void *data,
static void
_ephoto_thumb_browser_slideshow(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto *ephoto = data;
Ephoto_Entry *entry = event_info;
@ -195,7 +195,7 @@ _ephoto_thumb_browser_slideshow(void *data, Evas_Object *obj EINA_UNUSED,
static void
_ephoto_single_browser_slideshow(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto *ephoto = data;
Ephoto_Entry *entry = event_info;
@ -205,7 +205,7 @@ _ephoto_single_browser_slideshow(void *data, Evas_Object *obj EINA_UNUSED,
static void
_win_free(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
Ecore_Event_Handler *handler;
@ -213,7 +213,7 @@ _win_free(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
if (ephoto->file_thread)
ecore_thread_cancel(ephoto->file_thread);
if (eina_list_count(ephoto->file_pos))
eina_list_free(ephoto->file_pos);
eina_list_free(ephoto->file_pos);
if (ephoto->upload_handlers)
EINA_LIST_FREE(ephoto->upload_handlers, handler)
ecore_event_handler_del(handler);
@ -245,7 +245,7 @@ _win_free(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
static void
_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
Evas_Coord w, h;
@ -255,14 +255,14 @@ _resize_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
evas_object_geometry_get(ephoto->win, 0, 0, &w, &h);
if (w && h)
{
ephoto->config->window_width = w;
ephoto->config->window_height = h;
ephoto->config->window_width = w;
ephoto->config->window_height = h;
}
}
static void
_folder_icon_clicked(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
int ret = 0;
@ -273,7 +273,7 @@ _folder_icon_clicked(void *data, Evas_Object *obj,
elm_box_pack_start(ephoto->layout, ephoto->dir_browser);
ephoto->folders_toggle = EINA_TRUE;
ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open");
if (!ret)
if (!ret)
elm_object_text_set(obj, _("Hide Folders"));
elm_object_tooltip_text_set(obj, _("Hide Folders"));
}
@ -283,7 +283,7 @@ _folder_icon_clicked(void *data, Evas_Object *obj,
elm_box_unpack(ephoto->layout, ephoto->dir_browser);
ephoto->folders_toggle = EINA_FALSE;
ret = elm_icon_standard_set(ephoto->folders_icon, "folder");
if (!ret)
if (!ret)
elm_object_text_set(obj, _("Show Folders"));
elm_object_tooltip_text_set(obj, _("Show Folders"));
}
@ -292,7 +292,7 @@ _folder_icon_clicked(void *data, Evas_Object *obj,
/*Ephoto Thumb Browser Main Callbacks*/
static void
_slideshow_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
@ -302,10 +302,9 @@ _slideshow_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED,
ephoto_single_browser_slideshow(ephoto->single_browser);
}
static void
_settings_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
@ -314,7 +313,7 @@ _settings_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED,
static void
_exit_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
@ -331,11 +330,11 @@ ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle)
{
evas_object_show(ephoto->dir_browser);
elm_box_pack_end(ephoto->layout, ephoto->dir_browser);
ephoto->folders_toggle = EINA_TRUE;
ephoto->folders_toggle = EINA_TRUE;
ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open");
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Hide Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders"));
}
else if (ephoto->folders_toggle)
{
@ -345,7 +344,7 @@ ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle)
ret = elm_icon_standard_set(ephoto->folders_icon, "folder");
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Show Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders"));
}
}
@ -375,26 +374,26 @@ ephoto_window_add(const char *path)
ephoto->win = elm_win_util_standard_add("ephoto", "Ephoto");
if (!ephoto->win)
{
free(ephoto);
return NULL;
free(ephoto);
return NULL;
}
evas_object_event_callback_add(ephoto->win, EVAS_CALLBACK_FREE,
_win_free, ephoto);
_win_free, ephoto);
evas_object_event_callback_add(ephoto->win, EVAS_CALLBACK_RESIZE,
_resize_cb, ephoto);
_resize_cb, ephoto);
elm_win_autodel_set(ephoto->win, EINA_TRUE);
if (!ephoto_config_init(ephoto))
{
evas_object_del(ephoto->win);
return NULL;
evas_object_del(ephoto->win);
return NULL;
}
if ((ephoto->config->thumb_gen_size != 128) &&
(ephoto->config->thumb_gen_size != 256) &&
(ephoto->config->thumb_gen_size != 512))
ephoto_thumb_size_set(ephoto, ephoto->config->thumb_size);
ephoto_thumb_size_set(ephoto, ephoto->config->thumb_size);
ephoto->main = elm_table_add(ephoto->win);
elm_table_homogeneous_set(ephoto->main, EINA_FALSE);
@ -420,37 +419,37 @@ ephoto_window_add(const char *path)
ephoto->thumb_browser = ephoto_thumb_browser_add(ephoto, ephoto->layout);
if (!ephoto->thumb_browser)
{
evas_object_del(ephoto->win);
return NULL;
evas_object_del(ephoto->win);
return NULL;
}
elm_table_pack(ephoto->pager, ephoto->thumb_browser, 0, 0, 1, 1);
evas_object_smart_callback_add(ephoto->thumb_browser, "view",
_ephoto_thumb_browser_view, ephoto);
_ephoto_thumb_browser_view, ephoto);
evas_object_smart_callback_add(ephoto->thumb_browser, "changed,directory",
_ephoto_thumb_browser_changed_directory, ephoto);
_ephoto_thumb_browser_changed_directory, ephoto);
evas_object_smart_callback_add(ephoto->thumb_browser, "slideshow",
_ephoto_thumb_browser_slideshow, ephoto);
_ephoto_thumb_browser_slideshow, ephoto);
ephoto->single_browser = ephoto_single_browser_add(ephoto, ephoto->layout);
if (!ephoto->single_browser)
{
evas_object_del(ephoto->win);
return NULL;
evas_object_del(ephoto->win);
return NULL;
}
elm_table_pack(ephoto->pager, ephoto->single_browser, 0, 0, 1, 1);
evas_object_smart_callback_add(ephoto->single_browser, "back",
_ephoto_single_browser_back, ephoto);
_ephoto_single_browser_back, ephoto);
evas_object_smart_callback_add(ephoto->single_browser, "slideshow",
_ephoto_single_browser_slideshow, ephoto);
_ephoto_single_browser_slideshow, ephoto);
ephoto->slideshow = ephoto_slideshow_add(ephoto, ephoto->layout);
if (!ephoto->slideshow)
{
evas_object_del(ephoto->win);
return NULL;
evas_object_del(ephoto->win);
return NULL;
}
elm_table_pack(ephoto->pager, ephoto->slideshow, 0, 0, 1, 1);
evas_object_smart_callback_add(ephoto->slideshow, "back",
_ephoto_slideshow_back, ephoto);
_ephoto_slideshow_back, ephoto);
ephoto->dir_browser = ephoto_directory_browser_add(ephoto, ephoto->layout);
EPHOTO_WEIGHT(ephoto->dir_browser, ephoto->config->left_size, EVAS_HINT_EXPAND);
@ -459,8 +458,8 @@ ephoto_window_add(const char *path)
evas_object_show(ephoto->dir_browser);
ephoto->statusbar = elm_box_add(ephoto->main);
evas_object_size_hint_min_set(ephoto->statusbar, 20*elm_config_scale_get(),
20*elm_config_scale_get());
evas_object_size_hint_min_set(ephoto->statusbar, 20 * elm_config_scale_get(),
20 * elm_config_scale_get());
elm_box_horizontal_set(ephoto->statusbar, EINA_TRUE);
EPHOTO_WEIGHT(ephoto->statusbar, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_FILL(ephoto->statusbar);
@ -468,8 +467,8 @@ ephoto_window_add(const char *path)
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());
evas_object_size_hint_min_set(ic, 20 * elm_config_scale_get(),
20 * elm_config_scale_get());
ret = elm_icon_standard_set(ic, "folder");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
ephoto->folders_icon = ic;
@ -511,8 +510,8 @@ ephoto_window_add(const char *path)
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());
evas_object_size_hint_min_set(ic, 20 * elm_config_scale_get(),
20 * elm_config_scale_get());
ret = elm_icon_standard_set(ic, "media-playback-start");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
@ -521,15 +520,15 @@ ephoto_window_add(const char *path)
if (!ret)
elm_object_text_set(but, _("Slideshow"));
evas_object_smart_callback_add(but, "clicked",
_slideshow_icon_clicked, ephoto);
_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());
evas_object_size_hint_min_set(ic, 20 * elm_config_scale_get(),
20 * elm_config_scale_get());
ret = elm_icon_standard_set(ic, "preferences-other");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
@ -538,15 +537,15 @@ ephoto_window_add(const char *path)
if (!ret)
elm_object_text_set(but, _("Settings"));
evas_object_smart_callback_add(but, "clicked",
_settings_icon_clicked, ephoto);
_settings_icon_clicked, ephoto);
elm_object_tooltip_text_set(but, _("Settings"));
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());
evas_object_size_hint_min_set(ic, 20 * elm_config_scale_get(),
20 * elm_config_scale_get());
ret = elm_icon_standard_set(ic, "application-exit");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
@ -555,29 +554,29 @@ ephoto_window_add(const char *path)
if (!ret)
elm_object_text_set(ephoto->exit, _("Exit"));
evas_object_smart_callback_add(ephoto->exit, "clicked",
_exit_icon_clicked, ephoto);
_exit_icon_clicked, ephoto);
elm_object_tooltip_text_set(ephoto->exit, _("Exit"));
elm_object_tooltip_orient_set(ephoto->exit, ELM_TOOLTIP_ORIENT_TOP);
evas_object_hide(ephoto->exit);
if ((!path) || (!ecore_file_exists(path)))
{
if (ephoto->config->open)
{
if (!strcmp(ephoto->config->open, "Last"))
path = ephoto->config->directory;
else
path = ephoto->config->open;
if ((path) && (!ecore_file_exists(path)))
path = NULL;
}
if (ephoto->config->open)
{
if (!strcmp(ephoto->config->open, "Last"))
path = ephoto->config->directory;
else
path = ephoto->config->open;
if ((path) && (!ecore_file_exists(path)))
path = NULL;
}
else if (!ephoto->config->open || path)
{
if (getcwd(buf, sizeof(buf)))
path = buf;
else
path = eina_environment_home_get();
}
{
if (getcwd(buf, sizeof(buf)))
path = buf;
else
path = eina_environment_home_get();
}
}
if (ecore_file_is_dir(path))
@ -585,22 +584,22 @@ ephoto_window_add(const char *path)
char *rp = ecore_file_realpath(path);
eina_stringshare_replace(&ephoto->config->directory, rp);
free(rp);
_ephoto_thumb_browser_show(ephoto, NULL);
_ephoto_thumb_browser_show(ephoto, NULL);
}
else
{
char *dir = ecore_file_dir_get(path);
char *dir = ecore_file_dir_get(path);
char *rp = ecore_file_realpath(dir);
eina_stringshare_replace(&ephoto->config->directory, rp);
free(rp);
free(dir);
free(dir);
ephoto_single_browser_path_pending_set(ephoto->single_browser, path);
evas_object_hide(ephoto->thumb_browser);
evas_object_hide(ephoto->slideshow);
evas_object_show(ephoto->single_browser);
ephoto_single_browser_show_controls(ephoto);
ephoto->state = EPHOTO_STATE_SINGLE;
ephoto->state = EPHOTO_STATE_SINGLE;
}
snprintf(config, PATH_MAX, "%s/.config/ephoto", eina_environment_home_get());
@ -611,7 +610,7 @@ ephoto_window_add(const char *path)
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);
ephoto->config->window_height);
evas_object_show(ephoto->win);
if (!ephoto->config->folders)
@ -620,17 +619,17 @@ ephoto_window_add(const char *path)
elm_box_unpack(ephoto->layout, ephoto->dir_browser);
ephoto->folders_toggle = EINA_FALSE;
ret = elm_icon_standard_set(ephoto->folders_icon, "folder");
if (!ret)
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Show Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders"));
}
else
{
ephoto->folders_toggle = EINA_TRUE;
ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open");
ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open");
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Hide Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders"));
}
if (ephoto->config->firstrun)
{
@ -648,11 +647,11 @@ ephoto_title_set(Ephoto *ephoto, const char *title)
if (title)
{
snprintf(buf, sizeof(buf), "Ephoto - %s", title);
elm_win_title_set(ephoto->win, buf);
snprintf(buf, sizeof(buf), "Ephoto - %s", title);
elm_win_title_set(ephoto->win, buf);
}
else
elm_win_title_set(ephoto->win, "Ephoto");
elm_win_title_set(ephoto->win, "Ephoto");
}
int
@ -667,38 +666,43 @@ ephoto_entries_cmp(const void *pa, const void *pb)
modb = ecore_file_mod_time(b->path);
switch (a->ephoto->sort)
{
case EPHOTO_SORT_ALPHABETICAL_ASCENDING:
return i;
case EPHOTO_SORT_ALPHABETICAL_DESCENDING:
return i * -1;
case EPHOTO_SORT_MODTIME_ASCENDING:
if (moda < modb)
return -1;
else if (moda > modb)
return 1;
else
return i;
case EPHOTO_SORT_MODTIME_DESCENDING:
if (moda < modb)
return 1;
else if (moda > modb)
return -1;
else
return i * -1;
case EPHOTO_SORT_SIMILARITY:
if (!a->sort_id || !b->sort_id)
return 0;
else
return strcmp(a->sort_id, b->sort_id);
default:
return i;
case EPHOTO_SORT_ALPHABETICAL_ASCENDING:
return i;
case EPHOTO_SORT_ALPHABETICAL_DESCENDING:
return i * -1;
case EPHOTO_SORT_MODTIME_ASCENDING:
if (moda < modb)
return -1;
else if (moda > modb)
return 1;
else
return i;
case EPHOTO_SORT_MODTIME_DESCENDING:
if (moda < modb)
return 1;
else if (moda > modb)
return -1;
else
return i * -1;
case EPHOTO_SORT_SIMILARITY:
if (!a->sort_id || !b->sort_id)
return 0;
else
return strcmp(a->sort_id, b->sort_id);
default:
return i;
}
return i;
}
static void
_ephoto_populate_main(void *data, Eio_File *handler EINA_UNUSED,
const Eina_File_Direct_Info *info)
const Eina_File_Direct_Info *info)
{
Ephoto_Dir_Data *ed = data;
Ephoto_Entry *e;
@ -707,7 +711,7 @@ _ephoto_populate_main(void *data, Eio_File *handler EINA_UNUSED,
if (ephoto_entry_exists(ed->ephoto, info->path))
return;
e = ephoto_entry_new(ed->ephoto, info->path, info->path + info->name_start,
info->type);
info->type);
if (e->is_dir)
e->parent = ed->expanded;
@ -715,26 +719,26 @@ _ephoto_populate_main(void *data, Eio_File *handler EINA_UNUSED,
{
if (ed->ephoto->sort != EPHOTO_SORT_SIMILARITY)
{
if (!ed->ephoto->entries)
ed->ephoto->entries = eina_list_append(ed->ephoto->entries, e);
else
{
int near_cmp;
Eina_List *near_node =
eina_list_search_sorted_near_list(ed->ephoto->entries,
ephoto_entries_cmp, e, &near_cmp);
if (!ed->ephoto->entries)
ed->ephoto->entries = eina_list_append(ed->ephoto->entries, e);
else
{
int near_cmp;
Eina_List *near_node =
eina_list_search_sorted_near_list(ed->ephoto->entries,
ephoto_entries_cmp, e, &near_cmp);
if (near_cmp < 0)
ed->ephoto->entries =
eina_list_append_relative_list(ed->ephoto->entries, e,
near_node);
else
ed->ephoto->entries =
eina_list_prepend_relative_list(ed->ephoto->entries, e,
near_node);
if (near_cmp < 0)
ed->ephoto->entries =
eina_list_append_relative_list(ed->ephoto->entries, e,
near_node);
else
ed->ephoto->entries =
eina_list_prepend_relative_list(ed->ephoto->entries, e,
near_node);
}
}
e->parent = NULL;
}
e->parent = NULL;
}
ev = calloc(1, sizeof(Ephoto_Event_Entry_Create));
ev->entry = e;
@ -744,14 +748,14 @@ _ephoto_populate_main(void *data, Eio_File *handler EINA_UNUSED,
static Eina_Bool
_ephoto_populate_filter(void *data, Eio_File *handler EINA_UNUSED,
const Eina_File_Direct_Info *info)
const Eina_File_Direct_Info *info)
{
Ephoto_Dir_Data *ed = data;
const char *bname = info->path + info->name_start;
char *rp;
if (bname[0] == '.')
return EINA_FALSE;
return EINA_FALSE;
rp = ecore_file_realpath(info->path);
if (info->type == EINA_FILE_DIR && !ed->thumbs_only)
{
@ -787,7 +791,7 @@ _ephoto_populate_end(void *data, Eio_File *handler EINA_UNUSED)
if (eina_list_count(ed->ephoto->entries))
ephoto_single_browser_entries_set(ed->ephoto->single_browser,
ed->ephoto->entries);
ed->ephoto->entries);
ecore_event_add(EPHOTO_EVENT_POPULATE_END, NULL, NULL, NULL);
free(ed);
}
@ -814,9 +818,9 @@ _ephoto_populate_entries(Ephoto_Dir_Data *ed)
ed->ephoto->entries = NULL;
ed->ephoto->ls =
eio_file_stat_ls(ed->ephoto->config->directory, _ephoto_populate_filter,
_ephoto_populate_main, _ephoto_populate_end, _ephoto_populate_error,
ed);
eio_file_stat_ls(ed->ephoto->config->directory, _ephoto_populate_filter,
_ephoto_populate_main, _ephoto_populate_end, _ephoto_populate_error,
ed);
ecore_event_add(EPHOTO_EVENT_POPULATE_START, NULL, NULL, NULL);
}
@ -832,7 +836,7 @@ _ephoto_change_dir(void *data)
static Eina_Bool
_monitor_cb(void *data, int type,
void *event)
void *event)
{
Ephoto *ephoto = data;
Eio_Monitor_Event *ev = event;
@ -860,7 +864,7 @@ _monitor_cb(void *data, int type,
return ECORE_CALLBACK_PASS_ON;
snprintf(buf, PATH_MAX, "%s", ev->filename);
entry = ephoto_entry_new(ephoto, ev->filename, basename(buf),
EINA_FILE_REG);
EINA_FILE_REG);
ephoto_single_browser_path_created(ephoto->single_browser, entry);
if (!ephoto->entries)
{
@ -870,17 +874,17 @@ _monitor_cb(void *data, int type,
{
int near_cmp;
Eina_List *near_node =
eina_list_search_sorted_near_list(ephoto->entries,
ephoto_entries_cmp, entry, &near_cmp);
eina_list_search_sorted_near_list(ephoto->entries,
ephoto_entries_cmp, entry, &near_cmp);
if (near_cmp < 0)
ephoto->entries =
eina_list_append_relative_list(ephoto->entries, entry,
near_node);
ephoto->entries =
eina_list_append_relative_list(ephoto->entries, entry,
near_node);
else
ephoto->entries =
eina_list_prepend_relative_list(ephoto->entries, entry,
near_node);
ephoto->entries =
eina_list_prepend_relative_list(ephoto->entries, entry,
near_node);
}
ephoto_thumb_browser_insert(ephoto, entry);
return ECORE_CALLBACK_PASS_ON;
@ -920,7 +924,7 @@ _monitor_cb(void *data, int type,
void
ephoto_directory_set(Ephoto *ephoto, const char *path, Evas_Object *expanded,
Eina_Bool dirs_only, Eina_Bool thumbs_only)
Eina_Bool dirs_only, Eina_Bool thumbs_only)
{
Ephoto_Dir_Data *ed;
Ecore_Event_Handler *handler;
@ -947,7 +951,7 @@ ephoto_directory_set(Ephoto *ephoto, const char *path, Evas_Object *expanded,
eina_stringshare_replace(&ephoto->config->directory, rp);
if (ed->ephoto->job.change_dir)
ecore_job_del(ed->ephoto->job.change_dir);
ecore_job_del(ed->ephoto->job.change_dir);
ed->ephoto->job.change_dir = ecore_job_add(_ephoto_change_dir, ed);
if (ephoto->monitor)
{
@ -957,17 +961,17 @@ ephoto_directory_set(Ephoto *ephoto, const char *path, Evas_Object *expanded,
}
ephoto->monitor = eio_monitor_add(path);
ephoto->monitor_handlers =
eina_list_append(ephoto->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_CREATED,
_monitor_cb, ephoto));
eina_list_append(ephoto->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_CREATED,
_monitor_cb, ephoto));
ephoto->monitor_handlers =
eina_list_append(ephoto->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
_monitor_cb, ephoto));
eina_list_append(ephoto->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
_monitor_cb, ephoto));
ephoto->monitor_handlers =
eina_list_append(ephoto->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_DELETED,
_monitor_cb, ephoto));
eina_list_append(ephoto->monitor_handlers,
ecore_event_handler_add(EIO_MONITOR_FILE_DELETED,
_monitor_cb, ephoto));
free(rp);
}
@ -979,17 +983,17 @@ _thumb_gen_size_changed_timer_cb(void *data)
Evas_Object *o;
if (ephoto->config->thumb_gen_size == ephoto->thumb_gen_size)
goto end;
goto end;
ephoto->config->thumb_gen_size = ephoto->thumb_gen_size;
EINA_LIST_FOREACH(ephoto->thumbs, l, o)
{
e_thumb_icon_size_set(o, ephoto->thumb_gen_size,
ephoto->thumb_gen_size);
e_thumb_icon_rethumb(o);
ephoto->thumb_gen_size);
e_thumb_icon_rethumb(o);
}
end:
end:
ephoto->timer.thumb_regen = NULL;
return EINA_FALSE;
}
@ -999,25 +1003,25 @@ ephoto_thumb_size_set(Ephoto *ephoto, int size)
{
if (ephoto->config->thumb_size != size)
{
ephoto->config->thumb_size = size;
ephoto->config->thumb_size = size;
}
if (size <= 128)
ephoto->thumb_gen_size = 128;
ephoto->thumb_gen_size = 128;
else if (size <= 256)
ephoto->thumb_gen_size = 256;
ephoto->thumb_gen_size = 256;
else
ephoto->thumb_gen_size = 512;
ephoto->thumb_gen_size = 512;
if (ephoto->timer.thumb_regen)
ecore_timer_del(ephoto->timer.thumb_regen);
ecore_timer_del(ephoto->timer.thumb_regen);
ephoto->timer.thumb_regen =
ecore_timer_loop_add(0.1, _thumb_gen_size_changed_timer_cb, ephoto);
ecore_timer_loop_add(0.1, _thumb_gen_size_changed_timer_cb, ephoto);
}
static void
_thumb_gen_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_data EINA_UNUSED)
void *event_data EINA_UNUSED)
{
Ephoto_Entry *entry = data;
const char *id;
@ -1054,24 +1058,24 @@ _thumb_gen_cb(void *data, Evas_Object *obj EINA_UNUSED,
{
int near_cmp;
Eina_List *near_node =
eina_list_search_sorted_near_list(entry->ephoto->entries,
ephoto_entries_cmp, entry, &near_cmp);
eina_list_search_sorted_near_list(entry->ephoto->entries,
ephoto_entries_cmp, entry, &near_cmp);
if (near_cmp < 0)
entry->ephoto->entries =
eina_list_append_relative_list(entry->ephoto->entries, entry,
near_node);
entry->ephoto->entries =
eina_list_append_relative_list(entry->ephoto->entries, entry,
near_node);
else
entry->ephoto->entries =
eina_list_prepend_relative_list(entry->ephoto->entries, entry,
near_node);
entry->ephoto->entries =
eina_list_prepend_relative_list(entry->ephoto->entries, entry,
near_node);
}
}
}
static void
_thumb_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
@ -1085,16 +1089,16 @@ ephoto_thumb_add(Ephoto *ephoto, Evas_Object *parent, Ephoto_Entry *entry)
if (entry->path)
{
const char *ext = strrchr(entry->path, '.');
const char *ext = strrchr(entry->path, '.');
if (ext)
{
ext++;
if ((strcasecmp(ext, "edj") == 0))
if (ext)
{
ext++;
if ((strcasecmp(ext, "edj") == 0))
{
const char *group = NULL;
o = elm_icon_add(parent);
o = elm_icon_add(parent);
if (edje_file_group_exists(entry->path, "e/desktop/background"))
group = "e/desktop/background";
else
@ -1106,14 +1110,14 @@ ephoto_thumb_add(Ephoto *ephoto, Evas_Object *parent, Ephoto_Entry *entry)
}
elm_image_file_set(o, entry->path, group);
}
}
}
if (!o)
{
o = e_thumb_icon_add(parent, ephoto->config->thumbnail_aspect);
o = e_thumb_icon_add(parent, ephoto->config->thumbnail_aspect);
evas_object_smart_callback_add(o, "e_thumb_gen", _thumb_gen_cb, entry);
e_thumb_icon_file_set(o, entry->path, NULL);
e_thumb_icon_file_set(o, entry->path, NULL);
e_thumb_icon_size_set(o, ephoto->thumb_gen_size,
ephoto->thumb_gen_size);
ephoto->thumb_gen_size);
e_thumb_icon_begin(o);
entry->thumb = o;
}
@ -1129,7 +1133,7 @@ ephoto_thumb_add(Ephoto *ephoto, Evas_Object *parent, Ephoto_Entry *entry)
Ephoto_Entry *
ephoto_entry_new(Ephoto *ephoto, const char *path, const char *label,
Eina_File_Type type)
Eina_File_Type type)
{
Ephoto_Entry *entry;
char *rp;
@ -1179,7 +1183,7 @@ ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry)
EINA_LIST_FREE(entry->free_listeners, fl)
{
fl->cb((void *) fl->data, entry);
fl->cb((void *)fl->data, entry);
free(fl);
}
if (!entry->is_dir)
@ -1190,7 +1194,7 @@ ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry)
{
node = eina_list_data_find_list(ephoto->selentries, entry);
ephoto->selentries = eina_list_remove_list(ephoto->selentries,
node);
node);
}
if (entry->sort_id)
eina_stringshare_del(entry->sort_id);
@ -1207,8 +1211,8 @@ ephoto_entry_free(Ephoto *ephoto, Ephoto_Entry *entry)
}
void
ephoto_entry_free_listener_add(Ephoto_Entry *entry, void (*cb) (void *data,
const Ephoto_Entry *entry), const void *data)
ephoto_entry_free_listener_add(Ephoto_Entry *entry, void (*cb)(void *data,
const Ephoto_Entry *entry), const void *data)
{
Ephoto_Entry_Free_Listener *fl;
@ -1219,8 +1223,8 @@ ephoto_entry_free_listener_add(Ephoto_Entry *entry, void (*cb) (void *data,
}
void
ephoto_entry_free_listener_del(Ephoto_Entry *entry, void (*cb) (void *data,
const Ephoto_Entry *entry), const void *data)
ephoto_entry_free_listener_del(Ephoto_Entry *entry, void (*cb)(void *data,
const Ephoto_Entry *entry), const void *data)
{
Eina_List *l;
Ephoto_Entry_Free_Listener *fl;
@ -1228,12 +1232,12 @@ ephoto_entry_free_listener_del(Ephoto_Entry *entry, void (*cb) (void *data,
EINA_LIST_FOREACH(entry->free_listeners, l, fl)
{
if ((fl->cb == cb) && (fl->data == data))
{
{
if (eina_list_data_find(entry->free_listeners, l))
{
entry->free_listeners =
eina_list_remove_list(entry->free_listeners, l);
break;
entry->free_listeners =
eina_list_remove_list(entry->free_listeners, l);
break;
}
}
}
@ -1248,3 +1252,4 @@ ephoto_entries_free(Ephoto *ephoto)
ephoto_entry_free(ephoto, entry);
ephoto->entries = NULL;
}

View File

@ -3,21 +3,21 @@
typedef struct _Ephoto_Reye Ephoto_Reye;
struct _Ephoto_Reye
{
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *rslider;
Eina_List *handlers;
int rad;
Evas_Coord w, h;
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *rslider;
Eina_List *handlers;
int rad;
Evas_Coord w, h;
unsigned int *original_im_data;
unsigned int *edited_im_data;
};
static void
_reye_clicked(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_data EINA_UNUSED)
void *event_data EINA_UNUSED)
{
Ephoto_Reye *er = data;
unsigned int *im_data, *p1;
@ -30,14 +30,14 @@ _reye_clicked(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
evas_pointer_canvas_xy_get(evas_object_evas_get(er->image), &xpos, &ypos);
evas_object_geometry_get(er->image, &imx, &imy, &imw, &imh);
xadj = xpos-imx;
yadj = ypos-imy;
xadj = xpos - imx;
yadj = ypos - imy;
if (xadj < 0) xadj = 0;
if (yadj < 0) yadj = 0;
scalex = (double) (xadj) / (double) imw;
scaley = (double) (yadj) / (double) imh;
scalex = (double)(xadj) / (double)imw;
scaley = (double)(yadj) / (double)imh;
nx = er->w * scalex;
ny = er->h * scaley;
@ -48,42 +48,42 @@ _reye_clicked(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
im_data = malloc(sizeof(unsigned int) * er->w * er->h);
if (er->edited_im_data)
memcpy(im_data, er->edited_im_data,
sizeof(unsigned int) * er->w * er->h);
sizeof(unsigned int) * er->w * er->h);
else
memcpy(im_data, er->original_im_data,
sizeof(unsigned int) * er->w * er->h);
sizeof(unsigned int) * er->w * er->h);
for (yy = -er->rad; yy <= er->rad; yy++)
{
for (xx = -er->rad; xx <= er->rad; xx++)
{
if ((xx * xx) + (yy * yy) <= (er->rad * er->rad))
{
nnx = nx + xx;
nny = ny + yy;
{
if ((xx * xx) + (yy * yy) <= (er->rad * er->rad))
{
nnx = nx + xx;
nny = ny + yy;
p1 = im_data + (nny * er->w) + nnx;
b = (int) ((*p1) & 0xff);
g = (int) ((*p1 >> 8) & 0xff);
r = (int) ((*p1 >> 16) & 0xff);
a = (int) ((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
r = (int) ((g+b)/2);
b = ephoto_normalize_color(b);
g = ephoto_normalize_color(g);
r = ephoto_normalize_color(r);
b = ephoto_demul_color_alpha(b, a);
g = ephoto_demul_color_alpha(g, a);
r = ephoto_demul_color_alpha(r, a);
*p1 = (a << 24) | (r << 16) | (g << 8) | b;
p1 = im_data + (nny * er->w) + nnx;
b = (int)((*p1) & 0xff);
g = (int)((*p1 >> 8) & 0xff);
r = (int)((*p1 >> 16) & 0xff);
a = (int)((*p1 >> 24) & 0xff);
b = ephoto_mul_color_alpha(b, a);
g = ephoto_mul_color_alpha(g, a);
r = ephoto_mul_color_alpha(r, a);
r = (int)((g + b) / 2);
b = ephoto_normalize_color(b);
g = ephoto_normalize_color(g);
r = ephoto_normalize_color(r);
b = ephoto_demul_color_alpha(b, a);
g = ephoto_demul_color_alpha(g, a);
r = ephoto_demul_color_alpha(r, a);
*p1 = (a << 24) | (r << 16) | (g << 8) | b;
}
}
}
er->edited_im_data = im_data;
ephoto_single_browser_image_data_update(er->main, er->image,
im_data, er->w, er->h);
im_data, er->w, er->h);
}
static void
@ -96,7 +96,7 @@ _radius_slider_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSE
static Eina_Bool
_reye_reset(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Reye *er = data;
@ -108,14 +108,14 @@ _reye_reset(void *data, int type EINA_UNUSED,
er->edited_im_data = NULL;
}
ephoto_single_browser_image_data_update(er->main, er->image,
er->original_im_data, er->w, er->h);
er->original_im_data, er->w, er->h);
return ECORE_CALLBACK_PASS_ON;
}
static Eina_Bool
_reye_apply(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Reye *er = data;
unsigned int *image_data;
@ -128,7 +128,7 @@ _reye_apply(void *data, int type EINA_UNUSED,
else
{
image_data =
evas_object_image_data_get(er->image, EINA_FALSE);
evas_object_image_data_get(er->image, EINA_FALSE);
evas_object_image_size_get(er->image, &w, &h);
ephoto_single_browser_image_data_done(er->main, image_data, w, h);
}
@ -139,7 +139,7 @@ _reye_apply(void *data, int type EINA_UNUSED,
static Eina_Bool
_reye_cancel(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Reye *er = data;
@ -159,7 +159,7 @@ _reye_cancel(void *data, int type EINA_UNUSED,
static void
_editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Reye *er = data;
Ecore_Event_Handler *handler;
@ -188,21 +188,21 @@ ephoto_red_eye_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_
er->parent = parent;
er->image = image;
im_data =
evas_object_image_data_get(er->image,
EINA_FALSE);
evas_object_image_data_get(er->image,
EINA_FALSE);
evas_object_image_size_get(er->image, &er->w,
&er->h);
&er->h);
er->original_im_data = malloc(sizeof(unsigned int) * er->w * er->h);
memcpy(er->original_im_data, im_data,
sizeof(unsigned int) * er->w * er->h);
sizeof(unsigned int) * er->w * er->h);
evas_object_event_callback_add(er->image, EVAS_CALLBACK_MOUSE_UP,
_reye_clicked, er);
_reye_clicked, er);
er->editor = ephoto_editor_add(ephoto, parent, _("Red Eye Removal"),
"ereye", er);
"ereye", er);
evas_object_event_callback_add(er->editor, EVAS_CALLBACK_DEL, _editor_del,
er);
er);
slider = elm_slider_add(er->editor);
elm_object_text_set(slider, _("Radius"));
@ -214,7 +214,7 @@ ephoto_red_eye_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_
EPHOTO_WEIGHT(slider, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
EPHOTO_ALIGN(slider, EVAS_HINT_FILL, 0.5);
evas_object_smart_callback_add(slider, "delay,changed",
_radius_slider_changed, er);
_radius_slider_changed, er);
elm_box_pack_start(er->editor, slider);
evas_object_show(slider);
er->rslider = slider;
@ -227,20 +227,21 @@ ephoto_red_eye_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent, Evas_
evas_object_show(label);
er->handlers =
eina_list_append(er->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_reye_reset, er));
eina_list_append(er->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_reye_reset, er));
er->handlers =
eina_list_append(er->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_reye_apply, er));
eina_list_append(er->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_reye_apply, er));
er->handlers =
eina_list_append(er->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_reye_cancel, er));
eina_list_append(er->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_reye_cancel, er));
return;
error:
error:
return;
}

View File

@ -3,27 +3,27 @@
typedef struct _Ephoto_Scale Ephoto_Scale;
struct _Ephoto_Scale
{
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *scalew;
Evas_Object *scaleh;
Evas_Object *aspect;
Evas_Object *main;
Evas_Object *parent;
Evas_Object *image;
Evas_Object *editor;
Evas_Object *scalew;
Evas_Object *scaleh;
Evas_Object *aspect;
Eina_Stringshare *tmp_file;
Eina_List *handlers;
double aspectw;
double aspecth;
Evas_Coord w, h;
unsigned int *original_im_data;
Eina_List *handlers;
double aspectw;
double aspecth;
Evas_Coord w, h;
unsigned int *original_im_data;
};
static void _scale_width_changed(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED);
void *event_info EINA_UNUSED);
static void
_scale_height_changed(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Scale *es = data;
double nw;
@ -31,27 +31,27 @@ _scale_height_changed(void *data, Evas_Object *obj EINA_UNUSED,
if (!elm_check_state_get(es->aspect))
return;
evas_object_smart_callback_del(es->scalew, "changed",
_scale_width_changed);
_scale_width_changed);
nw = round(es->aspectw * elm_spinner_value_get(es->scaleh));
if (nw <= 1)
{
double nh;
evas_object_smart_callback_del(es->scaleh, "changed",
_scale_height_changed);
_scale_height_changed);
nh = round(es->aspecth * 1);
elm_spinner_value_set(es->scaleh, nh);
evas_object_smart_callback_add(es->scaleh, "changed",
_scale_height_changed, es);
_scale_height_changed, es);
nw = 1;
}
elm_spinner_value_set(es->scalew, nw);
evas_object_smart_callback_add(es->scalew, "changed",
_scale_width_changed, es);
_scale_width_changed, es);
}
static void
_scale_width_changed(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Scale *es = data;
double nh;
@ -59,28 +59,28 @@ _scale_width_changed(void *data, Evas_Object *obj EINA_UNUSED,
if (!elm_check_state_get(es->aspect))
return;
evas_object_smart_callback_del(es->scaleh, "changed",
_scale_height_changed);
_scale_height_changed);
nh = round(es->aspecth * elm_spinner_value_get(es->scalew));
if (nh <= 1)
{
double nw;
evas_object_smart_callback_del(es->scalew, "changed",
_scale_width_changed);
_scale_width_changed);
nw = round(es->aspectw * 1);
elm_spinner_value_set(es->scalew, nw);
evas_object_smart_callback_add(es->scalew, "changed",
_scale_width_changed, es);
_scale_width_changed, es);
nh = 1;
}
elm_spinner_value_set(es->scaleh, nh);
evas_object_smart_callback_add(es->scaleh, "changed",
_scale_height_changed, es);
_scale_height_changed, es);
}
static Eina_Bool
_es_reset(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Scale *es = data;
@ -94,7 +94,7 @@ _es_reset(void *data, int type EINA_UNUSED,
static Eina_Bool
_es_apply(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Scale *es = data;
const unsigned int *image_data;
@ -116,7 +116,7 @@ _es_apply(void *data, int type EINA_UNUSED,
w = round(elm_spinner_value_get(es->scalew));
h = round(elm_spinner_value_get(es->scaleh));
evas_object_image_file_get(es->image,
NULL, &key);
NULL, &key);
ee = ecore_evas_buffer_new(1, 1);
eecanvas = ecore_evas_get(ee);
@ -153,7 +153,7 @@ _es_apply(void *data, int type EINA_UNUSED,
static Eina_Bool
_es_cancel(void *data, int type EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Scale *es = data;
@ -165,7 +165,7 @@ _es_cancel(void *data, int type EINA_UNUSED,
static void
_editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Scale *es = data;
Ecore_Event_Handler *handler;
@ -180,7 +180,7 @@ _editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void
ephoto_scale_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
Evas_Object *image, const char *file)
Evas_Object *image, const char *file)
{
Ephoto_Scale *es;
unsigned int *im_data;
@ -196,28 +196,28 @@ ephoto_scale_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
es->image = image;
snprintf(buf, PATH_MAX, "%s/temp.%s", ephoto->config_path,
strrchr(file, '.')+1);
strrchr(file, '.') + 1);
es->tmp_file = eina_stringshare_add(buf);
if (ecore_file_exists(es->tmp_file))
ecore_file_unlink(es->tmp_file);
evas_object_image_save(es->image, es->tmp_file,
NULL, NULL);
NULL, NULL);
im_data =
evas_object_image_data_get(es->image,
EINA_FALSE);
evas_object_image_data_get(es->image,
EINA_FALSE);
evas_object_image_size_get(es->image, &es->w,
&es->h);
&es->h);
es->original_im_data = malloc(sizeof(unsigned int) * es->w * es->h);
memcpy(es->original_im_data, im_data,
sizeof(unsigned int) * es->w * es->h);
sizeof(unsigned int) * es->w * es->h);
es->aspectw = (double)es->w / (double)es->h;
es->aspecth = (double)es->h / (double)es->w;
es->editor = ephoto_editor_add(ephoto, parent, _("Scale Image"),
"es", es);
"es", es);
evas_object_event_callback_add(es->editor, EVAS_CALLBACK_DEL, _editor_del,
es);
es);
es->aspect = elm_check_add(es->editor);
elm_object_text_set(es->aspect, _("Keep Aspect"));
@ -255,21 +255,21 @@ ephoto_scale_add(Ephoto *ephoto, Evas_Object *main, Evas_Object *parent,
evas_object_show(es->scalew);
es->handlers =
eina_list_append(es->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_es_reset, es));
eina_list_append(es->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_RESET,
_es_reset, es));
es->handlers =
eina_list_append(es->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_es_apply, es));
eina_list_append(es->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_APPLY,
_es_apply, es));
es->handlers =
eina_list_append(es->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_es_cancel, es));
eina_list_append(es->handlers,
ecore_event_handler_add(EPHOTO_EVENT_EDITOR_CANCEL,
_es_cancel, es));
return;
error:
error:
return;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#include "ephoto.h"
typedef enum _Ephoto_Slideshow_Move Ephoto_Slideshow_Move;
typedef struct _Ephoto_Slideshow Ephoto_Slideshow;
typedef struct _Ephoto_Slideshow Ephoto_Slideshow;
enum _Ephoto_Slideshow_Move
{
@ -33,39 +33,39 @@ enum _Ephoto_Slideshow_Move
struct _Ephoto_Slideshow
{
Ephoto *ephoto;
Evas_Object *current_item;
Evas_Object *old_item;
Evas_Object *slideshow;
Evas_Object *event;
Evas_Object *notify;
Evas_Object *notify_box;
Eina_List *entries;
Evas_Object *pause;
Evas_Object *pause_after;
Evas_Object *fullscreen;
Evas_Object *fullscreen_after;
Evas_Object *exit;
Ephoto_Entry *entry;
Eina_Bool playing;
Eina_Bool timer_end;
Ecore_Timer *timer;
Ephoto *ephoto;
Evas_Object *current_item;
Evas_Object *old_item;
Evas_Object *slideshow;
Evas_Object *event;
Evas_Object *notify;
Evas_Object *notify_box;
Eina_List *entries;
Evas_Object *pause;
Evas_Object *pause_after;
Evas_Object *fullscreen;
Evas_Object *fullscreen_after;
Evas_Object *exit;
Ephoto_Entry *entry;
Eina_Bool playing;
Eina_Bool timer_end;
Ecore_Timer *timer;
Ephoto_Slideshow_Move move;
float timeout;
int current;
float timeout;
int current;
};
static Evas_Object *_slideshow_item_get(Ephoto_Slideshow *ss,
Ephoto_Entry *entry, Evas_Object *parent);
static Eina_Bool _slideshow_transition(void *data);
static void _slideshow_play(Ephoto_Slideshow *ss);
static void _slideshow_pause(Ephoto_Slideshow *ss);
Ephoto_Entry *entry, Evas_Object *parent);
static Eina_Bool _slideshow_transition(void *data);
static void _slideshow_play(Ephoto_Slideshow *ss);
static void _slideshow_pause(Ephoto_Slideshow *ss);
static Evas_Object *_add_icon(Evas_Object *parent, const char *icon,
const char *label, Evas_Object *before);
const char *label, Evas_Object *before);
static void
_image_shown(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_data EINA_UNUSED)
void *event_data EINA_UNUSED)
{
Ephoto_Entry *entry = data;
@ -77,55 +77,79 @@ _slideshow_move_end_get(Ephoto_Slideshow *ss)
{
switch (ss->move)
{
case EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT:
return "ephoto,slideshow,move,left,to,right";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TO_LEFT:
return "ephoto,slideshow,move,right,to,left";
case EPHOTO_SLIDESHOW_MOVE_TOP_TO_BOTTOM:
return "ephoto,slideshow,move,top,to,bottom";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_TO_TOP:
return "ephoto,slideshow,move,bottom,to,top";
case EPHOTO_SLIDESHOW_MOVE_LEFT_IN:
return "ephoto,slideshow,move,left,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_IN:
return "ephoto,slideshow,move,right,in";
case EPHOTO_SLIDESHOW_MOVE_TOP_IN:
return "ephoto,slideshow,move,top,in";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_IN:
return "ephoto,slideshow,move,bottom,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_OUT:
return "ephoto,slideshow,move,left,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_OUT:
return "ephoto,slideshow,move,right,out";
case EPHOTO_SLIDESHOW_MOVE_TOP_OUT:
return "ephoto,slideshow,move,top,out";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_OUT:
return "ephoto,slideshow,move,bottom,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER:
return "ephoto,slideshow,move,left,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER:
return "ephoto,slideshow,move,right,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER:
return "ephoto,slideshow,move,right,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER:
return "ephoto,slideshow,move,left,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_IN:
return "ephoto,slideshow,move,left,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_IN:
return "ephoto,slideshow,move,right,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,move,right,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,move,left,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_OUT:
return "ephoto,slideshow,move,left,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_OUT:
return "ephoto,slideshow,move,right,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,move,right,bottom,corner,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,move,left,bottom,corner,out";
default: return "default";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT:
return "ephoto,slideshow,move,left,to,right";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TO_LEFT:
return "ephoto,slideshow,move,right,to,left";
case EPHOTO_SLIDESHOW_MOVE_TOP_TO_BOTTOM:
return "ephoto,slideshow,move,top,to,bottom";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_TO_TOP:
return "ephoto,slideshow,move,bottom,to,top";
case EPHOTO_SLIDESHOW_MOVE_LEFT_IN:
return "ephoto,slideshow,move,left,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_IN:
return "ephoto,slideshow,move,right,in";
case EPHOTO_SLIDESHOW_MOVE_TOP_IN:
return "ephoto,slideshow,move,top,in";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_IN:
return "ephoto,slideshow,move,bottom,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_OUT:
return "ephoto,slideshow,move,left,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_OUT:
return "ephoto,slideshow,move,right,out";
case EPHOTO_SLIDESHOW_MOVE_TOP_OUT:
return "ephoto,slideshow,move,top,out";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_OUT:
return "ephoto,slideshow,move,bottom,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER:
return "ephoto,slideshow,move,left,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER:
return "ephoto,slideshow,move,right,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER:
return "ephoto,slideshow,move,right,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER:
return "ephoto,slideshow,move,left,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_IN:
return "ephoto,slideshow,move,left,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_IN:
return "ephoto,slideshow,move,right,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,move,right,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,move,left,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_OUT:
return "ephoto,slideshow,move,left,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_OUT:
return "ephoto,slideshow,move,right,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,move,right,bottom,corner,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,move,left,bottom,corner,out";
default: return "default";
}
}
@ -134,55 +158,79 @@ _slideshow_move_start_get(Ephoto_Slideshow *ss)
{
switch (ss->move)
{
case EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT:
return "ephoto,slideshow,default,left,to,right";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TO_LEFT:
return "ephoto,slideshow,default,right,to,left";
case EPHOTO_SLIDESHOW_MOVE_TOP_TO_BOTTOM:
return "ephoto,slideshow,default,top,to,bottom";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_TO_TOP:
return "ephoto,slideshow,default,bottom,to,top";
case EPHOTO_SLIDESHOW_MOVE_LEFT_IN:
return "ephoto,slideshow,default,left,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_IN:
return "ephoto,slideshow,default,right,in";
case EPHOTO_SLIDESHOW_MOVE_TOP_IN:
return "ephoto,slideshow,default,top,in";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_IN:
return "ephoto,slideshow,default,bottom,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_OUT:
return "ephoto,slideshow,default,left,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_OUT:
return "ephoto,slideshow,default,right,out";
case EPHOTO_SLIDESHOW_MOVE_TOP_OUT:
return "ephoto,slideshow,default,top,out";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_OUT:
return "ephoto,slideshow,default,bottom,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER:
return "ephoto,slideshow,default,left,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER:
return "ephoto,slideshow,default,right,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER:
return "ephoto,slideshow,default,right,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER:
return "ephoto,slideshow,default,left,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_IN:
return "ephoto,slideshow,default,left,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_IN:
return "ephoto,slideshow,default,right,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,default,right,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,default,left,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_OUT:
return "ephoto,slideshow,default,left,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_OUT:
return "ephoto,slideshow,default,right,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,default,right,bottom,corner,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,default,left,bottom,corner,out";
default: return "default";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT:
return "ephoto,slideshow,default,left,to,right";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TO_LEFT:
return "ephoto,slideshow,default,right,to,left";
case EPHOTO_SLIDESHOW_MOVE_TOP_TO_BOTTOM:
return "ephoto,slideshow,default,top,to,bottom";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_TO_TOP:
return "ephoto,slideshow,default,bottom,to,top";
case EPHOTO_SLIDESHOW_MOVE_LEFT_IN:
return "ephoto,slideshow,default,left,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_IN:
return "ephoto,slideshow,default,right,in";
case EPHOTO_SLIDESHOW_MOVE_TOP_IN:
return "ephoto,slideshow,default,top,in";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_IN:
return "ephoto,slideshow,default,bottom,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_OUT:
return "ephoto,slideshow,default,left,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_OUT:
return "ephoto,slideshow,default,right,out";
case EPHOTO_SLIDESHOW_MOVE_TOP_OUT:
return "ephoto,slideshow,default,top,out";
case EPHOTO_SLIDESHOW_MOVE_BOTTOM_OUT:
return "ephoto,slideshow,default,bottom,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER:
return "ephoto,slideshow,default,left,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER:
return "ephoto,slideshow,default,right,top,corner";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER:
return "ephoto,slideshow,default,right,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER:
return "ephoto,slideshow,default,left,bottom,corner";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_IN:
return "ephoto,slideshow,default,left,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_IN:
return "ephoto,slideshow,default,right,top,corner,in";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,default,right,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_IN:
return "ephoto,slideshow,default,left,bottom,corner,in";
case EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_OUT:
return "ephoto,slideshow,default,left,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_OUT:
return "ephoto,slideshow,default,right,top,corner,out";
case EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,default,right,bottom,corner,out";
case EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_OUT:
return "ephoto,slideshow,default,left,bottom,corner,out";
default: return "default";
}
}
@ -203,85 +251,109 @@ _slideshow_move_randomize(Ephoto_Slideshow *ss)
switch (i)
{
case 0:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT;
break;
case 1:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TO_LEFT;
break;
case 2:
ss->move = EPHOTO_SLIDESHOW_MOVE_TOP_TO_BOTTOM;
break;
case 3:
ss->move = EPHOTO_SLIDESHOW_MOVE_BOTTOM_TO_TOP;
break;
case 4:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_IN;
break;
case 5:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_IN;
break;
case 6:
ss->move = EPHOTO_SLIDESHOW_MOVE_TOP_IN;
break;
case 7:
ss->move = EPHOTO_SLIDESHOW_MOVE_BOTTOM_IN;
break;
case 8:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_OUT;
break;
case 9:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_OUT;
break;
case 10:
ss->move = EPHOTO_SLIDESHOW_MOVE_TOP_OUT;
break;
case 11:
ss->move = EPHOTO_SLIDESHOW_MOVE_BOTTOM_OUT;
break;
case 12:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER;
break;
case 13:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER;
break;
case 14:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER;
break;
case 15:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER;
break;
case 16:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_IN;
break;
case 17:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_IN;
break;
case 18:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_IN;
break;
case 19:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_IN;
break;
case 20:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_OUT;
break;
case 21:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_OUT;
break;
case 22:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_OUT;
break;
case 23:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_OUT;
break;
default: ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT;
case 0:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT;
break;
case 1:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TO_LEFT;
break;
case 2:
ss->move = EPHOTO_SLIDESHOW_MOVE_TOP_TO_BOTTOM;
break;
case 3:
ss->move = EPHOTO_SLIDESHOW_MOVE_BOTTOM_TO_TOP;
break;
case 4:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_IN;
break;
case 5:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_IN;
break;
case 6:
ss->move = EPHOTO_SLIDESHOW_MOVE_TOP_IN;
break;
case 7:
ss->move = EPHOTO_SLIDESHOW_MOVE_BOTTOM_IN;
break;
case 8:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_OUT;
break;
case 9:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_OUT;
break;
case 10:
ss->move = EPHOTO_SLIDESHOW_MOVE_TOP_OUT;
break;
case 11:
ss->move = EPHOTO_SLIDESHOW_MOVE_BOTTOM_OUT;
break;
case 12:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER;
break;
case 13:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER;
break;
case 14:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER;
break;
case 15:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER;
break;
case 16:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_IN;
break;
case 17:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_IN;
break;
case 18:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_IN;
break;
case 19:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_IN;
break;
case 20:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TOP_CORNER_OUT;
break;
case 21:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_TOP_CORNER_OUT;
break;
case 22:
ss->move = EPHOTO_SLIDESHOW_MOVE_RIGHT_BOTTOM_CORNER_OUT;
break;
case 23:
ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_BOTTOM_CORNER_OUT;
break;
default: ss->move = EPHOTO_SLIDESHOW_MOVE_LEFT_TO_RIGHT;
}
}
static void
_on_transition_raise(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -290,7 +362,7 @@ _on_transition_raise(void *data, Evas_Object *obj EINA_UNUSED,
static void
_on_transition_end(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -305,7 +377,7 @@ _on_transition_end(void *data, Evas_Object *obj EINA_UNUSED,
elm_layout_content_unset(ss->slideshow, "ephoto.swallow.slideshow.item2");
}
elm_layout_content_set(ss->slideshow, "ephoto.swallow.slideshow.item",
ss->current_item);
ss->current_item);
evas_object_raise(ss->current_item);
evas_object_show(ss->current_item);
elm_layout_signal_emit(ss->slideshow, "ephoto,transition,done", "ephoto");
@ -328,23 +400,23 @@ _slideshow_item_get(Ephoto_Slideshow *ss, Ephoto_Entry *entry, Evas_Object *pare
if (ext)
{
ext++;
if ((strcasecmp(ext, "edj") == 0))
{
if (edje_file_group_exists(entry->path, "e/desktop/background"))
group = "e/desktop/background";
else
{
Eina_List *g = edje_file_collection_list(entry->path);
ext++;
if ((strcasecmp(ext, "edj") == 0))
{
if (edje_file_group_exists(entry->path, "e/desktop/background"))
group = "e/desktop/background";
else
{
Eina_List *g = edje_file_collection_list(entry->path);
group = eina_list_data_get(g);
edje_file_collection_list_free(g);
}
}
group = eina_list_data_get(g);
edje_file_collection_list_free(g);
}
}
}
layout = elm_layout_add(parent);
elm_layout_file_set(layout, PACKAGE_DATA_DIR "/themes/ephoto.edj",
"ephoto,slideshow,item");
"ephoto,slideshow,item");
EPHOTO_EXPAND(layout);
EPHOTO_FILL(layout);
evas_object_data_set(layout, "entry", entry);
@ -357,7 +429,7 @@ _slideshow_item_get(Ephoto_Slideshow *ss, Ephoto_Entry *entry, Evas_Object *pare
EPHOTO_EXPAND(image);
EPHOTO_FILL(image);
evas_object_event_callback_add(image, EVAS_CALLBACK_SHOW, _image_shown,
entry);
entry);
evas_object_image_size_get(elm_image_object_get(image), &w, &h);
evas_object_geometry_get(parent, 0, 0, &sw, &sh);
if (w < sw && h < sh)
@ -371,7 +443,7 @@ _slideshow_item_get(Ephoto_Slideshow *ss, Ephoto_Entry *entry, Evas_Object *pare
msg->count = 1;
msg->val[0] = (float)ss->timeout;
edje_object_message_send(elm_layout_edje_get(layout),
EDJE_MESSAGE_FLOAT_SET, 1, msg);
EDJE_MESSAGE_FLOAT_SET, 1, msg);
return layout;
}
@ -393,9 +465,9 @@ _slideshow_transition(void *data)
ss->old_item = ss->current_item;
ss->current_item = _slideshow_item_get(ss, eina_list_nth(ss->entries, ss->current),
ss->slideshow);
ss->slideshow);
elm_layout_content_set(ss->slideshow, "ephoto.swallow.slideshow.item2",
ss->current_item);
ss->current_item);
evas_object_show(ss->current_item);
snprintf(buf, PATH_MAX, "ephoto,%s", ss->ephoto->config->slideshow_transition);
@ -423,9 +495,9 @@ _slideshow_play(Ephoto_Slideshow *ss)
if (!eina_list_nth(ss->entries, ss->current))
ss->current = 0;
ss->current_item = _slideshow_item_get(ss, eina_list_nth(ss->entries, ss->current),
ss->slideshow);
ss->slideshow);
elm_layout_content_set(ss->slideshow, "ephoto.swallow.slideshow.item",
ss->current_item);
ss->current_item);
evas_object_raise(ss->current_item);
evas_object_show(ss->current_item);
}
@ -435,7 +507,7 @@ _slideshow_play(Ephoto_Slideshow *ss)
msg->count = 1;
msg->val[0] = (float)ss->timeout;
edje_object_message_send(elm_layout_edje_get(ss->current_item),
EDJE_MESSAGE_FLOAT_SET, 1, msg);
EDJE_MESSAGE_FLOAT_SET, 1, msg);
if (ss->ephoto->config->movess)
{
@ -459,7 +531,7 @@ _slideshow_pause(Ephoto_Slideshow *ss)
static void
_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
Ephoto_Entry *entry;
@ -475,13 +547,13 @@ _mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
evas_object_hide(ss->ephoto->exit);
}
if (ss->current_item)
entry = evas_object_data_get(ss->current_item, "entry");
entry = evas_object_data_get(ss->current_item, "entry");
else
entry = ss->entry;
entry = ss->entry;
if (ss->event)
{
evas_object_del(ss->event);
ss->event = NULL;
evas_object_del(ss->event);
ss->event = NULL;
}
evas_object_del(ss->notify_box);
evas_object_del(ss->notify);
@ -517,12 +589,12 @@ _entry_free(void *data, const Ephoto_Entry *entry EINA_UNUSED)
static void
_slideshow_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
if (ss->entry)
ephoto_entry_free_listener_del(ss->entry, _entry_free, ss);
ephoto_entry_free_listener_del(ss->entry, _entry_free, ss);
free(ss);
}
@ -543,13 +615,13 @@ _back(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
evas_object_hide(ss->ephoto->exit);
}
if (ss->current_item)
entry = evas_object_data_get(ss->current_item, "entry");
entry = evas_object_data_get(ss->current_item, "entry");
else
entry = ss->entry;
entry = ss->entry;
if (ss->event)
{
evas_object_del(ss->event);
ss->event = NULL;
evas_object_del(ss->event);
ss->event = NULL;
}
evas_object_del(ss->notify_box);
evas_object_del(ss->notify);
@ -615,26 +687,26 @@ _pause(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
if (ss->playing)
{
_slideshow_pause(ss);
ss->pause =
_add_icon(ss->notify_box, "media-playback-start", _("Play"),
ss->pause_after);
ss->pause =
_add_icon(ss->notify_box, "media-playback-start", _("Play"),
ss->pause_after);
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
ss->playing = 0;
ss->playing = 0;
}
else
{
_slideshow_play(ss);
ss->pause =
_add_icon(ss->notify_box, "media-playback-pause", _("Pause"),
ss->pause_after);
_add_icon(ss->notify_box, "media-playback-pause", _("Pause"),
ss->pause_after);
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
ss->playing = 1;
ss->playing = 1;
}
}
static void
_previous(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -665,7 +737,7 @@ _last(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
static void
_fullscreen(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -673,22 +745,22 @@ _fullscreen(void *data, Evas_Object *obj EINA_UNUSED,
if (elm_win_fullscreen_get(ss->ephoto->win))
{
ss->fullscreen =
_add_icon(ss->notify_box, "view-fullscreen", _("Fullscreen"),
ss->fullscreen_after);
ss->fullscreen =
_add_icon(ss->notify_box, "view-fullscreen", _("Fullscreen"),
ss->fullscreen_after);
evas_object_smart_callback_add(ss->fullscreen, "clicked",
_fullscreen, ss);
_fullscreen, ss);
elm_win_fullscreen_set(ss->ephoto->win, EINA_FALSE);
elm_box_unpack(ss->notify_box, ss->exit);
evas_object_hide(ss->exit);
}
else
{
ss->fullscreen =
_add_icon(ss->notify_box, "view-restore", _("Normal"),
ss->fullscreen_after);
ss->fullscreen =
_add_icon(ss->notify_box, "view-restore", _("Normal"),
ss->fullscreen_after);
evas_object_smart_callback_add(ss->fullscreen, "clicked",
_fullscreen, ss);
_fullscreen, ss);
elm_win_fullscreen_set(ss->ephoto->win, EINA_TRUE);
elm_box_pack_end(ss->notify_box, ss->exit);
evas_object_show(ss->exit);
@ -697,7 +769,7 @@ _fullscreen(void *data, Evas_Object *obj EINA_UNUSED,
static void
_settings(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -706,7 +778,7 @@ _settings(void *data, Evas_Object *obj EINA_UNUSED,
static void
_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info)
void *event_info)
{
Ephoto_Slideshow *ss = data;
Evas_Event_Key_Down *ev = event_info;
@ -717,7 +789,7 @@ _key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
if (!strcmp(k, "Escape") || !strcmp(k, "F5"))
{
_back(ss, NULL, NULL);
_back(ss, NULL, NULL);
}
else if (!strcmp(k, "F1"))
{
@ -725,27 +797,27 @@ _key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
}
else if (!strcmp(k, "F11"))
{
_fullscreen(ss, NULL, NULL);
_fullscreen(ss, NULL, NULL);
}
else if (!strcmp(k, "space"))
{
_pause(ss, NULL, NULL);
_pause(ss, NULL, NULL);
}
else if (!strcmp(k, "Home"))
{
_first(ss, NULL, NULL);
_first(ss, NULL, NULL);
}
else if (!strcmp(k, "End"))
{
_last(ss, NULL, NULL);
_last(ss, NULL, NULL);
}
else if (!strcmp(k, "Left"))
{
_previous(ss, NULL, NULL);
_previous(ss, NULL, NULL);
}
else if (!strcmp(k, "Right"))
{
_next(ss, NULL, NULL);
_next(ss, NULL, NULL);
}
}
@ -756,8 +828,8 @@ _add_icon(Evas_Object *parent, const char *icon, const char *label, Evas_Object
int ret;
ic = elm_icon_add(parent);
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get());
evas_object_size_hint_min_set(ic, 20 * elm_config_scale_get(),
20 * elm_config_scale_get());
ret = elm_icon_standard_set(ic, icon);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
@ -779,7 +851,7 @@ _add_icon(Evas_Object *parent, const char *icon, const char *label, Evas_Object
static void
_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -792,7 +864,7 @@ _mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
static void
_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -802,7 +874,7 @@ _mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
static void
_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
void *event_info EINA_UNUSED)
{
Ephoto_Slideshow *ss = data;
@ -826,9 +898,9 @@ ephoto_slideshow_show_controls(Ephoto *ephoto)
elm_box_horizontal_set(ss->notify_box, EINA_TRUE);
EPHOTO_WEIGHT(ss->notify, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
evas_object_event_callback_add(ss->notify_box, EVAS_CALLBACK_MOUSE_IN, _mouse_in,
ss);
ss);
evas_object_event_callback_add(ss->notify_box, EVAS_CALLBACK_MOUSE_OUT, _mouse_out,
ss);
ss);
elm_object_content_set(ss->notify, ss->notify_box);
evas_object_show(ss->notify_box);
@ -839,22 +911,22 @@ ephoto_slideshow_show_controls(Ephoto *ephoto)
but = _add_icon(ss->notify_box, "go-previous", _("Previous"), NULL);
evas_object_smart_callback_add(but, "clicked", _previous, ss);
ss->pause =
_add_icon(ss->notify_box, "media-playback-start", _("Play"), NULL);
_add_icon(ss->notify_box, "media-playback-start", _("Play"), NULL);
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
ss->pause_after =
_add_icon(ss->notify_box, "go-next", _("Next"), NULL);
_add_icon(ss->notify_box, "go-next", _("Next"), NULL);
evas_object_smart_callback_add(ss->pause_after, "clicked", _next,
ss);
ss);
but = _add_icon(ss->notify_box, "go-last", _("Last"), NULL);
evas_object_smart_callback_add(but, "clicked", _last, ss);
ss->fullscreen =
_add_icon(ss->notify_box, "view-fullscreen", _("Fullscreen"), NULL);
_add_icon(ss->notify_box, "view-fullscreen", _("Fullscreen"), NULL);
evas_object_smart_callback_add(ss->fullscreen, "clicked", _fullscreen, ss);
ss->fullscreen_after =
_add_icon(ss->notify_box, "preferences-other", _("Settings"), NULL);
_add_icon(ss->notify_box, "preferences-other", _("Settings"), NULL);
evas_object_smart_callback_add(ss->fullscreen_after, "clicked", _settings, ss);
ss->exit =
_add_icon(ss->notify_box, "application-exit", _("Exit"), NULL);
_add_icon(ss->notify_box, "application-exit", _("Exit"), NULL);
evas_object_smart_callback_add(ss->exit, "clicked", _fullscreen, ss);
elm_box_unpack(ss->notify_box, ss->exit);
@ -887,23 +959,23 @@ ephoto_slideshow_add(Ephoto *ephoto, Evas_Object *parent)
ss->timer_end = EINA_TRUE;
elm_layout_file_set(slideshow, PACKAGE_DATA_DIR "/themes/ephoto.edj",
"ephoto,slideshow,base");
"ephoto,slideshow,base");
evas_object_event_callback_add(slideshow, EVAS_CALLBACK_DEL, _slideshow_del,
ss);
ss);
evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_DOWN,
_mouse_down, ss);
_mouse_down, ss);
evas_object_data_set(slideshow, "slideshow", ss);
EPHOTO_EXPAND(slideshow);
EPHOTO_FILL(slideshow);
evas_object_event_callback_add(ss->slideshow, EVAS_CALLBACK_MOUSE_MOVE,
_mouse_move, ss);
_mouse_move, ss);
edje_object_signal_callback_add(elm_layout_edje_get(ss->slideshow),
"ephoto,transition,raise", "ephoto", _on_transition_raise, ss);
"ephoto,transition,raise", "ephoto", _on_transition_raise, ss);
edje_object_signal_callback_add(elm_layout_edje_get(ss->slideshow),
"ephoto,transition,end", "ephoto", _on_transition_end, ss);
"ephoto,transition,end", "ephoto", _on_transition_end, ss);
return ss->slideshow;
error:
error:
evas_object_del(slideshow);
return NULL;
}
@ -923,28 +995,28 @@ ephoto_slideshow_entry_set(Evas_Object *obj, Ephoto_Entry *entry)
Ephoto_Slideshow *ss = evas_object_data_get(obj, "slideshow");
if (!entry)
return;
return;
if (ss->entry)
ephoto_entry_free_listener_del(ss->entry, _entry_free, ss);
ephoto_entry_free_listener_del(ss->entry, _entry_free, ss);
ss->entry = entry;
ss->current = eina_list_data_idx(ss->entries, ss->entry);
if (entry)
ephoto_entry_free_listener_add(entry, _entry_free, ss);
ephoto_entry_free_listener_add(entry, _entry_free, ss);
ss->timeout = ss->ephoto->config->slideshow_timeout;
_slideshow_play(ss);
if (ss->pause)
{
evas_object_del(ss->pause);
ss->pause =
_add_icon(ss->notify_box, "media-playback-pause", _("Pause"),
ss->pause_after);
evas_object_del(ss->pause);
ss->pause =
_add_icon(ss->notify_box, "media-playback-pause", _("Pause"),
ss->pause_after);
evas_object_smart_callback_add(ss->pause, "clicked", _pause, ss);
ss->playing = 1;
ss->playing = 1;
}
if (ss->fullscreen)
{
@ -952,28 +1024,28 @@ ephoto_slideshow_entry_set(Evas_Object *obj, Ephoto_Entry *entry)
if (!elm_win_fullscreen_get(ss->ephoto->win))
{
ss->fullscreen =
_add_icon(ss->notify_box, "view-fullscreen", _("Fullscreen"),
ss->fullscreen_after);
_add_icon(ss->notify_box, "view-fullscreen", _("Fullscreen"),
ss->fullscreen_after);
evas_object_smart_callback_add(ss->fullscreen, "clicked",
_fullscreen, ss);
_fullscreen, ss);
elm_box_unpack(ss->notify_box, ss->exit);
evas_object_hide(ss->exit);
}
else
{
ss->fullscreen =
_add_icon(ss->notify_box, "view-restore", _("Normal"),
ss->fullscreen_after);
_add_icon(ss->notify_box, "view-restore", _("Normal"),
ss->fullscreen_after);
evas_object_smart_callback_add(ss->fullscreen, "clicked",
_fullscreen, ss);
_fullscreen, ss);
elm_box_pack_end(ss->notify_box, ss->exit);
evas_object_show(ss->exit);
}
}
if (ss->event)
{
evas_object_del(ss->event);
ss->event = NULL;
evas_object_del(ss->event);
ss->event = NULL;
}
ss->event = evas_object_rectangle_add(ss->ephoto->win);
evas_object_smart_member_add(ss->event, ss->ephoto->win);
@ -981,7 +1053,8 @@ ephoto_slideshow_entry_set(Evas_Object *obj, Ephoto_Entry *entry)
evas_object_repeat_events_set(ss->event, EINA_TRUE);
evas_object_show(ss->event);
evas_object_event_callback_add(ss->event, EVAS_CALLBACK_KEY_DOWN, _key_down,
ss);
ss);
evas_object_raise(ss->event);
elm_object_focus_set(ss->event, EINA_TRUE);
}

View File

@ -61,7 +61,7 @@ e_thumb_shutdown(void)
_exe_del_handler = NULL;
_thumbnailers = eina_list_free(_thumbnailers);
EINA_LIST_FREE(_thumbnailers_exe, exe_free)
ecore_exe_free(exe_free);
ecore_exe_free(exe_free);
_thumb_queue = eina_list_free(_thumb_queue);
_objid = 0;
eina_hash_free(_thumbs);
@ -439,3 +439,4 @@ _e_thumb_cb_exe_event_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev
}
return ECORE_CALLBACK_PASS_ON;
}

File diff suppressed because it is too large Load Diff

View File

@ -122,7 +122,7 @@ _e_ipc_init(void)
return 0;
}
_e_ipc_server = ecore_ipc_server_connect
(ECORE_IPC_LOCAL_SYSTEM, "ephoto", port, NULL);
(ECORE_IPC_LOCAL_SYSTEM, "ephoto", port, NULL);
if (!_e_ipc_server)
{
printf("Error: could not connect to Ephoto IPC port=%d\n", port);
@ -138,7 +138,7 @@ _e_ipc_init(void)
static Eina_Bool
_e_ipc_cb_server_add(void *data EINA_UNUSED,
int type EINA_UNUSED,
int type EINA_UNUSED,
void *event)
{
Ecore_Ipc_Event_Server_Add *e;
@ -152,8 +152,8 @@ _e_ipc_cb_server_add(void *data EINA_UNUSED,
}
static Eina_Bool
_e_ipc_cb_server_del(void *data EINA_UNUSED,
int type EINA_UNUSED,
_e_ipc_cb_server_del(void *data EINA_UNUSED,
int type EINA_UNUSED,
void *event EINA_UNUSED)
{
/* quit now */
@ -163,7 +163,7 @@ _e_ipc_cb_server_del(void *data EINA_UNUSED,
static Eina_Bool
_e_ipc_cb_server_data(void *data EINA_UNUSED,
int type EINA_UNUSED,
int type EINA_UNUSED,
void *event)
{
Ecore_Ipc_Event_Server_Data *e;
@ -480,16 +480,16 @@ _e_thumb_generate(E_Thumb *eth)
int hi, si, vi;
float h, s, v;
const int pat2[4] =
{
0, 3, 1, 2
};
{
0, 3, 1, 2
};
const int pat1[16] =
{
5, 10, 6, 9,
0, 15, 3, 12,
1, 14, 7, 8,
4, 11, 2, 13
};
{
5, 10, 6, 9,
0, 15, 3, 12,
1, 14, 7, 8,
4, 11, 2, 13
};
/* ww = hh = 1 here */
data3 = malloc(sizeof(unsigned int));
@ -577,7 +577,8 @@ end:
/* will free all */
if (edje) evas_object_del(edje);
if (ee_im) ecore_evas_free(ee_im);
else if (im) evas_object_del(im);
else if (im)
evas_object_del(im);
if (im2) evas_object_del(im2);
if (bg) evas_object_del(bg);
ecore_evas_free(ee);
@ -621,7 +622,7 @@ e_sha1_sum(unsigned char *data, int size, unsigned char *dst)
buf[63] = (size) & 0xff;
}
buf[idx] = *d;
idx++;;
idx++;
if ((idx == 64) || (left == 1))
{
if ((left == 1) && (idx < 64)) buf[idx] = 0x80;