Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_config.c e_fm.c e_fm.h e_int_config_mousebindings.c Log Message: menus for fm2 can be replaced by callbacks - and selected entries turned off. fix default wheel bindinmgs too =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.212 retrieving revision 1.213 diff -u -3 -r1.212 -r1.213 --- e_config.c 28 Oct 2006 01:32:43 -0000 1.212 +++ e_config.c 31 Oct 2006 14:37:31 -0000 1.213 @@ -1072,31 +1072,7 @@ //FIXME: If new wheel binding are added/changed/modified, then do not //forget to reflect those changes in e_int_config_mousebinding.c in //_restore_defaults_cb function - - CFG_WHEELBIND(E_BINDING_CONTEXT_CONTAINER, 0, -1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND(E_BINDING_CONTEXT_CONTAINER, 1, -1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND(E_BINDING_CONTEXT_CONTAINER, 0, 1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); - CFG_WHEELBIND(E_BINDING_CONTEXT_CONTAINER, 1, 1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); - CFG_WHEELBIND(E_BINDING_CONTEXT_POPUP, 0, -1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND(E_BINDING_CONTEXT_POPUP, 1, -1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND(E_BINDING_CONTEXT_POPUP, 0, 1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); - CFG_WHEELBIND(E_BINDING_CONTEXT_POPUP, 1, 1, - E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); + CFG_WHEELBIND(E_BINDING_CONTEXT_CONTAINER, 0, -1, E_BINDING_MODIFIER_ALT, 0, "desk_linear_flip_by", "-1"); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_fm.c,v retrieving revision 1.98 retrieving revision 1.99 diff -u -3 -r1.98 -r1.99 --- e_fm.c 29 Oct 2006 09:31:12 -0000 1.98 +++ e_fm.c 31 Oct 2006 14:37:31 -0000 1.99 @@ -53,7 +53,8 @@ struct { void (*func) (void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info); void *data; - } start, end; + } start, end, replace; + E_Fm2_Menu_Flags flags; } icon_menu; Evas_List *icons; @@ -577,6 +578,19 @@ } EAPI void +e_fm2_icon_menu_replace_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info), void *data) +{ + E_Fm2_Smart_Data *sd; + + sd = evas_object_smart_data_get(obj); + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + sd->icon_menu.replace.func = func; + sd->icon_menu.replace.data = data; +} + +EAPI void e_fm2_icon_menu_start_extend_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info), void *data) { E_Fm2_Smart_Data *sd; @@ -4130,61 +4144,80 @@ mn = e_menu_new(); e_menu_category_set(mn, "e/fileman/action"); - - if (sd->icon_menu.start.func) - { - sd->icon_menu.start.func(sd->icon_menu.start.data, sd->obj, mn, NULL); - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - } - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Refresh View")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/refresh"), - "e/fileman/button/refresh"); - e_menu_item_callback_set(mi, _e_fm2_refresh, sd); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Show Hidden Files")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/hidden_files"), - "e/fileman/button/hidden_files"); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, sd->show_hidden_files); - e_menu_item_callback_set(mi, _e_fm2_toggle_hidden_files, sd); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Remember Ordering")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/ordering"), - "e/fileman/button/ordering"); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, sd->order_file); - e_menu_item_callback_set(mi, _e_fm2_toggle_ordering, sd); - if (ecore_file_can_write(sd->realpath)) + if (sd->icon_menu.replace.func) { - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("New Directory")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/new_dir"), - "e/fileman/button/new_dir"); - e_menu_item_callback_set(mi, _e_fm2_new_directory, sd); + sd->icon_menu.replace.func(sd->icon_menu.replace.data, sd->obj, mn, NULL); } - - if (sd->icon_menu.end.func) - { - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - sd->icon_menu.end.func(sd->icon_menu.end.data, sd->obj, mn, NULL); + else + { + if (sd->icon_menu.start.func) + { + sd->icon_menu.start.func(sd->icon_menu.start.data, sd->obj, mn, NULL); + mi = e_menu_item_new(mn); + e_menu_item_separator_set(mi, 1); + } + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_REFRESH) + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Refresh View")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/refresh"), + "e/fileman/button/refresh"); + e_menu_item_callback_set(mi, _e_fm2_refresh, sd); + } + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_SHOW_HIDDEN) + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Show Hidden Files")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/hidden_files"), + "e/fileman/button/hidden_files"); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, sd->show_hidden_files); + e_menu_item_callback_set(mi, _e_fm2_toggle_hidden_files, sd); + } + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_REMEMBER_ORDERING) + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Remember Ordering")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/ordering"), + "e/fileman/button/ordering"); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, sd->order_file); + e_menu_item_callback_set(mi, _e_fm2_toggle_ordering, sd); + } + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_NEW_DIRECTORY) + { + if (ecore_file_can_write(sd->realpath)) + { + mi = e_menu_item_new(mn); + e_menu_item_separator_set(mi, 1); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("New Directory")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/new_dir"), + "e/fileman/button/new_dir"); + e_menu_item_callback_set(mi, _e_fm2_new_directory, sd); + } + } + + if (sd->icon_menu.end.func) + { + mi = e_menu_item_new(mn); + e_menu_item_separator_set(mi, 1); + sd->icon_menu.end.func(sd->icon_menu.end.data, sd->obj, mn, NULL); + } } man = e_manager_current_get(); @@ -4240,130 +4273,154 @@ mn = e_menu_new(); e_menu_category_set(mn, "e/fileman/action"); - if (sd->icon_menu.start.func) - { - sd->icon_menu.start.func(sd->icon_menu.start.data, sd->obj, mn, &(ic->info)); - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - } - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Refresh View")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/refresh"), - "e/fileman/button/refresh"); - e_menu_item_callback_set(mi, _e_fm2_refresh, ic->sd); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Show Hidden Files")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/hidden_files"), - "e/fileman/button/hidden_files"); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, sd->show_hidden_files); - e_menu_item_callback_set(mi, _e_fm2_toggle_hidden_files, sd); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Remember Ordering")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/ordering"), - "e/fileman/button/ordering"); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, sd->order_file); - e_menu_item_callback_set(mi, _e_fm2_toggle_ordering, sd); - - if (ecore_file_can_write(sd->realpath)) - { - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("New Directory")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/new_dir"), - "e/fileman/button/new_dir"); - e_menu_item_callback_set(mi, _e_fm2_new_directory, ic->sd); - - } - - can_w = 0; - can_w2 = 1; - if (ic->sd->order_file) + if (sd->icon_menu.replace.func) { - snprintf(buf, sizeof(buf), "%s/.order", sd->realpath); - can_w2 = ecore_file_can_write(buf); + sd->icon_menu.replace.func(sd->icon_menu.replace.data, sd->obj, mn, NULL); } - if (ic->info.pseudo_link) - snprintf(buf, sizeof(buf), "%s/%s", ic->info.pseudo_dir, ic->info.file); else - snprintf(buf, sizeof(buf), "%s/%s", sd->realpath, ic->info.file); - if ((ic->info.link) && (!ic->info.pseudo_link)) { - struct stat st; + if (sd->icon_menu.start.func) + { + sd->icon_menu.start.func(sd->icon_menu.start.data, sd->obj, mn, NULL); + mi = e_menu_item_new(mn); + e_menu_item_separator_set(mi, 1); + } + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_REFRESH) + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Refresh View")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/refresh"), + "e/fileman/button/refresh"); + e_menu_item_callback_set(mi, _e_fm2_refresh, sd); + } + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_SHOW_HIDDEN) + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Show Hidden Files")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/hidden_files"), + "e/fileman/button/hidden_files"); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, sd->show_hidden_files); + e_menu_item_callback_set(mi, _e_fm2_toggle_hidden_files, sd); + } + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_REMEMBER_ORDERING) + { + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Remember Ordering")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/ordering"), + "e/fileman/button/ordering"); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, sd->order_file); + e_menu_item_callback_set(mi, _e_fm2_toggle_ordering, sd); + } - if (lstat(buf, &st) == 0) + if (!sd->icon_menu.flags & E_FM2_MENU_NO_NEW_DIRECTORY) + { + if (ecore_file_can_write(sd->realpath)) + { + mi = e_menu_item_new(mn); + e_menu_item_separator_set(mi, 1); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("New Directory")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/new_dir"), + "e/fileman/button/new_dir"); + e_menu_item_callback_set(mi, _e_fm2_new_directory, sd); + } + } + + can_w = 0; + can_w2 = 1; + if (ic->sd->order_file) + { + snprintf(buf, sizeof(buf), "%s/.order", sd->realpath); + can_w2 = ecore_file_can_write(buf); + } + if (ic->info.pseudo_link) + snprintf(buf, sizeof(buf), "%s/%s", ic->info.pseudo_dir, ic->info.file); + else + snprintf(buf, sizeof(buf), "%s/%s", sd->realpath, ic->info.file); + if ((ic->info.link) && (!ic->info.pseudo_link)) { - if (st.st_uid == getuid()) + struct stat st; + + if (lstat(buf, &st) == 0) { - if (st.st_mode & S_IWUSR) can_w = 1; + if (st.st_uid == getuid()) + { + if (st.st_mode & S_IWUSR) can_w = 1; + } + else if (st.st_gid == getgid()) + { + if (st.st_mode & S_IWGRP) can_w = 1; + } + else + { + if (st.st_mode & S_IWOTH) can_w = 1; + } } - else if (st.st_gid == getgid()) + } + else + { + if (ic->info.pseudo_link) + snprintf(buf, sizeof(buf), "%s/.order", sd->realpath); + if (ecore_file_can_write(buf)) can_w = 1; + } + + sel = e_fm2_selected_list_get(ic->sd->obj); + if ((!sel) || evas_list_count(sel) == 1) + { + snprintf(buf, sizeof(buf), "%s/%s", sd->realpath, ic->info.file); + protected = e_filereg_file_protected(buf); + } + else + protected = 0; + + if ((can_w) && (can_w2) && !(protected)) + { + mi = e_menu_item_new(mn); + e_menu_item_separator_set(mi, 1); + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_DELETE) { - if (st.st_mode & S_IWGRP) can_w = 1; + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Delete")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/delete"), + "e/fileman/button/delete"); + e_menu_item_callback_set(mi, _e_fm2_file_delete, ic); } - else + + if (!sd->icon_menu.flags & E_FM2_MENU_NO_RENAME) { - if (st.st_mode & S_IWOTH) can_w = 1; + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Rename")); + e_menu_item_icon_edje_set(mi, + e_theme_edje_file_get("base/theme/fileman", + "e/fileman/button/rename"), + "e/fileman/button/rename"); + e_menu_item_callback_set(mi, _e_fm2_file_rename, ic); } } - } - else - { - if (ic->info.pseudo_link) - snprintf(buf, sizeof(buf), "%s/.order", sd->realpath); - if (ecore_file_can_write(buf)) can_w = 1; - } - - sel = e_fm2_selected_list_get(ic->sd->obj); - if ((!sel) || evas_list_count(sel) == 1) - { - snprintf(buf, sizeof(buf), "%s/%s", sd->realpath, ic->info.file); - protected = e_filereg_file_protected(buf); - } - else - protected = 0; - - if ((can_w) && (can_w2) && !(protected)) - { - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Delete")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/delete"), - "e/fileman/button/delete"); - e_menu_item_callback_set(mi, _e_fm2_file_delete, ic); - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("Rename")); - e_menu_item_icon_edje_set(mi, - e_theme_edje_file_get("base/theme/fileman", - "e/fileman/button/rename"), - "e/fileman/button/rename"); - e_menu_item_callback_set(mi, _e_fm2_file_rename, ic); - } - - if (sd->icon_menu.end.func) - { - mi = e_menu_item_new(mn); - e_menu_item_separator_set(mi, 1); - sd->icon_menu.end.func(sd->icon_menu.end.data, sd->obj, mn, &(ic->info)); + if (sd->icon_menu.end.func) + { + mi = e_menu_item_new(mn); + e_menu_item_separator_set(mi, 1); + sd->icon_menu.end.func(sd->icon_menu.end.data, sd->obj, mn, &(ic->info)); + } } man = e_manager_current_get(); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_fm.h,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- e_fm.h 15 Oct 2006 08:37:07 -0000 1.25 +++ e_fm.h 31 Oct 2006 14:37:31 -0000 1.26 @@ -14,7 +14,15 @@ E_FM2_VIEW_MODE_CUSTOM_SMART_GRID_ICONS, /* icons go anywhere u drop them but try align to icons nearby */ E_FM2_VIEW_MODE_LIST /* vertical fileselector list */ } E_Fm2_View_Mode; - +typedef enum _E_Fm2_Menu_Flags +{ + E_FM2_MENU_NO_REFRESH = (1 << 0), + E_FM2_MENU_NO_SHOW_HIDDEN = (1 << 1), + E_FM2_MENU_NO_REMEMBER_ORDERING = (1 << 2), + E_FM2_MENU_NO_NEW_DIRECTORY = (1 << 3), + E_FM2_MENU_NO_DELETE = (1 << 4), + E_FM2_MENU_NO_RENAME = (1 << 5) +} E_Fm2_Menu_Flags; typedef struct _E_Fm2_Config E_Fm2_Config; typedef struct _E_Fm2_Icon_Info E_Fm2_Icon_Info; @@ -118,6 +126,7 @@ EAPI Evas_List *e_fm2_all_list_get(Evas_Object *obj); EAPI void e_fm2_select_set(Evas_Object *obj, const char *file, int select); EAPI void e_fm2_file_show(Evas_Object *obj, const char *file); +EAPI void e_fm2_icon_menu_replace_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info), void *data); EAPI void e_fm2_icon_menu_start_extend_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info), void *data); EAPI void e_fm2_icon_menu_end_extend_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info), void *data); EAPI void e_fm2_window_object_set(Evas_Object *obj, E_Object *eobj); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mousebindings.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_int_config_mousebindings.c 23 Oct 2006 20:43:11 -0000 1.7 +++ e_int_config_mousebindings.c 31 Oct 2006 14:37:31 -0000 1.8 @@ -665,22 +665,6 @@ bw->params = _params == NULL ? NULL : evas_stringshare_add(_params); \ cfdata->binding.wheel = evas_list_append(cfdata->binding.wheel, bw) - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_CONTAINER, 0, -1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_CONTAINER, 1, -1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_CONTAINER, 0, 1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_CONTAINER, 1, 1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_POPUP, 0, -1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_POPUP, 1, -1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "-1"); - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_POPUP, 0, 1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); - CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_POPUP, 1, 1, E_BINDING_MODIFIER_NONE, 1, - "desk_linear_flip_by", "1"); CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_CONTAINER, 0, -1, E_BINDING_MODIFIER_ALT, 0, "desk_linear_flip_by", "-1"); CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_CONTAINER, 1, -1, E_BINDING_MODIFIER_ALT, 0, ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs