From c56c7cccb8c21298ca77526abe9a02250fabcb99 Mon Sep 17 00:00:00 2001 From: sebastid Date: Tue, 19 Sep 2006 21:24:17 +0000 Subject: [PATCH] Belongs to old fileman. SVN revision: 25980 --- src/bin/e_file_dialog.c | 186 -------- src/bin/e_file_dialog.h | 36 -- src/bin/e_file_selector.c | 277 ------------ src/bin/e_file_selector.h | 25 - src/bin/e_icon_canvas.c | 905 ------------------------------------- src/bin/e_icon_canvas.h | 31 -- src/bin/e_icon_grid.c | 737 ------------------------------ src/bin/e_icon_grid.h | 28 -- src/bin/e_widget_fileman.c | 145 ------ src/bin/e_widget_fileman.h | 15 - src/bin/e_widget_iconsel.c | 308 ------------- src/bin/e_widget_iconsel.h | 15 - 12 files changed, 2708 deletions(-) delete mode 100644 src/bin/e_file_dialog.c delete mode 100644 src/bin/e_file_dialog.h delete mode 100644 src/bin/e_file_selector.c delete mode 100644 src/bin/e_file_selector.h delete mode 100644 src/bin/e_icon_canvas.c delete mode 100644 src/bin/e_icon_canvas.h delete mode 100644 src/bin/e_icon_grid.c delete mode 100644 src/bin/e_icon_grid.h delete mode 100644 src/bin/e_widget_fileman.c delete mode 100644 src/bin/e_widget_fileman.h delete mode 100644 src/bin/e_widget_iconsel.c delete mode 100644 src/bin/e_widget_iconsel.h diff --git a/src/bin/e_file_dialog.c b/src/bin/e_file_dialog.c deleted file mode 100644 index 6a79bc96f..000000000 --- a/src/bin/e_file_dialog.c +++ /dev/null @@ -1,186 +0,0 @@ -#include "e.h" - -/*- DESCRIPTION -*/ -/* An E_Object that brings up a file dialog window with a list of files, some - * buttons, and a "Places" frame where the user can add his favorite places. - * When the user selects a file, it will trigger a callback. - */ - -static void _e_file_dialog_button1_click(void *data, E_Dialog *dia); -static void _e_file_dialog_button2_click(void *data, E_Dialog *dia); -static void _e_file_dialog_free(E_File_Dialog *dia); -static void _e_file_dialog_file_select_cb(Evas_Object *obj, char *file, void *data); -static void _e_file_dialog_file_hilite_cb(Evas_Object *obj, char *file, void *data); -static void _cb_icons(void *data, void *data2); -static void _cb_home(void *data, void *data2); -static void _cb_desktop(void *data, void *data2); - -EAPI E_File_Dialog * -e_file_dialog_new(E_Container *con) -{ - E_File_Dialog *dia; - Evas_Coord w, h; - E_Manager *man; - Evas *evas; - Evas_Object *list, *ol, *fm; - - if (!con) - { - man = e_manager_current_get(); - if (!man) return NULL; - con = e_container_current_get(man); - if (!con) con = e_container_number_get(man, 0); - if (!con) return NULL; - } - - dia = E_OBJECT_ALLOC(E_File_Dialog, E_FILE_DIALOG_TYPE, _e_file_dialog_free); - if(!dia) return NULL; - dia->dia = e_dialog_new(con, "E", "_file_dialog"); - if(!dia->dia) - { - free(dia); - return NULL; - } - - dia->con = con; - dia->file = NULL; - dia->select_func = NULL; - dia->hilite_func = NULL; - dia->select_data = NULL; - evas = dia->dia->win->evas; - - fm = e_widget_fileman_add(evas, &(dia->file)); - e_widget_fileman_select_callback_add(fm, _e_file_dialog_file_select_cb, dia); - e_widget_fileman_hilite_callback_add(fm, _e_file_dialog_file_hilite_cb, dia); - - ol = e_widget_list_add(evas, 0, 1); - - list = e_widget_framelist_add(evas, _("Places"), 0); - e_widget_framelist_content_align_set(list, 0.5, 0.0); - e_widget_framelist_object_append(list, e_widget_button_add(evas, _("Home"), "e/fileman/home", _cb_home, fm, NULL)); - e_widget_framelist_object_append(list, e_widget_button_add(evas, _("Desktop"), "e/fileman/desktop", _cb_desktop, fm, NULL)); - e_widget_framelist_object_append(list, e_widget_button_add(evas, _("Icons"), "e/fileman/folder", _cb_icons, fm, NULL)); - e_widget_list_object_append(ol, list, 1, 0, 0.0); - - e_widget_list_object_append(ol, fm, 1, 1, 0.0); - - e_widget_min_size_get(ol, &w, &h); - e_dialog_content_set(dia->dia, ol, w, h); - - e_dialog_button_add(dia->dia, _("OK"), NULL, _e_file_dialog_button1_click, dia); - e_dialog_button_add(dia->dia, _("Cancel"), NULL, _e_file_dialog_button2_click, dia); - - return dia; -} - -EAPI void -e_file_dialog_show(E_File_Dialog *dia) -{ - e_dialog_resizable_set(dia->dia, 1); - e_dialog_show(dia->dia); -} - -EAPI void -e_file_dialog_title_set(E_File_Dialog *dia, const char *title) -{ - e_dialog_title_set(dia->dia, title); -} - -EAPI void -e_file_dialog_select_callback_add(E_File_Dialog *dia, void (*func)(E_File_Dialog *dia, char *file, void *data), void *data) -{ - dia->select_func = func; - dia->select_data = data; -} - -EAPI void -e_file_dialog_hilite_callback_add(E_File_Dialog *dia, void (*func)(E_File_Dialog *dia, char *file, void *data), void *data) -{ - dia->hilite_func = func; - dia->hilite_data = data; -} - -/* local subsystem functions */ - -static void -_e_file_dialog_button1_click(void *data, E_Dialog *edia) -{ - E_File_Dialog *dia; - - dia = data; - if(dia->select_func && dia->file) - dia->select_func(dia, dia->file, dia->select_data); - _e_file_dialog_free(dia); -} - -static void -_e_file_dialog_button2_click(void *data, E_Dialog *dia) -{ - _e_file_dialog_free(data); -} - -static void -_e_file_dialog_file_select_cb(Evas_Object *obj, char *file, void *data) -{ - E_File_Dialog *dia; - - dia = data; - if(dia->select_func) - dia->select_func(dia, file, dia->select_data); - - printf("e_file_dialog (select) : %s\n", file); - -} - -static void -_e_file_dialog_file_hilite_cb(Evas_Object *obj, char *file, void *data) -{ - E_File_Dialog *dia; - - dia = data; - if(dia->hilite_func) - dia->hilite_func(dia, file, dia->hilite_data); - - printf("e_file_dialog (hilite) : %s\n", file); -} - -static void -_e_file_dialog_free(E_File_Dialog *dia) -{ - e_object_unref(E_OBJECT(dia->dia)); - E_FREE(dia->file); - //free(dia); -} - -static void -_cb_icons(void *data, void *data2) -{ - Evas_Object *obj; - char path[PATH_MAX]; - - obj = data; - snprintf(path, PATH_MAX, "%s/.icons", e_user_homedir_get()); - e_widget_fileman_dir_set(obj, path); -} - -static void -_cb_desktop(void *data, void *data2) -{ - Evas_Object *obj; - char path[PATH_MAX]; - - obj = data; - snprintf(path, PATH_MAX, "%s/Desktop", e_user_homedir_get()); - e_widget_fileman_dir_set(obj, path); -} - -static void -_cb_home(void *data, void *data2) -{ - Evas_Object *obj; - char path[PATH_MAX]; - - obj = data; - snprintf(path, PATH_MAX, "%s", e_user_homedir_get()); - e_widget_fileman_dir_set(obj, path); -} diff --git a/src/bin/e_file_dialog.h b/src/bin/e_file_dialog.h deleted file mode 100644 index 4cd99f531..000000000 --- a/src/bin/e_file_dialog.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#ifdef E_TYPEDEFS - -typedef struct _E_File_Dialog E_File_Dialog; - -#else -#ifndef E_FILE_DIALOG_H -#define E_FILE_DIALOG_H - -#define E_FILE_DIALOG_TYPE 0xE0b0101f - -struct _E_File_Dialog -{ - E_Object e_obj_inherit; - - E_Container *con; - E_Dialog *dia; - - char *file; - - void (*select_func)(E_File_Dialog *dia, char *file, void *data); - void *select_data; - void (*hilite_func)(E_File_Dialog *dia, char *file, void *data); - void *hilite_data; -}; - -EAPI E_File_Dialog *e_file_dialog_new (E_Container *con); -EAPI void e_file_dialog_show (E_File_Dialog *dia); -EAPI void e_file_dialog_title_set (E_File_Dialog *dia, const char *title); -EAPI void e_file_dialog_select_callback_add(E_File_Dialog *dia, void (*func)(E_File_Dialog *dia, char *file, void *data), void *data); -EAPI void e_file_dialog_hilite_callback_add(E_File_Dialog *dia, void (*func)(E_File_Dialog *dia, char *file, void *data), void *data); - -#endif -#endif diff --git a/src/bin/e_file_selector.c b/src/bin/e_file_selector.c deleted file mode 100644 index e58b88843..000000000 --- a/src/bin/e_file_selector.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#include "e.h" - -/* FIXME: this code is destined for death - replaced by e_fm.c that already can - * do this stuff */ - -/*- DESCRIPTION -*/ -/* This is a list of files in a scrollbable container. When a file is selected - * this object will return the file name. - */ - -#define SMART_NAME "e_fileselector" -#define API_ENTRY E_Smart_Data *sd; sd = evas_object_smart_data_get(obj); if ((!obj) || (!sd) || (evas_object_type_get(obj) && strcmp(evas_object_type_get(obj), SMART_NAME))) -#define INTERNAL_ENTRY E_Smart_Data *sd; sd = evas_object_smart_data_get(obj); if (!sd) return; - -typedef struct _E_Smart_Data E_Smart_Data; - -struct _E_Smart_Data -{ - Evas_Object *parent; - Evas_Object *frame; /* scrollframe object */ - Evas_Object *files; /* file view object */ - - int view; /* view type, icons, list */ - - Evas_Coord x, y, w, h; /* coords */ - - void (*func) (Evas_Object *obj, char *file, void *data); /* selection cb */ - void (*func_hilite) (Evas_Object *obj, char *file, void *data); /* selection cb */ - void *func_data; /* selection cb data */ -}; - -/* local subsystem functions */ -static void _e_smart_add(Evas_Object *obj); -static void _e_smart_del(Evas_Object *obj); -static void _e_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y); -static void _e_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h); -static void _e_smart_show(Evas_Object *obj); -static void _e_smart_hide(Evas_Object *obj); -static void _e_smart_color_set(Evas_Object *obj, int r, int g, int b, int a); -static void _e_smart_clip_set(Evas_Object *obj, Evas_Object * clip); -static void _e_smart_clip_unset(Evas_Object *obj); -static void _e_smart_init(void); -static void _e_file_selector_selected_cb(Evas_Object *obj, char *file, void *data); -static void _e_file_selector_hilited_cb(Evas_Object *obj, char *file, void *data); -static void _e_file_selector_scroll_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y); -static void _e_file_selector_scroll_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); -static void _e_file_selector_scroll_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); -static void _e_file_selector_scroll_child_size_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); - - -/* local subsystem globals */ -static Evas_Smart *_e_smart = NULL; - -/* externally accessible functions */ -EAPI Evas_Object * -e_file_selector_add(Evas *evas) -{ - _e_smart_init(); - return evas_object_smart_add(evas, _e_smart); -} - -EAPI void -e_file_selector_view_set(Evas_Object *obj, int type) -{ - API_ENTRY return; - - switch(type) - { - case E_FILE_SELECTOR_ICONVIEW: - break; - - case E_FILE_SELECTOR_LISTVIEW: - break; - } -} - -EAPI int -e_file_selector_view_get(Evas_Object *obj) -{ - API_ENTRY return 0; - return sd->view; -} - -EAPI void -e_file_selector_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void (*func_hilite) (Evas_Object *obj, char *file, void *data), void *data) -{ - API_ENTRY return; - sd->func = func; - sd->func_hilite = func_hilite; - sd->func_data = data; -} - -EAPI void -e_file_selector_dir_set(Evas_Object *obj, const char *dir) -{ - API_ENTRY return; - - e_fm_dir_set(sd->files, dir); -} - -static void -_e_file_selector_scroll_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y) -{ - e_fm_scroll_set(obj, x, y); -} - -static void -_e_file_selector_scroll_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) -{ - e_fm_scroll_get(obj, x, y); -} - -static void -_e_file_selector_scroll_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) -{ - e_fm_scroll_max_get(obj, x, y); -} - -static void - _e_file_selector_scroll_child_size_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) -{ - e_fm_geometry_virtual_get(obj, x, y); -} - - -/* local subsystem functions */ -static void -_e_smart_add(Evas_Object *obj) -{ - E_Smart_Data *sd; - Evas *evas; - char *home; - - sd = calloc(1, sizeof(E_Smart_Data)); - if (!sd) return; - sd->x = 0; - sd->y = 0; - sd->w = 0; - sd->h = 0; - sd->parent = obj; - sd->func = NULL; - sd->func_hilite = NULL; - sd->func_data = NULL; - sd->view = E_FILE_SELECTOR_ICONVIEW; - - evas = evas_object_evas_get(obj); - - sd->frame = e_scrollframe_add(evas); - evas_object_smart_member_add(sd->frame, obj); - - sd->files = e_fm_add(evas); - - /* temp fix until this is handled properly */ - home = e_user_homedir_get(); - e_fm_dir_set(sd->files, home); - E_FREE(home); - - e_fm_selector_enable(sd->files, _e_file_selector_selected_cb, _e_file_selector_hilited_cb, sd); - evas_object_smart_member_add(sd->files, obj); - - e_scrollframe_extern_pan_set(sd->frame, sd->files, - _e_file_selector_scroll_set, - _e_file_selector_scroll_get, - _e_file_selector_scroll_max_get, - _e_file_selector_scroll_child_size_get); - - evas_object_smart_data_set(obj, sd); - - evas_object_show(sd->frame); -} - -static void -_e_smart_del(Evas_Object *obj) -{ - INTERNAL_ENTRY; - - evas_object_del(sd->frame); - evas_object_del(sd->files); - - free(sd); -} - -static void -_e_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) -{ - INTERNAL_ENTRY; - sd->x = x; - sd->y = y; - evas_object_move(sd->frame, x, y); -} - -static void -_e_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) -{ - INTERNAL_ENTRY; - sd->w = w; - sd->h = h; - evas_object_resize(sd->frame, w, h); -} - -static void -_e_smart_show(Evas_Object *obj) -{ - INTERNAL_ENTRY; - evas_object_show(sd->frame); -} - -static void -_e_smart_hide(Evas_Object *obj) -{ - INTERNAL_ENTRY; - evas_object_hide(sd->frame); -} - -static void -_e_smart_color_set(Evas_Object *obj, int r, int g, int b, int a) -{ - INTERNAL_ENTRY; - evas_object_color_set(sd->frame, r, g, b, a); -} - -static void -_e_smart_clip_set(Evas_Object *obj, Evas_Object *clip) -{ - INTERNAL_ENTRY; - evas_object_clip_set(sd->frame, clip); -} - -static void -_e_smart_clip_unset(Evas_Object *obj) -{ - INTERNAL_ENTRY; - evas_object_clip_unset(sd->frame); -} - -static void -_e_file_selector_selected_cb(Evas_Object *obj, char *file, void *data) -{ - E_Smart_Data *sd; - - sd = data; - if(sd->func) - sd->func(sd->parent, file, sd->func_data); -} - -static void -_e_file_selector_hilited_cb(Evas_Object *obj, char *file, void *data) -{ - E_Smart_Data *sd; - - sd = data; - if(sd->func_hilite) - sd->func_hilite(sd->parent, file, sd->func_data); -} - -/* never need to touch this */ - -static void -_e_smart_init(void) -{ - if (_e_smart) return; - _e_smart = evas_smart_new(SMART_NAME, - _e_smart_add, - _e_smart_del, - NULL, NULL, NULL, NULL, NULL, - _e_smart_move, - _e_smart_resize, - _e_smart_show, - _e_smart_hide, - _e_smart_color_set, - _e_smart_clip_set, - _e_smart_clip_unset, - NULL); -} diff --git a/src/bin/e_file_selector.h b/src/bin/e_file_selector.h deleted file mode 100644 index 50381210f..000000000 --- a/src/bin/e_file_selector.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#ifdef E_TYPEDEFS - -typedef enum _E_File_Selector_View E_File_Selector_View; - -#else -#ifndef E_FILE_SELECTOR_H -#define E_FILE_SELECTOR_H - -enum E_File_Selector_View -{ - E_FILE_SELECTOR_ICONVIEW, - E_FILE_SELECTOR_LISTVIEW -}; - -EAPI Evas_Object *e_file_selector_add(Evas *evas); -EAPI void e_file_selector_view_set(Evas_Object *object, int view); -EAPI int e_file_selector_view_get(Evas_Object *object); -EAPI void e_file_selector_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void (*hilite_func) (Evas_Object *obj, char *file, void *data), void *data); -EAPI void e_file_selector_dir_set(Evas_Object *obj, const char *dir); - -#endif -#endif diff --git a/src/bin/e_icon_canvas.c b/src/bin/e_icon_canvas.c deleted file mode 100644 index f8000f4d6..000000000 --- a/src/bin/e_icon_canvas.c +++ /dev/null @@ -1,905 +0,0 @@ -#include "e.h" - -#define TILE_SIZE 512 -#define TILE_NUM 20 - -typedef struct _E_Smart_Data E_Smart_Data; -typedef struct _E_Icon_Canvas_Item E_Icon_Canvas_Item; -typedef struct _E_Icon_Canvas_Tile E_Icon_Canvas_Tile; - -struct _E_Smart_Data -{ - Evas_Coord x, y, w, h; - Evas_Coord vw, vh; - Evas_Coord xs, ys; - Evas_Coord xc, yc; - Evas_Coord mw, mh; - Evas_Object *clip; - Evas_Object *obj; - int frozen; - int xy_frozen; - int fixed; - unsigned char changed : 1; - Evas_List *items; - - E_Icon_Canvas_Tile *tiles[TILE_NUM][TILE_NUM]; - - struct { - Evas_Object *obj; - Evas_Coord x, y, w, h; - } viewport; -}; - -struct _E_Icon_Canvas_Item -{ - E_Smart_Data *sd; - Evas_Coord x, y, w, h; - Evas_Object *obj; - Evas_Object *(*create)(void *data); - void (*destroy)(Evas_Object *obj, void *data); - void *data; - E_Icon_Canvas_Tile *tile; -}; - -struct _E_Icon_Canvas_Tile -{ - E_Smart_Data *sd; - Evas_List *items; - Evas_Coord x, y, w, h; - unsigned char visible :1; -}; - -/* local subsystem functions */ -static E_Icon_Canvas_Item *_e_icon_canvas_adopt(E_Smart_Data *sd, Evas_Object *obj); -static void _e_icon_canvas_disown(Evas_Object *obj); -static void _e_icon_canvas_item_del_hook(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_icon_canvas_reconfigure(E_Smart_Data *sd); -static void _e_icon_canvas_move_resize_item(E_Icon_Canvas_Item *li); -static void _e_icon_canvas_pack(E_Smart_Data *sd, E_Icon_Canvas_Item *li); -static E_Icon_Canvas_Tile *_e_icon_canvas_tile_get_at_coord(E_Smart_Data *sd, Evas_Coord x, Evas_Coord y); -static E_Icon_Canvas_Tile *_e_icon_canvas_tile_add(E_Smart_Data *sd, Evas_Coord x, Evas_Coord y); -static void _e_icon_canvas_tile_move(E_Icon_Canvas_Tile *t, Evas_Coord x, Evas_Coord y); -static void _e_icon_canvas_tile_show(E_Icon_Canvas_Tile *t); -static void _e_icon_canvas_tile_hide(E_Icon_Canvas_Tile *t); -static void _e_icon_canvas_tile_pack(E_Icon_Canvas_Tile *t, E_Icon_Canvas_Item *li); -static void _e_icon_canvas_icon_show(E_Icon_Canvas_Item *li); -static void _e_icon_canvas_icon_hide(E_Icon_Canvas_Item *li); - -static void _e_icon_canvas_smart_init(void); -static void _e_icon_canvas_smart_add(Evas_Object *obj); -static void _e_icon_canvas_smart_show(Evas_Object *obj); -static void _e_icon_canvas_smart_hide(Evas_Object *obj); -static void _e_icon_canvas_smart_del(Evas_Object *obj); -static void _e_icon_canvas_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y); -static void _e_icon_canvas_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h); -static void _e_icon_canvas_smart_color_set(Evas_Object *obj, int r, int g, int b, int a); -static void _e_icon_canvas_smart_clip_set(Evas_Object *obj, Evas_Object *clip); -static void _e_icon_canvas_smart_clip_unset(Evas_Object *obj); - -/* local subsystem globals */ -static Evas_Smart *_e_smart = NULL; - -/* externally accessible functions */ -EAPI Evas_Object * -e_icon_canvas_add(Evas *evas) -{ - _e_icon_canvas_smart_init(); - return evas_object_smart_add(evas, _e_smart); -} - -EAPI int -e_icon_canvas_freeze(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return -1; - - sd->frozen++; - return sd->frozen; -} - -EAPI int -e_icon_canvas_thaw(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return -1; - - sd->frozen--; - if (sd->frozen <= 0) _e_icon_canvas_reconfigure(sd); - return sd->frozen; -} - -EAPI void -e_icon_canvas_virtual_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if (w) *w = sd->vw; - if (h) *h = sd->vh; -} - -EAPI void -e_icon_canvas_width_fix(Evas_Object *obj, Evas_Coord w) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(w < 1) w = 1; - if (sd->vw == w) return; - sd->fixed = 0; - sd->vw = w; - sd->vh = 0; - sd->changed = 1; - if (sd->frozen <= 0) _e_icon_canvas_reconfigure(sd); -} - -EAPI void -e_icon_canvas_height_fix(Evas_Object *obj, Evas_Coord h) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(h < 1) h = 1; - if (sd->vh == h) return; - sd->fixed = 1; - sd->vw = 0; - sd->vh = h; - sd->changed = 1; - if (sd->frozen <= 0) _e_icon_canvas_reconfigure(sd); -} - -EAPI void -e_icon_canvas_sort(Evas_Object *obj, int (*func)(void *d1, void *d2)) -{ -#if 0 - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->items = evas_list_sort(sd->items, evas_list_count(sd->items), func); - _e_icon_canvas_reconfigure(sd); -#endif -} - -EAPI void -e_icon_canvas_icon_callbacks_set(Evas_Object *child, void (*appear)(Evas_Object *obj, void *data), void (*disappear)(Evas_Object *obj, void *data), void *data) -{ -#if 0 - E_Icon_Canvas_Item *li; - - li = evas_object_data_get(child, "e_icon_canvas_data"); - if (!li) return; - - li->appear_func = appear; - li->disappear_func = disappear; - li->data = data; -#endif -} - -EAPI void -e_icon_canvas_pack_at_location(Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data, Evas_Coord x, Evas_Coord y) -{ - E_Smart_Data *sd; - E_Icon_Canvas_Item *li; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - li = _e_icon_canvas_adopt(sd, child); - li->create = create; - li->destroy = destroy; - li->data = data; - sd->items = evas_list_append(sd->items, li); - - li->x = x; - li->y = y; - - if(li->x + li->w > sd->vw) - sd->vw = li->x + li->w; - if(li->y + li->h > sd->vh) - sd->vh = li->y + li->h; - - _e_icon_canvas_pack(sd, li); -} - -EAPI void -e_icon_canvas_pack(Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data) -{ - E_Smart_Data *sd; - E_Icon_Canvas_Item *li; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - li = _e_icon_canvas_adopt(sd, child); - li->create = create; - li->destroy = destroy; - li->data = data; - sd->items = evas_list_append(sd->items, li); - - if (sd->fixed == 0) - { - if(li->h > sd->mh) sd->mh = li->h; - if(sd->xc > sd->x + sd->vw || sd->xc + li->w > sd->x + sd->vw) - { - sd->xc = sd->x + sd->xs; - sd->yc += sd->mh + sd->ys; - sd->mh = 0; - } - - li->x = sd->xc; - li->y = sd->yc; - - sd->xc += li->w + sd->xs; - sd->vh = (sd->yc - sd->y) + li->h; - } - else - { - if(li->w > sd->mw) sd->mw = li->w; - - if(sd->yc > sd->y + sd->vh || sd->yc + li->h > sd->y + sd->vh) - { - sd->yc = sd->y + sd->ys; - sd->xc += sd->mw + sd->xs; - sd->mw = 0; - } - - li->x = sd->xc; - li->y = sd->yc; - - sd->yc += li->h + sd->ys; - sd->vw = sd->xc - sd->x; - } - - _e_icon_canvas_pack(sd, li); -} - -EAPI void -e_icon_canvas_child_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) -{ - E_Icon_Canvas_Item *li; - - li = evas_object_data_get(obj, "e_icon_canvas_data"); - if (!li) return; - if (w < 0) w = 0; - if (h < 0) h = 0; - if ((li->w == w) && (li->h == h)) return; - li->w = w; - li->h = h; - _e_icon_canvas_move_resize_item(li); -} - -EAPI void -e_icon_canvas_child_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) -{ - E_Icon_Canvas_Item *li; - - li = evas_object_data_get(obj, "e_icon_canvas_data"); - if(x < 0) x = 0; - if(y < 0) y = 0; - li->x = x; - li->y = y; - _e_icon_canvas_move_resize_item(li); -} - -EAPI void -e_icon_canvas_unpack(Evas_Object *obj) -{ - E_Icon_Canvas_Item *li; - E_Smart_Data *sd; - - if(!obj) return; - li = evas_object_data_get(obj, "e_icon_canvas_data"); - if (!li) return; - - sd = li->sd; - sd->items = evas_list_remove(sd->items, li); - _e_icon_canvas_disown(obj); - - if (!li->tile) return; - if (!li->tile->items) return; - li->tile->items = evas_list_remove(li->tile->items, li); -} - -EAPI void -e_icon_canvas_spacing_set(Evas_Object *obj, Evas_Coord xs, Evas_Coord ys) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(sd->xs == xs && sd->ys == ys) - return; - - sd->xs = xs; - sd->ys = ys; - - sd->xc = sd->x + sd->xs; - sd->yc = sd->y + sd->ys; - - sd->changed = 1; - - if (sd->frozen <= 0) _e_icon_canvas_reconfigure(sd); -} - -EAPI void -e_icon_canvas_redraw_force(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->changed = 1; - - if (sd->frozen <= 0) _e_icon_canvas_reconfigure(sd); -} - -EAPI void -e_icon_canvas_reset(Evas_Object *obj) -{ - E_Smart_Data *sd; - int i, j; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->xc = sd->viewport.x + sd->xs; - sd->yc = sd->viewport.y + sd->ys; - sd->mw = 0; - sd->mh = 0; - - while (sd->items) - { - E_Icon_Canvas_Item *li; - - li = sd->items->data; - if(li->obj) - e_icon_canvas_unpack(li->obj); - else - sd->items = evas_list_remove(sd->items, li); - //free(li); - } - - for(i = 0; i < TILE_NUM; i++) - { - for(j = 0; j < TILE_NUM; j++) - { - if(sd->tiles[i][j]) - { - E_Icon_Canvas_Tile *t; - - t = sd->tiles[i][j]; - while(t->items) - t->items = evas_list_remove(t->items, t->items->data); - free(sd->tiles[i][j]); - sd->tiles[i][j] = NULL; - } - } - } - - sd->x = sd->viewport.x; - sd->y = sd->viewport.y; -} - -EAPI void -e_icon_canvas_xy_freeze(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->xy_frozen = 1; -} - -EAPI void -e_icon_canvas_xy_thaw(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->xy_frozen = 0; -} - -EAPI void -e_icon_canvas_viewport_set(Evas_Object *obj, Evas_Object *viewport) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(!viewport) return; - sd->viewport.obj = viewport; - evas_object_geometry_get(sd->viewport.obj, &(sd->viewport.x), &(sd->viewport.y), - &(sd->viewport.w), &(sd->viewport.h)); - if (sd->frozen <= 0) _e_icon_canvas_reconfigure(sd); -} - -EAPI Evas_Object * -e_icon_canvas_viewport_get(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return NULL; - - return sd->viewport.obj; -} - - -/* local subsystem functions */ -static E_Icon_Canvas_Item * -_e_icon_canvas_adopt(E_Smart_Data *sd, Evas_Object *obj) -{ - E_Icon_Canvas_Item *li; - - li = calloc(1, sizeof(E_Icon_Canvas_Item)); - if (!li) return NULL; - li->sd = sd; - li->obj = obj; - li->create = NULL; - li->destroy = NULL; - li->data = NULL; - evas_object_geometry_get(obj, NULL, NULL, &li->w, &li->h); - /* defaults */ - li->x = 0; - li->y = 0; - evas_object_clip_set(obj, sd->clip); - evas_object_smart_member_add(obj, li->sd->obj); - evas_object_show(obj); - evas_object_data_set(obj, "e_icon_canvas_data", li); - if ((!evas_object_visible_get(sd->clip)) && - (evas_object_visible_get(sd->obj))) - evas_object_show(sd->clip); - return li; -} - -static void -_e_icon_canvas_disown(Evas_Object *obj) -{ - E_Icon_Canvas_Item *li; - - li = evas_object_data_get(obj, "e_icon_canvas_data"); - if (!li) return; - if (!li->sd->items) - { - if (evas_object_visible_get(li->sd->clip)) - evas_object_hide(li->sd->clip); - } - evas_object_smart_member_del(obj); - evas_object_data_del(obj, "e_icon_canvas_data"); - free(li); -} - -static void -_e_icon_canvas_item_del_hook(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - e_icon_canvas_unpack(obj); -} - -static void -_e_icon_canvas_reconfigure(E_Smart_Data *sd) -{ - int i, j; - - if(!sd->changed) return; - - for(i = 0; i < TILE_NUM; i++) - { - for(j = 0; j < TILE_NUM; j++) - { - if(sd->tiles[i][j]) - { - E_Icon_Canvas_Tile *t; - - t = sd->tiles[i][j]; - - if(E_INTERSECTS(sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - t->x, t->y, t->w, t->h)) - { - if(t->visible == 1) - continue; - _e_icon_canvas_tile_show(t); - } - else - { - if(!t->visible) - continue; - _e_icon_canvas_tile_hide(t); - } - } - } - } - - sd->changed = 0; -} - -E_Icon_Canvas_Tile * -_e_icon_canvas_tile_get_at_coord(E_Smart_Data *sd, Evas_Coord x, Evas_Coord y) -{ - int tx, ty; - - if(x == 0) - tx = 0; - else - tx = (int)ceil((double)x / (double)TILE_SIZE) - 1; - if(y == 0) - ty = 0; - else - ty = (int)ceil((double)y / (double)TILE_SIZE) - 1; - - if(tx >= TILE_NUM || ty >= TILE_NUM) - return NULL; - - if(sd->tiles[tx][ty]) - return sd->tiles[tx][ty]; - - return NULL; -} - -E_Icon_Canvas_Tile * -_e_icon_canvas_tile_add(E_Smart_Data *sd, Evas_Coord x, Evas_Coord y) -{ - int tx, ty; - E_Icon_Canvas_Tile *tile; - - if(x < 0 || y < 0) - return NULL; - - if(x == 0) - tx = 0; - else - tx = (int)ceil((double)x / (double)TILE_SIZE) - 1; - if(y == 0) - ty = 0; - else - ty = (int)ceil((double)y / (double)TILE_SIZE) - 1; - - if(tx >= TILE_NUM || ty >= TILE_NUM) - return NULL; - - tile = E_NEW(E_Icon_Canvas_Tile, 1); - tile->x = (tx) * TILE_SIZE; - tile->y = (ty) * TILE_SIZE; - tile->w = TILE_SIZE; - tile->h = TILE_SIZE; - tile->visible = 0; - tile->sd = sd; - tile->items = NULL; - sd->tiles[tx][ty] = tile; - - if(E_INTERSECTS(sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - tile->x, tile->y, tile->w, tile->h)) - { - _e_icon_canvas_tile_show(tile); - } - - return tile; -} - -static void -_e_icon_canvas_tile_move(E_Icon_Canvas_Tile *t, Evas_Coord x, Evas_Coord y) -{ - Evas_List *l; - Evas_Coord dx, dy; - - dx = x - t->x; - dy = y - t->y; - - t->x = x; - t->y = y; - - for(l = t->items; l; l = l->next) - { - E_Icon_Canvas_Item *li; - - li = l->data; - li->x += dx; - li->y += dy; - if(li->obj) - evas_object_move(li->obj, li->x, li->y); - } -} - -static void -_e_icon_canvas_tile_show(E_Icon_Canvas_Tile *t) -{ - Evas_List *l; - - if(t->visible == 1) return; - t->visible = 1; - for(l = t->items; l; l = l->next) - _e_icon_canvas_icon_show(l->data); -} - -static void -_e_icon_canvas_tile_hide(E_Icon_Canvas_Tile *t) -{ - Evas_List *l; - - if(t->visible == 0) return; - t->visible = 0; - for(l = t->items; l; l = l->next) - _e_icon_canvas_icon_hide(l->data); -} - -void -_e_icon_canvas_tile_pack(E_Icon_Canvas_Tile *t, E_Icon_Canvas_Item *li) -{ - if(!t) - return; - t->items = evas_list_append(t->items, li); - li->tile = t; - if(t->visible) - _e_icon_canvas_icon_show(li); - else - _e_icon_canvas_icon_hide(li); -} - -void -_e_icon_canvas_icon_show(E_Icon_Canvas_Item *li) -{ - if(!li->obj && li->create && li->data) - { - li->obj = li->create(li->data); - if(!li->obj) return; - evas_object_smart_member_add(li->obj, li->sd->obj); - evas_object_data_set(li->obj, "e_icon_canvas_data", li); - evas_object_clip_set(li->obj, li->sd->clip); - } - evas_object_move(li->obj, li->x, li->y); - evas_object_show(li->obj); -} - -void -_e_icon_canvas_icon_hide(E_Icon_Canvas_Item *li) -{ - if(li->obj && li->destroy) - li->destroy(li->obj, li->data); - li->obj = NULL; -} - -void -_e_icon_canvas_pack(E_Smart_Data *sd, E_Icon_Canvas_Item *li) -{ - E_Icon_Canvas_Tile *t; - - if((t =_e_icon_canvas_tile_get_at_coord(sd, li->x, li->y)) == NULL) - t = _e_icon_canvas_tile_add(sd, li->x, li->y); - _e_icon_canvas_move_resize_item(li); - _e_icon_canvas_tile_pack(t, li); -} - -static void -_e_icon_canvas_move_resize_item(E_Icon_Canvas_Item *li) -{ - - if(li->w == 0 || li->h == 0) - { - evas_object_geometry_get(li->obj, NULL, NULL, &li->w, &li->h); - evas_object_resize(li->obj, li->w, li->h); - } - - evas_object_move(li->obj, li->x, li->y); -} - -static void -_e_icon_canvas_smart_init(void) -{ - if (_e_smart) return; - _e_smart = evas_smart_new("e_icon_canvas", - _e_icon_canvas_smart_add, - _e_icon_canvas_smart_del, - NULL, NULL, NULL, NULL, NULL, - _e_icon_canvas_smart_move, - _e_icon_canvas_smart_resize, - _e_icon_canvas_smart_show, - _e_icon_canvas_smart_hide, - _e_icon_canvas_smart_color_set, - _e_icon_canvas_smart_clip_set, - _e_icon_canvas_smart_clip_unset, - NULL); -} - -static void -_e_icon_canvas_smart_show(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - evas_object_show(sd->clip); -} - -static void -_e_icon_canvas_smart_hide(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - evas_object_hide(sd->clip); -} - - - -static void -_e_icon_canvas_smart_add(Evas_Object *obj) -{ - E_Smart_Data *sd; - int i, j; - - sd = calloc(1, sizeof(E_Smart_Data)); - if (!sd) return; - sd->obj = obj; - sd->x = 0; - sd->y = 0; - sd->w = 0; - sd->h = 0; - sd->vw = 1; - sd->vh = 1; - sd->xs = 0; - sd->ys = 0; - sd->xc = 0; - sd->yc = 0; - sd->mw = 0; - sd->mh = 0; - sd->fixed = 0; - sd->viewport.obj = NULL; - for(i = 0; i < TILE_NUM; i++) - for(j = 0; j < TILE_NUM; j++) - sd->tiles[i][j] = NULL; - sd->clip = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_move(sd->clip, 0, 0); - evas_object_resize(sd->clip, 0, 0); - evas_object_color_set(sd->clip, 255, 255, 255, 255); - evas_object_smart_data_set(obj, sd); - evas_object_smart_member_add(sd->clip, obj); - evas_object_show(sd->clip); -} - -static void -_e_icon_canvas_smart_del(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - while (sd->items) - { - E_Icon_Canvas_Item *li; - - li = sd->items->data; - if(li->obj) - e_icon_canvas_unpack(li->obj); - else - sd->items = evas_list_remove(sd->items, li); - //free(li); - } - evas_object_del(sd->clip); - free(sd); -} - -static void -_e_icon_canvas_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) -{ - E_Smart_Data *sd; - int i, j; - Evas_Coord dx, dy; - - sd = evas_object_smart_data_get(obj); - - if (!sd) return; - if ((x == sd->x) && (y == sd->y)) return; - if(sd->viewport.obj) - evas_object_geometry_get(sd->viewport.obj, - &(sd->viewport.x), &(sd->viewport.y), - &(sd->viewport.w), &(sd->viewport.h)); - - if (!sd->xy_frozen) - evas_object_move(sd->clip, x, y); - - dx = x - sd->x; - dy = y - sd->y; - - for(i = 0; i < TILE_NUM; i++) - { - for(j = 0; j < TILE_NUM; j++) - { - if(sd->tiles[i][j]) - { - E_Icon_Canvas_Tile *t; - - t = sd->tiles[i][j]; - - _e_icon_canvas_tile_move(t, t->x + dx, t->y + dy); - - if(E_INTERSECTS(sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - t->x, t->y, t->w, t->h)) - { - if(t->visible == 1 && !sd->xy_frozen) - continue; - _e_icon_canvas_tile_show(t); - } - else - { - if(!t->visible) - continue; - _e_icon_canvas_tile_hide(t); - } - } - } - } - - sd->x = x; - sd->y = y; -} - -static void -_e_icon_canvas_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) -{ - E_Smart_Data *sd; - - if(!obj) return; - sd = evas_object_smart_data_get(obj); - if (!sd) return; - if ((w == sd->w) && (h == sd->h)) return; - evas_object_resize(sd->clip, w, h); - sd->w = w; - sd->h = h; - sd->changed = 1; - if(sd->viewport.obj) - evas_object_geometry_get(sd->viewport.obj, - &(sd->viewport.x), &(sd->viewport.y), - &(sd->viewport.w), &(sd->viewport.h)); - - sd->changed = 1; - _e_icon_canvas_reconfigure(sd); -} - -static void -_e_icon_canvas_smart_color_set(Evas_Object *obj, int r, int g, int b, int a) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - evas_object_color_set(sd->clip, r, g, b, a); -} - -static void -_e_icon_canvas_smart_clip_set(Evas_Object *obj, Evas_Object *clip) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - evas_object_clip_set(sd->clip, clip); -} - -static void -_e_icon_canvas_smart_clip_unset(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - evas_object_clip_unset(sd->clip); -} diff --git a/src/bin/e_icon_canvas.h b/src/bin/e_icon_canvas.h deleted file mode 100644 index 8df1ff0d8..000000000 --- a/src/bin/e_icon_canvas.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#ifdef E_TYPEDEFS -#else -#ifndef E_ICON_CANVAS_H -#define E_ICON_CANVAS_H - -EAPI Evas_Object *e_icon_canvas_add (Evas *evas); -EAPI int e_icon_canvas_freeze (Evas_Object *obj); -EAPI int e_icon_canvas_thaw (Evas_Object *obj); -EAPI void e_icon_canvas_virtual_size_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h); -EAPI void e_icon_canvas_virtual_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); -EAPI void e_icon_canvas_width_fix (Evas_Object *obj, Evas_Coord w); -EAPI void e_icon_canvas_height_fix (Evas_Object *obj, Evas_Coord h); -EAPI void e_icon_canvas_pack (Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data); -EAPI void e_icon_canvas_pack_at_location (Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data, Evas_Coord x, Evas_Coord y); -EAPI void e_icon_canvas_child_resize (Evas_Object *obj, Evas_Coord w, Evas_Coord h); -EAPI void e_icon_canvas_child_move (Evas_Object *obj, Evas_Coord x, Evas_Coord y); -EAPI void e_icon_canvas_unpack (Evas_Object *obj); -EAPI void e_icon_canvas_spacing_set (Evas_Object *obj, Evas_Coord xs, Evas_Coord ys); -EAPI void e_icon_canvas_redraw_force (Evas_Object *obj); -EAPI void e_icon_canvas_clip_freeze (Evas_Object *obj); -EAPI void e_icon_canvas_clip_thaw (Evas_Object *obj); -EAPI void e_icon_canvas_viewport_set (Evas_Object *obj, Evas_Object *viewport); -EAPI void e_icon_canvas_xy_freeze (Evas_Object *obj); -EAPI void e_icon_canvas_xy_thaw (Evas_Object *obj); -EAPI void e_icon_canvas_reset (Evas_Object *obj); - -#endif -#endif diff --git a/src/bin/e_icon_grid.c b/src/bin/e_icon_grid.c deleted file mode 100644 index a0507f7f4..000000000 --- a/src/bin/e_icon_grid.c +++ /dev/null @@ -1,737 +0,0 @@ -#include "e.h" - -typedef struct _E_Smart_Data E_Smart_Data; -typedef struct _E_Icon_Layout_Item E_Icon_Layout_Item; - -struct _E_Smart_Data -{ - Evas_Coord x, y, w, h; - Evas_Coord vw, vh; - Evas_Coord xs, ys; - Evas_Coord xc, yc; - Evas_Coord mw, mh; - Evas_Object *clip; - Evas_Object *obj; - int frozen; - int clip_frozen; - int fixed; - unsigned char changed : 1; - Evas_List *items; - - struct { - Evas_Object *obj; - Evas_Coord x, y, w, h; - } viewport; -}; - -struct _E_Icon_Layout_Item -{ - E_Smart_Data *sd; - Evas_Coord x, y, w, h; - Evas_Object *obj; - void (*appear_func)(Evas_Object *obj, void *data); - void (*disappear_func)(Evas_Object *obj, void *data); - void *data; -}; - -/* local subsystem functions */ -static E_Icon_Layout_Item *_e_icon_layout_smart_adopt(E_Smart_Data *sd, Evas_Object *obj); -static void _e_icon_layout_smart_disown(Evas_Object *obj); -static void _e_icon_layout_smart_item_del_hook(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_icon_layout_smart_reconfigure(E_Smart_Data *sd); -static void _e_icon_layout_smart_move_resize_item(E_Icon_Layout_Item *li); - - -static void _e_icon_layout_smart_init(void); -static void _e_icon_layout_smart_add(Evas_Object *obj); -static void _e_icon_layout_smart_show(Evas_Object *obj); -static void _e_icon_layout_smart_hide(Evas_Object *obj); -static void _e_icon_layout_smart_del(Evas_Object *obj); -static void _e_icon_layout_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y); -static void _e_icon_layout_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h); -static void _e_icon_layout_smart_color_set(Evas_Object *obj, int r, int g, int b, int a); -static void _e_icon_layout_smart_clip_set(Evas_Object *obj, Evas_Object *clip); -static void _e_icon_layout_smart_clip_unset(Evas_Object *obj); - -/* local subsystem globals */ -static Evas_Smart *_e_smart = NULL; - -/* externally accessible functions */ -EAPI Evas_Object * -e_icon_layout_add(Evas *evas) -{ - _e_icon_layout_smart_init(); - return evas_object_smart_add(evas, _e_smart); -} - -EAPI int -e_icon_layout_freeze(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return -1; - - sd->frozen++; - return sd->frozen; -} - -EAPI int -e_icon_layout_thaw(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return -1; - - sd->frozen--; - if (sd->frozen <= 0) _e_icon_layout_smart_reconfigure(sd); - - return sd->frozen; -} - -EAPI void -e_icon_layout_virtual_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if (w) *w = sd->vw; - if (h) *h = sd->vh; -} - -EAPI void -e_icon_layout_width_fix(Evas_Object *obj, Evas_Coord w) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(w < 1) w = 1; - if (sd->vw == w) return; - sd->fixed = 0; - sd->vw = w; - sd->vh = 0; - sd->changed = 1; - if (sd->frozen <= 0) _e_icon_layout_smart_reconfigure(sd); -} - -EAPI void -e_icon_layout_height_fix(Evas_Object *obj, Evas_Coord h) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(h < 1) h = 1; - if (sd->vh == h) return; - sd->fixed = 1; - sd->vw = 0; - sd->vh = h; - sd->changed = 1; - if (sd->frozen <= 0) _e_icon_layout_smart_reconfigure(sd); -} - -EAPI void -e_icon_layout_sort(Evas_Object *obj, int (*func)(void *d1, void *d2)) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->items = evas_list_sort(sd->items, evas_list_count(sd->items), func); - _e_icon_layout_smart_reconfigure(sd); -} - -EAPI void -e_icon_layout_icon_callbacks_set(Evas_Object *child, void (*appear)(Evas_Object *obj, void *data), void (*disappear)(Evas_Object *obj, void *data), void *data) -{ - E_Icon_Layout_Item *li; - - li = evas_object_data_get(child, "e_icon_layout_data"); - if (!li) return; - - li->appear_func = appear; - li->disappear_func = disappear; - li->data = data; -} - -EAPI void -e_icon_layout_pack(Evas_Object *obj, Evas_Object *child) -{ - E_Smart_Data *sd; - E_Icon_Layout_Item *li; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - _e_icon_layout_smart_adopt(sd, child); - sd->items = evas_list_append(sd->items, child); - li = evas_object_data_get(child, "e_icon_layout_data"); - - if (sd->fixed == 0) - { - if(li->h > sd->mh) sd->mh = li->h; - if(sd->xc > sd->x + sd->vw || sd->xc + li->w > sd->x + sd->vw) - { - sd->xc = sd->x + sd->xs; - sd->yc += sd->mh + sd->ys; - sd->mh = 0; - } - - li->x = sd->xc; - li->y = sd->yc; - - sd->xc += li->w + sd->xs; - sd->vh = sd->yc - sd->y; - } - else - { - if(li->w > sd->mw) sd->mw = li->w; - - if(sd->yc > sd->y + sd->vh || sd->yc + li->h > sd->y + sd->vh) - { - sd->yc = sd->y + sd->ys; - sd->xc += sd->mw + sd->xs; - sd->mw = 0; - } - - li->x = sd->xc; - li->y = sd->yc; - - sd->yc += li->h + sd->ys; - sd->vw = sd->xc - sd->x; - } - - if(sd->viewport.obj && li->appear_func && li->disappear_func) - { - if(E_INTERSECTS(sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - li->x, li->y, li->w, li->h)) - { - li->appear_func(obj, li->data); -/* - printf("appear! %d %d %d %d - %d %d %d %d\n",sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - li->x, li->y, li->w, li->h); -*/ - } - else - { - li->disappear_func(obj, li->data); -/* - printf("disappear! %d %d %d %d - %d %d %d %d\n",sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - li->x, li->y, li->w, li->h); -*/ - } - } - - _e_icon_layout_smart_move_resize_item(li); -} - -EAPI void -e_icon_layout_child_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) -{ - E_Icon_Layout_Item *li; - - li = evas_object_data_get(obj, "e_icon_layout_data"); - if (!li) return; - if (w < 0) w = 0; - if (h < 0) h = 0; - if ((li->w == w) && (li->h == h)) return; - li->w = w; - li->h = h; - _e_icon_layout_smart_move_resize_item(li); -} - -EAPI void -e_icon_layout_unpack(Evas_Object *obj) -{ - E_Icon_Layout_Item *li; - E_Smart_Data *sd; - - li = evas_object_data_get(obj, "e_icon_layout_data"); - if (!li) return; - sd = li->sd; - sd->items = evas_list_remove(sd->items, obj); - _e_icon_layout_smart_disown(obj); -} - -EAPI void -e_icon_layout_spacing_set(Evas_Object *obj, Evas_Coord xs, Evas_Coord ys) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(sd->xs == xs && sd->ys == ys) - return; - - sd->xs = xs; - sd->ys = ys; - - sd->xc = sd->x + sd->xs; - sd->yc = sd->y + sd->ys; - - sd->changed = 1; - - if (sd->frozen <= 0) _e_icon_layout_smart_reconfigure(sd); -} - -EAPI void -e_icon_layout_redraw_force(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->changed = 1; - - if (sd->frozen <= 0) _e_icon_layout_smart_reconfigure(sd); -} - -EAPI void -e_icon_layout_reset(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->xc = sd->x + sd->xs; - sd->yc = sd->y + sd->ys; - sd->mw = 0; - sd->mh = 0; - - while (sd->items) - { - Evas_Object *child; - - child = sd->items->data; - e_icon_layout_unpack(child); - } -} - -EAPI void -e_icon_layout_clip_freeze(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->clip_frozen = 1; -} - -EAPI void -e_icon_layout_clip_thaw(Evas_Object *obj) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - sd->clip_frozen = 0; -} - -EAPI void -e_icon_layout_viewport_set(Evas_Object *obj, Evas_Object *viewport) -{ - E_Smart_Data *sd; - - if ((!obj) || !(sd = evas_object_smart_data_get(obj))) - return; - - if(!viewport) return; - sd->viewport.obj = viewport; - evas_object_geometry_get(sd->viewport.obj, &(sd->viewport.x), &(sd->viewport.y), - &(sd->viewport.w), &(sd->viewport.h)); - if (sd->frozen <= 0) _e_icon_layout_smart_reconfigure(sd); -} - -EAPI Evas_Object * -e_icon_layout_viewport_get(Evas_Object *obj) -{ - /* TODO */ - return NULL; -} - - -/* local subsystem functions */ -static E_Icon_Layout_Item * -_e_icon_layout_smart_adopt(E_Smart_Data *sd, Evas_Object *obj) -{ - E_Icon_Layout_Item *li; - - li = calloc(1, sizeof(E_Icon_Layout_Item)); - if (!li) return NULL; - li->sd = sd; - li->obj = obj; - li->appear_func = NULL; - li->disappear_func = NULL; - li->data = NULL; - evas_object_geometry_get(obj, NULL, NULL, &li->w, &li->h); - /* defaults */ - li->x = 0; - li->y = 0; - evas_object_clip_set(obj, sd->clip); - evas_object_smart_member_add(obj, li->sd->obj); - evas_object_show(obj); - evas_object_data_set(obj, "e_icon_layout_data", li); - evas_object_event_callback_add(obj, EVAS_CALLBACK_FREE, - _e_icon_layout_smart_item_del_hook, NULL); - if ((!evas_object_visible_get(sd->clip)) && - (evas_object_visible_get(sd->obj))) - evas_object_show(sd->clip); - return li; -} - -static void -_e_icon_layout_smart_disown(Evas_Object *obj) -{ - E_Icon_Layout_Item *li; - - li = evas_object_data_get(obj, "e_icon_layout_data"); - if (!li) return; - if (!li->sd->items) - { - if (evas_object_visible_get(li->sd->clip)) - evas_object_hide(li->sd->clip); - } - evas_object_event_callback_del(obj, - EVAS_CALLBACK_FREE, - _e_icon_layout_smart_item_del_hook); - evas_object_smart_member_del(obj); - evas_object_data_del(obj, "e_icon_layout_data"); - free(li); -} - -static void -_e_icon_layout_smart_item_del_hook(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - e_icon_layout_unpack(obj); -} - -static void -_e_icon_layout_smart_reconfigure(E_Smart_Data *sd) -{ - Evas_Coord x, y, w, h, maxw, maxh; - Evas_List *l; - - if (!sd->changed) return; - - x = sd->x + sd->xs; - y = sd->y + sd->ys; - w = sd->vw; - h = sd->vh; - maxw = 0; - maxh = 0; - - if (sd->fixed == 0) - { - for (l = sd->items; l; l = l->next) - { - E_Icon_Layout_Item *li; - Evas_Object *obj; - - obj = l->data; - li = evas_object_data_get(obj, "e_icon_layout_data"); - - if(li->h > maxh) maxh = li->h; - - if(x > sd->x + w || x + li->w > sd->x + w) - { - x = sd->x + sd->xs; - y += maxh + sd->ys; - maxh = 0; - } - - li->x = x; - li->y = y; - - if(sd->viewport.obj && li->appear_func && li->disappear_func) - { - if(E_INTERSECTS(sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - li->x, li->y, li->w, li->h)) - { -/* printf("appear! %d %d %d %d - %d %d %d %d\n",sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - li->x, li->y, li->w, li->h); -*/ - li->appear_func(obj, li->data); - } - else - { - li->disappear_func(obj, li->data); -/* - printf("disappear! %d %d %d %d - %d %d %d %d\n",sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - li->x, li->y, li->w, li->h); -*/ - } - } - _e_icon_layout_smart_move_resize_item(li); - - x += li->w + sd->xs; - - } - - sd->vh = y - sd->y; - } - else - { - for (l = sd->items; l; l = l->next) - { - E_Icon_Layout_Item *li; - Evas_Object *obj; - - obj = l->data; - li = evas_object_data_get(obj, "e_icon_layout_data"); - - if(li->w > maxw) maxw = li->w; - - if(y > sd->y + h || y + li->h > sd->y + h) - { - y = sd->y + sd->ys; - x += maxw + sd->xs; - maxw = 0; - } - - li->x = x; - li->y = y; - - _e_icon_layout_smart_move_resize_item(li); - - y += li->h + sd->ys; - } - - sd->vw = x - sd->x; - } - - sd->xc = x; - sd->yc = y; - - sd->changed = 0; -} - -static void -_e_icon_layout_smart_move_resize_item(E_Icon_Layout_Item *li) -{ - /* FIXME: this will get slow with 1000's of objects. be smarter. */ - if(li->w == 0 || li->h == 0) - { - evas_object_geometry_get(li->obj, NULL, NULL, &li->w, &li->h); - evas_object_resize(li->obj, li->w, li->h); - } - - evas_object_move(li->obj, li->x, li->y); -} - -static void -_e_icon_layout_smart_init(void) -{ - if (_e_smart) return; - _e_smart = evas_smart_new("e_icon_layout", - _e_icon_layout_smart_add, - _e_icon_layout_smart_del, - NULL, NULL, NULL, NULL, NULL, - _e_icon_layout_smart_move, - _e_icon_layout_smart_resize, - _e_icon_layout_smart_show, - _e_icon_layout_smart_hide, - _e_icon_layout_smart_color_set, - _e_icon_layout_smart_clip_set, - _e_icon_layout_smart_clip_unset, - NULL); -} - -static void -_e_icon_layout_smart_show(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - - evas_object_show(sd->clip); -} - -static void -_e_icon_layout_smart_hide(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - - evas_object_hide(sd->clip); -} - - - -static void -_e_icon_layout_smart_add(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = calloc(1, sizeof(E_Smart_Data)); - if (!sd) return; - sd->obj = obj; - sd->x = 0; - sd->y = 0; - sd->w = 0; - sd->h = 0; - sd->vw = 1; - sd->vh = 1; - sd->xs = 0; - sd->ys = 0; - sd->xc = 0; - sd->yc = 0; - sd->mw = 0; - sd->mh = 0; - sd->fixed = 0; - sd->viewport.obj = NULL; - sd->clip = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_move(sd->clip, 0, 0); - evas_object_resize(sd->clip, 0, 0); - evas_object_color_set(sd->clip, 255, 255, 255, 255); - evas_object_smart_data_set(obj, sd); - evas_object_smart_member_add(sd->clip, obj); - evas_object_show(sd->clip); -} - -static void -_e_icon_layout_smart_del(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - while (sd->items) - { - Evas_Object *child; - - child = sd->items->data; - e_icon_layout_unpack(child); - } - evas_object_del(sd->clip); - free(sd); -} - -static void -_e_icon_layout_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - - if (!sd) return; - if ((x == sd->x) && (y == sd->y)) return; - if ((x == sd->x) && (y == sd->y)) return; - if(sd->viewport.obj) - evas_object_geometry_get(sd->viewport.obj, - &(sd->viewport.x), &(sd->viewport.y), - &(sd->viewport.w), &(sd->viewport.h)); - - /* FIXME: this will get slow with 1000's of objects. be smarter. */ - { - Evas_List *l; - Evas_Coord dx, dy; - - if (!sd->clip_frozen) - evas_object_move(sd->clip, x, y); - - dx = x - sd->x; - dy = y - sd->y; - for (l = sd->items; l; l = l->next) - { - Evas_Coord ox, oy; - E_Icon_Layout_Item *li; - - li = evas_object_data_get(l->data, "e_icon_layout_data"); - evas_object_geometry_get(l->data, &ox, &oy, NULL, NULL); - evas_object_move(l->data, ox + dx, oy + dy); - if(sd->viewport.obj && li->appear_func && li->disappear_func) - { - if(E_INTERSECTS(sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - ox + dx, oy + dy, li->w, li->h)) - { -/* - printf("appear! %d %d %d %d - %d %d %d %d\n",sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - li->x, li->y, li->w, li->h); -*/ - li->appear_func(li->obj, li->data); - } - else - { - li->disappear_func(li->obj, li->data); -/* - printf("disappear! %d %d %d %d - %d %d %d %d\n",sd->viewport.x, sd->viewport.y, - sd->viewport.w, sd->viewport.h, - ox + dx, oy + dy, li->w, li->h); -*/ - } - } - } - } - sd->x = x; - sd->y = y; -} - -static void -_e_icon_layout_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - if ((w == sd->w) && (h == sd->h)) return; - evas_object_resize(sd->clip, w, h); - sd->w = w; - sd->h = h; - sd->changed = 1; - if(sd->viewport.obj) - evas_object_geometry_get(sd->viewport.obj, - &(sd->viewport.x), &(sd->viewport.y), - &(sd->viewport.w), &(sd->viewport.h)); - _e_icon_layout_smart_reconfigure(sd); -} - -static void -_e_icon_layout_smart_color_set(Evas_Object *obj, int r, int g, int b, int a) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - evas_object_color_set(sd->clip, r, g, b, a); -} - -static void -_e_icon_layout_smart_clip_set(Evas_Object *obj, Evas_Object *clip) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - evas_object_clip_set(sd->clip, clip); -} - -static void -_e_icon_layout_smart_clip_unset(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - evas_object_clip_unset(sd->clip); -} diff --git a/src/bin/e_icon_grid.h b/src/bin/e_icon_grid.h deleted file mode 100644 index f9153e8c7..000000000 --- a/src/bin/e_icon_grid.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#ifdef E_TYPEDEFS -#else -#ifndef E_ICON_LAYOUT_H -#define E_ICON_LAYOUT_H - -EAPI Evas_Object *e_icon_layout_add (Evas *evas); -EAPI int e_icon_layout_freeze (Evas_Object *obj); -EAPI int e_icon_layout_thaw (Evas_Object *obj); -EAPI void e_icon_layout_virtual_size_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h); -EAPI void e_icon_layout_virtual_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); -EAPI void e_icon_layout_width_fix (Evas_Object *obj, Evas_Coord w); -EAPI void e_icon_layout_height_fix (Evas_Object *obj, Evas_Coord h); -EAPI void e_icon_layout_pack (Evas_Object *obj, Evas_Object *child); -EAPI void e_icon_layout_child_resize (Evas_Object *obj, Evas_Coord w, Evas_Coord h); -EAPI void e_icon_layout_unpack (Evas_Object *obj); -EAPI void e_icon_layout_spacing_set (Evas_Object *obj, Evas_Coord xs, Evas_Coord ys); -EAPI void e_icon_layout_redraw_force (Evas_Object *obj); -EAPI void e_icon_layout_clip_freeze (Evas_Object *obj); -EAPI void e_icon_layout_clip_thaw (Evas_Object *obj); -EAPI void e_icon_layout_viewport_set (Evas_Object *obj, Evas_Object *viewport); -EAPI void e_icon_layout_sort (Evas_Object *obj, int (*func)(void *d1, void *d2)); -EAPI void e_icon_layout_icon_callbacks_set (Evas_Object *child, void (*appear)(Evas_Object *obj, void *data), void (*disappear)(Evas_Object *obj, void *data), void *data); - -#endif -#endif diff --git a/src/bin/e_widget_fileman.c b/src/bin/e_widget_fileman.c deleted file mode 100644 index a0e139d57..000000000 --- a/src/bin/e_widget_fileman.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#include "e.h" - -/*- DESCRIPTION -*/ -/* This widget simply wraps e_file_selector into a widget. When a file is - * selected, the assigned value to valptr changes and contains the new file. - */ - -typedef struct _E_Widget_Data E_Widget_Data; -struct _E_Widget_Data -{ - Evas_Object *wid; - Evas_Object *o_fm; - char **valptr; - void (*select_func) (Evas_Object *obj, char *file, void *data); - void *select_data; - void (*hilite_func) (Evas_Object *obj, char *file, void *data); - void *hilite_data; -}; - -static void _e_wid_del_hook(Evas_Object *obj); -static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_wid_fileman_selected_cb(Evas_Object *obj, char *file, void *data); -static void _e_wid_fileman_hilited_cb(Evas_Object *obj, char *file, void *data); - -/* local subsystem functions */ - -static void -_e_wid_del_hook(Evas_Object *obj) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - free(wd); -} - -static void -_e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - e_widget_focus_steal(data); -} - -static void -_e_wid_fileman_selected_cb(Evas_Object *obj, char *file, void *data) -{ - E_Widget_Data *wd; - - wd = data; - -/* this is crashing, see why */ -#if 0 - E_FREE(*(wd->valptr)); -#endif - if(wd->valptr) - *(wd->valptr) = strdup(file); - - - if (wd->select_func) - wd->select_func(wd->wid, file, wd->select_data); - - printf("e_widget_fileman (selected) : %s\n", file); -} - -static void -_e_wid_fileman_hilited_cb(Evas_Object *obj, char *file, void *data) -{ - E_Widget_Data *wd; - - wd = data; - -/* this is crashing, see why */ -#if 0 - E_FREE(*(wd->valptr)); -#endif - if(wd->valptr) - *(wd->valptr) = strdup(file); - - - if (wd->hilite_func) - wd->hilite_func(wd->wid, file, wd->hilite_data); - - printf("e_widget_fileman (hilited): %s\n", file); -} - -/* externally accessible functions */ -EAPI Evas_Object * -e_widget_fileman_add(Evas *evas, char **val) -{ - Evas_Object *obj; - E_Widget_Data *wd; - - obj = e_widget_add(evas); - - e_widget_del_hook_set(obj, _e_wid_del_hook); - - wd = calloc(1, sizeof(E_Widget_Data)); - wd->valptr = val; - wd->select_func = NULL; - wd->select_data = NULL; - e_widget_data_set(obj, wd); - - wd->o_fm = e_file_selector_add(evas); - e_file_selector_callback_add(wd->o_fm, _e_wid_fileman_selected_cb, _e_wid_fileman_hilited_cb, wd); - evas_object_show(wd->o_fm); - evas_object_resize(wd->o_fm, 300, 200); - e_widget_min_size_set(obj, 300, 200); - - e_widget_sub_object_add(obj, wd->o_fm); - evas_object_event_callback_add(wd->o_fm, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); - e_widget_resize_object_set(obj, wd->o_fm); - - wd->wid = obj; - return obj; -} - -EAPI void -e_widget_fileman_select_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void *data) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - wd->select_func = func; - wd->select_data = data; -} - -EAPI void -e_widget_fileman_hilite_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void *data) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - wd->hilite_func = func; - wd->hilite_data = data; -} - -EAPI void -e_widget_fileman_dir_set(Evas_Object *obj, const char *dir) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - e_file_selector_dir_set(wd->o_fm, dir); -} diff --git a/src/bin/e_widget_fileman.h b/src/bin/e_widget_fileman.h deleted file mode 100644 index 905c441ff..000000000 --- a/src/bin/e_widget_fileman.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#ifdef E_TYPEDEFS -#else -#ifndef E_WIDGET_FM_H -#define E_WIDGET_FM_H - -EAPI Evas_Object *e_widget_fileman_add(Evas *evas, char **val); -EAPI void e_widget_fileman_select_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void *data); -EAPI void e_widget_fileman_hilite_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void *data); -EAPI void e_widget_fileman_dir_set(Evas_Object *obj, const char *dir); - -#endif -#endif diff --git a/src/bin/e_widget_iconsel.c b/src/bin/e_widget_iconsel.c deleted file mode 100644 index 374ad66f6..000000000 --- a/src/bin/e_widget_iconsel.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#include "e.h" - -/*- DESCRIPTION -*/ -/* Adds a pushable button with an icon preview which serves as an icon - * selector (could be extended to select certain file tyes. - * NOTE: The Evas_Object *icon object in the *_add functions is expected to - * be an e_icon. - */ - -typedef struct _E_Widget_Data E_Widget_Data; -struct _E_Widget_Data -{ - E_Container *con; - Evas_Object *obj; - Evas_Object *o_button; - Evas_Object *o_icon; - char **valptr; - - void (*select_func) (Evas_Object *obj, char *file, void *data); - void *select_data; - void (*hilite_func) (Evas_Object *obj, char *file, void *data); - void *hilite_data; -}; - -static void _e_wid_del_hook(Evas_Object *obj); -static void _e_wid_focus_hook(Evas_Object *obj); -static void _e_wid_activate_hook(Evas_Object *obj); -static void _e_wid_active_hook_cb(E_Fileman *fileman, char *file, void *data); -static void _e_wid_disable_hook(Evas_Object *obj); -static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source); -static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_wid_select_cb(E_File_Dialog *dia, char *file, void *data); -static void _e_wid_hilite_cb(E_File_Dialog *dia, char *file, void *data); - -/* local subsystem functions */ - -/* externally accessible functions */ -EAPI Evas_Object * -e_widget_iconsel_add(Evas *evas, Evas_Object *icon, Evas_Coord minw, Evas_Coord minh, char **file) -{ - Evas_Object *obj, *o; - E_Widget_Data *wd; - Evas_Coord mw, mh; - E_Manager *man; - - obj = e_widget_add(evas); - - e_widget_del_hook_set(obj, _e_wid_del_hook); - e_widget_focus_hook_set(obj, _e_wid_focus_hook); - e_widget_activate_hook_set(obj, _e_wid_activate_hook); - e_widget_disable_hook_set(obj, _e_wid_disable_hook); - wd = calloc(1, sizeof(E_Widget_Data)); - wd->valptr = file; - wd->select_func = NULL; - wd->select_data = NULL; - wd->hilite_func = NULL; - wd->hilite_data = NULL; - wd->obj = obj; - e_widget_data_set(obj, wd); - - man = e_manager_current_get(); - if (!man) return NULL; - wd->con = e_container_current_get(man); - if (!wd->con) wd->con = e_container_number_get(man, 0); - if (!wd->con) return NULL; - - o = edje_object_add(evas); - wd->o_button = o; - e_theme_edje_object_set(o, "base/theme/widgets", - "e/widgets/button"); - edje_object_signal_callback_add(o, "click", "", _e_wid_signal_cb1, obj); - edje_object_part_text_set(o, "label", ""); - evas_object_show(o); - - e_widget_sub_object_add(obj, o); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); - e_widget_resize_object_set(obj, o); - - if (icon) - { - wd->o_icon = icon; - edje_extern_object_min_size_set(icon, minw, minh); - evas_object_pass_events_set(icon, 1); - edje_object_part_swallow(wd->o_button, "icon_swallow", wd->o_icon); - edje_object_signal_emit(wd->o_button, "icon_visible", ""); - edje_object_message_signal_process(wd->o_button); - evas_object_show(wd->o_icon); - e_widget_sub_object_add(obj, wd->o_icon); - } - - edje_object_size_min_calc(wd->o_button, &mw, &mh); - e_widget_min_size_set(obj, mw, mh); - - return obj; -} - -EAPI Evas_Object * -e_widget_iconsel_add_from_file(Evas *evas, char *icon, Evas_Coord minw, Evas_Coord minh, char **file) -{ - Evas_Object *obj, *o; - E_Widget_Data *wd; - Evas_Coord mw, mh; - - obj = e_widget_add(evas); - - e_widget_del_hook_set(obj, _e_wid_del_hook); - e_widget_focus_hook_set(obj, _e_wid_focus_hook); - e_widget_activate_hook_set(obj, _e_wid_activate_hook); - e_widget_disable_hook_set(obj, _e_wid_disable_hook); - wd = calloc(1, sizeof(E_Widget_Data)); - wd->valptr = file; - wd->select_func = NULL; - wd->select_data = NULL; - wd->hilite_func = NULL; - wd->hilite_data = NULL; - wd->obj = obj; - e_widget_data_set(obj, wd); - - o = edje_object_add(evas); - wd->o_button = o; - e_theme_edje_object_set(o, "base/theme/widgets", - "e/widgets/button"); - edje_object_signal_callback_add(o, "click", "", _e_wid_signal_cb1, obj); - edje_object_part_text_set(o, "label", ""); - evas_object_show(o); - - e_widget_sub_object_add(obj, o); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); - e_widget_resize_object_set(obj, o); - - if (icon) - { - o = edje_object_add(evas); - wd->o_icon = o; - e_util_edje_icon_set(o, icon); - edje_object_part_swallow(wd->o_button, "icon_swallow", o); - edje_object_signal_emit(wd->o_button, "icon_visible", ""); - edje_object_message_signal_process(wd->o_button); - evas_object_show(o); - e_widget_sub_object_add(obj, o); - } - - edje_object_size_min_calc(wd->o_button, &mw, &mh); - e_widget_min_size_set(obj, mw, mh); - - return obj; -} - -EAPI void -e_widget_iconsel_select_callback_add(Evas_Object *obj, void (*func)(Evas_Object *obj, char *file, void *data), void *data) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - wd->select_func = func; - wd->select_data = data; -} - -EAPI void -e_widget_iconsel_hilite_callback_add(Evas_Object *obj, void (*func)(Evas_Object *obj, char *file, void *data), void *data) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - wd->hilite_func = func; - wd->hilite_data = data; -} - -static void -_e_wid_del_hook(Evas_Object *obj) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - free(wd); -} - -static void -_e_wid_focus_hook(Evas_Object *obj) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - if (e_widget_focus_get(obj)) - { - edje_object_signal_emit(wd->o_button, "focus_in", ""); - evas_object_focus_set(wd->o_button, 1); - } - else - { - edje_object_signal_emit(wd->o_button, "focus_out", ""); - evas_object_focus_set(wd->o_button, 0); - } -} - -static void -_e_wid_activate_hook(Evas_Object *obj) -{ - E_Widget_Data *wd; - E_File_Dialog *dia; - - wd = e_widget_data_get(obj); - - dia = e_file_dialog_new(wd->con); - if (!dia) return; - e_file_dialog_title_set(dia, "Select File"); - e_file_dialog_select_callback_add(dia, _e_wid_select_cb, wd); - e_file_dialog_hilite_callback_add(dia, _e_wid_hilite_cb, wd); - e_file_dialog_show(dia); -} - -static void -_e_wid_active_hook_cb(E_Fileman *fileman, char *file, void *data) -{ - char *ext; - E_Widget_Data *wd; - - wd = e_widget_data_get(data); - - ext = strrchr(file, '.'); - if (!ext) return; - if ((strcasecmp(ext, ".png")) && - (strcasecmp(ext, ".jpg")) && - (strcasecmp(ext, ".jpeg"))) - return; - - e_icon_file_set(wd->o_icon, file); - E_FREE(*(wd->valptr)); - *(wd->valptr) = strdup(file); - e_object_del(E_OBJECT(fileman)); -} - - -static void -_e_wid_disable_hook(Evas_Object *obj) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - if (e_widget_disabled_get(obj)) - edje_object_signal_emit(wd->o_button, "disabled", ""); - else - edje_object_signal_emit(wd->o_button, "enabled", ""); -} - -static void -_e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - e_widget_focus_steal(data); - _e_wid_activate_hook(data); - e_widget_change(data); -} - -static void -_e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - e_widget_focus_steal(data); -} - -static void -_e_wid_select_cb(E_File_Dialog *dia, char *file, void *data) -{ - E_Widget_Data *wd; - char *ext; - - wd = data; - - ext = strrchr(file, '.'); - if (!ext) return; - if ((strcasecmp(ext, ".png")) && - (strcasecmp(ext, ".jpg")) && - (strcasecmp(ext, ".jpeg"))) - return; - - if (wd->select_func) - wd->select_func(wd->obj, file, wd->select_data); - - e_icon_file_set(wd->o_icon, file); - E_FREE(*(wd->valptr)); - *(wd->valptr) = strdup(file); - e_object_del(E_OBJECT(dia)); -} - -static void -_e_wid_hilite_cb(E_File_Dialog *dia, char *file, void *data) -{ - E_Widget_Data *wd; - char *ext; - - wd = data; - - ext = strrchr(file, '.'); - if (!ext) return; - if ((strcasecmp(ext, ".png")) && - (strcasecmp(ext, ".jpg")) && - (strcasecmp(ext, ".jpeg"))) - return; - - if (wd->hilite_func) - wd->hilite_func(wd->obj, file, wd->hilite_data); - - //e_icon_file_set(wd->o_icon, file); - E_FREE(*(wd->valptr)); - *(wd->valptr) = strdup(file); -} diff --git a/src/bin/e_widget_iconsel.h b/src/bin/e_widget_iconsel.h deleted file mode 100644 index 082491b34..000000000 --- a/src/bin/e_widget_iconsel.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#ifdef E_TYPEDEFS -#else -#ifndef E_WIDGET_ICONSEL_H -#define E_WIDGET_ICONSEL_H - -EAPI Evas_Object *e_widget_iconsel_add(Evas *evas, Evas_Object *icon, Evas_Coord minw, Evas_Coord minh, char **file); -EAPI Evas_Object *e_widget_iconsel_add_from_file(Evas *evas, char *icon, Evas_Coord minw, Evas_Coord minh, char **file); -EAPI void e_widget_iconsel_select_callback_add(Evas_Object *obj, void (*func)(Evas_Object *obj, char *file, void *data), void *data); -EAPI void e_widget_iconsel_hilite_callback_add(Evas_Object *obj, void (*func)(Evas_Object *obj, char *file, void *data), void *data); - -#endif -#endif