From: Enlightenment C. <no...@cv...> - 2006-07-16 19:03:39
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes Modified Files: default_icons.edc Log Message: * Adding new "KEYS" icon for the E config panel and keybinding config dialog =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/default_icons.edc,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- default_icons.edc 5 Jul 2006 19:22:48 -0000 1.14 +++ default_icons.edc 17 Jul 2006 00:03:08 -0000 1.15 @@ -28,6 +28,7 @@ image: "e17_icon_font.png" LOSSY 90; image: "e17_icon_background.png" LOSSY 90; image: "e17_icon_mouse.png" LOSSY 90; + image: "e17_icon_keys.png" LOSSY 90; image: "e17_pager_window.png" COMP; @@ -546,6 +547,24 @@ max: 64 64; image { normal: "e17_icon_mouse.png"; + } + } + } + } +} +group { + name: "icons/enlightenment/keys"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + max: 64 64; + image { + normal: "e17_icon_keys.png"; } } } |
From: Enlightenment C. <no...@cv...> - 2006-07-17 13:24:19
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_int_menus.c Log Message: * New icon for the "Screen Lock" item in the E config panel. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_menus.c,v retrieving revision 1.141 retrieving revision 1.142 diff -u -3 -r1.141 -r1.142 --- e_int_menus.c 2 Jul 2006 12:51:57 -0000 1.141 +++ e_int_menus.c 17 Jul 2006 18:24:16 -0000 1.142 @@ -526,7 +526,7 @@ mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Lock Screen")); - e_util_menu_item_edje_icon_set(mi, "enlightenment/lock"); + e_util_menu_item_edje_icon_set(mi, "enlightenment/desklock"); e_menu_item_callback_set(mi, _e_int_menus_main_lock, NULL); mi = e_menu_item_new(m); |
From: Enlightenment C. <no...@cv...> - 2006-07-17 13:24:49
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes Modified Files: default_icons.edc Log Message: * New icon for the "Screen Lock" item in the E config panel. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/default_icons.edc,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- default_icons.edc 17 Jul 2006 00:03:08 -0000 1.15 +++ default_icons.edc 17 Jul 2006 18:24:16 -0000 1.16 @@ -29,6 +29,7 @@ image: "e17_icon_background.png" LOSSY 90; image: "e17_icon_mouse.png" LOSSY 90; image: "e17_icon_keys.png" LOSSY 90; + image: "e17_icon_desklock.png" LOSSY 90; image: "e17_pager_window.png" COMP; @@ -565,6 +566,24 @@ max: 64 64; image { normal: "e17_icon_keys.png"; + } + } + } + } +} +group { + name: "icons/enlightenment/desklock"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + max: 64 64; + image { + normal: "e17_icon_desklock.png"; } } } |
From: Enlightenment C. <no...@cv...> - 2006-07-17 13:24:49
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Modified Files: Makefile.am Added Files: e17_icon_desklock.png Log Message: * New icon for the "Screen Lock" item in the E config panel. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/images/Makefile.am,v retrieving revision 1.61 retrieving revision 1.62 diff -u -3 -r1.61 -r1.62 --- Makefile.am 17 Jul 2006 00:03:08 -0000 1.61 +++ Makefile.am 17 Jul 2006 18:24:16 -0000 1.62 @@ -380,6 +380,7 @@ e17_icon_screen_vflip.png \ e17_icon_mouse.png \ e17_icon_keys.png \ +e17_icon_desklock.png \ e17_button_detail_paste.png \ e17_button_detail_arrange_name.png \ e17_button_detail_properties.png \ |
From: Enlightenment C. <no...@cv...> - 2006-07-17 19:30:41
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Modified Files: e17_icon_desklock.png Log Message: much better icon for "Screen Lock" item in the config panel. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/images/e17_icon_desklock.png,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 Binary files /tmp/cvs4RbfAV and /tmp/cvsTrwWdZ differ |
From: Enlightenment C. <no...@cv...> - 2006-07-17 19:54:07
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Modified Files: Makefile.am Added Files: e17_icon_shelf.png Log Message: * Adding an icon for "Shelves" config item in the config panel. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/images/Makefile.am,v retrieving revision 1.62 retrieving revision 1.63 diff -u -3 -r1.62 -r1.63 --- Makefile.am 17 Jul 2006 18:24:16 -0000 1.62 +++ Makefile.am 18 Jul 2006 00:54:04 -0000 1.63 @@ -381,6 +381,7 @@ e17_icon_mouse.png \ e17_icon_keys.png \ e17_icon_desklock.png \ +e17_icon_shelf.png \ e17_button_detail_paste.png \ e17_button_detail_arrange_name.png \ e17_button_detail_properties.png \ |
From: Enlightenment C. <no...@cv...> - 2006-07-17 19:54:35
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes Modified Files: default_icons.edc Log Message: * Adding an icon for "Shelves" config item in the config panel. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/default_icons.edc,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- default_icons.edc 17 Jul 2006 18:24:16 -0000 1.16 +++ default_icons.edc 18 Jul 2006 00:54:04 -0000 1.17 @@ -30,6 +30,7 @@ image: "e17_icon_mouse.png" LOSSY 90; image: "e17_icon_keys.png" LOSSY 90; image: "e17_icon_desklock.png" LOSSY 90; + image: "e17_icon_shelf.png" LOSSY 90; image: "e17_pager_window.png" COMP; @@ -584,6 +585,24 @@ max: 64 64; image { normal: "e17_icon_desklock.png"; + } + } + } + } +} +group { + name: "icons/enlightenment/shelf"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + max: 64 64; + image { + normal: "e17_icon_shelf.png"; } } } |
From: Enlightenment C. <no...@cv...> - 2006-07-27 23:44:08
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e Modified Files: TODO Log Message: bug++. The maximaze state of the window has to be droped to non-maximazed state if window was resized. Otherwise on E restart it gets maximized. =================================================================== RCS file: /cvs/e/e17/apps/e/TODO,v retrieving revision 1.385 retrieving revision 1.386 diff -u -3 -r1.385 -r1.386 --- TODO 27 Jul 2006 19:40:20 -0000 1.385 +++ TODO 28 Jul 2006 04:44:02 -0000 1.386 @@ -36,6 +36,9 @@ * BUG: Hiding the label of e_widget_slider causes the slider line to disappear * BUG: Window locks should be honored by the pager (e.g. Lock me from changing position) +* BUG: If the window is resized manually when it is maximized, the maximize state + has to be droped to non-maximized. Otherwise on E restart window gets maximized + again ]]] [[[ |
From: Enlightenment C. <no...@cv...> - 2006-08-03 10:35:43
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_int_gadcon_config.c Log Message: * no need to disable the "Add" button after the gadget was added. If I want consequently add the same gadget more than once I need to do too much mouse acions. * no need to disable the "Delete" button. The reasoning is the same. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_gadcon_config.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- e_int_gadcon_config.c 21 Jul 2006 17:28:15 -0000 1.26 +++ e_int_gadcon_config.c 3 Aug 2006 15:35:38 -0000 1.27 @@ -159,8 +159,6 @@ _load_selected_gadgets(cfdata); e_widget_ilist_selected_set(cfdata->o_instances, e_widget_ilist_count(cfdata->o_instances) - 1); - - e_widget_disabled_set(cfdata->o_add, 1); } static void @@ -185,8 +183,16 @@ _load_selected_gadgets(cfdata); - e_widget_disabled_set(cfdata->o_remove, 1); - + if (i >= evas_list_count(cfdata->cf_gc->clients)) + i = evas_list_count(cfdata->cf_gc->clients) - 1; + + if (i < 0) + e_widget_disabled_set(cfdata->o_remove, 1); + else + { + e_widget_ilist_selected_set(cfdata->o_instances, i); + e_widget_disabled_set(cfdata->o_remove, 0); + } e_gadcon_unpopulate(cfdata->gc); e_gadcon_populate(cfdata->gc); e_config_save_queue(); |
From: Enlightenment C. <no...@cv...> - 2006-08-22 14:20:04
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes Modified Files: default_icons.edc Log Message: Screen Resolution and Window Focus icons for E config panel from Luchezar 'ManowarrioR' P.Petkov =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/default_icons.edc,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- default_icons.edc 22 Aug 2006 07:39:10 -0000 1.22 +++ default_icons.edc 22 Aug 2006 14:19:59 -0000 1.23 @@ -32,6 +32,9 @@ image: "e17_icon_desklock.png" LOSSY 90; image: "e17_icon_shelf.png" LOSSY 90; + image: "e17_icon_window_focus.png" LOSSY 90; + image: "e17_icon_screen_resolution.png" LOSSY 90; + image: "e17_pager_window.png" COMP; image: "e17_icon_right_arrow.png" COMP; @@ -311,6 +314,25 @@ } } group { + name: "icons/enlightenment/focus"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_window_focus.png"; + } + } + } + } +} +group { name: "icons/enlightenment/modules"; max: 64 64; parts { @@ -628,6 +650,25 @@ max: 64 64; image { normal: "e17_icon_desklock.png"; + } + } + } + } +} +group { + name: "icons/enlightenment/screen_resolution"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_screen_resolution.png"; } } } |
From: Enlightenment C. <no...@cv...> - 2006-08-22 14:20:04
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Modified Files: Makefile.am Added Files: e17_icon_screen_resolution.png e17_icon_window_focus.png Log Message: Screen Resolution and Window Focus icons for E config panel from Luchezar 'ManowarrioR' P.Petkov =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/images/Makefile.am,v retrieving revision 1.67 retrieving revision 1.68 diff -u -3 -r1.67 -r1.68 --- Makefile.am 15 Aug 2006 00:54:32 -0000 1.67 +++ Makefile.am 22 Aug 2006 14:19:59 -0000 1.68 @@ -311,7 +311,9 @@ e17_icon_run.png \ e17_icon_theme.png \ e17_icon_windows.png \ +e17_icon_window_focus.png \ e17_icon_lost_windows.png \ +e17_icon_screen_resolution.png \ e17_pointer.png \ e17_pointer_mono.png \ e17_dialog_watermark.png \ |
From: Enlightenment C. <no...@cv...> - 2006-08-23 12:49:13
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: Makefile.am e_configure.c e_includes.h Added Files: e_int_config_mousebindings.c e_int_config_mousebindings.h Log Message: New Mouse Bindings dialog. Plz try, test, and let me know, if something is wrong. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/Makefile.am,v retrieving revision 1.143 retrieving revision 1.144 diff -u -3 -r1.143 -r1.144 --- Makefile.am 22 Aug 2006 00:56:03 -0000 1.143 +++ Makefile.am 23 Aug 2006 12:49:11 -0000 1.144 @@ -132,6 +132,7 @@ e_int_config_icon_themes.h \ e_int_config_menus.h \ e_int_config_keybindings.h \ +e_int_config_mousebindings.h \ e_int_config_cursor.h \ e_int_config_fonts.h \ e_int_config_startup.h \ @@ -283,6 +284,7 @@ e_int_config_icon_themes.c \ e_int_config_menus.c \ e_int_config_keybindings.c \ +e_int_config_mousebindings.c \ e_int_config_cursor.c \ e_int_config_fonts.c \ e_int_config_startup.c \ =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.c,v retrieving revision 1.53 retrieving revision 1.54 diff -u -3 -r1.53 -r1.54 --- e_configure.c 23 Aug 2006 03:39:01 -0000 1.53 +++ e_configure.c 23 Aug 2006 12:49:11 -0000 1.54 @@ -80,6 +80,7 @@ e_configure_header_item_add(eco, "enlightenment/behavior", _("Behavior")); e_configure_standard_item_add(eco, "enlightenment/focus", _("Window Focus"), e_int_config_focus); e_configure_standard_item_add(eco, "enlightenment/keys", _("Key Bindings"), e_int_config_keybindings); + e_configure_standard_item_add(eco, "enlightenment/mouse_binding_left", _("Mouse Bindings"), e_int_config_mousebindings); e_configure_standard_item_add(eco, "enlightenment/menus", _("Menus"), e_int_config_menus); e_configure_header_item_add(eco, "enlightenment/misc", _("Miscellaneous")); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_includes.h,v retrieving revision 1.122 retrieving revision 1.123 diff -u -3 -r1.122 -r1.123 --- e_includes.h 22 Aug 2006 00:56:03 -0000 1.122 +++ e_includes.h 23 Aug 2006 12:49:11 -0000 1.123 @@ -105,6 +105,7 @@ #include "e_int_config_icon_themes.h" #include "e_int_config_menus.h" #include "e_int_config_keybindings.h" +#include "e_int_config_mousebindings.h" #include "e_int_config_cursor.h" #include "e_int_config_fonts.h" #include "e_int_config_startup.h" |
From: Enlightenment C. <no...@cv...> - 2006-08-23 12:49:43
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Modified Files: Makefile.am Added Files: e17_icon_mouse_bindings_left.png e17_icon_mouse_bindings_middle.png e17_icon_mouse_bindings_right.png e17_icon_mouse_bindings_scroll_down.png e17_icon_mouse_bindings_scroll_up.png Log Message: New Mouse Bindings dialog. Plz try, test, and let me know, if something is wrong. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/images/Makefile.am,v retrieving revision 1.69 retrieving revision 1.70 diff -u -3 -r1.69 -r1.70 --- Makefile.am 23 Aug 2006 00:42:16 -0000 1.69 +++ Makefile.am 23 Aug 2006 12:49:10 -0000 1.70 @@ -314,6 +314,11 @@ e17_icon_window_focus.png \ e17_icon_lost_windows.png \ e17_icon_screen_resolution.png \ +e17_icon_mouse_bindings_left.png \ +e17_icon_mouse_bindings_middle.png \ +e17_icon_mouse_bindings_right.png \ +e17_icon_mouse_bindings_scroll_up.png \ +e17_icon_mouse_bindings_scroll_down.png \ e17_pointer.png \ e17_pointer_mono.png \ e17_dialog_watermark.png \ |
From: Enlightenment C. <no...@cv...> - 2006-08-23 12:49:43
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes Modified Files: default_icons.edc Log Message: New Mouse Bindings dialog. Plz try, test, and let me know, if something is wrong. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/default_icons.edc,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- default_icons.edc 23 Aug 2006 03:39:01 -0000 1.24 +++ default_icons.edc 23 Aug 2006 12:49:10 -0000 1.25 @@ -40,6 +40,12 @@ image: "e17_icon_right_arrow.png" COMP; image: "e17_icon_up_arrow.png" COMP; image: "e17_icon_down_arrow.png" COMP; + + image: "e17_icon_mouse_bindings_left.png" COMP; + image: "e17_icon_mouse_bindings_middle.png" COMP; + image: "e17_icon_mouse_bindings_right.png" COMP; + image: "e17_icon_mouse_bindings_scroll_up.png" COMP; + image: "e17_icon_mouse_bindings_scroll_down.png" COMP; image: "e17_shelf_bottom_left.png" COMP; image: "e17_shelf_bottom.png" COMP; @@ -612,6 +618,101 @@ max: 64 64; image { normal: "e17_icon_mouse.png"; + } + } + } + } +} +group { + name: "e/icons/enlightenment/mouse_binding_left"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_mouse_bindings_left.png"; + } + } + } + } +} +group { + name: "e/icons/enlightenment/mouse_binding_middle"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_mouse_bindings_middle.png"; + } + } + } + } +} +group { + name: "e/icons/enlightenment/mouse_binding_right"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_mouse_bindings_right.png"; + } + } + } + } +} +group { + name: "e/icons/enlightenment/mouse_binding_scroll_up"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_mouse_bindings_scroll_up.png"; + } + } + } + } +} +group { + name: "e/icons/enlightenment/mouse_binding_scroll_down"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_mouse_bindings_scroll_down.png"; } } } |
From: Enlightenment C. <no...@cv...> - 2006-08-23 17:10:24
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_int_config_mousebindings.c Log Message: do not allow the dialog to be resized. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mousebindings.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_int_config_mousebindings.c 23 Aug 2006 12:49:11 -0000 1.1 +++ e_int_config_mousebindings.c 23 Aug 2006 17:10:17 -0000 1.2 @@ -497,8 +497,6 @@ _update_binding_action_list(cfdata); _update_delete_button(cfdata); - - e_dialog_resizable_set(cfd->dia, 1); return ol; } |
From: Enlightenment C. <no...@cv...> - 2006-08-31 04:16:46
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_config.c e_config.h e_configure.c e_gadcon.c e_gadcon.h e_int_config_keybindings.c e_int_config_mousebindings.c e_int_shelf_config.c e_shelf.c Log Message: Ehhhh. So stuff in one go. * Mouse Binding Dialog - dialog refactoring - no need to select modifiers, etc. Just click add button and do an action with a mouse. - new icons. Many thanks to Luchezar 'ManowarrioR' Petkov for great work on this icons. - extra mouse buttons and wheels are supported. - etc, just try and see. * Shelf - No re-population when "plain/inset" mode set. - Changing the orientation of the shelf horiz->vert does not screws up it look. - something else * Gadcon - No overlaping items in initial shelf. - Moving of items in gadcon is not problematic any more. Will not get any mess and overlaps in gadcon on moving. - Item sizing. If u size an item to the left it will be sized only to the left. - If gadcon clients take much more space than gadcon can display, they are resized starting from the biggest item(s). - Shrinked mode actions, moving/sizing, is not problematic. Everything works exactly in the same fasion as in non-shrinked mode. - etc. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.199 retrieving revision 1.200 diff -u -3 -r1.199 -r1.200 --- e_config.c 27 Aug 2006 05:14:01 -0000 1.199 +++ e_config.c 31 Aug 2006 04:16:43 -0000 1.200 @@ -90,6 +90,8 @@ E_CONFIG_VAL(D, T, geom.pos, INT); E_CONFIG_VAL(D, T, geom.size, INT); E_CONFIG_VAL(D, T, geom.res, INT); + E_CONFIG_VAL(D, T, state_info.seq, INT); + E_CONFIG_VAL(D, T, state_info.flags, INT); E_CONFIG_VAL(D, T, style, STR); E_CONFIG_VAL(D, T, autoscroll, UCHAR); E_CONFIG_VAL(D, T, resizable, UCHAR); @@ -1145,6 +1147,8 @@ cf_gcc->geom.res = _res; \ cf_gcc->geom.size = _size; \ cf_gcc->geom.pos = _pos; \ + cf_gcc->state_info.seq = 0; \ + cf_gcc->state_info.flags = 0; \ if (_style) cf_gcc->style = evas_stringshare_add(_style); \ else cf_gcc->style = NULL; \ cf_gcc->autoscroll = _autoscr; \ =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_config.h,v retrieving revision 1.113 retrieving revision 1.114 diff -u -3 -r1.113 -r1.114 --- e_config.h 24 Aug 2006 21:58:59 -0000 1.113 +++ e_config.h 31 Aug 2006 04:16:43 -0000 1.114 @@ -50,7 +50,7 @@ /* increment this whenever a new set of config values are added but the users * config doesn't need top be wiped - simply new values need to be put in */ -#define E_CONFIG_FILE_GENERATION 0x0100 +#define E_CONFIG_FILE_GENERATION 0x0101 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 @@ -113,10 +113,10 @@ Evas_List *font_fallbacks; // GUI Evas_List *font_defaults; // GUI Evas_List *themes; // GUI - Evas_List *mouse_bindings; + Evas_List *mouse_bindings; // GUI Evas_List *key_bindings; // GUI Evas_List *signal_bindings; - Evas_List *wheel_bindings; + Evas_List *wheel_bindings; // GUI Evas_List *path_append_data; // GUI Evas_List *path_append_images; // GUI Evas_List *path_append_fonts; // GUI @@ -333,6 +333,9 @@ struct { int pos, size, res; } geom; + struct { + int seq, flags; + } state_info; const char *style; unsigned char autoscroll; unsigned char resizable; =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -3 -r1.55 -r1.56 --- e_configure.c 28 Aug 2006 11:22:27 -0000 1.55 +++ e_configure.c 31 Aug 2006 04:16:43 -0000 1.56 @@ -80,7 +80,7 @@ e_configure_header_item_add(eco, "enlightenment/behavior", _("Behavior")); e_configure_standard_item_add(eco, "enlightenment/focus", _("Window Focus"), e_int_config_focus); e_configure_standard_item_add(eco, "enlightenment/keys", _("Key Bindings"), e_int_config_keybindings); - e_configure_standard_item_add(eco, "enlightenment/mouse_binding_left", _("Mouse Bindings"), e_int_config_mousebindings); + e_configure_standard_item_add(eco, "enlightenment/mouse_clean", _("Mouse Bindings"), e_int_config_mousebindings); e_configure_standard_item_add(eco, "enlightenment/menus", _("Menus"), e_int_config_menus); e_configure_header_item_add(eco, "enlightenment/misc", _("Miscellaneous")); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- e_gadcon.c 23 Aug 2006 03:39:02 -0000 1.40 +++ e_gadcon.c 31 Aug 2006 04:16:43 -0000 1.41 @@ -6,7 +6,7 @@ static void _e_gadcon_free(E_Gadcon *gc); static void _e_gadcon_client_free(E_Gadcon_Client *gcc); -static void _e_gadcon_movereisze_handle(E_Gadcon_Client *gcc); +static void _e_gadcon_moveresize_handle(E_Gadcon_Client *gcc); static int _e_gadcon_cb_client_scroll_timer(void *data); static int _e_gadcon_cb_client_scroll_animator(void *data); static void _e_gadcon_cb_client_frame_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); @@ -42,12 +42,117 @@ static int e_gadcon_layout_pack(Evas_Object *obj, Evas_Object *child); static void e_gadcon_layout_pack_size_set(Evas_Object *obj, int size); static void e_gadcon_layout_pack_request_set(Evas_Object *obj, int pos, int size); -static void e_gadcon_layout_pack_options_set(Evas_Object *obj, int pos, int size, int res); +static void e_gadcon_layout_pack_options_set(Evas_Object *obj, E_Gadcon_Client *gcc); static void e_gadcon_layout_pack_min_size_set(Evas_Object *obj, int w, int h); static void e_gadcon_layout_pack_aspect_set(Evas_Object *obj, int w, int h); static void e_gadcon_layout_pack_aspect_pad_set(Evas_Object *obj, int w, int h); static void e_gadcon_layout_unpack(Evas_Object *obj); +/********************/ +#define E_LAYOUT_ITEM_DRAG_RESIST_LEVEL 10 + +typedef struct _E_Smart_Data E_Smart_Data; +typedef struct _E_Layout_Item_Container E_Layout_Item_Container; + +static void _e_gadcon_client_current_position_sync(E_Gadcon_Client *gcc); +static void _e_gadcon_layout_smart_sync_clients(E_Gadcon *gc); +static void _e_gadcon_layout_smart_gadcon_position_shrinked_mode(E_Smart_Data *sd); +static void _e_gadcon_layout_smart_gadcon_clients_save(E_Smart_Data *sd); +static void _e_gadcon_layout_smart_gadcons_asked_position_set(E_Smart_Data *sd); +static Evas_List *_e_gadcon_layout_smart_gadcons_wrap(E_Smart_Data *sd); +static void _e_gadcon_layout_smart_gadcons_position(E_Smart_Data *sd, Evas_List **list); +static void _e_gadcon_layout_smart_gadcons_position_static(E_Smart_Data *sd, Evas_List **list); +static E_Layout_Item_Container * _e_gadcon_layout_smart_containers_position_adjust(E_Smart_Data *sd, E_Layout_Item_Container *lc, E_Layout_Item_Container *lc2); +static void _e_gadcon_layout_smart_position_items_inside_container(E_Smart_Data *sd, E_Layout_Item_Container *lc); +static void _e_gadcon_layout_smart_containers_merge(E_Smart_Data *sd, E_Layout_Item_Container *lc, E_Layout_Item_Container *lc2); +static void _e_gadcon_layout_smart_restore_gadcons_position_before_move(E_Smart_Data *sd, E_Layout_Item_Container **lc_moving, E_Layout_Item_Container *lc_back, Evas_List **con_list); + +typedef enum _E_Gadcon_Layout_Item_State +{ + E_LAYOUT_ITEM_STATE_NONE, + E_LAYOUT_ITEM_STATE_POS_INC, + E_LAYOUT_ITEM_STATE_POS_DEC, + E_LAYOUT_ITEM_STATE_SIZE_MIN_END_INC, + E_LAYOUT_ITEM_STATE_SIZE_MIN_END_DEC, + E_LAYOUT_ITEM_STATE_SIZE_MAX_END_INC, + E_LAYOUT_ITEM_STATE_SIZE_MAX_END_DEC, +} E_Gadcon_Layout_Item_State; + +typedef enum _E_Gadcon_Layout_Item_Flags +{ + E_GADCON_LAYOUT_ITEM_LOCK_NONE = 0x00000000, + E_GADCON_LAYOUT_ITEM_LOCK_POSITION = 0x00000001, + E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE = 0x00000002 +} E_Gadcon_Layout_Item_Flags; + +typedef enum _E_Layout_Item_Container_State +{ + E_LAYOUT_ITEM_CONTAINER_STATE_NONE, + E_LAYOUT_ITEM_CONTAINER_STATE_POS_INC, + E_LAYOUT_ITEM_CONTAINER_STATE_POS_DEC, + E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MIN_END_INC, + E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MIN_END_DEC, + E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MAX_END_INC, + E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MAX_END_DEC, + E_LAYOUT_ITEM_CONTAINER_STATE_POS_LOCKED +} E_Layout_Item_Container_State; + +struct _E_Layout_Item_Container +{ + int pos, size, prev_pos, prev_size; + + struct { + int min_seq, max_seq; + } state_info; + + E_Smart_Data *sd; + Evas_List *items; + + E_Layout_Item_Container_State state; +}; + +#define LC_FREE(__lc) \ + if (__lc->items) \ + evas_list_free(__lc->items); \ + E_FREE(__lc) + +#define E_LAYOUT_ITEM_CONTAINER_STATE_SET(__con_state, __bi_state) \ + if (__bi_state == E_LAYOUT_ITEM_STATE_NONE) \ + __con_state = E_LAYOUT_ITEM_CONTAINER_STATE_NONE; \ + else if (__bi_state == E_LAYOUT_ITEM_STATE_POS_INC) \ + __con_state = E_LAYOUT_ITEM_CONTAINER_STATE_POS_INC; \ + else if (__bi_state == E_LAYOUT_ITEM_STATE_POS_DEC) \ + __con_state = E_LAYOUT_ITEM_CONTAINER_STATE_POS_DEC; \ + else if (__bi_state == E_LAYOUT_ITEM_STATE_SIZE_MIN_END_INC) \ + __con_state = E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MIN_END_INC; \ + else if (__bi_state == E_LAYOUT_ITEM_STATE_SIZE_MIN_END_DEC) \ + __con_state = E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MIN_END_DEC; \ + else if (__bi_state == E_LAYOUT_ITEM_STATE_SIZE_MAX_END_INC) \ + __con_state = E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MAX_END_INC; \ + else if (__bi_state == E_LAYOUT_ITEM_STATE_SIZE_MAX_END_DEC) \ + __con_state = E_LAYOUT_ITEM_CONTAINER_STATE_SIZE_MAX_END_DEC + +#define LC_OVERLAP(__lc, __lc2) \ + ( __lc2->pos >= __lc->pos && (__lc2->pos < (__lc->pos + __lc->size)) || \ + __lc->pos >= __lc2->pos && (__lc->pos < (__lc2->pos + __lc2->size))) + +#define E_LAYOUT_ITEM_CONTAINER_SIZE_CHANGE_BY(__lc, __bi, __increase) \ + if (__lc->sd->horizontal) \ + { \ + if (__increase) \ + __lc->size += __bi->w; \ + else \ + __lc->size -= __bi->w; \ + } \ + else \ + { \ + if (__increase) \ + __lc->size += __bi->h; \ + else \ + __lc->size -= __bi->h; \ + } +/********************/ + static Evas_Hash *providers = NULL; static Evas_List *providers_list = NULL; static Evas_List *gadcons = NULL; @@ -243,20 +348,19 @@ gcc->config.pos = cf_gcc->geom.pos; gcc->config.size = cf_gcc->geom.size; gcc->config.res = cf_gcc->geom.res; + gcc->state_info.seq = cf_gcc->state_info.seq; + gcc->state_info.flags = cf_gcc->state_info.flags; if (gcc->o_frame) - e_gadcon_layout_pack_options_set(gcc->o_frame, - gcc->config.pos, - gcc->config.size, - gcc->config.res); + e_gadcon_layout_pack_options_set(gcc->o_frame, gcc); else - e_gadcon_layout_pack_options_set(gcc->o_base, - gcc->config.pos, - gcc->config.size, - gcc->config.res); + e_gadcon_layout_pack_options_set(gcc->o_base, gcc); + e_gadcon_client_autoscroll_set(gcc, cf_gcc->autoscroll); e_gadcon_client_resizable_set(gcc, cf_gcc->resizable); if (gcc->client_class->func.orient) gcc->client_class->func.orient(gcc); + + _e_gadcon_client_save(gcc); } } } @@ -337,18 +441,17 @@ gcc->config.pos = cf_gcc->geom.pos; gcc->config.size = cf_gcc->geom.size; gcc->config.res = cf_gcc->geom.res; + gcc->state_info.seq = cf_gcc->state_info.seq; + gcc->state_info.flags = cf_gcc->state_info.flags; if (gcc->o_frame) - e_gadcon_layout_pack_options_set(gcc->o_frame, - gcc->config.pos, - gcc->config.size, - gcc->config.res); + e_gadcon_layout_pack_options_set(gcc->o_frame, gcc); else - e_gadcon_layout_pack_options_set(gcc->o_base, - gcc->config.pos, - gcc->config.size, - gcc->config.res); + e_gadcon_layout_pack_options_set(gcc->o_base, gcc); + if (gcc->client_class->func.orient) - gcc->client_class->func.orient(gcc); + gcc->client_class->func.orient(gcc); + + _e_gadcon_client_save(gcc); } } } @@ -767,7 +870,7 @@ else e_gadcon_layout_pack_min_size_set(gcc->o_base, w, h); } - _e_gadcon_movereisze_handle(gcc); + _e_gadcon_moveresize_handle(gcc); } EAPI void @@ -787,7 +890,7 @@ else e_gadcon_layout_pack_aspect_set(gcc->o_base, w, h); } - _e_gadcon_movereisze_handle(gcc); + _e_gadcon_moveresize_handle(gcc); } EAPI void @@ -807,8 +910,8 @@ } else { - e_gadcon_layout_pack_min_size_set(gcc->o_base, 0, 0); e_gadcon_layout_pack_aspect_set(gcc->o_base, 0, 0); + e_gadcon_layout_pack_min_size_set(gcc->o_base, 0, 0); } } else @@ -901,27 +1004,26 @@ E_Gadcon *gc; gcc = data; - gc = gcc->gadcon; + e_gadcon_layout_freeze(gcc->gadcon->o_container); if (gcc->autoscroll) gcc->autoscroll = 0; - else gcc->autoscroll = 1; + else gcc->autoscroll = 1; + e_gadcon_client_autoscroll_set(gcc, gcc->autoscroll); _e_gadcon_client_save(gcc); - e_gadcon_unpopulate(gc); - e_gadcon_populate(gc); + e_gadcon_layout_thaw(gcc->gadcon->o_container); } static void _e_gadcon_client_cb_menu_resizable(void *data, E_Menu *m, E_Menu_Item *mi) { E_Gadcon_Client *gcc; - E_Gadcon *gc; gcc = data; - gc = gcc->gadcon; + e_gadcon_layout_freeze(gcc->gadcon->o_container); if (gcc->resizable) gcc->resizable = 0; else gcc->resizable = 1; + e_gadcon_client_resizable_set(gcc, gcc->resizable); _e_gadcon_client_save(gcc); - e_gadcon_unpopulate(gc); - e_gadcon_populate(gc); + e_gadcon_layout_thaw(gcc->gadcon->o_container); } static void @@ -1156,7 +1258,7 @@ } static void -_e_gadcon_movereisze_handle(E_Gadcon_Client *gcc) +_e_gadcon_moveresize_handle(E_Gadcon_Client *gcc) { Evas_Coord x, y, w, h; @@ -1267,7 +1369,7 @@ E_Gadcon_Client *gcc; gcc = data; - _e_gadcon_movereisze_handle(gcc); + _e_gadcon_moveresize_handle(gcc); } static void @@ -1277,7 +1379,7 @@ E_Config_Gadcon *cf_gc; E_Config_Gadcon_Client *cf_gcc; int ok; - + ok = 0; for (l = e_config->gadcons; l; l = l->next) { @@ -1300,6 +1402,8 @@ cf_gcc->geom.pos = gcc->config.pos; cf_gcc->geom.size = gcc->config.size; cf_gcc->geom.res = gcc->config.res; + cf_gcc->state_info.seq = gcc->state_info.seq; + cf_gcc->state_info.flags = gcc->state_info.flags; cf_gcc->autoscroll = gcc->autoscroll; if (cf_gcc->style) evas_stringshare_del(cf_gcc->style); cf_gcc->style = NULL; @@ -1329,6 +1433,8 @@ cf_gcc->geom.pos = gcc->config.pos; cf_gcc->geom.size = gcc->config.size; cf_gcc->geom.res = gcc->config.res; + cf_gcc->state_info.seq = gcc->state_info.seq; + cf_gcc->state_info.flags = gcc->state_info.flags; cf_gcc->autoscroll = gcc->autoscroll; if (cf_gcc->style) evas_stringshare_del(cf_gcc->style); cf_gcc->style = NULL; @@ -1336,7 +1442,6 @@ cf_gcc->style = evas_stringshare_add(gcc->style); cf_gcc->resizable = gcc->resizable; cf_gc->clients = evas_list_append(cf_gc->clients, cf_gcc); - ok++; } e_config_save_queue(); } @@ -1473,20 +1578,13 @@ _e_gadcon_cb_signal_move_start(void *data, Evas_Object *obj, const char *emission, const char *source) { E_Gadcon_Client *gcc; - Evas_Coord x, y; gcc = data; evas_object_raise(gcc->o_event); evas_object_stack_below(gcc->o_control, gcc->o_event); gcc->moving = 1; evas_pointer_canvas_xy_get(gcc->gadcon->evas, &gcc->dx, &gcc->dy); - evas_object_geometry_get(gcc->gadcon->o_container, &x, &y, NULL, NULL); - if (gcc->o_frame) - evas_object_geometry_get(gcc->o_frame, &gcc->sx, &gcc->sy, NULL, NULL); - else - evas_object_geometry_get(gcc->o_base, &gcc->sx, &gcc->sy, NULL, NULL); - gcc->sx -= x; - gcc->sy -= y; + gcc->state_info.resist = 0; } static void @@ -1495,8 +1593,11 @@ E_Gadcon_Client *gcc; gcc = data; - gcc->moving = 0; - _e_gadcon_client_save(gcc); + gcc->moving = 0; + + gcc->state_info.state = E_LAYOUT_ITEM_STATE_NONE; + gcc->state_info.resist = 0; + _e_gadcon_layout_smart_sync_clients(gcc->gadcon); } static void @@ -1509,18 +1610,61 @@ if (!gcc->moving) return; evas_pointer_canvas_xy_get(gcc->gadcon->evas, &x, &y); x = x - gcc->dx; - y = y - gcc->dy; + y = y - gcc->dy; + + gcc->state_info.flags = E_GADCON_LAYOUT_ITEM_LOCK_POSITION | E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + _e_gadcon_client_current_position_sync(gcc); + if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) + { + if (x > 0) + { + if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_INC) + gcc->state_info.resist = 0; + gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_INC; + x = 1; + } + else if (x < 0) + { + if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_DEC) + gcc->state_info.resist = 0; + gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_DEC; + x = -1; // would like to move by one pixel to be safe + } + } + else + { + if (y > 0) + { + if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_INC) + gcc->state_info.resist = 0; + gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_INC; + y = 1; + } + else if (y < 0) + { + if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_DEC) + gcc->state_info.resist = 0; + gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_DEC; + y = -1; + } + } + + if (gcc->o_frame) evas_object_geometry_get(gcc->o_frame, NULL, NULL, &w, &h); else evas_object_geometry_get(gcc->o_base, NULL, NULL, &w, &h); + if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) { if (gcc->o_frame) - e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->sx + x, w); + e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->config.pos + x, w); else - e_gadcon_layout_pack_request_set(gcc->o_base, gcc->sx + x, w); - gcc->config.pos = gcc->sx + x; + e_gadcon_layout_pack_request_set(gcc->o_base, gcc->config.pos + x, w); + + //gcc->config.pos will be set in smart_recofigure + //gcc->config.size will be set in smart_reconfigure + //original: gcc->config.pos = gcc->sx + x; gcc->config.size = w; evas_object_geometry_get(gcc->gadcon->o_container, NULL, NULL, &w, &h); gcc->config.res = w; @@ -1528,38 +1672,37 @@ else { if (gcc->o_frame) - e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->sy + y, h); + e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->config.pos + y, h); else - e_gadcon_layout_pack_request_set(gcc->o_base, gcc->sy + y, h); - gcc->config.pos = gcc->sy + y; + e_gadcon_layout_pack_request_set(gcc->o_base, gcc->config.pos + y, h); + + //gcc->config.pos will be set in smart_recofigure + //gcc->config.size will be set in smart_reconfigure + //original: gcc->config.pos = gcc->sy + y; gcc->config.size = h; evas_object_geometry_get(gcc->gadcon->o_container, NULL, NULL, &w, &h); gcc->config.res = h; } + gcc->dx += x; + gcc->dy += y; } static void _e_gadcon_client_resize_start(E_Gadcon_Client *gcc) { - Evas_Coord x, y; - evas_object_raise(gcc->o_event); evas_object_stack_below(gcc->o_control, gcc->o_event); gcc->resizing = 1; evas_pointer_canvas_xy_get(gcc->gadcon->evas, &gcc->dx, &gcc->dy); - evas_object_geometry_get(gcc->gadcon->o_container, &x, &y, NULL, NULL); - if (gcc->o_frame) - evas_object_geometry_get(gcc->o_frame, &gcc->sx, &gcc->sy, &gcc->sw, &gcc->sh); - else - evas_object_geometry_get(gcc->o_base, &gcc->sx, &gcc->sy, &gcc->sw, &gcc->sh); - gcc->sx -= x; - gcc->sy -= y; } static void _e_gadconclient_resize_stop(E_Gadcon_Client *gcc) { gcc->resizing = 0; + + gcc->state_info.state = E_LAYOUT_ITEM_STATE_NONE; + _e_gadcon_layout_smart_sync_clients(gcc->gadcon); _e_gadcon_client_save(gcc); } @@ -1586,32 +1729,68 @@ evas_pointer_canvas_xy_get(gcc->gadcon->evas, &x, &y); x = x - gcc->dx; y = y - gcc->dy; + + gcc->state_info.flags = E_GADCON_LAYOUT_ITEM_LOCK_POSITION | E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + if (gcc->o_frame) evas_object_geometry_get(gcc->o_frame, NULL, NULL, &w, &h); else evas_object_geometry_get(gcc->o_base, NULL, NULL, &w, &h); + + _e_gadcon_client_current_position_sync(gcc); + if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) { - if (gcc->o_frame) - e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->sx + x, gcc->sw - x); + if (x > 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MIN_END_INC; + } + else if (x < 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MIN_END_DEC; + } + } + else + { + if (y > 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MIN_END_INC; + } + else if (y < 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MIN_END_DEC; + } + } + + if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) + { + if (gcc->o_frame) + e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->config.pos + x, w - x); else - e_gadcon_layout_pack_request_set(gcc->o_base, gcc->sx + x, gcc->sw - x); - gcc->config.pos = gcc->sx + x; - gcc->config.size = gcc->sw - x; + e_gadcon_layout_pack_request_set(gcc->o_base, gcc->config.pos + x, w - x); + //gcc->config.pos will be set in smart_reconfigure + //gcc->config.size will be set in smart_reconfigure + //original: gcc->config.pos = gcc->sx + x; + //original: gcc->config.size = gcc->sw - x; evas_object_geometry_get(gcc->gadcon->o_container, NULL, NULL, &w, &h); gcc->config.res = w; } else { if (gcc->o_frame) - e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->sy + y, gcc->sh - y); + e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->config.pos + y, h - y); else - e_gadcon_layout_pack_request_set(gcc->o_base, gcc->sy + y, gcc->sh - y); - gcc->config.pos = gcc->sy + y; - gcc->config.size = gcc->sh - y; + e_gadcon_layout_pack_request_set(gcc->o_base, gcc->config.pos + y, h - y); + //gcc->config.pos will be set in smart_reconfigure + //gcc->config.size will be set in smart_reconfigure + //original: gcc->config.pos = gcc->sy + y; + //original: gcc->config.size = gcc->sh - y; evas_object_geometry_get(gcc->gadcon->o_container, NULL, NULL, &w, &h); - gcc->config.res = h; + gcc->config.res = h; + } + gcc->dx += x; + gcc->dy += y; } static void @@ -1637,41 +1816,73 @@ evas_pointer_canvas_xy_get(gcc->gadcon->evas, &x, &y); x = x - gcc->dx; y = y - gcc->dy; + + gcc->state_info.flags = E_GADCON_LAYOUT_ITEM_LOCK_POSITION | E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + if (gcc->o_frame) evas_object_geometry_get(gcc->o_frame, NULL, NULL, &w, &h); else evas_object_geometry_get(gcc->o_base, NULL, NULL, &w, &h); + + _e_gadcon_client_current_position_sync(gcc); + + if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) + { + if (x > 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MAX_END_INC; + } + else if (x < 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MAX_END_DEC; + } + } + else + { + if (y > 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MAX_END_INC; + } + else if (y < 0) + { + gcc->state_info.state = E_LAYOUT_ITEM_STATE_SIZE_MAX_END_INC; + } + } + if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) { if (gcc->o_frame) - e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->sx, gcc->sw + x); + e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->config.pos, w + x); else - e_gadcon_layout_pack_request_set(gcc->o_base, gcc->sx, gcc->sw + x); - gcc->config.pos = gcc->sx; - gcc->config.size = gcc->sw + x; + e_gadcon_layout_pack_request_set(gcc->o_base, gcc->config.pos, w + x); + //gcc->config.pos is set inside smart_reconfigure + //gcc->config.size is set inside smart_reconfigure + //original: gcc->config.pos = gcc->sx; + //original: gcc->config.size = gcc->sw + x; evas_object_geometry_get(gcc->gadcon->o_container, NULL, NULL, &w, &h); gcc->config.res = w; } else { if (gcc->o_frame) - e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->sy, gcc->sh + y); + e_gadcon_layout_pack_request_set(gcc->o_frame, gcc->config.pos, h + y); else - e_gadcon_layout_pack_request_set(gcc->o_base, gcc->sy, gcc->sh + y); - gcc->config.pos = gcc->sy; - gcc->config.size = gcc->sh + y; + e_gadcon_layout_pack_request_set(gcc->o_base, gcc->config.pos, h + y); + //gcc->config.pos is set inside smart_reconfigure + //gcc->config.size is set inside smart_reconfigure + //original: gcc->config.pos = gcc->sy; + //original: gcc->config.size = gcc->sh + y; evas_object_geometry_get(gcc->gadcon->o_container, NULL, NULL, &w, &h); gcc->config.res = h; } + gcc->dx += x; + gcc->dy += y; } - - /* a smart object JUST for gadcon */ -typedef struct _E_Smart_Data E_Smart_Data; typedef struct _E_Gadcon_Layout_Item E_Gadcon_Layout_Item; struct _E_Smart_Data @@ -1691,12 +1902,15 @@ { E_Smart_Data *sd; struct { - int pos, size, size2, res; + int pos, size, size2, res, prev_pos, prev_size; } ask; int hookp; struct { int w, h; } min, aspect, aspect_pad; + + E_Gadcon_Client *gcc; + Evas_Coord x, y, w, h; Evas_Object *obj; unsigned char can_move : 1; @@ -1719,6 +1933,12 @@ static void _e_gadcon_layout_smart_clip_set(Evas_Object *obj, Evas_Object *clip); static void _e_gadcon_layout_smart_clip_unset(Evas_Object *obj); +static void _e_gadcon_layout_smart_min_cur_size_calc(E_Smart_Data *sd, int *min, int *mino, int *cur); +void _e_gadcon_layout_smart_gadcons_width_adjust(E_Smart_Data *sd, int min, int cur); + +static int _e_gadcon_layout_smart_sort_by_sequence_number_cb(void *d1, void *d2); +static int _e_gadcon_layout_smart_sort_by_position_cb(void *d1, void *d2); + /* local subsystem globals */ static Evas_Smart *_e_smart = NULL; @@ -1797,6 +2017,7 @@ if (w) *w = sd->minw; if (h) *h = sd->minh; + /* for (l = sd->items; l; l = l->next) { @@ -1827,10 +2048,12 @@ E_Smart_Data *sd; Evas_Coord tw = 0, th = 0; + if (!obj) return; sd = evas_object_smart_data_get(obj); if (!sd) return; + if (sd->horizontal) tw = sd->req; else @@ -1875,6 +2098,9 @@ static void e_gadcon_layout_pack_size_set(Evas_Object *obj, int size) { + //FIXME: simplify this function until the + //is redone _e_gadcon_layout_smart_gadcons_asked_position_set(E_Smart_Data *sd) + // E_Gadcon_Layout_Item *bi; int xx; @@ -1947,18 +2173,45 @@ /* called when restoring config from saved config */ static void -e_gadcon_layout_pack_options_set(Evas_Object *obj, int pos, int size, int res) +e_gadcon_layout_pack_options_set(Evas_Object *obj, E_Gadcon_Client *gcc) { - E_Gadcon_Layout_Item *bi; + int ok, seq; + Evas_List *l; + E_Gadcon_Layout_Item *bi, *bi2; if (!obj) return; bi = evas_object_data_get(obj, "e_gadcon_layout_data"); if (!bi) return; - bi->ask.res = res; - bi->ask.size = size; - bi->ask.pos = pos; - _e_gadcon_layout_smart_reconfigure(bi->sd); + bi->ask.res = gcc->config.res; + bi->ask.size = gcc->config.size; + bi->ask.pos = gcc->config.pos; + bi->gcc = gcc; + + ok = 0; + if (!gcc->state_info.seq) + ok = 1; + + seq = 1; + for (l = bi->sd->items; l; l = l->next) + { + bi2 = evas_object_data_get(l->data, "e_gadcon_layout_data"); + if (bi == bi2) continue; + + if (bi->gcc->state_info.seq == bi2->gcc->state_info.seq) + ok = 1; + + if (bi2->gcc->state_info.seq > seq) + seq = bi2->gcc->state_info.seq; + } + + if (ok) + { + gcc->state_info.seq = seq + 1; + gcc->state_info.want_save = 1; + gcc->state_info.flags = E_GADCON_LAYOUT_ITEM_LOCK_NONE; + } + _e_gadcon_layout_smart_reconfigure(bi->sd); } static void @@ -2074,43 +2327,17 @@ e_gadcon_layout_unpack(obj); } -static int -_e_gadcon_sort_cb(void *d1, void *d2) -{ - E_Gadcon_Layout_Item *bi1, *bi2; - int v1, v2; - - bi1 = evas_object_data_get(d1, "e_gadcon_layout_data"); - bi2 = evas_object_data_get(d2, "e_gadcon_layout_data"); - v1 = (bi1->ask.pos + (bi1->ask.size / 2)) - bi1->hookp; - if (v1 < 0) v1 = -v1; - v2 = (bi2->ask.pos + (bi2->ask.size / 2)) - bi2->hookp; - if (v2 < 0) v2 = -v2; - return v1 - v2; -} - -static int -_e_gadcon_sort_all_cb(void *d1, void *d2) -{ - E_Gadcon_Layout_Item *bi1, *bi2; - int v1, v2; - - bi1 = evas_object_data_get(d1, "e_gadcon_layout_data"); - bi2 = evas_object_data_get(d2, "e_gadcon_layout_data"); - v1 = (bi1->ask.pos + (bi1->ask.size / 2)); - if (v1 < 0) v1 = -v1; - v2 = (bi2->ask.pos + (bi2->ask.size / 2)); - if (v2 < 0) v2 = -v2; - return v1 - v2; -} - static void _e_gadcon_layout_smart_reconfigure(E_Smart_Data *sd) { Evas_Coord x, y, w, h, xx, yy; Evas_List *l, *l2; int min, mino, cur; - Evas_List *list_s = NULL, *list_m = NULL, *list_e = NULL, *list = NULL; + Evas_List *list = NULL; + E_Gadcon_Layout_Item *bi; + E_Layout_Item_Container *lc; + int i; + int set_prev_pos = 0; if (sd->frozen) return; if (sd->doing_config) @@ -2119,188 +2346,114 @@ return; } - x = sd->x; y = sd->y; w = sd->w; h = sd->h; + //x = sd->x; y = sd->y; w = sd->w; h = sd->h; min = mino = cur = 0; - for (l = sd->items; l; l = l->next) + _e_gadcon_layout_smart_min_cur_size_calc(sd, &min, &mino, &cur); + + // update sd info about minw req etc + // here request for gadcon size !! + if (sd->horizontal) { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - bi->ask.size2 = bi->ask.size; - if ((bi->aspect.w > 0) && (bi->aspect.h > 0)) + if ((sd->minw != min) || (sd->minh != mino)) { - if (sd->horizontal) - { - bi->ask.size2 = (((h - bi->aspect_pad.h) * bi->aspect.w) / - bi->aspect.h) + bi->aspect_pad.w; - if (bi->ask.size2 > bi->min.w) - { - min += bi->ask.size2; - cur += bi->ask.size2; - } - else - { - cur += bi->min.w; - min += bi->min.w; - } - } - else - { - bi->ask.size2 = (((w - bi->aspect_pad.w) * bi->aspect.h) / - bi->aspect.w) + bi->aspect_pad.h; - if (bi->ask.size2 > bi->min.h) - { - min += bi->ask.size2; - cur += bi->ask.size2; - } - else - { - cur += bi->min.h; - min += bi->min.h; - } - } + sd->minw = min; + sd->minh = mino; + evas_object_smart_callback_call(sd->obj, "min_size_request", NULL); } - else + } + else + { + if ((sd->minh != min) || (sd->minw != mino)) { - if (sd->horizontal) - { - min += bi->min.w; - if (bi->min.h > mino) mino = bi->min.h; - if (bi->ask.size < bi->min.w) - cur += bi->min.w; - else - cur += bi->ask.size; - } - else - { - min += bi->min.h; - if (bi->min.w > mino) mino = bi->min.w; - if (bi->ask.size < bi->min.h) - cur += bi->min.h; - else - cur += bi->ask.size; - } + sd->minh = min; + sd->minw = mino; + evas_object_smart_callback_call(sd->obj, "min_size_request", NULL); } } - - if (sd->horizontal) + + if (sd->req != cur) { - if (cur <= w) + if (((sd->horizontal) && (cur >= sd->minw)) || + ((!sd->horizontal) && (cur >= sd->minh))) { - /* all is fine - it should all fit */ + sd->req = cur; + evas_object_smart_callback_call(sd->obj, "size_request", NULL); } else { - int sub, give, num, given, i; - - sub = cur - w; /* we need to find "sub" extra pixels */ - if (min <= w) - { - for (l = sd->items; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - give = bi->ask.size - bi->min.w; // how much give does this have? - if (give < sub) give = sub; - bi->ask.size2 = bi->ask.size - give; - sub -= give; - if (sub <= 0) break; - } - } + if (sd->horizontal) + sd->req = sd->minw; else - { /* EEK - all items just cant fit at their minimum! what do we do? */ - num = 0; - num = evas_list_count(sd->items); - give = min - w; // how much give total below minw we need - given = 0; - for (l = sd->items; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - bi->ask.size2 = bi->min.w; - if (!l->next) - { - bi->ask.size2 -= (give - given); - } - else - { - i = (give + (num / 2)) / num; - given -= i; - bi->ask.size2 -= i; - } - } - } + sd->req = sd->minh; } } + _e_gadcon_layout_smart_gadcons_width_adjust(sd, min, cur); + + if (((sd->horizontal) && (sd->w <= sd->req)) || ((!sd->horizontal) && (sd->h <= sd->req))) + { + _e_gadcon_layout_smart_gadcon_position_shrinked_mode(sd); + set_prev_pos = 0; + } else - { - if (cur <= h) + { + _e_gadcon_layout_smart_gadcons_asked_position_set(sd); + + list = _e_gadcon_layout_smart_gadcons_wrap(sd); + + _e_gadcon_layout_smart_gadcons_position(sd, &list); + + for (l = list; l; l = l->next) { - /* all is fine - it should all fit */ + lc = l->data; + LC_FREE(lc); } - else + list = evas_list_free(list); + set_prev_pos = 1; + } + + + sd->items = evas_list_sort(sd->items, evas_list_count(sd->items), + _e_gadcon_layout_smart_sort_by_position_cb); + for (l = sd->items, i = 1; l; l = l->next, i++) + { + bi = evas_object_data_get(l->data, "e_gadcon_layout_data"); + bi->gcc->state_info.seq = i; + + if (set_prev_pos) { - int sub, give, num, given, i; - - sub = cur - h; /* we need to find "sub" extra pixels */ - if (min <= h) - { - for (l = sd->items; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - give = bi->ask.size - bi->min.h; // how much give does this have? - if (give < sub) give = sub; - bi->ask.size2 = bi->ask.size - give; - sub -= give; - if (sub <= 0) break; - } + if (sd->horizontal) + { + bi->ask.prev_pos = bi->x; + bi->ask.prev_size = bi->w; } else - { /* EEK - all items just cant fit at their minimum! what do we do? */ - num = 0; - num = evas_list_count(sd->items); - give = min - h; // how much give total below minw we need - given = 0; - for (l = sd->items; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - bi->ask.size2 = bi->min.h; - if (!l->next) - { - bi->ask.size2 -= (give - given); - } - else - { - i = (give + (num / 2)) / num; - given -= i; - bi->ask.size2 -= i; - } - } + { + bi->ask.prev_pos = bi->y; + bi->ask.prev_size = bi->h; } } - } + if (sd->horizontal) + { + if ((bi->x == bi->ask.pos) && + (bi->gcc->state_info.flags & E_GADCON_LAYOUT_ITEM_LOCK_POSITION)) + bi->gcc->state_info.flags |= E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + } + else + { + if ((bi->y == bi->ask.pos) && + (bi->gcc->state_info.flags & E_GADCON_LAYOUT_ITEM_LOCK_POSITION)) + bi->gcc->state_info.flags |= E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + } + + if ((bi->gcc->state_info.flags & E_GADCON_LAYOUT_ITEM_LOCK_POSITION) && + (bi->gcc->state_info.flags & E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE)) + { + if (((sd->horizontal) && (bi->x != bi->ask.pos)) || + ((!sd->horizontal) && (bi->y != bi->ask.pos))) + bi->gcc->state_info.flags &= ~E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + } + } for (l = sd->items; l; l = l->next) { @@ -2310,398 +2463,17 @@ obj = l->data; bi = evas_object_data_get(obj, "e_gadcon_layout_data"); if (!bi) continue; - list = evas_list_append(list, obj); if (sd->horizontal) { - xx = bi->ask.pos + (bi->ask.size / 2); - if (xx < (bi->ask.res / 3)) - { /* hooked to start */ - bi->x = bi->ask.pos; - bi->w = bi->ask.size2; - list_s = evas_list_append(list_s, obj); - bi->hookp = 0; - } - else if (xx > ((2 * bi->ask.res) / 3)) - { /* hooked to end */ - bi->x = (bi->ask.pos - bi->ask.res) + w; - bi->w = bi->ask.size2; - list_e = evas_list_append(list_e, obj); - bi->hookp = bi->ask.res; - } - else - { /* hooked to middle */ - if ((bi->ask.pos <= (bi->ask.res / 2)) && - ((bi->ask.pos + bi->ask.size2) > (bi->ask.res / 2))) - { /* straddles middle */ - if (bi->ask.res > 2) - bi->x = (w / 2) + - (((bi->ask.pos + (bi->ask.size2 / 2) - - (bi->ask.res / 2)) * - (bi->ask.res / 2)) / - (bi->ask.res / 2)) - (bi->ask.size2 / 2); - else - bi->x = w / 2; - bi->w = bi->ask.size2; - } - else - { /* either side of middle */ - bi->x = (bi->ask.pos - (bi->ask.res / 2)) + (w / 2); - bi->w = bi->ask.size2; - } - list_m = evas_list_append(list_m, obj); - bi->hookp = bi->ask.res / 2; - } - if (bi->x < 0) bi->x = 0; - else if ((bi->x + bi->w) > w) bi->x = w - bi->w; - } - else - { - yy = bi->ask.pos + (bi->ask.size2 / 2); - if (yy < (bi->ask.res / 3)) - { /* hooked to start */ - bi->y = bi->ask.pos; - bi->h = bi->ask.size2; - list_s = evas_list_append(list_s, obj); - bi->hookp = 0; - } - else if (yy > ((2 * bi->ask.res) / 3)) - { /* hooked to end */ - bi->y = (bi->ask.pos - bi->ask.res) + h; - bi->h = bi->ask.size2; - list_e = evas_list_append(list_e, obj); - bi->hookp = bi->ask.res; - } - else - { /* hooked to middle */ - if ((bi->ask.pos <= (bi->ask.res / 2)) && - ((bi->ask.pos + bi->ask.size2) > (bi->ask.res / 2))) - { /* straddles middle */ - if (bi->ask.res > 2) - bi->y = (h / 2) + - (((bi->ask.pos + (bi->ask.size2 / 2) - - (bi->ask.res / 2)) * - (bi->ask.res / 2)) / - (bi->ask.res / 2)) - (bi->ask.size2 / 2); - else - bi->y = h / 2; - bi->h = bi->ask.size2; - } - else - { /* either side of middle */ - bi->y = (bi->ask.pos - (bi->ask.res / 2)) + (h / 2); - bi->h = bi->ask.size2; - } - list_s = evas_list_append(list_s, obj); - bi->hookp = bi->ask.res / 2; - } - if (bi->y < 0) bi->y = 0; - else if ((bi->y + bi->h) > h) bi->y = h - bi->h; - } - } - list_s = evas_list_sort(list_s, evas_list_count(list_s), _e_gadcon_sort_cb); - list_m = evas_list_sort(list_m, evas_list_count(list_m), _e_gadcon_sort_cb); - list_e = evas_list_sort(list_e, evas_list_count(list_e), _e_gadcon_sort_cb); - list = evas_list_sort(list, evas_list_count(list), _e_gadcon_sort_all_cb); - for (l = list_s; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - again1: - for (l2 = l->prev; l2; l2 = l2->prev) - { - E_Gadcon_Layout_Item *bi2; - - obj = l2->data; - bi2 = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi2) continue; - if (sd->horizontal) - { - if (E_SPANS_COMMON(bi->x, bi->w, bi2->x, bi2->w)) - { - bi->x = bi2->x + bi2->w; - goto again1; - } - } - else - { - if (E_SPANS_COMMON(bi->y, bi->h, bi2->y, bi2->h)) - { - bi->y = bi2->y + bi2->h; - goto again1; - } - } - } - } - for (l = list_m; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - again2: - for (l2 = l->prev; l2; l2 = l2->prev) - { - E_Gadcon_Layout_Item *bi2; - - obj = l2->data; - bi2 = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi2) continue; - if (sd->horizontal) - { - if (E_SPANS_COMMON(bi->x, bi->w, bi2->x, bi2->w)) - { - if ((bi2->x + (bi2->w / 2)) < (w / 2)) - bi->x = bi2->x - bi->w; - else - bi->x = bi2->x + bi2->w; - goto again2; - } - } - else - { - if (E_SPANS_COMMON(bi->y, bi->h, bi2->y, bi2->h)) - { - if ((bi2->y + (bi2->h / 2)) < (h / 2)) - bi->y = bi2->y - bi->h; - else - bi->y = bi2->y + bi2->h; - goto again2; - } - } - } - } - for (l = list_e; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - again3: - for (l2 = l->prev; l2; l2 = l2->prev) - { - E_Gadcon_Layout_Item *bi2; - - obj = l2->data; - bi2 = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi2) continue; - if (sd->horizontal) - { - if (E_SPANS_COMMON(bi->x, bi->w, bi2->x, bi2->w)) - { - bi->x = bi2->x - bi->w; - goto again3; - } - } - else - { - if (E_SPANS_COMMON(bi->y, bi->h, bi2->y, bi2->h)) - { - bi->y = bi2->y - bi->h; - goto again3; - } - } - } - } - for (l = list; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - bi->can_move = 1; - if (sd->horizontal) - { - if (!l->prev) - { - if (bi->x <= 0) - { - bi->x = 0; - bi->can_move = 0; - } - } - if (!l->next) - { - if ((bi->x + bi->w) >= w) - { - bi->x = w - bi->w; - bi->can_move = 0; - } - } - } - else - { - if (!l->prev) - { - if (bi->y <= 0) - { - bi->y = 0; - bi->can_move = 0; - } - } - if (!l->next) - { - if ((bi->y + bi->h) >= h) - { - bi->y = h - bi->h; - bi->can_move = 0; - } - } - } - } - if (sd->horizontal) - { - int overlap; - int count; - - overlap = 1; - count = 0; - while (overlap) - { - overlap = 0; - for (l = list; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - if (bi->can_move) - { - for (l2 = l->next; l2; l2 = l2->next) - { - E_Gadcon_Layout_Item *bi2; - - obj = l2->data; - bi2 = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi2) continue; - if (E_SPANS_COMMON(bi->x, bi->w, bi2->x, bi2->w)) - { - bi->x = bi2->x - bi->w; - if (!bi2->can_move) bi->can_move = 0; - if ((bi->x + bi->w) >= w) bi->x = w - bi->w; - if (bi->x <= 0) bi->x = 0; - overlap = 1; - } - } - for (l2 = l->prev; l2; l2 = l2->prev) - { - E_Gadcon_Layout_Item *bi2; - - obj = l2->data; - bi2 = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi2) continue; - if (E_SPANS_COMMON(bi->x, bi->w, bi2->x, bi2->w)) - { - bi->x = bi2->x + bi2->w; - if (!bi2->can_move) bi->can_move = 0; - if ((bi->x + bi->w) >= w) bi->x = w - bi->w; - if (bi->x <= 0) bi->x = 0; - overlap = 1; - } - } - } - } - count++; - if (count > 200) break; // quick infinite loop fix - } - } - else - { - /* FIXME: for how this is just a copy of the above but in the vertical - * so when the above is "fixeD" the below needs to mirror it - */ - int overlap; - int count; - - overlap = 1; - count = 0; - while (overlap) - { - overlap = 0; - for (l = list; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - if (bi->can_move) - { - for (l2 = l->next; l2; l2 = l2->next) - { - E_Gadcon_Layout_Item *bi2; - - obj = l2->data; - bi2 = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi2) continue; - if (E_SPANS_COMMON(bi->y, bi->h, bi2->y, bi2->h)) - { - bi->y = bi2->y - bi->h; - if (!bi2->can_move) bi->can_move = 0; - if ((bi->y + bi->h) >= h) bi->y = h - bi->h; - if (bi->y <= 0) bi->y = 0; - overlap = 1; - } - } - for (l2 = l->prev; l2; l2 = l2->prev) - { - E_Gadcon_Layout_Item *bi2; - - obj = l2->data; - bi2 = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi2) continue; - if (E_SPANS_COMMON(bi->y, bi->h, bi2->y, bi2->h)) - { - bi->y = bi2->y + bi2->h; - if (!bi2->can_move) bi->can_move = 0; - if ((bi->y + bi->h) >= h) bi->y = h - bi->h; - if (bi->y <= 0) bi->y = 0; - overlap = 1; - } - } - } - } - count++; - if (count > 200) break; // quick infinite loop fix - } - } - - evas_list_free(list_s); - evas_list_free(list_m); - evas_list_free(list_e); - evas_list_free(list); - - for (l = sd->items; l; l = l->next) - { - E_Gadcon_Layout_Item *bi; - Evas_Object *obj; - - obj = l->data; - bi = evas_object_data_get(obj, "e_gadcon_layout_data"); - if (!bi) continue; - if (sd->horizontal) - { - bi->h = h; - xx = x + bi->x; - yy = y + ((h - bi->h) / 2); + bi->h = sd->h; + xx = sd->x + bi->x; + yy = sd->y + ((sd->h - bi->h) / 2); } else { - bi->w = w; - xx = x + ((w - bi->w) / 2); - yy = y + bi->y; + bi->w = sd->w; + xx = sd->x + ((sd->w - bi->w) / 2); + yy = sd->y + bi->y; } evas_object_move(obj, xx, yy); evas_object_resize(obj, bi->w, bi->h); @@ -2904,3 +2676,1670 @@ if (!sd) return; evas_object_clip_unset(sd->clip); } + + +/* + * @min - the minimum width required by all the gadcons + * @cur - the current width required by all the gadcons + * @mino - the smalest width/height among all the objects + */ +static void +_e_gadcon_layout_smart_min_cur_size_calc(E_Smart_Data *sd, int *min, int *mino, int *cur) +{ + E_Gadcon_Layout_Item *bi; + Evas_List *l; + + // how much space all the gadgets takes in the shelf + for (l = sd->items; l; l = l->next) + { + bi = evas_object_data_get(l->data, "e_gadcon_layout_data"); + bi->ask.size2 = bi->ask.size; + + if ((bi->aspect.w > 0) && (bi->aspect.h > 0)) + { + if (sd->horizontal) + { + bi->ask.size2 = (((sd->h - bi->aspect_pad.h) * bi->aspect.w) / bi->aspect.h) + + bi->aspect_pad.w; + if (bi->ask.size2 > bi->min.w) + { + *min += bi->ask.size2; + *cur += bi->ask.size2; + } + else + { + *min += bi->min.w; + *cur += bi->min.w; + } + } + else + { + bi->ask.size2 = (((sd->w - bi->aspect_pad.w) * bi->aspect.h) / bi->aspect.w) + + bi->aspect_pad.h; + if (bi->ask.size2 > bi->min.h) + { + *min += bi->ask.size2; + *cur += bi->ask.size2; + } + else + { + *cur += bi->min.h; + *min += bi->min.h; + } + } + } + else + { + if (sd->horizontal) + { + *min += bi->min.w; + if (bi->min.h > *mino) *mino = bi->min.h; + //if (bi->min.w > *mino) *mino = bi->min.w; + if (bi->ask.size < bi->min.w) + *cur += bi->min.w; + else + *cur += bi->ask.size; + } + else + { + *min += bi->min.h; + //if (bi->min.h > *mino) *mino = bi->min.h; + if (bi->min.w > *mino) *mino = bi->min.w; + if (bi->ask.size < bi->min.h) + *cur += bi->min.h; + else + *cur += bi->ask.size; + } + } + } +} + +static int +_e_gadcon_layout_smart_width_smart_sort_reverse_cb(void *d1, void *d2) +{ + E_Gadcon_Layout_Item *bi, *bi2; + int v1, v2; + + bi = evas_object_data_get(d1, "e_gadcon_layout_data"); + bi2 = evas_object_data_get(d2, "e_gadcon_layout_data"); + + if (bi->sd->horizontal) + { + if (bi->ask.size2 > bi->min.w) + { + if (bi2->ask.size2 > bi2->min.w) + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else + return -1; + } + else + { + if (bi->ask.size2 == bi2->ask.size2) + return -1; + else + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else + return -1; + } + } + } + else + { + if (bi2->ask.size2 > bi2->min.w) + { + if (bi->ask.size2 == bi2->ask.size2) + return 1; + else + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else + return -1; + } + } + else + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else if (bi->ask.size2 > bi2->ask.size2) + return -1; + } + } + } + else + { + if (bi->ask.size2 > bi->min.h) + { + if (bi2->ask.size2 > bi2->min.h) + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else + return -1; + } + else + { + if (bi->ask.size2 == bi2->ask.size2) + return -1; + else + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else + return -1; + } + } + } + else + { + if (bi2->ask.size2 > bi2->min.h) + { + if (bi->ask.size2 == bi2->ask.size2) + return 1; + else + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else + return -1; + } + } + else + { + if (bi->ask.size2 < bi2->ask.size2) + return 1; + else if (bi->ask.size2 > bi2->ask.size2) + return -1; + } + } + } + return 0; +} + +void +_e_gadcon_layout_smart_gadcons_width_adjust(E_Smart_Data *sd, int min, int cur) +{ + int need, limit, reduce_total, reduce; + int max_size; + int c; + Evas_List *l, *l2; + E_Gadcon_Layout_Item *bi, *bi2; + + if (sd->horizontal) + { + if (sd->w < cur) + { + if (sd->w < min) + max_size = min; + else + max_size = cur; + + need = max_size - sd->w; + } + else + { + return; + } + } + else + { + if (sd->h < cur) + { + if (sd->h < min) + max_size = min; + else + max_size = cur; + need = max_size - sd->h; + } + else + { + return; + } + + } + + sd->items = evas_list_sort(sd->items, evas_list_count(sd->items), + _e_gadcon_layout_smart_width_smart_sort_reverse_cb); + + __adjust_size_again: + for (l = sd->items, c = 0; l; l = l->next) + { + if (l->next) + { + bi = evas_object_data_get(l->data, "e_gadcon_layout_data"); + bi2 = evas_object_data_get(l->next->data, "e_gadcon_layout_data"); + + if (bi->ask.size2 > bi2->ask.size2) + { + limit = bi2->ask.size2; + c++; + break; + } + c++; + } + } + + if (evas_list_count(sd->items) == 1) + c = 1; + + if (l) + { + reduce = bi->ask.size2 - limit; + reduce_total = reduce * c; + + if (reduce_total <= need) + { + for (l2 = l; l2; l2 = l2->prev) + { + bi2 = evas_object_data_get(l2->data, "e_gadcon_layout_data"); + bi2->ask.size2 -= reduce; + } + need -= reduce * c; + if (need) + goto __adjust_size_again; + } + else + { + int reduce_by, c2; + + while (need) + { + reduce_by = 1; + while (1) + { + if (((reduce_by + 1) * c) < need) + reduce_by++; + else + break; + } + c2 = c; + for (l2 = sd->items; l2 && c2 && need; l2 = l2->next, c2--) + { + bi2 = evas_object_data_get(l2->data, "e_gadcon_layout_data"); + bi2->ask.size2 -= reduce_by; + need -= reduce_by; + } + } + } + } + else + { + int reduce_by, c2; + + while (need) + { + reduce_by = 1; + while (1) + { + if (((reduce_by + 1) * c) < need) + reduce_by++; + else + break; + } + c2 = c; + for (l2 = sd->items; l2 && c2 && need; l2 = l2->next, c2--) + { + bi2 = evas_object_data_get(l2->data, "e_gadcon_layout_data"); + bi2->ask.size2 -= reduce_by; + need -= reduce_by; + } + } + } +} + + +static int +_e_gadcon_layout_smart_sort_by_sequence_number_cb(void *d1, void *d2) +{ + E_Gadcon_Layout_Item *bi, *bi2; + + bi = evas_object_data_get(d1, "e_gadcon_layout_data"); + bi2 = evas_object_data_get(d2, "e_gadcon_layout_data"); + + if ((!bi->gcc->state_info.seq) && (!bi2->gcc->state_info.seq)) return 0; + else if (!bi->gcc->state_info.seq) return 1; + else if (!bi2->gcc->state_info.seq) return -1; + + return bi->gcc->state_info.seq - bi2->gcc->state_info.seq; +} + +static int +_e_gadcon_layout_smart_sort_by_position_cb(void *d1, void *d2) +{ + E_Gadcon_Layout_Item *bi, *bi2; + + bi = evas_object_data_get(d1, "e_gadcon_layout_data"); + bi2 = evas_object_data_get(d2, "e_gadcon_layout_data"); + + if (bi->sd->horizontal) + return (bi->x - bi2->x); + return (bi->y - bi2->y); +} + +static int +_e_gadcon_layout_smart_containers_sort_cb(void *d1, void *d2) +{ + E_Layout_Item_Container *lc, *lc2; + + lc = d1; + lc2 = d2; + + if (lc->pos < lc2->pos) return -1; + else if (lc->pos > lc2->pos) return 1; + + return 0; +} + +static int +_e_gadcon_layout_smart_seq_sort_cb(void *d1, void *d2) +{ + E_Gadcon_Layout_Item *bi, *bi2; + + bi = d1; + bi2 = d2; + + return (bi->gcc->state_info.seq - bi2->gcc->state_info.seq); +} + +static void +_e_gadcon_layout_smart_sync_clients(E_Gadcon *gc) +{ + E_Gadcon_Client *gcc; + Evas_List *l; + + for (l = gc->clients; l; l = l->next) + { + gcc = l->data; + _e_gadcon_client_save(gcc); + } +} +static void +_e_gadcon_client_current_position_sync(E_Gadcon_Client *gcc) +{ + E_Gadcon_Layout_Item *bi; + Evas_Object *o; + + o = gcc->o_frame ? gcc->o_frame : gcc->o_base; + bi = evas_object_data_get(o, "e_gadcon_layout_data"); + + gcc->state_info.prev_pos = gcc->config.pos; + gcc->state_info.prev_size = gcc->config.size; + if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) + gcc->config.pos = bi->x; + else + gcc->config.pos = bi->y; +} + +static void +_e_gadcon_layout_smart_gadcon_position_shrinked_mode(E_Smart_Data *sd) +{ + Evas_List *l; + E_Gadcon_Layout_Item *bi, *bi2; + void *tp; + int pos = 0; + + sd->items = evas_list_sort(sd->items, evas_list_count(sd->items), + _e_gadcon_layout_smart_sort_by_sequence_number_cb); + + for (l = sd->items; l; l = l->next) + { + bi = evas_object_data_get(l->data, "e_gadcon_layout_data"); + if (bi->gcc->state_info.state == E_LAYOUT_ITEM_STATE_POS_INC) + { + if (bi->gcc->state_info.resist <= E_LAYOUT_ITEM_DRAG_RESIST_LEVEL) + { + bi->gcc->state_info.resist++; + bi->gcc->config.pos = bi->ask.pos = bi->gcc->state_info.prev_pos; + } + else + { + bi->gcc->state_info.resist = 0; + if (l->next) + { + tp = l->next->data; + l->next->data = l->data; + l->data = tp; + + bi2 = evas_object_data_get(tp, "e_gadcon_layout_data"); + bi->gcc->config.pos = bi->ask.pos = bi2->ask.pos; + bi->gcc->state_info.flags &= ~E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + bi->gcc->state_info.want_save = 1; + bi2->gcc->state_info.want_save = 1; + break; + } + else + bi->gcc->config.pos = bi->ask.pos = bi->gcc->state_info.prev_pos; + } + } + else if (bi->gcc->state_info.state == E_LAYOUT_ITEM_STATE_POS_DEC) + { + if (bi->gcc->state_info.resist <= E_LAYOUT_ITEM_DRAG_RESIST_LEVEL) + { + bi->gcc->state_info.resist++; + bi->gcc->config.pos = bi->ask.pos = bi->gcc->state_info.prev_pos; + } + else + { + bi->gcc->state_info.resist = 0; + if (l->prev) + { + E_Gadcon_Layout_Item *bi2; + void *tp; + tp = l->prev->data; + l->prev->data = l->data; + l->data = tp; + + bi2 = evas_object_data_get(tp, "e_gadcon_layout_data"); + bi->gcc->config.pos = bi->ask.pos = bi2->ask.pos; + bi->gcc->state_info.flags &= ~E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + bi->gcc->state_info.want_save = 1; + bi2->gcc->state_info.want_save = 1; + break; + } + else + bi->gcc->config.pos = bi->ask.pos = bi->gcc->state_info.prev_pos; + } + } + else if ((bi->gcc->state_info.state == E_LAYOUT_ITEM_STATE_SIZE_MIN_END_INC) || + (bi->gcc->state_info.state == E_LAYOUT_ITEM_STATE_SIZE_MAX_END_DEC) || + (bi->gcc->state_info.state == E_LAYOUT_ITEM_STATE_SIZE_MIN_END_DEC) || + (bi->gcc->state_info.state == E_LAYOUT_ITEM_STATE_SIZE_MAX_END_INC)) + { + if (sd->horizontal) + { + if (bi->w < bi->min.w) + bi->gcc->config.size = bi->w = bi->min.w; + else + bi->gcc->config.size = bi->w; + } + else + { + if (bi->h < bi->min.h) + bi->gcc->config.size = bi->h = bi->min.h; + else + bi->gcc->config.size = bi->h; + } + bi->gcc->config.pos = bi->gcc->state_info.prev_pos; + } + } + + for (l = sd->items; l; l = l->next) + { + bi = evas_object_data_get(l->data, "e_gadcon_layout_data"); + if (sd->horizontal) + { + bi->x = pos; + bi->gcc->config.size = bi->w = bi->ask.size2; + pos = bi->x + bi->w; + } + else + { + bi->y = pos; + bi->gcc->config.size = bi->h = bi->ask.size2; + pos = bi->y + bi->h; + } + } +} + +/* + * The function returns a list of E_Gadcon_Layout_Item_Container + */ +static void +_e_gadcon_layout_smart_gadcons_asked_position_set(E_Smart_Data *sd) +{ + E_Gadcon_Layout_Item *bi; + Evas_List *l; + int xx, yy; + + for (l = sd->items; l; l = l->next) + { + bi = evas_object_data_get(l->data, "e_gadcon_layout_data"); + if (!bi) continue; + + if (sd->horizontal) + { + bi->x = bi->ask.pos; + bi->w = bi->ask.size2; + } + else + { + bi->y = bi->ask.pos; + bi->h = bi->ask.size2; + } + } + +#if 0 + for (l = sd->items; l; l = l->next) + { + bi = evas_object_data_get(l->data, "e_gadcon_layout_data"); + if (!bi) continue; + if (sd->horizontal) + { + xx = bi->ask.pos + (bi->ask.size / 2); + if (xx < (bi->ask.res / 3)) + { /* hooked to start */ + bi->x = bi->ask.pos; + bi->w = bi->ask.size2; + bi->hookp = 0; + } + else if (xx > ((2 * bi->ask.res) / 3)) + { /* hooked to end */ + bi->x = (bi->ask.pos - bi->ask.res) + sd->w; + bi->w = bi->ask.size2; + bi->hookp = bi->ask.res; + } + else + { /* hooked to middle */ + if ((bi->ask.pos <= (bi->ask.res / 2)) && + ((bi->ask.pos + bi->ask.size2) > (bi->ask.res / 2))) + { /* straddles middle */ + if (bi->ask.res > 2) + bi->x = (sd->w / 2) + + (((bi->ask.pos + (bi->ask.size2 / 2) - + (bi->ask.res / 2)) * + (bi->ask.res / 2)) / + (bi->ask.res / 2)... [truncated message content] |
From: Enlightenment C. <no...@cv...> - 2006-08-31 04:17:14
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes Modified Files: default_icons.edc Log Message: Ehhhh. So stuff in one go. * Mouse Binding Dialog - dialog refactoring - no need to select modifiers, etc. Just click add button and do an action with a mouse. - new icons. Many thanks to Luchezar 'ManowarrioR' Petkov for great work on this icons. - extra mouse buttons and wheels are supported. - etc, just try and see. * Shelf - No re-population when "plain/inset" mode set. - Changing the orientation of the shelf horiz->vert does not screws up it look. - something else * Gadcon - No overlaping items in initial shelf. - Moving of items in gadcon is not problematic any more. Will not get any mess and overlaps in gadcon on moving. - Item sizing. If u size an item to the left it will be sized only to the left. - If gadcon clients take much more space than gadcon can display, they are resized starting from the biggest item(s). - Shrinked mode actions, moving/sizing, is not problematic. Everything works exactly in the same fasion as in non-shrinked mode. - etc. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/default_icons.edc,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- default_icons.edc 30 Aug 2006 21:35:35 -0000 1.27 +++ default_icons.edc 31 Aug 2006 04:16:43 -0000 1.28 @@ -41,11 +41,12 @@ image: "e17_icon_up_arrow.png" COMP; image: "e17_icon_down_arrow.png" COMP; - image: "e17_icon_mouse_bindings_left.png" COMP; - image: "e17_icon_mouse_bindings_middle.png" COMP; - image: "e17_icon_mouse_bindings_right.png" COMP; - image: "e17_icon_mouse_bindings_scroll_up.png" COMP; - image: "e17_icon_mouse_bindings_scroll_down.png" COMP; + image: "e17_icon_mouse_left.png" COMP; + image: "e17_icon_mouse_middle.png" COMP; + image: "e17_icon_mouse_right.png" COMP; + image: "e17_icon_mouse_extra.png" COMP; + image: "e17_icon_mouse_wheel.png" COMP; + image: "e17_icon_mouse_clean.png" COMP; image: "e17_shelf_bottom_left.png" COMP; image: "e17_shelf_bottom.png" COMP; @@ -605,7 +606,7 @@ } } group { - name: "e/icons/enlightenment/mouse_binding_left"; + name: "e/icons/enlightenment/mouse_left"; max: 64 64; parts { part { @@ -617,14 +618,14 @@ aspect_preference: BOTH; max: 64 64; image { - normal: "e17_icon_mouse_bindings_left.png"; + normal: "e17_icon_mouse_left.png"; } } } } } group { - name: "e/icons/enlightenment/mouse_binding_middle"; + name: "e/icons/enlightenment/mouse_middle"; max: 64 64; parts { part { @@ -636,14 +637,14 @@ aspect_preference: BOTH; max: 64 64; image { - normal: "e17_icon_mouse_bindings_middle.png"; + normal: "e17_icon_mouse_middle.png"; } } } } } group { - name: "e/icons/enlightenment/mouse_binding_right"; + name: "e/icons/enlightenment/mouse_right"; max: 64 64; parts { part { @@ -655,14 +656,14 @@ aspect_preference: BOTH; max: 64 64; image { - normal: "e17_icon_mouse_bindings_right.png"; + normal: "e17_icon_mouse_right.png"; } } } } } group { - name: "e/icons/enlightenment/mouse_binding_scroll_up"; + name: "e/icons/enlightenment/mouse_extra"; max: 64 64; parts { part { @@ -674,14 +675,14 @@ aspect_preference: BOTH; max: 64 64; image { - normal: "e17_icon_mouse_bindings_scroll_up.png"; + normal: "e17_icon_mouse_extra.png"; } } } } } group { - name: "e/icons/enlightenment/mouse_binding_scroll_down"; + name: "e/icons/enlightenment/mouse_wheel"; max: 64 64; parts { part { @@ -693,7 +694,26 @@ aspect_preference: BOTH; max: 64 64; image { - normal: "e17_icon_mouse_bindings_scroll_down.png"; + normal: "e17_icon_mouse_wheel.png"; + } + } + } + } +} +group { + name: "e/icons/enlightenment/mouse_clean"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_mouse_clean.png"; } } } |
From: Enlightenment C. <no...@cv...> - 2006-08-31 04:17:15
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Modified Files: Makefile.am Added Files: e17_icon_mouse_clean.png e17_icon_mouse_extra.png e17_icon_mouse_left.png e17_icon_mouse_middle.png e17_icon_mouse_right.png e17_icon_mouse_wheel.png Removed Files: e17_icon_mouse_bindings_left.png e17_icon_mouse_bindings_middle.png e17_icon_mouse_bindings_right.png e17_icon_mouse_bindings_scroll_down.png e17_icon_mouse_bindings_scroll_up.png Log Message: Ehhhh. So stuff in one go. * Mouse Binding Dialog - dialog refactoring - no need to select modifiers, etc. Just click add button and do an action with a mouse. - new icons. Many thanks to Luchezar 'ManowarrioR' Petkov for great work on this icons. - extra mouse buttons and wheels are supported. - etc, just try and see. * Shelf - No re-population when "plain/inset" mode set. - Changing the orientation of the shelf horiz->vert does not screws up it look. - something else * Gadcon - No overlaping items in initial shelf. - Moving of items in gadcon is not problematic any more. Will not get any mess and overlaps in gadcon on moving. - Item sizing. If u size an item to the left it will be sized only to the left. - If gadcon clients take much more space than gadcon can display, they are resized starting from the biggest item(s). - Shrinked mode actions, moving/sizing, is not problematic. Everything works exactly in the same fasion as in non-shrinked mode. - etc. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/images/Makefile.am,v retrieving revision 1.75 retrieving revision 1.76 diff -u -3 -r1.75 -r1.76 --- Makefile.am 30 Aug 2006 22:22:53 -0000 1.75 +++ Makefile.am 31 Aug 2006 04:16:43 -0000 1.76 @@ -332,11 +332,12 @@ e17_icon_window_focus.png \ e17_icon_lost_windows.png \ e17_icon_screen_resolution.png \ -e17_icon_mouse_bindings_left.png \ -e17_icon_mouse_bindings_middle.png \ -e17_icon_mouse_bindings_right.png \ -e17_icon_mouse_bindings_scroll_up.png \ -e17_icon_mouse_bindings_scroll_down.png \ +e17_icon_mouse_left.png \ +e17_icon_mouse_middle.png \ +e17_icon_mouse_right.png \ +e17_icon_mouse_extra.png \ +e17_icon_mouse_wheel.png \ +e17_icon_mouse_clean.png \ e17_pointer.png \ e17_pointer_mono.png \ e17_dialog_watermark.png \ |
From: Enlightenment C. <no...@cv...> - 2006-08-31 04:20:08
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_config.h Log Message: Ooopps. no need to increse GENERATION =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_config.h,v retrieving revision 1.114 retrieving revision 1.115 diff -u -3 -r1.114 -r1.115 --- e_config.h 31 Aug 2006 04:16:43 -0000 1.114 +++ e_config.h 31 Aug 2006 04:20:04 -0000 1.115 @@ -50,7 +50,7 @@ /* increment this whenever a new set of config values are added but the users * config doesn't need top be wiped - simply new values need to be put in */ -#define E_CONFIG_FILE_GENERATION 0x0101 +#define E_CONFIG_FILE_GENERATION 0x0100 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 |
From: Enlightenment C. <no...@cv...> - 2006-09-02 00:12:18
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_gadcon.c Log Message: - no more "slow" moving on gadcon item dragging. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -3 -r1.43 -r1.44 --- e_gadcon.c 1 Sep 2006 10:40:54 -0000 1.43 +++ e_gadcon.c 2 Sep 2006 00:12:16 -0000 1.44 @@ -1633,14 +1633,12 @@ if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_INC) gcc->state_info.resist = 0; gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_INC; - x = 1; } else if (x < 0) { if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_DEC) gcc->state_info.resist = 0; gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_DEC; - x = -1; // would like to move by one pixel to be safe } } else @@ -1650,14 +1648,12 @@ if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_INC) gcc->state_info.resist = 0; gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_INC; - y = 1; } else if (y < 0) { if (gcc->state_info.state != E_LAYOUT_ITEM_STATE_POS_DEC) gcc->state_info.resist = 0; gcc->state_info.state = E_LAYOUT_ITEM_STATE_POS_DEC; - y = -1; } } @@ -3350,7 +3346,7 @@ static void _e_gadcon_layout_smart_gadcons_position(E_Smart_Data *sd, Evas_List **list) { - int ok; + int ok, lc_moving_prev_pos; Evas_List *l, *l2, *l3; E_Layout_Item_Container *lc_moving = NULL, *lc_back, *lc, *lc3; E_Gadcon_Layout_Item *bi, *bi_moving; @@ -3391,46 +3387,107 @@ return; } + lc_moving_prev_pos = lc_moving->prev_pos; if (lc_moving->state == E_LAYOUT_ITEM_CONTAINER_STATE_POS_DEC) { _e_gadcon_layout_smart_restore_gadcons_position_before_move(sd, &lc_moving, lc_back, list); for (l = *list; (l) && (l->data != lc_moving); l = l->next); - - ok = 0; - if ((l) && (l->prev)) - { - lc = l->prev->data; - if (LC_OVERLAP(lc, lc_moving)) - { - bi = lc_moving->items->data; - if (bi->gcc->state_info.resist <= E_LAYOUT_ITEM_DRAG_RESIST_LEVEL) - { - ok = 1; - bi->gcc->state_info.resist++; - lc_moving->pos = lc_moving->prev_pos; - _e_gadcon_layout_smart_position_items_inside_container(sd, lc_moving); - } - else - { - bi->gcc->state_info.resist = 0; - lc3 = _e_gadcon_layout_smart_containers_position_adjust(sd, lc, lc_moving); - if (lc3) + + ok = 0; + if ((l) && (l->prev)) + { + lc = l->prev->data; + + if (lc_moving->pos < (lc->pos + lc->size)) + { + bi = lc_moving->items->data; + if (bi->gcc->state_info.resist <= E_LAYOUT_ITEM_DRAG_RESIST_LEVEL) + { + if (lc_moving->prev_pos == (lc->pos + lc->size)) + ok = 1; + bi->gcc->state_info.resist++; + lc_moving->pos = lc->pos + lc->size; + _e_gadcon_layout_smart_position_items_inside_container(sd, lc_moving); + } + else + { + bi->gcc->state_info.resist = 0; + if (lc_moving->pos < lc->pos) { - ok = 1; - l->data = lc3; - *list = evas_list_remove_list(*list, l->prev); - LC_FREE(lc_moving); - LC_FREE(lc); - } - } - } - } + lc_moving->pos = (lc->pos + lc->size) - 1; + _e_gadcon_layout_smart_position_items_inside_container(sd, lc_moving); + } + lc3 = _e_gadcon_layout_smart_containers_position_adjust(sd, lc, lc_moving); + if (lc3) + { + if (lc_moving->prev_pos == (lc->pos + lc->size)) + ok = 1; + + l->data = lc3; + *list = evas_list_remove_list(*list, l->prev); + LC_FREE(lc_moving); + LC_FREE(lc); + lc_moving = lc3; + } + } + } + } if (!ok) { + int pos, prev_pos, stop; for (l = *list; (l) && (l->data != lc_moving); l = l->next); + pos = lc_moving->pos + lc_moving->size; + prev_pos = lc_moving_prev_pos; + if ((l) && (l->next)) { + stop = 0; + for (l2 = l->next; l2 && !stop; l2 = l2->next) + { + lc = l2->data; + + if (lc->pos != prev_pos) break; + prev_pos = lc->pos + lc->size; + + for (l3 = lc->items; l3; l3 = l3->next) + { + bi = l3->data; + if (bi->ask.pos <= pos) + { + if (sd->horizontal) + { + bi->x = pos; + pos = bi->x + bi->w; + } + else + { + bi->y = pos; + pos = bi->y + bi->h; + } + } + else if (((sd->horizontal) && (bi->ask.pos < bi->x)) || + ((!sd->horizontal) && (bi->ask.pos < bi->y))) + { + if (sd->horizontal) + { + bi->x = bi->ask.pos; + pos = bi->x + bi->w; + } + else + { + bi->y = bi->ask.pos; + pos = bi->y + bi->h; + } + } + else if (((sd->horizontal) && (bi->ask.pos == bi->x)) || + ((!sd->horizontal) && (bi->ask.pos == bi->y))) + { + stop = 1; + break; + } + } + } } } } @@ -3439,31 +3496,41 @@ _e_gadcon_layout_smart_restore_gadcons_position_before_move(sd, &lc_moving, lc_back, list); for (l = *list; (l) && (l->data != lc_moving); l = l->next); - ok = 0; + ok = 0; if ((l) && (l->next)) { lc = l->next->data; - if (LC_OVERLAP(lc_moving, lc)) + + if ((lc_moving->pos + lc_moving->size) > lc->pos) { bi = lc_moving->items->data; if (bi->gcc->state_info.resist <= E_LAYOUT_ITEM_DRAG_RESIST_LEVEL) { - ok = 1; + if ((lc_moving->prev_pos + lc_moving->size) == lc->pos) + ok = 1; bi->gcc->state_info.resist++; - lc_moving->pos = lc_moving->prev_pos; + lc_moving->pos = lc->pos - lc_moving->size; _e_gadcon_layout_smart_position_items_inside_container(sd, lc_moving); - } + } else { bi->gcc->state_info.resist = 0; + if ((lc_moving->pos + lc_moving->size) > lc->pos) + { + lc_moving->pos = (lc->pos - lc_moving->size) + 1; + _e_gadcon_layout_smart_position_items_inside_container(sd, lc_moving); + } lc3 = _e_gadcon_layout_smart_containers_position_adjust(sd, lc_moving, lc); if (lc3) { - ok = 1; + if ((lc_moving->prev_pos + lc_moving->size) == lc->pos) + ok = 1; + l->data = lc3; *list = evas_list_remove_list(*list, l->next); LC_FREE(lc_moving); LC_FREE(lc); + lc_moving = lc3; } } } @@ -3471,13 +3538,62 @@ if (!ok) { + int pos, prev_pos, stop; + for (l = *list; (l) && (l->data != lc_moving); l = l->next); + pos = lc_moving->pos; + prev_pos = lc_moving_prev_pos; + if ((l) && (l->prev)) { - //FIXME: need code that will shift l->prev's if needed. Basically - //it is need to unwrap all the l->prev, then restore the asked positions - //of each bi, wrap again and do static positioning. + stop = 0; + for (l2 = l->prev; l2 && !stop; l2 = l2->prev) + { + lc = l2->data; + if ((lc->pos + lc->size) == prev_pos) break; + prev_pos = lc->pos; + + for (l3 = evas_list_last(lc->items); l3; l3 = l3->prev) + { + bi = l3->data; + + if (((sd->horizontal) && ((bi->ask.pos + bi->w) >= pos)) || + ((!sd->horizontal) && ((bi->ask.pos + bi->h) >= pos))) + { + if (sd->horizontal) + { + bi->x = pos - bi->w; + pos = bi->x; + } + else + { + bi->y = pos - bi->h; + pos = bi->y; + } + } + else if (((sd->horizontal) && (bi->ask.pos > bi->x)) || + ((!sd->horizontal) && (bi->ask.pos > bi->w))) + { + if (sd->horizontal) + { + bi->x = bi->ask.pos; + pos = bi->x; + } + else + { + bi->y = bi->ask.pos; + pos = bi->y; + } + } + else if (((sd->horizontal) && (bi->ask.pos == bi->x)) || + ((!sd->horizontal) && (bi->ask.pos == bi->y))) + { + stop = 1; + break; + } + } + } } } } @@ -3914,7 +4030,7 @@ bi->y = bi2->y + bi2->h; } - bi->gcc->state_info.flags &= ~E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; + //bi->gcc->state_info.flags &= ~E_GADCON_LAYOUT_ITEM_LOCK_ABSOLUTE; t = bi->gcc->state_info.seq; bi->gcc->state_info.seq = bi2->gcc->state_info.seq; |
From: Enlightenment C. <no...@cv...> - 2006-09-12 19:21:53
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Added Files: e17_icon_system.png Log Message: make default theme to compile again. put a blank icon for e17_icon_system until ManowarrioR commit the original. |
From: Enlightenment C. <no...@cv...> - 2006-09-12 20:27:09
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/data/themes/images Modified Files: e17_icon_system.png Log Message: The original system icon from ManowarrioR. =================================================================== RCS file: /cvs/e/e17/apps/e/data/themes/images/e17_icon_system.png,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 Binary files /tmp/cvsfw3vdw and /tmp/cvsFSulGR differ |
From: Enlightenment C. <no...@cv...> - 2006-09-19 09:59:12
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_desklock.c Log Message: Give fbsd users a possibility to use desklock. system-auth profile is not presented on fbsd, but login is there. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_desklock.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- e_desklock.c 23 Aug 2006 03:39:01 -0000 1.25 +++ e_desklock.c 19 Sep 2006 09:59:03 -0000 1.26 @@ -650,8 +650,12 @@ da->pam.conv.appdata_ptr = da; da->pam.handle = NULL; - /* try other pam profiles - and system-auth is a fallback */ + /* try other pam profiles - and system-auth (login for fbsd users) is a fallback */ +#ifdef __FreeBSD__ + pam_prof = "login" +#else pam_prof = "system-auth"; +#endif if (ecore_file_exists("/etc/pam.d/enlightenment")) pam_prof = "enlightenment"; if (ecore_file_exists("/etc/pam.d/xscreensaver")) pam_prof = "xscreensaver"; if (ecore_file_exists("/etc/pam.d/kscreensaver")) pam_prof = "kscreensaver"; |
From: Enlightenment C. <no...@cv...> - 2006-10-11 08:46:57
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_actions.c e_actions.h e_config.c e_int_config_keybindings.c e_int_config_keybindings.h e_int_config_mousebindings.c Log Message: * some code, related to keybinding dialog functionality, refactoring. * refactoring of keybinding dialog. Now it is similar to mouse binding dialog, as raster wants ;) =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_actions.c,v retrieving revision 1.81 retrieving revision 1.82 diff -u -3 -r1.81 -r1.82 --- e_actions.c 9 Sep 2006 07:00:14 -0000 1.81 +++ e_actions.c 11 Oct 2006 08:46:52 -0000 1.82 @@ -65,6 +65,7 @@ static void _e_action_free(E_Action *act); static Evas_Bool _e_actions_cb_free(Evas_Hash *hash, const char *key, void *data, void *fdata); static E_Maximize _e_actions_maximize_parse(const char *maximize); +static int _action_groups_sort_cb(void *d1, void *d2); /* to save writing this in N places - the sctions are defined here */ /***************************************************************************/ @@ -1735,6 +1736,7 @@ /* local subsystem globals */ static Evas_Hash *actions = NULL; static Evas_List *action_names = NULL; +static Evas_List *action_groups = NULL; /* externally accessible functions */ @@ -1755,312 +1757,297 @@ ACT_GO_SIGNAL(window_resize); ACT_END(window_resize); ACT_END_MOUSE(window_resize); - + /* window_menu */ ACT_GO(window_menu); - e_register_action_predef_name(_("Menu"), _("Window Menu"), "window_menu", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Menu"), _("Window Menu"), "window_menu", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + ACT_GO_MOUSE(window_menu); ACT_GO_KEY(window_menu); /* window_raise */ ACT_GO(window_raise); - e_register_action_predef_name(_("Window : Actions"), _("Raise"), "window_raise", - NULL, EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Actions"), _("Raise"), "window_raise", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* window_lower */ ACT_GO(window_lower); - e_register_action_predef_name(_("Window : Actions"), _("Lower"), "window_lower", - NULL, EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Actions"), _("Lower"), "window_lower", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* window_close */ ACT_GO(window_close); - e_register_action_predef_name(_("Window : Actions"), _("Close"), "window_close", - NULL, EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Actions"), _("Close"), "window_close", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* window_kill */ ACT_GO(window_kill); - e_register_action_predef_name(_("Window : Actions"), _("Kill"), "window_kill", - NULL, EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Actions"), _("Kill"), "window_kill", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* window_sticky_toggle */ ACT_GO(window_sticky_toggle); - e_register_action_predef_name(_("Window : State"), _("Sticky Mode Toggle"), - "window_sticky_toggle", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : State"), _("Sticky Mode Toggle"), "window_sticky_toggle", + NULL, NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(window_sticky); /* window_iconic_toggle */ ACT_GO(window_iconic_toggle); - e_register_action_predef_name(_("Window : State"), _("Iconic Mode Toggle"), - "window_iconic_toggle", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : State"), _("Iconic Mode Toggle"), "window_iconic_toggle", + NULL, NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(window_iconic); /* window_fullscreen_toggle */ ACT_GO(window_fullscreen_toggle); - e_register_action_predef_name(_("Window : State"), _("Fullscreen Mode Toggle"), - "window_fullscreen_toggle", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : State"), _("Fullscreen Mode Toggle"), "window_fullscreen_toggle", + NULL, NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(window_fullscreen); /* window_maximized_toggle */ ACT_GO(window_maximized_toggle); - e_register_action_predef_name(_("Window : State"), _("Maximize"), "window_maximized_toggle", - NULL, EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Maximize Vertically"), - "window_maximized_toggle", "default vertical", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Maximize Horizontally"), - "window_maximized_toggle", "default horizontal", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Maximize Fullscreen"), - "window_maximized_toggle", "fullscreen", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Maximize Mode \"Smart\""), - "window_maximized_toggle", "smart", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Maximize Mode \"Expand\""), - "window_maximized_toggle", "expand", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Maximize Mode \"Fill\""), - "window_maximized_toggle", "fill", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : State"), _("Maximize"), "window_maximized_toggle", + NULL, NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Maximize Vertically"), "window_maximized_toggle", + "default vertical", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Maximize Horizontally"), "window_maximized_toggle", + "default horizontal", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Maximize Fullscreen"), "window_maximized_toggle", + "fullscreen", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Maximize Mode \"Smart\""), "window_maximized_toggle", + "smart", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Maximize Mode \"Expand\""), "window_maximized_toggle", + "expand", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Maximize Mode \"Fill\""), "window_maximized_toggle", + "fill", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(window_maximized); /* window_shaded_toggle */ ACT_GO(window_shaded_toggle); - e_register_action_predef_name(_("Window : State"), _("Shade Up Mode Toggle"), - "window_shaded_toggle", "up", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Shade Down Mode Toggle"), - "window_shaded_toggle", "down", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Shade Left Mode Toggle"), - "window_shaded_toggle", "Left", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Shade Right Mode Toggle"), - "window_shaded_toggle", "Left", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : State"), _("Shade Mode Toggle"), - "window_shaded_toggle", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : State"), _("Shade Up Mode Toggle"), "window_shaded_toggle", + "up", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Shade Down Mode Toggle"), "window_shaded_toggle", + "down", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Shade Left Mode Toggle"), "window_shaded_toggle", + "left", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Shade Right Mode Toggle"), "window_shaded_toggle", + "right", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : State"), _("Shade Mode Toggle"), "window_shaded_toggle", + NULL, NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(window_shaded); /* window_borderless_toggle */ ACT_GO(window_borderless_toggle); - e_register_action_predef_name(_("Window : State"), _("Toggle Borderless State"), - "window_borderless_toggle", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : State"), _("Toggle Borderless State"), "window_borderless_toggle", + NULL, NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* desk_flip_by */ ACT_GO(desk_flip_by); - e_register_action_predef_name(_("Desktop"), _("Flip Desktop Left"), "desk_flip_by", "-1 0", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Flip Desktop Right"), "desk_flip_by", "1 0", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Flip Desktop Up"), "desk_flip_by", "0 -1", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Flip Desktop Down"), "desk_flip_by", "0 1", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Flip Desktop By..."), - "desk_flip_by", NULL, EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Desktop"), _("Flip Desktop Left"), "desk_flip_by", "-1 0", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Flip Desktop Right"), "desk_flip_by", "1 0", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Flip Desktop Up"), "desk_flip_by", "0 -1", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Flip Desktop Down"), "desk_flip_by", "0 1", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Flip Desktop By..."), "desk_flip_by", NULL, + "syntax: X-offset Y-offset, example: -1 0", ACT_EDIT_RESTRICT_ACTION); /* desk_deskshow_toggle */ ACT_GO(desk_deskshow_toggle); - e_register_action_predef_name(_("Desktop"), _("Show The Desktop"), - "desk_deskshow_toggle", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Desktop"), _("Show The Desktop"), "desk_deskshow_toggle", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* desk_linear_flip_to */ ACT_GO(desk_flip_to); - e_register_action_predef_name(_("Desktop"), _("Flip Desktop To..."), - "desk_flip_to", NULL, EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Desktop"), _("Flip Desktop To..."), "desk_flip_to", NULL, + "syntax: X Y, example: 1 2", ACT_EDIT_RESTRICT_ACTION); /* desk_linear_flip_by */ ACT_GO(desk_linear_flip_by); - e_register_action_predef_name(_("Desktop"), _("Flip Desktop Linearly..."), - "desk_linear_flip_by", NULL, EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Desktop"), _("Flip Desktop Linearly..."), "desk_linear_flip_by", + NULL, "syntax: N-offset, example: -2", ACT_EDIT_RESTRICT_ACTION); /* desk_linear_flip_to */ ACT_GO(desk_linear_flip_to); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 0"), "desk_linear_flip_to", - "0", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 1"), "desk_linear_flip_to", - "1", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 2"), "desk_linear_flip_to", - "2", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 3"), "desk_linear_flip_to", - "3", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 4"), "desk_linear_flip_to", - "4", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 5"), "desk_linear_flip_to", - "5", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 6"), "desk_linear_flip_to", - "6", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 7"), "desk_linear_flip_to", - "7", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 8"), "desk_linear_flip_to", - "8", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 9"), "desk_linear_flip_to", - "9", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 10"), "desk_linear_flip_to", - "10", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop 11"), "desk_linear_flip_to", - "11", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Desktop"), _("Switch To Desktop..."), - "desk_linear_flip_to", NULL, EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 0"), "desk_linear_flip_to", "0", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 1"), "desk_linear_flip_to", "1", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 2"), "desk_linear_flip_to", "2", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 3"), "desk_linear_flip_to", "3", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 4"), "desk_linear_flip_to", "4", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 5"), "desk_linear_flip_to", "5", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 6"), "desk_linear_flip_to", "6", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 7"), "desk_linear_flip_to", "7", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 8"), "desk_linear_flip_to", "8", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 9"), "desk_linear_flip_to", "9", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 10"), "desk_linear_flip_to", "10", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop 11"), "desk_linear_flip_to", "11", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Desktop"), _("Switch To Desktop..."), "desk_linear_flip_to", NULL, + "syntax: N, example: 1", ACT_EDIT_RESTRICT_ACTION); /* screen_send_to */ ACT_GO(screen_send_to); - e_register_action_predef_name(_("Screen"), _("Send Mouse To Screen 0"), "screen_send_to", - "0", EDIT_RESTRICT_ACTION, 0); - e_register_action_predef_name(_("Screen"), _("Send Mouse To Screen 1"), "screen_send_to", - "1", EDIT_RESTRICT_ACTION, 0); - e_register_action_predef_name(_("Screen"), _("Send Mouse To Screen..."), "screen_send_to", - NULL, EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Screen"), _("Send Mouse To Screen 0"), "screen_send_to", "0", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Screen"), _("Send Mouse To Screen 1"), "screen_send_to", "1", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Screen"), _("Send Mouse To Screen..."), "screen_send_to", NULL, + "syntax: N, example: 0", ACT_EDIT_RESTRICT_ACTION); /* screen_send_by */ ACT_GO(screen_send_by); - e_register_action_predef_name(_("Screen"), _("Send Mouse Forward 1 Screen"), "screen_send_by", - "1", EDIT_RESTRICT_ACTION, 0); - e_register_action_predef_name(_("Screen"), _("Send Mouse Back 1 Screen"), "screen_send_by", - "-1", EDIT_RESTRICT_ACTION, 0); - e_register_action_predef_name(_("Screen"), _("Send Mouse Forward/Back Screens..."), "screen_send_by", - NULL, EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Screen"), _("Send Mouse Forward 1 Screen"), "screen_send_by", "1", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Screen"), _("Send Mouse Back 1 Screen"), "screen_send_by", "-1", + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Screen"), _("Send Mouse Forward/Back Screens..."), "screen_send_by", + NULL, "syntax: N-offset, example: -2", ACT_EDIT_RESTRICT_ACTION); /* window_move_to */ ACT_GO(window_move_to); - e_register_action_predef_name(_("Window : Actions"), "Move To...", "window_move_to", NULL, - EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Window : Actions"), "Move To...", "window_move_to", NULL, + "syntax: [ ,-]X [ ,-]Y or * [ ,-]Y or [ , -]X *, example: -1 1", ACT_EDIT_RESTRICT_ACTION); /* window_move_by */ ACT_GO(window_move_by); - e_register_action_predef_name(_("Window : Actions"), "Move By...", "window_move_by", NULL, - EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Window : Actions"), "Move By...", "window_move_by", NULL, + "syntax: X-offset Y-offset, example: -1 0", ACT_EDIT_RESTRICT_ACTION); /* window_resize_by */ ACT_GO(window_resize_by); - e_register_action_predef_name(_("Window : Actions"), "Resize By...", "window_resize_by", NULL, - EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Window : Actions"), "Resize By...", "window_resize_by", NULL, + "syntax: W H, example: 100 150", ACT_EDIT_RESTRICT_ACTION); /* window_drag_icon */ ACT_GO(window_drag_icon); - e_register_action_predef_name(_("Window : Actions"), "Drag Icon...", "window_drag_icon", NULL, - EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Window : Actions"), "Drag Icon...", "window_drag_icon", NULL, + NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* window_desk_move_by */ ACT_GO(window_desk_move_by); - e_register_action_predef_name(_("Window : Moving"), _("To Next Desktop"), "window_desk_move_by", - "1 0", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Previous Desktop"), - "window_desk_move_by", "-1 0", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("By Desktop #..."), "window_desk_move_by", - NULL, EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Next Desktop"), "window_desk_move_by", + "1 0", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : Moving"), _("To Previous Desktop"), "window_desk_move_by", + "-1 0", NULL, ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : Moving"), _("By Desktop #..."), "window_desk_move_by", NULL, + "syntax: X-offset Y-offset, example: -2 2", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + /* window_desk_move_to */ ACT_GO(window_desk_move_to); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 0"), "window_desk_move_to", - "0", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 1"), "window_desk_move_to", - "1", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 2"), "window_desk_move_to", - "2", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 3"), "window_desk_move_to", - "3", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 4"), "window_desk_move_to", - "4", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 5"), "window_desk_move_to", - "5", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 6"), "window_desk_move_to", - "6", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 7"), "window_desk_move_to", - "7", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 8"), "window_desk_move_to", - "8", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 9"), "window_desk_move_to", - "9", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 10"), "window_desk_move_to", - "10", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop 11"), "window_desk_move_to", - "11", EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : Moving"), _("To Desktop..."), "window_desk_move_to", - NULL, EDIT_RESTRICT_ACTION, 0); + /*e_action_predef_name_set(_("Window : Moving"), _("To Desktop 0"), "window_desk_move_to", + "0", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 1"), "window_desk_move_to", + "1", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 2"), "window_desk_move_to", + "2", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 3"), "window_desk_move_to", + "3", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 4"), "window_desk_move_to", + "4", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 5"), "window_desk_move_to", + "5", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 6"), "window_desk_move_to", + "6", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 7"), "window_desk_move_to", + "7", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 8"), "window_desk_move_to", + "8", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 9"), "window_desk_move_to", + "9", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 10"), "window_desk_move_to", + "10", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : Moving"), _("To Desktop 11"), "window_desk_move_to", + "11", ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS, 0);*/ + e_action_predef_name_set(_("Window : Moving"), _("To Desktop..."), "window_desk_move_to", NULL, + "syntax: X Y, example: 0 1", ACT_EDIT_RESTRICT_ACTION); /* menu_show */ ACT_GO(menu_show); - e_register_action_predef_name(_("Menu"), _("Show Main Menu"), "menu_show", "main", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Menu"), _("Show Favorites Menu"), "menu_show", "favorites", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Menu"), _("Show All Applications Menu"), "menu_show", "all", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Menu"), _("Show Clients Menu"), "menu_show", "clients", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Menu"), _("Show Menu..."), "menu_show", "clients", - EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Menu"), _("Show Main Menu"), "menu_show", "main", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Menu"), _("Show Favorites Menu"), "menu_show", "favorites", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Menu"), _("Show All Applications Menu"), "menu_show", "all", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Menu"), _("Show Clients Menu"), "menu_show", "clients", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Menu"), _("Show Menu..."), "menu_show", NULL, + "syntax: MenuName, example: MyMenu", ACT_EDIT_RESTRICT_ACTION); ACT_GO_MOUSE(menu_show); ACT_GO_KEY(menu_show); /* exec */ ACT_GO(exec); - e_register_action_predef_name(_("Launch"), _("Defined Command"), "exec", NULL, - EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Launch"), _("Defined Command"), "exec", NULL, + "syntax: CommandName, example: /usr/bin/skype", ACT_EDIT_RESTRICT_ACTION); /* app */ ACT_GO(app); - e_register_action_predef_name(_("Launch"), _("Application"), "app", NULL, - EDIT_RESTRICT_ACTION, 0); + e_action_predef_name_set(_("Launch"), _("Application"), "app", NULL, "syntax: , example:", + ACT_EDIT_RESTRICT_ACTION); /* winlist */ ACT_GO(winlist); - e_register_action_predef_name(_("Window : List"), _("Next Window"), "winlist", "next", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); - e_register_action_predef_name(_("Window : List"), _("Previous Window"), "winlist", "prev", - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Window : List"), _("Next Window"), "winlist", "next", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); + e_action_predef_name_set(_("Window : List"), _("Previous Window"), "winlist", "prev", NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO_MOUSE(winlist); ACT_GO_KEY(winlist); ACT_GO(restart); - e_register_action_predef_name(_("Enlightenment"), _("Restart"), "restart", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Enlightenment"), _("Restart"), "restart", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(exit); - e_register_action_predef_name(_("Enlightenment"), _("Exit"), "exit", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Enlightenment"), _("Exit"), "exit", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(logout); - e_register_action_predef_name(_("Enlightenment"), _("Log Out"), "logout", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Enlightenment"), _("Log Out"), "logout", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(exit_now); - e_register_action_predef_name(_("Enlightenment"), _("Exit Immediately"), "exit_now", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Enlightenment"), _("Exit Immediately"), "exit_now", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(halt); - e_register_action_predef_name(_("System"), _("Shut Down"), "halt", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("System"), _("Shut Down"), "halt", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(reboot); - e_register_action_predef_name(_("System"), _("Reboot"), "reboot", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("System"), _("Reboot"), "reboot", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(suspend); - e_register_action_predef_name(_("System"), _("Suspend"), "suspend", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("System"), _("Suspend"), "suspend", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(hibernate); - e_register_action_predef_name(_("System"), _("Suspend to Disk"), "hibernate", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("System"), _("Suspend to Disk"), "hibernate", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); ACT_GO(pointer_resize_push); ACT_GO(pointer_resize_pop); /* exebuf */ ACT_GO(exebuf); - e_register_action_predef_name(_("Launch"), _("Run Command Dialog"), "exebuf", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Launch"), _("Run Command Dialog"), "exebuf", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); /* desk_lock */ ACT_GO(desk_lock); - e_register_action_predef_name(_("Desktop"), _("Desktop Lock"), "desk_lock", NULL, - EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0); + e_action_predef_name_set(_("Desktop"), _("Desktop Lock"), "desk_lock", NULL, NULL, + ACT_EDIT_RESTRICT_ACTION | ACT_EDIT_RESTRICT_PARAMS); return 1; } @@ -2068,7 +2055,7 @@ EAPI int e_actions_shutdown(void) { - e_unregister_all_action_predef_names(); + e_action_predef_name_all_del(); action_names = evas_list_free(action_names); while (actions) { @@ -2119,6 +2106,139 @@ return act; } +EAPI void +e_action_predef_name_set(const char *act_grp, const char *act_name, const char *act_cmd, const char *act_params, const char *param_example, E_Action_Edit_Restrictions restrictions) +{ + E_Action_Group *actg = NULL; + E_Action_Description *actd = NULL; + Evas_List *l; + + if (!act_grp || !act_name) return; + + for (l = action_groups; l; l = l->next) + { + actg = l->data; + + if (!strcmp(actg->act_grp, act_grp)) + break; + actg = NULL; + } + + if (!actg) + { + actg = E_NEW(E_Action_Group, 1); + if (!actg) return; + + actg->act_grp = evas_stringshare_add(act_grp); + actg->acts = NULL; + + action_groups = evas_list_append(action_groups, actg); + action_groups = + evas_list_sort(action_groups, evas_list_count(action_groups), _action_groups_sort_cb); + } + + for (l = actg->acts; l; l = l->next) + { + actd = l->data; + if (!strcmp(actd->act_name, act_name)) + break; + actd = NULL; + } + + if (actd) return; + + actd = E_NEW(E_Action_Description, 1); + if (!actd) return; + + actd->act_name = evas_stringshare_add(act_name); + actd->act_cmd = act_cmd == NULL ? NULL : evas_stringshare_add(act_cmd); + actd->act_params = act_params == NULL ? NULL : evas_stringshare_add(act_params); + actd->param_example = param_example == NULL ? NULL : evas_stringshare_add(param_example); + actd->restrictions = restrictions; + + actg->acts = evas_list_append(actg->acts, actd); +} + +EAPI void +e_action_predef_name_del(const char *act_grp, const char *act_name) +{ + E_Action_Group *actg = NULL; + E_Action_Description *actd = NULL; + Evas_List *l; + + for (l = action_groups; l; l = l->next) + { + actg = l->data; + if (!strcmp(actg->act_grp, act_grp)) + break; + actg = NULL; + } + + if (!actg) return; + + for (l = actg->acts; l; l = l->next) + { + actd = l->data; + if (!strcmp(actd->act_name, act_name)) + { + actg->acts = evas_list_remove_list(actg->acts, l); + + if (actd->act_name) evas_stringshare_del(actd->act_name); + if (actd->act_cmd) evas_stringshare_del(actd->act_cmd); + if (actd->act_params) evas_stringshare_del(actd->act_params); + if (actd->param_example) evas_stringshare_del(actd->param_example); + + E_FREE(actd); + + if (!evas_list_count(actg->acts)) + { + action_groups = evas_list_remove_list(action_groups, l); + if (actg->act_grp) evas_stringshare_del(actg->act_grp); + E_FREE(actg); + } + break; + } + } + +} + +EAPI void +e_action_predef_name_all_del() +{ + E_Action_Group *actg = NULL; + E_Action_Description *actd = NULL; + + while (action_groups) + { + actg = action_groups->data; + + while (actg->acts) + { + actd = actg->acts->data; + + if (actd->act_name) evas_stringshare_del(actd->act_name); + if (actd->act_cmd) evas_stringshare_del(actd->act_cmd); + if (actd->act_params) evas_stringshare_del(actd->act_params); + if (actd->param_example) evas_stringshare_del(actd->param_example); + + E_FREE(actd); + + actg->acts = evas_list_remove_list(actg->acts, actg->acts); + } + if (actg->act_grp) evas_stringshare_del(actg->act_grp); + E_FREE(actg); + + action_groups = evas_list_remove_list(action_groups, action_groups); + } + action_groups = NULL; +} + +EAPI Evas_List * +e_action_groups_get() +{ + return action_groups; +} + /* local subsystem functions */ static void @@ -2163,4 +2283,18 @@ else max = e_config->maximize_policy; return max; +} + +static int +_action_groups_sort_cb(void *d1, void *d2) +{ + E_Action_Group *g1, *g2; + + g1 = d1; + g2 = d2; + + if (!g1) return 1; + if (!g2) return -1; + + return strcmp(g1->act_grp, g2->act_grp); } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_actions.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- e_actions.h 6 May 2006 09:35:05 -0000 1.11 +++ e_actions.h 11 Oct 2006 08:46:52 -0000 1.12 @@ -4,6 +4,8 @@ #ifdef E_TYPEDEFS typedef struct _E_Action E_Action; +typedef struct _E_Action_Description E_Action_Description; +typedef struct _E_Action_Group E_Action_Group; #else #ifndef E_ACTIONS_H @@ -28,6 +30,28 @@ } func; }; +typedef enum +{ + ACT_EDIT_RESTRICT_NONE = (0 << 0), + ACT_EDIT_RESTRICT_ACTION = (1 << 0), + ACT_EDIT_RESTRICT_PARAMS = (1 << 1) +} E_Action_Edit_Restrictions; + +struct _E_Action_Description +{ + const char *act_name; + const char *act_cmd; + const char *act_params; + const char *param_example; + E_Action_Edit_Restrictions restrictions; +}; + +struct _E_Action_Group +{ + const char *act_grp; + Evas_List *acts; +}; + EAPI int e_actions_init(void); EAPI int e_actions_shutdown(void); @@ -36,6 +60,11 @@ /* e_action_del allows, for example, modules to define their own actions dynamically. */ EAPI void e_action_del(const char *name); EAPI E_Action *e_action_find(const char *name); - + +EAPI void e_action_predef_name_set(const char *act_grp, const char *act_name, const char *act_cmd, const char *act_params, const char *param_example, E_Action_Edit_Restrictions restrictions); +EAPI void e_action_predef_name_del(const char *act_grp, const char *act_name); +EAPI void e_action_predef_name_all_del(); +EAPI Evas_List *e_action_groups_get(); + #endif #endif =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.207 retrieving revision 1.208 diff -u -3 -r1.207 -r1.208 --- e_config.c 5 Oct 2006 10:34:42 -0000 1.207 +++ e_config.c 11 Oct 2006 08:46:52 -0000 1.208 @@ -741,6 +741,10 @@ eb->action = _action == NULL ? NULL : evas_stringshare_add(_action); \ eb->params = _params == NULL ? NULL : evas_stringshare_add(_params); \ e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb) + + //FIXME: If new mouse 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_MOUSEBIND(E_BINDING_CONTEXT_BORDER, 1, E_BINDING_MODIFIER_ALT, 0, @@ -774,6 +778,10 @@ eb->params = _params == NULL ? NULL : evas_stringshare_add(_params); \ e_config->key_bindings = evas_list_append(e_config->key_bindings, eb) + //FIXME: If new key binding are added/changed/modified, then do not + //forget to reflect those changes in e_int_config_keybinding.c in + //_restore_key_binding_defaults_cb function + CFG_KEYBIND(E_BINDING_CONTEXT_ANY, "Left", E_BINDING_MODIFIER_SHIFT | E_BINDING_MODIFIER_ALT, 0, "desk_flip_by", "-1 0"); @@ -814,7 +822,7 @@ E_BINDING_MODIFIER_ALT, 0, "window_maximized_toggle", "default vertical"); CFG_KEYBIND(E_BINDING_CONTEXT_ANY, "F10", - E_BINDING_MODIFIER_CTRL, 0, + E_BINDING_MODIFIER_SHIFT, 0, "window_maximized_toggle", "default horizontal"); CFG_KEYBIND(E_BINDING_CONTEXT_ANY, "r", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0, @@ -1056,6 +1064,10 @@ eb->params = _params == NULL ? NULL : evas_stringshare_add(_params); \ e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb) + //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"); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_keybindings.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- e_int_config_keybindings.c 8 Oct 2006 08:04:17 -0000 1.37 +++ e_int_config_keybindings.c 11 Oct 2006 08:46:52 -0000 1.38 @@ -1,25 +1,10 @@ #include "e.h" -#define ACTION_LIST_ICON_W 24 -#define ACTION_LIST_ICON_H 24 - -#define BINDING_LIST_ICON_W 16 -#define BINDING_LIST_ICON_H 16 - -#define BTN_ASSIGN_KEYBINDING_TEXT _("Choose a Key") - -#define TEXT_ACTION _("Action") #define TEXT_NONE_ACTION_KEY _("<None>") -#define TEXT_PRESS_KEY_SEQUENCE _("Please press key sequence,<br>" \ +#define TEXT_PRESS_KEY_SEQUENCE _("Please press key sequence,<br><br>" \ "or <hilight>Escape</hilight> to abort.") -#define ILIST_ICON_WITH_KEYBIND "enlightenment/keys" -#define ILIST_ICON_WITHOUT_KEYBIND "" - -#define AG_UNSORTED _("Unsorted") -#define AG_AN_UNKNOWN _("Unknown") - -#define E_BINDING_CONTEXT_NUMBER 10 +#define TEXT_NO_PARAMS _("<None>") static void *_create_data(E_Config_Dialog *cfd); static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); @@ -27,1332 +12,936 @@ static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); +/********* private functions ***************/ +static void _fill_actions_list(E_Config_Dialog_Data *cfdata); -/*******************************************************************************************/ -static void _e_keybinding_action_ilist_cb_change(void *data, Evas_Object *obj); -static void _e_keybinding_binding_ilist_cb_change(void *data, Evas_Object *obj); -static void _e_keybinding_default_keybinding_settings(E_Config_Dialog_Data *cfdata); - -static void _e_keybinding_keybind_cb_del_keybinding(void *data, void *data2); -//static void _e_keybinding_keybind_delete_keybinding(E_Config_Dialog_Data *cfdata); - -static void _e_keybinding_keybind_cb_add_keybinding(void *data, void *data2); - -static void _e_keybinding_keybind_cb_new_shortcut(void *data, void *data2); - -static void _e_keybinding_update_binding_list(E_Config_Dialog_Data *cfdata); - -static void _e_keybinding_update_keybinding_button(E_Config_Dialog_Data *cfdata); -static void _e_keybinding_update_add_delete_buttons(E_Config_Dialog_Data *cfdata); -static void _e_keybinding_update_context_radios(E_Config_Dialog_Data *cfdata); -static void _e_keybinding_update_action_param_entries(E_Config_Dialog_Data *cfdata); - -static void _e_keybinding_update_binding_ilist_cur_selection_icon(E_Config_Dialog_Data *cfdata); -static void _e_keybinding_update_action_ilist_cur_selection_icon(E_Config_Dialog_Data *cfdata); - -static char *_e_keybinding_get_keybinding_text(E_Config_Binding_Key *bk); - -static int _e_keybinding_cb_shortcut_key_down(void *data, int type, void *event); -static int _e_keybinding_cb_mouse_handler_dumb(void *data, int type, void *event); - -static int _e_keybinding_keybind_cb_auto_apply(E_Config_Dialog_Data *cfdata); - - -static void _fill_data(E_Config_Dialog_Data *cfdata); -static int _action_group_list_sort_cb(void *e1, void *e2); -static int _action_group_actions_list_sort_cb(void *e1, void *e2); -/*******************************************************************************************/ - -typedef struct _action2 -{ - const char *action_name; - const char *action_cmd; - const char *action_params; - int def_action; - int restrictions; - Evas_List *key_bindings; -} ACTION2; - -typedef struct _action_group -{ - const char *action_group; - Evas_List *actions; // Here ACTION2 structure is used. -} ACTION_GROUP; +/**************** Updates ***********/ +static void _update_key_binding_list(E_Config_Dialog_Data *cfdata); +static void _update_action_list(E_Config_Dialog_Data *cfdata); +static void _update_action_params(E_Config_Dialog_Data *cfdata); +static void _update_buttons(E_Config_Dialog_Data *cfdata); + +/**************** Callbacks *********/ +static void _binding_change_cb(void *data); +static void _action_change_cb(void *data); +static void _delete_all_key_binding_cb(void *data, void *data2); +static void _delete_key_binding_cb(void *data, void *data2); +static void _restore_key_binding_defaults_cb(void *data, void *data2); +static void _add_key_binding_cb(void *data, void *data2); +static void _modify_key_binding_cb(void *data, void *data2); + +/********* Helper *************************/ +static char *_key_binding_text_get(E_Config_Binding_Key *bi); +static void _auto_apply_changes(E_Config_Dialog_Data *cfdata); +static void _find_key_binding_action(E_Config_Binding_Key *bi, int *g, int *a, int *n); + +/********* Sorting ************************/ +static int _key_binding_sort_cb(void *d1, void *d2); + +/**************** grab window *******/ +static void _grab_wnd_show(E_Config_Dialog_Data *cfdata); +static int _grab_key_down_cb(void *data, int type, void *event); +static int _grab_mouse_dumb_cb(void *data, int type, void *event); struct _E_Config_Dialog_Data { - E_Config_Dialog *cfd; - - ACTION2 *current_act; - int current_act_selector; - - Evas *evas; - - int binding_context; - char *key_action; - char *key_params; - - struct - { - Evas_Object *action_ilist; - Evas_Object *binding_ilist; - - Evas_Object *btn_add; - Evas_Object *btn_del; - Evas_Object *btn_keybind; - - Evas_Object *bind_context[E_BINDING_CONTEXT_NUMBER]; - Evas_Object *key_action; - Evas_Object *key_params; - - E_Dialog *confirm_dialog; - } gui; - - struct { - Ecore_X_Window keybind_win; - Evas_List *handlers; - E_Dialog *dia; - }locals; - - int changed; -}; - -/*******************************************************************************/ - - -Evas_List *action_group_list=NULL; - -int e_int_config_keybindings_register_action_predef_name(const char *action_group, - const char *action_name, - const char *action_cmd, - const char *action_params, - E_Keybindings_Restrict restrictions, - int flag) -{ - ACTION_GROUP *actg = NULL; - ACTION2 *act = NULL; - Evas_List *ll; - - if (!action_group || !action_name) - return 0; - - for (ll = action_group_list; ll; ll = ll->next) + Evas *evas; + struct { - actg = ll->data; - - if (!strcmp(actg->action_group, action_group)) - break; - actg = NULL; - } - - if (actg == NULL) + Evas_List *key; + } binding; + struct { - actg = E_NEW(ACTION_GROUP, 1); - if (!actg) - return 0; - - actg->action_group = evas_stringshare_add(action_group); - actg->actions = NULL; - - action_group_list = evas_list_append(action_group_list, actg); - - action_group_list = evas_list_sort(action_group_list, evas_list_count(action_group_list), - _action_group_list_sort_cb); - } + char *binding; + char *action; + char *params; + + char *cur; + int cur_act; + int add; + + E_Dialog *dia; + Ecore_X_Window bind_win; + Evas_List *handlers; + } locals; - for (ll = actg->actions; ll; ll = ll->next) + struct { - act = ll->data; - if (!strcmp(act->action_name, action_name)) - break; - act = NULL; - } - - if (act) - return 1; - - - act = E_NEW(ACTION2, 1); - if (!act) - return 0; - - act->action_name = evas_stringshare_add(action_name); - act->action_cmd = action_cmd == NULL ? NULL : evas_stringshare_add(action_cmd); - act->action_params = action_params == NULL ? NULL : evas_stringshare_add(action_params); - act->restrictions = restrictions; - act->def_action = flag; - act->key_bindings = NULL; - - actg->actions = evas_list_append(actg->actions, act); -#if 0 - actg->actions = evas_list_sort(actg->actions, evas_list_count(actg->actions), - _action_group_actions_list_sort_cb); -#endif - - return 1; -} - -int e_int_config_keybindings_unregister_action_predef_name(const char *action_group, - const char *action_name) -{ - ACTION_GROUP *actg; - ACTION2 *act; - Evas_List *l, *l2; - - for (l = action_group_list; l; l = l->next) - { - actg = l->data; - if (!strcmp(actg->action_group, action_group)) - { - for (l2 = actg->actions; l2; l2 = l2->next) - { - act = l2->data; - if (!strcmp(act->action_name, action_name)) - { - actg->actions = evas_list_remove_list(actg->actions, l2); - - if (act->action_name) evas_stringshare_del(act->action_name); - if (act->action_cmd) evas_stringshare_del(act->action_cmd); - if (act->action_params) evas_stringshare_del(act->action_params); - - while (act->key_bindings) - { - E_Config_Binding_Key *eb = act->key_bindings->data; - if (eb->key) evas_stringshare_del(eb->key); - if (eb->action) evas_stringshare_del(eb->action); - if (eb->params) evas_stringshare_del(eb->params); - E_FREE(eb); - - act->key_bindings = evas_list_remove_list(act->key_bindings, - act->key_bindings); - - } - E_FREE(act); - break; - } - } - - if (evas_list_count(actg->actions) == 0) - { - action_group_list = evas_list_remove_list(action_group_list, l); - if (actg->action_group) evas_stringshare_del(actg->action_group); - E_FREE(actg); - } - break; - } - } - - return 1; -} - -void e_int_config_keybindings_unregister_all_action_predef_names() -{ - ACTION_GROUP *actg; - ACTION2 *act; - - while (action_group_list) - { - actg = action_group_list->data; - - while (actg->actions) - { - act = actg->actions->data; - - if (act->action_name) evas_stringshare_del(act->action_name); - if (act->action_cmd) evas_stringshare_del(act->action_cmd); - if (act->action_params) evas_stringshare_del(act->action_params); - - while (act->key_bindings) - { - E_Config_Binding_Key *eb = act->key_bindings->data; - if (eb->key) evas_stringshare_del(eb->key); - if (eb->action) evas_stringshare_del(eb->action); - if (eb->params) evas_stringshare_del(eb->params); - E_FREE(eb); - - act->key_bindings = evas_list_remove_list(act->key_bindings, - act->key_bindings); - } - /*for (l3 = act->key_bindings; l3; l3 = l3->next) - { - E_Config_Binding_Key *eb = l3->data; - if (eb->key) evas_stringshare_del(eb->key); - if (eb->action) evas_stringshare_del(eb->action); - if (eb->params) evas_stringshare_del(eb->params); - E_FREE(eb); - }*/ - - E_FREE(act); - - actg->actions = evas_list_remove_list(actg->actions, actg->actions); - } - - if (actg->action_group) evas_stringshare_del(actg->action_group); - E_FREE(actg); - - action_group_list = evas_list_remove_list(action_group_list, action_group_list); - } - - action_group_list = NULL; -} -/*******************************************************************************/ - + Evas_Object *o_add, *o_mod, *o_del, *o_del_all; + Evas_Object *o_binding_list, *o_action_list; + Evas_Object *o_params; + } gui; +}; EAPI E_Config_Dialog * e_int_config_keybindings(E_Container *con) { E_Config_Dialog *cfd; E_Config_Dialog_View *v; - - if (e_config_dialog_find("E", "_config_keybindings_dialog")) return NULL; + + if (e_config_dialog_find("E", "_config_keybinding_dialog")) return NULL; v = E_NEW(E_Config_Dialog_View, 1); - + v->create_cfdata = _create_data; v->free_cfdata = _free_data; v->basic.apply_cfdata = _basic_apply_data; v->basic.create_widgets = _basic_create_widgets; v->override_auto_apply = 1; - - cfd = e_config_dialog_new(con, - _("Key Binding Settings"), - "E", "_config_keybindings_dialog", - "enlightenment/keys", 0, v, NULL); + + cfd = e_config_dialog_new(con, _("Key Binding Settings"), "E", "_config_keybinding_dialog", + "enlightenment/keys", 0, v, NULL); + return cfd; } static void _fill_data(E_Config_Dialog_Data *cfdata) { - E_Config_Binding_Key *eb, *t; - Evas_List *l, *l2, *l3; - ACTION_GROUP *actg; - ACTION2 *act; - - e_int_config_keybindings_register_action_predef_name(AG_UNSORTED, AG_AN_UNKNOWN, - NULL, NULL, - EDIT_RESTRICT_NONE, 1); + Evas_List *l; + E_Config_Binding_Key *bi, *bi2; - for (l = e_config->key_bindings; l; l = l->next) - { - int found; - t = l->data; - - found = 0; - for (l2 = action_group_list; l2 && !found; l2 = l2->next) - { - actg = l2->data; - - /* here we are looking for actions with params */ - for (l3 = actg->actions; l3 && !found; l3 = l3->next) - { - act = l3->data; - - if (((!act->action_cmd || !act->action_cmd[0]) && (t->action && t->action[0])) || - ((!t->action || !t->action[0]) && (act->action_cmd && act->action_cmd[0]))) - continue; - - if (t->params && t->params[0]) // here we have that action has params - { - if (!act->action_params || !act->action_params[0]) - continue; - - if (strcmp(!act->action_cmd ? "" : act->action_cmd, - !t->action ? "" : t->action) == 0 && - strcmp(act->action_params, t->params) == 0) - { - eb = E_NEW(E_Config_Binding_Key, 1); - if (!eb) continue; - - eb->context = t->context; - eb->modifiers = t->modifiers; - eb->key = (!t->key) ? evas_stringshare_add("") : - evas_stringshare_add(t->key); - eb->action = (!t->action) ? NULL : evas_stringshare_add(t->action); - eb->params = (!t->params) ? NULL : evas_stringshare_add(t->params); - eb->any_mod = t->any_mod; - - act->key_bindings = evas_list_append(act->key_bindings, eb); - - found = 1; - } - } - } - - /* here we are looking for actions without parmas and for unsorted actions */ - for (l3 = actg->actions; l3 && !found; l3 = l3->next) - { - act = l3->data; - - if (act->action_params && act->action_params[0]) - continue; - - if (!strcmp(actg->action_group, AG_UNSORTED) && - !strcmp(act->action_name, AG_AN_UNKNOWN)) - { - eb = E_NEW(E_Config_Binding_Key, 1); - if (!eb) continue; - - eb->context = t->context; - eb->modifiers = t->modifiers; - eb->key = t->key == NULL ? evas_stringshare_add("") : - evas_stringshare_add(t->key); - eb->action = t->action == NULL ? NULL : evas_stringshare_add(t->action); - eb->params = t->params == NULL ? NULL : evas_stringshare_add(t->params); - eb->any_mod = t->any_mod; - - act->key_bindings = evas_list_append(act->key_bindings, eb); - found = 1; - break; - } - - if (((!act->action_cmd || !act->action_cmd[0]) && (t->action && t->action[0])) || - ((!t->action || !t->action[0]) && (act->action_cmd && act->action_cmd[0]))) - continue; - - if (strcmp(!act->action_cmd ? "" : act->action_cmd, - !t->action ? "" : t->action) == 0) - { - eb = E_NEW(E_Config_Binding_Key, 1); - if (!eb) continue; + cfdata->locals.binding = strdup(""); + cfdata->locals.action = strdup(""); + cfdata->locals.params = strdup(""); + cfdata->locals.cur = NULL; + cfdata->binding.key = NULL; + cfdata->locals.bind_win = 0; + cfdata->locals.handlers = NULL; + cfdata->locals.dia = NULL; - eb->context = t->context; - eb->modifiers = t->modifiers; - eb->key = (!t->key) ? evas_stringshare_add("") : - evas_stringshare_add(t->key); - eb->action = (!t->action) ? NULL : evas_stringshare_add(t->action); - eb->params = (!t->params) ? NULL : evas_stringshare_add(t->params); - eb->any_mod = t->any_mod; + for (l = e_config->key_bindings; l; l = l->next) + { + bi = l->data; + if (!bi) continue; - act->key_bindings = evas_list_append(act->key_bindings, eb); + bi2 = E_NEW(E_Config_Binding_Key, 1); + bi2->context = bi->context; + bi2->key = bi->key == NULL ? NULL : evas_stringshare_add(bi->key); + bi2->modifiers = bi->modifiers; + bi2->any_mod = bi->any_mod; + bi2->action = bi->action == NULL ? NULL : evas_stringshare_add(bi->action); + bi2->params = bi->params == NULL ? NULL : evas_stringshare_add(bi->params); - found = 1; - } - } - } + cfdata->binding.key = evas_list_append(cfdata->binding.key, bi2); } - cfdata->locals.keybind_win = 0; - cfdata->locals.handlers = NULL; - cfdata->locals.dia = NULL; - cfdata->changed = 0; } + static void * _create_data(E_Config_Dialog *cfd) { E_Config_Dialog_Data *cfdata; - + cfdata = E_NEW(E_Config_Dialog_Data, 1); - - cfdata->binding_context = -1;//E_BINDING_CONTEXT_ANY; - cfdata->key_action = strdup(""); - cfdata->key_params = strdup(""); - + _fill_data(cfdata); - cfdata->cfd = cfd; - + return cfdata; } static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { - Evas_List *l, *l2; - E_FREE(cfdata->key_action); - E_FREE(cfdata->key_params); + E_Config_Binding_Key *bi; - for (l = action_group_list; l; l = l->next) + while (cfdata->binding.key) { - ACTION_GROUP *actg = l->data; - for (l2 = actg->actions; l2; l2 = l2->next) - { - ACTION2 *act = l2->data; - while (act->key_bindings) - { - E_Config_Binding_Key *eb = act->key_bindings->data; - - if (eb) - { - if (eb->key) evas_stringshare_del(eb->key); - if (eb->action) evas_stringshare_del(eb->action); - if (eb->params) evas_stringshare_del(eb->params); - E_FREE(eb); - } - act->key_bindings = evas_list_remove_list(act->key_bindings, act->key_bindings); - } - } + bi = cfdata->binding.key->data; + if (bi->key) evas_stringshare_del(bi->key); + if (bi->action) evas_stringshare_del(bi->action); + if (bi->params) evas_stringshare_del(bi->params); + E_FREE(bi); + cfdata->binding.key = evas_list_remove_list(cfdata->binding.key, cfdata->binding.key); } + + if (cfdata->locals.cur) free(cfdata->locals.cur); + if (cfdata->locals.binding) free(cfdata->locals.binding); + if (cfdata->locals.action) free(cfdata->locals.action); + if (cfdata->locals.params) free(cfdata->locals.params); + free(cfdata); } static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { - Evas_List *l, *l2, *l3; - if (!cfdata) return 0; + Evas_List *l; + E_Config_Binding_Key *bi, *bi2; - if (cfdata->current_act) - if (_e_keybinding_keybind_cb_auto_apply(cfdata) != 1) - { - //TODO: message box which should ask if we really should proceed. - //If yes, then the current 'empty' binding will be deleted - //_keybind_delete_keybinding(cfdata); - } + _auto_apply_changes(cfdata); e_managers_keys_ungrab(); - while(e_config->key_bindings) + while (e_config->key_bindings) { - E_Config_Binding_Key *eb; - - eb = e_config->key_bindings->data; - e_bindings_key_del(eb->context, eb->key, eb->modifiers, eb->any_mod, - eb->action, eb->params); - e_config->key_bindings = evas_list_remove_list(e_config->key_bindings, - e_config->key_bindings); - if (eb->key) evas_stringshare_del(eb->key); - if (eb->action) evas_stringshare_del(eb->action); - if (eb->params) evas_stringshare_del(eb->params); - E_FREE(eb); + bi = e_config->key_bindings->data; + e_bindings_key_del(bi->context, bi->key, bi->modifiers, bi->any_mod, + bi->action, bi->params); + e_config->key_bindings = + evas_list_remove_list(e_config->key_bindings, e_config->key_bindings); + + if (bi->key) evas_stringshare_del(bi->key); + if (bi->action) evas_stringshare_del(bi->action); + if (bi->params) evas_stringshare_del(bi->params); + E_FREE(bi); } - for (l = action_group_list; l; l = l->next) + for (l = cfdata->binding.key; l; l = l->next) { - ACTION_GROUP *actg = l->data; - for (l2 = actg->actions; l2; l2 = l2->next) - { - ACTION2 *act = l2->data; - for (l3 = act->key_bindings; l3; l3 = l3->next) - { - E_Config_Binding_Key *eb, *eb2; - eb = l3->data; - if (!eb || !eb->key || !eb->key[0]) continue; - - eb2 = E_NEW(E_Config_Binding_Key, 1); - if (!eb2) continue; - - eb2->context = eb->context; - eb2->key = evas_stringshare_add(eb->key); - eb2->modifiers = eb->modifiers; - eb2->any_mod = eb->any_mod; - eb2->action = !eb->action || !eb->action[0] ? NULL : - evas_stringshare_add(eb->action); - eb2->params = !eb->params || !eb->params[0] ? NULL : - evas_stringshare_add(eb->params); - e_config->key_bindings = evas_list_append(e_config->key_bindings, eb2); - e_bindings_key_add(eb->context, eb->key, eb->modifiers, eb->any_mod, - eb->action, eb->params); - } - } + bi2 = l->data; + + if (!bi2->key || !bi2->key[0]) continue; + + bi = E_NEW(E_Config_Binding_Key, 1); + bi->context = bi2->context; + bi->key = evas_stringshare_add(bi2->key); + bi->modifiers = bi2->modifiers; + bi->any_mod = bi2->any_mod; + bi->action = + ((!bi2->action) || (!bi2->action[0])) ? NULL : evas_stringshare_add(bi2->action); + bi->params = + ((!bi2->params) || (!bi2->params[0])) ? NULL : evas_stringshare_add(bi2->params); + + e_config->key_bindings = evas_list_append(e_config->key_bindings, bi); + e_bindings_key_add(bi->context, bi->key, bi->modifiers, bi->any_mod, + bi->action, bi->params); } e_managers_keys_grab(); e_config_save_queue(); - cfdata->changed = 0; + return 1; } + static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { - Evas_Object *ot; - Evas_Object *ob, *of; + Evas_Object *o, *ol, *ol2, *of; - cfdata->evas = evas; + cfdata->evas = evas; - ot = e_widget_table_add(evas, 0); - { -... [truncated message content] |
From: Enlightenment C. <no...@cv...> - 2006-10-11 08:47:46
|
Enlightenment CVS committal Author : sndev Project : e17 Module : apps/e Dir : e17/apps/e Modified Files: TODO Log Message: todo-- =================================================================== RCS file: /cvs/e/e17/apps/e/TODO,v retrieving revision 1.458 retrieving revision 1.459 diff -u -3 -r1.458 -r1.459 --- TODO 10 Oct 2006 18:30:56 -0000 1.458 +++ TODO 11 Oct 2006 08:47:43 -0000 1.459 @@ -68,8 +68,6 @@ always work and the fallback checks might not work either. * If a user has set a border type on a window, don't bother to check for changes. -* keybindings dialog doesn't conform its formatting or datatype naming to - anything else in e17 - it needs fixing. * need to audit, namespace and expand text and color classes * need to specify what is NEEDED from a theme, what is optional (in terms of parts, groups and signals). etc. |