Enlightenment CVS committal Author : codewarrior Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: Makefile.am e_eap_editor.c e_eap_editor.h e_fileman_icon.c e_fileman_smart.c e_fileman_smart.h e_icon_layout.c e_scrollbar.c e_int_menus.c Added Files: e_widget_fileman.c e_widget_fileman.h e_widget_iconsel.c e_widget_iconsel.h Log Message: - more work on eap editor (currently broken) - fix efm (some features currently broken) - change scrollbar so completely (currently broken) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/Makefile.am,v retrieving revision 1.69 retrieving revision 1.70 diff -u -3 -r1.69 -r1.70 --- Makefile.am 24 Oct 2005 23:08:20 -0000 1.69 +++ Makefile.am 27 Oct 2005 10:19:43 -0000 1.70 @@ -103,7 +103,9 @@ e_int_border_locks.h \ e_thumb.h \ e_int_border_remember.h \ -e_eap_editor.h +e_eap_editor.h \ +e_widget_iconsel.h \ +e_widget_fileman.h enlightenment_src = \ e_user.c \ @@ -188,6 +190,8 @@ e_thumb.c \ e_int_border_remember.c \ e_eap_editor.c \ +e_widget_iconsel.c \ +e_widget_fileman.c \ $(ENLIGHTENMENTHEADERS) enlightenment_SOURCES = \ =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_eap_editor.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_eap_editor.c 26 Oct 2005 01:05:56 -0000 1.5 +++ e_eap_editor.c 27 Oct 2005 10:19:43 -0000 1.6 @@ -1,285 +1,370 @@ #include "e.h" +typedef struct _E_App_Edit E_App_Edit; +typedef struct _E_App_Edit_CFData E_App_Edit_CFData; + +struct _E_App_Edit +{ + E_App *eap; + + Evas_Object *img; + Evas_Object *img_widget; + + E_App_Edit_CFData *cfdata; +}; + +struct _E_App_Edit_CFData +{ + /*- BASIC -*/ + char *name; + char *exe; + /*- ADVANCED -*/ + char *generic; + char *comment; + char *wname; + char *wclass; + char *wtitle; + char *wrole; + char *iclass; + char *path; + int startup_notify; + int wait_exit; + /*- common -*/ + char *image; + E_App_Edit *editor; +}; + /* local subsystem functions */ -static void _e_eap_edit_save_cb(void *data, E_Dialog *dia); -static void _e_eap_edit_cancel_cb(void *data, E_Dialog *dia); -static void _e_eap_edit_browse_cb(void *data1, void *data2); -static void _e_eap_edit_free(E_App_Edit *app); -static void _e_eap_edit_selector_cb(E_Fileman *fileman, char *file, void *data); - +static void _e_eap_edit_save_cb(void *data, E_Dialog *dia); +static void _e_eap_edit_cancel_cb(void *data, E_Dialog *dia); +static void _e_eap_edit_browse_cb(void *data1, void *data2); +static void _e_eap_edit_free(E_App_Edit *app); +static void _e_eap_edit_selector_cb(E_Fileman *fileman, char *file, void *data); +static void _e_eap_edit_fill_data(E_App_Edit_CFData *cdfata); +static void *_e_eap_edit_create_data(E_Config_Dialog *cfd); +static void _e_eap_edit_free_data(E_Config_Dialog *cfd, void *data); +static int _e_eap_edit_basic_apply_data(E_Config_Dialog *cfd, void *data); +static int _e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, void *data); +static Evas_Object *_e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, void *data); +static Evas_Object *_e_eap_edit_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, void *data); + + #define IFDUP(src, dst) if(src) dst = strdup(src); else dst = NULL /* externally accessible functions */ -E_App_Edit * + +void e_eap_edit_show(E_Container *con, E_App *a) { - E_Manager *man; - E_App_Edit *app; + E_Config_Dialog *cfd; + E_Config_Dialog_View v; + E_App_Edit *editor; Evas_Object *o, *ol; - - app = E_OBJECT_ALLOC(E_App_Edit, E_EAP_EDIT_TYPE, _e_eap_edit_free); - if (!app) return NULL; - app->dia = e_dialog_new(con); - if (!app->dia) - { - free(app); - return NULL; - } - - app->con = con; - e_dialog_title_set(app->dia, _("Eap Editor")); - app->evas = e_win_evas_get(app->dia->win); - - app->eap = a; - - ol = e_widget_list_add(app->evas, 0, 0); - o = e_widget_table_add(app->evas, _("Eap Info"), 0); - - IFDUP(a->name, app->data.name); - IFDUP(a->generic, app->data.generic); - IFDUP(a->comment, app->data.comment); - IFDUP(a->exe, app->data.exe); - IFDUP(a->win_name, app->data.wname); - IFDUP(a->win_class, app->data.wclass); - IFDUP(a->win_title, app->data.wtitle); - IFDUP(a->win_role, app->data.wrole); - IFDUP(a->path, app->data.path); - - if(a->path) - { - app->img = edje_object_add(app->evas); - edje_object_file_set(app->img, a->path, "icon"); - - } - else - { - app->img = edje_object_add(app->evas); - e_theme_edje_object_set(app->img, "base/theme/icons/enlightenment/e", "icons/enlightenment/e"); - } - app->img_widget = e_widget_image_add_from_object(app->evas, app->img, 48, 48); - e_widget_table_object_append(o, app->img_widget, - 0, 0, 1, 1, - 1, 1, 1, 1); - - e_widget_table_object_append(o, e_widget_button_add(app->evas, "Set Icon", - NULL, _e_eap_edit_browse_cb, - app, NULL), - 1, 0, 1, 1, - 0, 0, 0, 0); - - e_widget_table_object_append(o, e_widget_label_add(app->evas, "App name"), - 0, 1, 1, 1, - 1, 1, 1, 1); - { - Evas_Object *entry; - entry = e_widget_entry_add(app->evas, &(app->data.name)); - e_widget_min_size_set(entry, 100, 1); - e_widget_table_object_append(o, entry, - 1, 1, 1, 1, - 1, 1, 1, 1); - } - - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Generic Info"), - 0, 2, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.generic)), - 1, 2, 1, 1, - 1, 1, 1, 1); - - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Comment"), - 0, 3, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.comment)), - 1, 3, 1, 1, - 1, 1, 1, 1); - - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Executable"), - 0, 4, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.exe)), - 1, 4, 1, 1, - 1, 1, 1, 1); - - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Name"), - 0, 5, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wname)), - 1, 5, 1, 1, - 1, 1, 1, 1); + if(!con) + return; - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Class"), - 0, 6, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wclass)), - 1, 6, 1, 1, - 1, 1, 1, 1); + editor = E_NEW(E_App_Edit, 1); + if (!editor) return; - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Title"), - 0, 7, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wtitle)), - 1, 7, 1, 1, - 1, 1, 1, 1); + editor->eap = a; - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Role"), - 0, 8, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wrole)), - 1, 8, 1, 1, - 1, 1, 1, 1); + /* methods */ + v.create_cfdata = _e_eap_edit_create_data; + v.free_cfdata = _e_eap_edit_free_data; + v.basic.apply_cfdata = _e_eap_edit_basic_apply_data; + v.basic.create_widgets = _e_eap_edit_basic_create_widgets; + v.advanced.apply_cfdata = _e_eap_edit_advanced_apply_data; + v.advanced.create_widgets = _e_eap_edit_advanced_create_widgets; + /* create config diaolg for NULL object/data */ + cfd = e_config_dialog_new(con, _("Eap Editor"), NULL, 0, &v, editor); +} + +/* local subsystem functions */ + +static void +_e_eap_edit_fill_data(E_App_Edit_CFData *cfdata) +{ + /*- BASIC -*/ + IFDUP(cfdata->editor->eap->name, cfdata->name); + IFDUP(cfdata->editor->eap->exe, cfdata->exe); + /*- ADVANCED -*/ + IFDUP(cfdata->editor->eap->generic, cfdata->generic); + IFDUP(cfdata->editor->eap->comment, cfdata->comment); + IFDUP(cfdata->editor->eap->win_name, cfdata->wname); + IFDUP(cfdata->editor->eap->win_class, cfdata->wclass); + IFDUP(cfdata->editor->eap->win_title, cfdata->wtitle); + IFDUP(cfdata->editor->eap->win_role, cfdata->wrole); + IFDUP(cfdata->editor->eap->path, cfdata->path); +} + +static void * +_e_eap_edit_create_data(E_Config_Dialog *cfd) +{ + E_App_Edit_CFData *cfdata; - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Icon Class"), - 0, 9, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.iclass)), - 1, 9, 1, 1, - 1, 1, 1, 1); + cfdata = E_NEW(E_App_Edit_CFData, 1); + if (!cfdata) return NULL; + cfdata->editor = cfd->data; + _e_eap_edit_fill_data(cfdata); + return cfdata; +} + +static void +_e_eap_edit_free_data(E_Config_Dialog *cfd, void *data) +{ + free(data); +} + +static int +_e_eap_edit_basic_apply_data(E_Config_Dialog *cfd, void *data) +{ + E_App_Edit *editor; + E_App *eap; + E_App_Edit_CFData *cfdata; - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Path"), - 0, 10, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.path)), - 1, 10, 1, 1, - 1, 1, 1, 1); + cfdata = data; + editor = cfdata->editor; + eap = editor->eap; - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Startup notify"), - 0, 11, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_check_add(app->evas, "", &(app->data.startup_notify)), - 1, 11, 1, 1, - 1, 1, 1, 1); + if(!(cfdata->path)) + return -1; - e_widget_table_object_append(o, e_widget_label_add(app->evas, "Wait exit"), - 0, 12, 1, 1, - 1, 1, 1, 1); - e_widget_table_object_append(o, e_widget_check_add(app->evas, "", &(app->data.wait_exit)), - 1, 12, 1, 1, - 1, 1, 1, 1); + E_FREE(eap->name); + E_FREE(eap->exe); + E_FREE(eap->image); - e_widget_list_object_append(ol, o, 1, 1, 0.5); + IFDUP(cfdata->name, eap->name); + IFDUP(cfdata->exe, eap->exe); + IFDUP(cfdata->image, eap->image); - { - Evas_Coord minw, minh; - e_widget_min_size_get(ol, &minw, &minh); - e_dialog_content_set(app->dia, ol, minw, minh); - } - - e_dialog_button_add(app->dia, _("Cancel"), NULL, _e_eap_edit_cancel_cb, app); - e_dialog_button_add(app->dia, _("Save"), NULL, _e_eap_edit_save_cb, app); + e_app_fields_save(eap); - e_dialog_show(app->dia); + return -1; } -/* local subsystem functions */ - -static void -_e_eap_edit_save_cb(void *data, E_Dialog *dia) +static int +_e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, void *data) { E_App_Edit *editor; E_App *eap; + E_App_Edit_CFData *cfdata; - editor = data; + cfdata = data; + editor = cfdata->editor; eap = editor->eap; - if(!(editor->data.path)) - return; + if(!(cfdata->path)) + return -1; - printf("path : %s\n", editor->data.path); - - E_FREE(eap->name); E_FREE(eap->generic); E_FREE(eap->comment); - E_FREE(eap->exe); E_FREE(eap->win_name); E_FREE(eap->win_class); E_FREE(eap->win_title); E_FREE(eap->win_role); E_FREE(eap->icon_class); E_FREE(eap->path); - E_FREE(eap->image); - if(editor->data.startup_notify) + + if(cfdata->startup_notify) eap->startup_notify = 1; - if(editor->data.wait_exit) + if(cfdata->wait_exit) eap->wait_exit = 1; - - IFDUP(editor->data.name, eap->name); - IFDUP(editor->data.generic, eap->generic); - IFDUP(editor->data.comment, eap->comment); - IFDUP(editor->data.exe, eap->exe); - IFDUP(editor->data.wname, eap->win_name); - IFDUP(editor->data.wclass, eap->win_class); - IFDUP(editor->data.wtitle, eap->win_title); - IFDUP(editor->data.wrole, eap->win_role); - IFDUP(editor->data.iclass, eap->icon_class); - IFDUP(editor->data.path, eap->path); - IFDUP(editor->data.image, eap->image); - - printf("image is: %s\n", eap->image); - - printf("eap path: %s\n", eap->path); - + + IFDUP(cfdata->generic, eap->generic); + IFDUP(cfdata->comment, eap->comment); + IFDUP(cfdata->wname, eap->win_name); + IFDUP(cfdata->wclass, eap->win_class); + IFDUP(cfdata->wtitle, eap->win_title); + IFDUP(cfdata->wrole, eap->win_role); + IFDUP(cfdata->iclass, eap->icon_class); + IFDUP(cfdata->path, eap->path); + e_app_fields_save(eap); - _e_eap_edit_free(editor); + return 1; } -static void -_e_eap_edit_cancel_cb(void *data, E_Dialog *dia) -{ - _e_eap_edit_free(data); -} -static void -_e_eap_edit_browse_cb(void *data1, void *data2) +static Evas_Object * +_e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, void *data) { - E_Fileman *fileman; + E_App_Edit_CFData *cfdata; E_App_Edit *editor; + E_App *eap; + Evas_Object *ol, *o; + Evas_Object *entry; + + cfdata = data; + editor = cfdata->editor; + eap = editor->eap; + + ol = e_widget_list_add(evas, 0, 1); + o = e_widget_frametable_add(evas, _("Icon"), 0); + + if(eap->path) + { + editor->img = e_icon_add(evas); + e_icon_file_key_set(editor->img, eap->path, "images/0"); + e_icon_fill_inside_set(editor->img, 1); + } + else + { + editor->img = edje_object_add(evas); + e_theme_edje_object_set(editor->img, "base/theme/icons/enlightenment/e", "icons/enlightenment/e"); + } + + editor->img_widget = e_widget_iconsel_add(evas, editor->img, + 48, 48, &cfdata->image); + + e_widget_frametable_object_append(o, editor->img_widget, + 0, 0, 1, 1, + 1, 1, 1, 1); + + + e_widget_list_object_append(ol, o, 1, 1, 0.5); - editor = data1; - fileman = e_fileman_new (editor->dia->win->container); - e_fileman_selector_enable(fileman, _e_eap_edit_selector_cb, editor); - e_win_resize(fileman->win, 640, 300); - e_fileman_show (fileman); + o = e_widget_frametable_add(evas, _("Basic Info"), 0); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "App name"), + 0, 0, 1, 1, + 1, 1, 1, 1); + + entry = e_widget_entry_add(evas, &(cfdata->name)); + e_widget_min_size_set(entry, 100, 1); + e_widget_frametable_object_append(o, entry, + 1, 0, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Executable"), + 0, 1, 1, 1, + 1, 1, 1, 1); + e_widget_frametable_object_append(o, e_widget_entry_add(evas, &(cfdata->exe)), + 1, 1, 1, 1, + 1, 1, 1, 1); + + e_widget_list_object_append(ol, o, 1, 1, 0.5); + + return ol; } -/* need to make sure we can load the image */ -static void -_e_eap_edit_selector_cb(E_Fileman *fileman, char *file, void *data) +static Evas_Object * +_e_eap_edit_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, void *data) { + E_App_Edit_CFData *cfdata; E_App_Edit *editor; - char *ext; - Evas_Object *img; + E_App *eap; + Evas_Object *ol, *o; + Evas_Object *entry; - ext = strrchr(file, '.'); - if(!ext) - return; - if(strcasecmp(ext, ".png") && strcasecmp(ext, ".jpg") && - strcasecmp(ext, ".jpeg")) - return; + cfdata = data; + editor = cfdata->editor; + eap = editor->eap; + + ol = e_widget_table_add(evas, _("Advanced"), 0); + + o = e_widget_frametable_add(evas, _("General"), 0); - editor = data; - E_FREE(editor->eap->image); - editor->data.image = strdup(file); - e_widget_sub_object_del(editor->img_widget, editor->img); - evas_object_del(editor->img); - editor->img = evas_object_image_add(editor->evas); - evas_object_image_file_set(editor->img, file, NULL); - evas_object_resize(editor->img, 48, 48); - evas_object_image_fill_set(editor->img, 0, 0, 48, 48); - evas_object_show(editor->img); - e_widget_resize_object_set(editor->img_widget, editor->img); - e_widget_sub_object_add(editor->img_widget, editor->img); - e_widget_min_size_set(editor->img_widget, 48, 48); - evas_object_resize(editor->img, 48, 48); //temp hack + /*- general info -*/ + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Generic Info"), + 0, 0, 1, 1, + 1, 1, 1, 1); + entry = e_widget_entry_add(evas, &(cfdata->generic)); + e_widget_min_size_set(entry, 100, 1); + e_widget_frametable_object_append(o, entry, + 1, 0, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Comment"), + 0, 1, 1, 1, + 1, 1, 1, 1); + e_widget_frametable_object_append(o, e_widget_entry_add(evas, &(cfdata->comment)), + 1, 1, 1, 1, + 1, 1, 1, 1); + + e_widget_table_object_append(ol, o, 0, 0, 1, 1, 1 ,1, 1, 1); + + + /*- window info -*/ + + o = e_widget_frametable_add(evas, _("Window"), 0); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Window Name"), + 0, 0, 1, 1, + 1, 1, 1, 1); + entry = e_widget_entry_add(evas, &(cfdata->wname)); + e_widget_min_size_set(entry, 100, 1); + e_widget_frametable_object_append(o, entry, + 1, 0, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Window Class"), + 0, 1, 1, 1, + 1, 1, 1, 1); + e_widget_frametable_object_append(o, e_widget_entry_add(evas, &(cfdata->wclass)), + 1, 1, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Window Title"), + 0, 2, 1, 1, + 1, 1, 1, 1); + e_widget_frametable_object_append(o, e_widget_entry_add(evas, &(cfdata->wtitle)), + 1, 2, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Window Role"), + 0, 3, 1, 1, + 1, 1, 1, 1); + e_widget_frametable_object_append(o, e_widget_entry_add(evas, &(cfdata->wrole)), + 1, 3, 1, 1, + 1, 1, 1, 1); + + e_widget_table_object_append(ol, o, 0, 1, 1, 1, 1 ,1, 1, 1); + + /*- icon info -*/ + + o = e_widget_frametable_add(evas, _("Icon"), 0); - e_object_del(fileman); -} - -static void _e_eap_edit_free(E_App_Edit *app) -{ - e_object_del(E_OBJECT(app->eap)); - e_object_del(E_OBJECT(app->dia)); - E_FREE(app); + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Icon Class"), + 0, 0, 1, 1, + 1, 1, 1, 1); + entry = e_widget_entry_add(evas, &(cfdata->iclass)); + e_widget_min_size_set(entry, 100, 1); + e_widget_frametable_object_append(o, entry, + 1, 0, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Path"), + 0, 1, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_entry_add(evas, &(cfdata->path)), + 1, 1, 1, 1, + 1, 1, 1, 1); + + e_widget_table_object_append(ol, o, 1, 0, 1, 1, 1 ,1, 1, 1); + + + /*- misc info -*/ + + o = e_widget_frametable_add(evas, _("Misc"), 0); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Startup notify"), + 0, 0, 1, 1, + 1, 1, 1, 1); + e_widget_frametable_object_append(o, e_widget_check_add(evas, "", &(cfdata->startup_notify)), + 1, 0, 1, 1, + 1, 1, 1, 1); + + e_widget_frametable_object_append(o, e_widget_label_add(evas, "Wait exit"), + 0, 1, 1, 1, + 1, 1, 1, 1); + e_widget_frametable_object_append(o, e_widget_check_add(evas, "", &(cfdata->wait_exit)), + 1, 1, 1, 1, + 1, 1, 1, 1); + + e_widget_table_object_append(ol, o, 1, 1, 1, 1, 1 ,1, 1, 1); + + return ol; } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_eap_editor.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_eap_editor.h 26 Oct 2005 00:19:51 -0000 1.4 +++ e_eap_editor.h 27 Oct 2005 10:19:43 -0000 1.5 @@ -1,45 +1,9 @@ #ifdef E_TYPEDEFS - -typedef struct _E_App_Edit E_App_Edit; - #else #ifndef E_EAP_EDIT_H #define E_EAP_EDIT_H -#define E_EAP_EDIT_TYPE 0xE0b01019 - -struct _E_App_Edit -{ - E_Object e_obj_inherit; - - E_Container *con; - E_Win *win; - Evas *evas; - E_Dialog *dia; - - E_App *eap; - - Evas_Object *img; - Evas_Object *img_widget; - - struct { - char *image; - char *name; - char *generic; - char *comment; - char *exe; - char *wname; - char *wclass; - char *wtitle; - char *wrole; - char *iclass; - char *path; - int startup_notify; - int wait_exit; - } data; -}; - -E_App_Edit *e_eap_edit_show(E_Container *con, E_App *a); +EAPI void e_eap_edit_show(E_Container *con, E_App *a); #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_icon.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- e_fileman_icon.c 27 Oct 2005 02:44:36 -0000 1.8 +++ e_fileman_icon.c 27 Oct 2005 10:19:43 -0000 1.9 @@ -30,8 +30,6 @@ static void _e_fm_icon_smart_del (Evas_Object *obj); static void _e_fm_icon_smart_move (Evas_Object *obj, Evas_Coord x, Evas_Coord y); static void _e_fm_icon_smart_resize (Evas_Object *obj, Evas_Coord w, Evas_Coord h); -static void _e_fm_icon_smart_show (Evas_Object *obj); -static void _e_fm_icon_smart_hide (Evas_Object *obj); static void _e_fm_icon_smart_clip_set (Evas_Object *obj, Evas_Object *clip); static void _e_fm_icon_smart_clip_unset (Evas_Object *obj); @@ -86,8 +84,8 @@ NULL, NULL, NULL, NULL, NULL, _e_fm_icon_smart_move, _e_fm_icon_smart_resize, - _e_fm_icon_smart_show, - _e_fm_icon_smart_hide, + NULL, + NULL, NULL, _e_fm_icon_smart_clip_set, _e_fm_icon_smart_clip_unset, @@ -109,6 +107,39 @@ e_object_ref(E_OBJECT(file)); sd->file = file; file->icon_object = obj; + + if (e_fm_file_can_preview(sd->file)) + { + sd->thumb_path = e_thumb_file_get(sd->file->path); + if (e_thumb_exists(sd->file->path)) + sd->image_object = e_thumb_evas_object_get(sd->file->path, + sd->evas, + sd->w, + sd->h); + else + { + thumb_files = evas_list_append(thumb_files, sd); + if (pid == -1) _e_fm_icon_thumb_generate(); + _e_fm_icon_icon_mime_get(sd); + } + } + else + { + _e_fm_icon_icon_mime_get(sd); + } + + if (sd->image_object) + { + edje_object_part_swallow(sd->icon_object, "icon_swallow", sd->image_object); + evas_object_smart_member_add(sd->image_object, obj); + evas_object_show(sd->image_object); + } + + if(sd->saved_title) + edje_object_part_text_set(sd->icon_object, "icon_title", sd->saved_title); + else + edje_object_part_text_set(sd->icon_object, "icon_title", sd->file->name); + } void @@ -178,8 +209,25 @@ sd->event_object = evas_object_rectangle_add(sd->evas); evas_object_color_set(sd->event_object, 0, 0, 0, 0); evas_object_smart_member_add(sd->event_object, obj); - + evas_object_show(sd->event_object); evas_object_smart_data_set(obj, sd); + + sd->visible = 1; + sd->icon_object = edje_object_add(sd->evas); + e_theme_edje_object_set(sd->icon_object, "base/theme/fileman", + "fileman/icon"); + evas_object_smart_member_add(sd->icon_object, obj); + + evas_object_show(sd->icon_object); + evas_object_show(sd->event_object); + + { + Evas_Coord icon_w, icon_h; + edje_object_size_min_calc(sd->icon_object, &icon_w, &icon_h); + evas_object_resize(sd->icon_object, icon_w, icon_h); + evas_object_resize(sd->event_object, icon_w, icon_h); + evas_object_resize(sd->obj, icon_w, icon_h); + } } @@ -246,90 +294,6 @@ } static void -_e_fm_icon_smart_show(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if ((!sd) && (!sd->file)) return; - if (sd->visible) return; - - evas_object_show(sd->event_object); - sd->visible = 1; - sd->icon_object = edje_object_add(sd->evas); - e_theme_edje_object_set(sd->icon_object, "base/theme/fileman", - "fileman/icon"); - evas_object_smart_member_add(sd->icon_object, obj); - - if (e_fm_file_can_preview(sd->file)) - { - sd->thumb_path = e_thumb_file_get(sd->file->path); - if (e_thumb_exists(sd->file->path)) - sd->image_object = e_thumb_evas_object_get(sd->file->path, - sd->evas, - sd->w, - sd->h); - else - { - thumb_files = evas_list_append(thumb_files, sd); - if (pid == -1) _e_fm_icon_thumb_generate(); - _e_fm_icon_icon_mime_get(sd); - } - } - else - { - _e_fm_icon_icon_mime_get(sd); - } - - if (sd->image_object) - { - edje_object_part_swallow(sd->icon_object, "icon_swallow", sd->image_object); - evas_object_smart_member_add(sd->image_object, obj); - } - if(sd->saved_title) - edje_object_part_text_set(sd->icon_object, "icon_title", sd->saved_title); - else - edje_object_part_text_set(sd->icon_object, "icon_title", sd->file->name); - - evas_object_show(sd->icon_object); - - { - Evas_Coord icon_w, icon_h; - edje_object_size_min_calc(sd->icon_object, &icon_w, &icon_h); - evas_object_resize(sd->icon_object, icon_w, icon_h); - evas_object_resize(sd->event_object, icon_w, icon_h); - evas_object_resize(sd->obj, icon_w, icon_h); - } -} - -static void -_e_fm_icon_smart_hide(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - if (!sd->visible) return; - - evas_object_hide(sd->event_object); - sd->visible = 0; - if (sd->icon_object) - { - evas_object_smart_member_del(sd->icon_object); - evas_object_del(sd->icon_object); - } - sd->icon_object = NULL; - if (sd->image_object) - { - evas_object_smart_member_del(sd->image_object); - evas_object_del(sd->image_object); - } - sd->image_object = NULL; - if (sd->thumb_path) free(sd->thumb_path); - sd->thumb_path = NULL; -} - -static void _e_fm_icon_smart_clip_set(Evas_Object *obj, Evas_Object *clip) { E_Smart_Data *sd; @@ -338,6 +302,7 @@ if (!sd) return; evas_object_clip_set(sd->event_object, clip); + evas_object_clip_set(sd->icon_object, clip); } static void @@ -359,7 +324,7 @@ if (sd->file->type == E_FM_FILE_TYPE_DIRECTORY) { e_theme_edje_object_set(sd->image_object, "base/theme/fileman", - "fileman/icons/folder"); + "icons/fileman/folder"); } else { @@ -376,15 +341,15 @@ for (; *ext2; ext2++) *ext2 = tolower(*ext2); - snprintf(part, PATH_MAX, "fileman/icons/%s", (ext + 1)); + snprintf(part, PATH_MAX, "icons/fileman/%s", (ext + 1)); if (!e_theme_edje_object_set(sd->image_object, "base/theme/fileman", part)) - e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "fileman/icons/file"); + e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "icons/fileman/file"); free(ext); } else - e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "fileman/icons/file"); + e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "icons/fileman/file"); } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -3 -r1.62 -r1.63 --- e_fileman_smart.c 27 Oct 2005 02:44:36 -0000 1.62 +++ e_fileman_smart.c 27 Oct 2005 10:19:43 -0000 1.63 @@ -183,8 +183,6 @@ static void _e_fm_smart_del(Evas_Object *object); static void _e_fm_smart_move(Evas_Object *object, Evas_Coord x, Evas_Coord y); static void _e_fm_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h); -static void _e_fm_smart_show(Evas_Object *object); -static void _e_fm_smart_hide(Evas_Object *object); static void _e_fm_redraw(E_Fm_Smart_Data *sd); @@ -254,8 +252,8 @@ NULL, NULL, NULL, NULL, NULL, _e_fm_smart_move, /* move */ _e_fm_smart_resize, /* resize */ - _e_fm_smart_show, /* show */ - _e_fm_smart_hide, /* hide */ + NULL,/* show */ + NULL,/* hide */ NULL, /* color_set */ NULL, /* clip_set */ NULL, /* clip_unset */ @@ -432,6 +430,17 @@ sd->selector_data = data; } +void +e_fm_background_set(Evas_Object *object, Evas_Object *bg) +{ + E_Fm_Smart_Data *sd; + + if ((!object) || !(sd = evas_object_smart_data_get(object))) + return; + + sd->bg = bg; +} + /* local subsystem functions */ static void @@ -452,25 +461,29 @@ sd->evas = evas_object_evas_get(object); sd->frozen = 0; sd->is_selector = 0; - sd->bg = evas_object_rectangle_add(sd->evas); // this should become an edje - evas_object_color_set(sd->bg, 0, 0, 0, 0); - evas_object_show(sd->bg); - + sd->bg = edje_object_add(sd->evas); + evas_object_smart_member_add(sd->bg, object); + evas_object_show(sd->bg); + e_theme_edje_object_set(sd->selection.band.obj, + "base/theme/fileman/background", + "fileman/background"); evas_object_event_callback_add(sd->bg, EVAS_CALLBACK_MOUSE_DOWN, _e_fm_mouse_down_cb, sd); evas_object_event_callback_add(sd->bg, EVAS_CALLBACK_MOUSE_UP, _e_fm_mouse_up_cb, sd); evas_object_event_callback_add(sd->bg, EVAS_CALLBACK_MOUSE_MOVE, _e_fm_mouse_move_cb, sd); - evas_object_smart_member_add(sd->bg, object); + sd->layout = e_icon_layout_add(sd->evas); + evas_object_smart_member_add(sd->layout, object); e_icon_layout_spacing_set(sd->layout, sd->icon_info.x_space, sd->icon_info.y_space); evas_object_stack_above(sd->layout, sd->bg); evas_object_show(sd->layout); sd->clip = evas_object_rectangle_add(sd->evas); evas_object_smart_member_add(sd->clip, object); + evas_object_show(sd->clip); evas_object_move(sd->clip, -100000, -100000); evas_object_resize(sd->clip, 200000, 200000); evas_object_color_set(sd->clip, 255, 255, 255, 255); @@ -479,6 +492,7 @@ evas_object_clip_set(sd->layout, sd->clip); sd->selection.band.obj = edje_object_add(sd->evas); + evas_object_smart_member_add(sd->selection.band.obj, object); e_theme_edje_object_set(sd->selection.band.obj, "base/theme/fileman/rubberband", "fileman/rubberband"); @@ -630,28 +644,6 @@ } static void -_e_fm_smart_show(Evas_Object *object) -{ - E_Fm_Smart_Data *sd; - - sd = evas_object_smart_data_get(object); - if (!sd) return; - - evas_object_show(sd->clip); -} - -static void -_e_fm_smart_hide(Evas_Object *object) -{ - E_Fm_Smart_Data *sd; - - sd = evas_object_smart_data_get(object); - if (!sd) return; - - evas_object_hide(sd->clip); -} - -static void _e_fm_redraw(E_Fm_Smart_Data *sd) { E_Event_Fm_Reconfigure *ev; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_fileman_smart.h 26 Oct 2005 00:19:52 -0000 1.9 +++ e_fileman_smart.h 27 Oct 2005 10:19:43 -0000 1.10 @@ -38,6 +38,7 @@ EAPI int e_fm_freeze(Evas_Object *freeze); EAPI int e_fm_thaw(Evas_Object *freeze); EAPI void e_fm_selector_enable(Evas_Object *object, void (*func)(Evas_Object *object, char *file, void *data), void *data); +EAPI void e_fm_background_set(Evas_Object *object, Evas_Object *bg); extern int E_EVENT_FM_RECONFIGURE; extern int E_EVENT_FM_DIRECTORY_CHANGE; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_icon_layout.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- e_icon_layout.c 27 Oct 2005 02:44:36 -0000 1.8 +++ e_icon_layout.c 27 Oct 2005 10:19:43 -0000 1.9 @@ -19,7 +19,7 @@ int clip_frozen; int fixed; unsigned char changed : 1; - Evas_List *items; + Evas_List *items; }; struct _E_Icon_Layout_Item @@ -42,8 +42,6 @@ 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_show(Evas_Object *obj); -static void _e_icon_layout_smart_hide(Evas_Object *obj); 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); @@ -270,6 +268,7 @@ li->h = 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); @@ -397,8 +396,8 @@ 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, + NULL, + NULL, _e_icon_layout_smart_color_set, _e_icon_layout_smart_clip_set, _e_icon_layout_smart_clip_unset, @@ -425,11 +424,12 @@ sd->yc = 0; sd->fixed = 0; sd->clip = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_smart_member_add(sd->clip, 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 @@ -493,29 +493,9 @@ sd->w = w; sd->h = h; sd->changed = 1; - _e_icon_layout_smart_reconfigure(sd); + _e_icon_layout_smart_reconfigure(sd); } - -static void -_e_icon_layout_smart_show(Evas_Object *obj) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - if (sd->items) 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); - if (!sd) return; - evas_object_hide(sd->clip); -} - + static void _e_icon_layout_smart_color_set(Evas_Object *obj, int r, int g, int b, int a) { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_scrollbar.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- e_scrollbar.c 27 Oct 2005 02:44:36 -0000 1.8 +++ e_scrollbar.c 27 Oct 2005 10:19:43 -0000 1.9 @@ -13,8 +13,19 @@ struct _E_Scrollbar_Smart_Data { - Evas_Object *edje_object; - + struct { + Evas_Object *object; + Evas_Coord x, y, w, h; + } edje, drag; + + struct { + Evas_Coord x, y, w, h; + } confine; + + int is_dragging; + + Evas_Coord mx, my; + struct { double min; double max; @@ -33,7 +44,11 @@ static void _e_scrollbar_smart_show(Evas_Object *object); static void _e_scrollbar_smart_hide(Evas_Object *object); static void _e_scrollbar_drag_cb(void *data, Evas_Object *object, const char *emission, const char *source); - + +static void _e_scrollbar_drag_mouse_move_cb(void *data, Evas *evas, Evas_Object *object, void *event_info); +static void _e_scrollbar_drag_mouse_up_cb(void *data, Evas *evas, Evas_Object *object, void *event_info); +static void _e_scrollbar_drag_mouse_down_cb(void *data, Evas *evas, Evas_Object *object, void *event_info); + static Evas_Smart *e_scrollbar_smart = NULL; Evas_Object * @@ -71,16 +86,22 @@ switch (dir) { case E_SCROLLBAR_HORIZONTAL: - e_theme_edje_object_set(sd->edje_object, + e_theme_edje_object_set(sd->edje.object, "base/theme/widgets/hscrollbar", "widgets/hscrollbar"); + e_theme_edje_object_set(sd->drag.object, + "base/theme/widgets/vscrollbar", + "widgets/hscrollbar_drag"); sd->direction = dir; break; case E_SCROLLBAR_VERTICAL: - e_theme_edje_object_set(sd->edje_object, + e_theme_edje_object_set(sd->edje.object, "base/theme/widgets/vscrollbar", "widgets/vscrollbar"); + e_theme_edje_object_set(sd->drag.object, + "base/theme/widgets/vscrollbar", + "widgets/vscrollbar_drag"); sd->direction = dir; break; } @@ -125,9 +146,9 @@ sd->value.current = value; if (sd->direction == E_SCROLLBAR_HORIZONTAL) - edje_object_part_drag_value_set(sd->edje_object, "drag", value, 0); + edje_object_part_drag_value_set(sd->edje.object, "drag", value, 0); else - edje_object_part_drag_value_set(sd->edje_object, "drag", 0, value); + edje_object_part_drag_value_set(sd->edje.object, "drag", 0, value); } double @@ -139,7 +160,7 @@ if ((!object) || !(sd = evas_object_smart_data_get(object))) return 0.0; - edje_object_part_drag_value_get(sd->edje_object, "drag", &dx, &dy); + edje_object_part_drag_value_get(sd->edje.object, "drag", &dx, &dy); if (sd->direction == E_SCROLLBAR_HORIZONTAL) sd->value.current = dx; @@ -159,13 +180,13 @@ if (sd->direction == E_SCROLLBAR_HORIZONTAL) { - edje_object_part_drag_step_set(sd->edje_object, "drag", step, 0); - edje_object_part_drag_page_set(sd->edje_object, "drag", page, 0); + edje_object_part_drag_step_set(sd->edje.object, "drag", step, 0); + edje_object_part_drag_page_set(sd->edje.object, "drag", page, 0); } else { - edje_object_part_drag_step_set(sd->edje_object, "drag", 0, step); - edje_object_part_drag_page_set(sd->edje_object, "drag", 0, page); + edje_object_part_drag_step_set(sd->edje.object, "drag", 0, step); + edje_object_part_drag_page_set(sd->edje.object, "drag", 0, page); } } @@ -179,8 +200,8 @@ if ((!object) || !(sd = evas_object_smart_data_get(object))) return; - edje_object_part_drag_step_get(sd->edje_object, "drag", &stepx, &stepy); - edje_object_part_drag_page_get(sd->edje_object, "drag", &pagex, &pagey); + edje_object_part_drag_step_get(sd->edje.object, "drag", &stepx, &stepy); + edje_object_part_drag_page_get(sd->edje.object, "drag", &pagex, &pagey); if (sd->direction == E_SCROLLBAR_HORIZONTAL) { @@ -210,19 +231,45 @@ sd = calloc(1, sizeof(E_Scrollbar_Smart_Data)); if (!sd) return; + sd->is_dragging = 0; sd->value.min = 0.0; sd->value.max = 1.0; sd->callbacks = NULL; - sd->direction = E_SCROLLBAR_HORIZONTAL; - sd->edje_object = edje_object_add(evas); - e_theme_edje_object_set(sd->edje_object, + sd->direction = E_SCROLLBAR_HORIZONTAL; + + sd->edje.object = edje_object_add(evas); + sd->edje.x = 0; + sd->edje.y = 0; + sd->edje.w = 0; + sd->edje.h = 0; + e_theme_edje_object_set(sd->edje.object, "base/theme/widgets/hscrollbar", + "widgets/hscrollbar"); + + sd->drag.object = edje_object_add(evas); + sd->drag.x = 0; + sd->drag.y = 0; + sd->drag.w = 0; + sd->drag.h = 0; + e_theme_edje_object_set(sd->drag.object, "base/theme/widgets/hscrollbar", - "widgets/hscrollbar"); - edje_object_signal_callback_add(sd->edje_object, "drag", "*", _e_scrollbar_drag_cb, sd); - evas_object_data_set(sd->edje_object, "smart", object); - evas_object_smart_member_add(sd->edje_object, object); + "widgets/hscrollbar_drag"); + + edje_object_part_geometry_get(sd->drag.object, "confine", + &sd->confine.x, &sd->confine.y, + &sd->confine.w, sd->confine.h); + + evas_object_event_callback_add(sd->drag.object, EVAS_CALLBACK_MOUSE_MOVE, _e_scrollbar_drag_mouse_move_cb, sd); + evas_object_event_callback_add(sd->drag.object, EVAS_CALLBACK_MOUSE_UP, _e_scrollbar_drag_mouse_up_cb, sd); + evas_object_event_callback_add(sd->drag.object, EVAS_CALLBACK_MOUSE_DOWN, _e_scrollbar_drag_mouse_down_cb, sd); + + evas_object_data_set(sd->edje.object, "smart", object); + evas_object_smart_member_add(sd->edje.object, object); + evas_object_smart_member_add(sd->drag.object, object); evas_object_smart_data_set(object, sd); + + evas_object_show(sd->edje.object); + evas_object_show(sd->drag.object); } static void @@ -233,8 +280,8 @@ if ((!object) || !(sd = evas_object_smart_data_get(object))) return; - evas_object_del(sd->edje_object); - + evas_object_del(sd->edje.object); + evas_object_del(sd->drag.object); free(sd); } @@ -242,12 +289,28 @@ static void _e_scrollbar_smart_move(Evas_Object *object, Evas_Coord x, Evas_Coord y) { - E_Scrollbar_Smart_Data *sd; - + E_Scrollbar_Smart_Data *sd; + Evas_Coord we, ye, yd, wd; + Evas_Coord cx, cy, cw, ch; + if ((!object) || !(sd = evas_object_smart_data_get(object))) return; - - evas_object_move(sd->edje_object, x, y); + + evas_object_geometry_get(sd->edje.object, NULL, &ye, &we, NULL); + evas_object_geometry_get(sd->drag.object, NULL, &yd, &wd, NULL); + + evas_object_move(sd->edje.object, x, y); + edje_object_part_geometry_get(sd->edje.object, "confine", &cx, &cy, &cw, &ch); + evas_object_move(sd->drag.object, x + cx + abs(wd - cw)/2, y + cy); + + sd->edje.x = x; + sd->edje.y = y; + + sd->confine.x = x + cx; + sd->confine.y = y + cy; + + sd->drag.x = x + cx + abs(cw - wd)/2; + sd->drag.y = y + cy ; } /* Called when the object is resized */ @@ -255,11 +318,18 @@ _e_scrollbar_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h) { E_Scrollbar_Smart_Data *sd; - + if ((!object) || !(sd = evas_object_smart_data_get(object))) - return; - - evas_object_resize(sd->edje_object, w, h); + return; + + evas_object_resize(sd->edje.object, w, h); + sd->edje.w = w; + sd->edje.h = h; + edje_object_part_geometry_get(sd->edje.object, "confine", NULL, NULL, + &sd->confine.w, &sd->confine.h); + evas_object_resize(sd->drag.object, sd->confine.w, 20); + sd->drag.w = sd->confine.w; + sd->drag.h = 20; } static void @@ -270,7 +340,9 @@ if ((!object) || !(sd = evas_object_smart_data_get(object))) return; - evas_object_show(sd->edje_object); + evas_object_show(sd->edje.object); + evas_object_show(sd->drag.object); + } static void @@ -281,7 +353,8 @@ if ((!object) || !(sd = evas_object_smart_data_get(object))) return; - evas_object_hide(sd->edje_object); + evas_object_hide(sd->edje.object); + evas_object_hide(sd->drag.object); } static void @@ -308,3 +381,65 @@ handler->cb.drag(smart_object, sd->value.current, handler->data); } } + +static void + _e_scrollbar_drag_mouse_down_cb(void *data, Evas *evas, Evas_Object *object, void *event_info) +{ + E_Scrollbar_Smart_Data *sd; + Evas_Event_Mouse_Down *ev; + + ev = event_info; + sd = data; + sd->mx = ev->canvas.x - sd->drag.x; + sd->my = ev->canvas.y - sd->drag.y; + sd->is_dragging = 1; +} + +static void + _e_scrollbar_drag_mouse_up_cb(void *data, Evas *evas, Evas_Object *object, void *event_info) +{ + E_Scrollbar_Smart_Data *sd; + + sd = data; + sd->is_dragging = 0; +} + +static void +_e_scrollbar_drag_mouse_move_cb(void *data, Evas *evas, Evas_Object *object, void *event_info) +{ + E_Scrollbar_Smart_Data *sd; + Evas_Event_Mouse_Move *ev = event_info; + Evas_Coord x, y, w, h; + Evas_Coord cx, cy, cw, ch; + + sd = data; + + if(!sd->is_dragging) return; + + if(sd->direction = E_SCROLLBAR_VERTICAL) + { + if (sd->drag.y < sd->confine.y) + { + evas_object_move(sd->drag.object, sd->drag.x, sd->confine.y); + sd->drag.y = sd->confine.y; + return; + } + + if (sd->drag.y == sd->confine.y && ev->cur.canvas.y - sd->my < sd->confine.y) + return; + + if (sd->drag.y + sd->drag.h > sd->confine.y + sd->confine.h) + { + evas_object_move(sd->drag.object, sd->drag.x, sd->confine.y + sd->confine.h - sd->drag.h); + sd->drag.y = sd->confine.y + sd->confine.h - sd->drag.h; + return; + } + + if (sd->drag.y + sd->drag.h == sd->confine.y + sd->confine.h && + ev->cur.canvas.y + sd->my > sd->confine.y + sd->confine.h) + return; + + evas_object_move(sd->drag.object, sd->drag.x, ev->cur.canvas.y - sd->my); + sd->drag.y = ev->cur.canvas.y - sd->my; + } +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v retrieving revision 1.110 retrieving revision 1.111 diff -u -3 -r1.110 -r1.111 --- e_int_menus.c 25 Oct 2005 01:03:50 -0000 1.110 +++ e_int_menus.c 27 Oct 2005 10:19:43 -0000 1.111 @@ -614,11 +614,10 @@ _e_int_menus_eapedit_item_cb(void *data, E_Menu *m, E_Menu_Item *mi) { /* This is temporarily put here so we can test the eap editor */ - E_App_Edit *eap_edit; E_App *a; a = e_app_empty_new(NULL); - eap_edit = e_eap_edit_show(m->zone->container, a); + e_eap_edit_show(m->zone->container, a); } static void ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today * Register for a JBoss Training Course Free Certification Exam for All Training Attendees Through End of 2005 Visit http://www.jboss.com/services/certification for more information _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs