Hi, _ new patch, don't apply the yesterday one, it's more complete. _ New and better organisation of e_border menu I hope so. _ Some more stock button_detail icons.
-- Sébastien HOUZE [EMAIL PROTECTED]
e17_button_details.tgz
Description: application/compressed-tar
--- e/data/themes/default_border.edc 2005-07-13 11:25:22.000000000 +0200 +++ e.fun/data/themes/default_border.edc 2005-07-14 08:19:58.046899290 +0200 @@ -213,33 +213,38 @@ image: "e17_border5.png" COMP; image: "e17_border6.png" COMP; image: "e17_border7.png" COMP; - image: "e17_titlebar_outline.png" COMP; - image: "e17_titlebar.png" COMP; - image: "e17_titlebar_hung.png" COMP; - image: "e17_titlebar_shadow1.png" COMP; - image: "e17_titlebar_shadow2.png" COMP; - image: "e17_titlebar_glint1.png" COMP; - image: "e17_titlebar_glint2.png" COMP; - image: "e17_titlebar_glint3.png" COMP; + image: "e17_button_detail_application.png" COMP; + image: "e17_button_detail_borderless.png" COMP; image: "e17_button_detail_close.png" COMP; + image: "e17_button_detail_fullscreen.png" COMP; + image: "e17_button_detail_kill.png" COMP; + image: "e17_button_detail_life.png" COMP; + image: "e17_button_detail_locks.png" COMP; image: "e17_button_detail_maximize.png" COMP; image: "e17_button_detail_minimize.png" COMP; - image: "e17_button_detail_shade.png" COMP; - image: "e17_button_detail_stick.png" COMP; - image: "e17_button_detail_locks.png" COMP; - image: "e17_button_detail_borderless.png" COMP; + image: "e17_button_detail_position.png" COMP; image: "e17_button_detail_remember.png" COMP; - image: "e17_button_detail_skip_winlist.png" COMP; - image: "e17_button_detail_fullscreen.png" COMP; image: "e17_button_detail_sendto.png" COMP; - image: "e17_button_detail_kill.png" COMP; - image: "e17_button_detail_stacking.png" COMP; + image: "e17_button_detail_shade.png" COMP; + image: "e17_button_detail_size.png" COMP; + image: "e17_button_detail_skip_winlist.png" COMP; image: "e17_button_detail_stack_below.png" COMP; + image: "e17_button_detail_stacking.png" COMP; image: "e17_button_detail_stack_normal.png" COMP; image: "e17_button_detail_stack_on_top.png" COMP; + image: "e17_button_detail_stick.png" COMP; + image: "e17_button_detail_user.png" COMP; image: "e17_mini_button.png" COMP; image: "e17_mini_button_shadow1.png" COMP; image: "e17_mini_button_shadow2.png" COMP; + image: "e17_titlebar_glint1.png" COMP; + image: "e17_titlebar_glint2.png" COMP; + image: "e17_titlebar_glint3.png" COMP; + image: "e17_titlebar_hung.png" COMP; + image: "e17_titlebar_outline.png" COMP; + image: "e17_titlebar.png" COMP; + image: "e17_titlebar_shadow1.png" COMP; + image: "e17_titlebar_shadow2.png" COMP; } group { name: "widgets/border/default/border"; @@ -1670,20 +1675,25 @@ } } +FULL_SIZE_BORDER_BUTTON("application") +FULL_SIZE_BORDER_BUTTON("borderless") FULL_SIZE_BORDER_BUTTON("close") -FULL_SIZE_BORDER_BUTTON("minimize") -FULL_SIZE_BORDER_BUTTON("maximize") -FULL_SIZE_BORDER_BUTTON("shade") -FULL_SIZE_BORDER_BUTTON("stick") +FULL_SIZE_BORDER_BUTTON("fullscreen") FULL_SIZE_BORDER_BUTTON("kill") +FULL_SIZE_BORDER_BUTTON("life") FULL_SIZE_BORDER_BUTTON("locks") -FULL_SIZE_BORDER_BUTTON("borderless") -FULL_SIZE_BORDER_BUTTON("fullscreen") +FULL_SIZE_BORDER_BUTTON("maximize") +FULL_SIZE_BORDER_BUTTON("minimize") +FULL_SIZE_BORDER_BUTTON("position") FULL_SIZE_BORDER_BUTTON("remember") -FULL_SIZE_BORDER_BUTTON("skip_winlist") FULL_SIZE_BORDER_BUTTON("sendto") +FULL_SIZE_BORDER_BUTTON("shade") +FULL_SIZE_BORDER_BUTTON("size") +FULL_SIZE_BORDER_BUTTON("skip_winlist") +FULL_SIZE_BORDER_BUTTON("stack_below") FULL_SIZE_BORDER_BUTTON("stacking") -FULL_SIZE_BORDER_BUTTON("stack_on_top") FULL_SIZE_BORDER_BUTTON("stack_normal") -FULL_SIZE_BORDER_BUTTON("stack_below") +FULL_SIZE_BORDER_BUTTON("stack_on_top") +FULL_SIZE_BORDER_BUTTON("stick") +FULL_SIZE_BORDER_BUTTON("user") --- e/src/bin/e_border.c 2005-07-13 17:02:08.000000000 +0200 +++ e.fun/src/bin/e_border.c 2005-07-14 08:20:09.354327715 +0200 @@ -18,6 +18,92 @@ #define MOVE 8 #define RESIZE_NONE 11 +#define NEW_LOCK_FN(var) \ +static void \ +_e_border_menu_cb_##var(void *data, E_Menu *m, E_Menu_Item *mi) \ +{ \ + E_Border *bd; \ + bd = data; \ + bd->var = e_menu_item_toggle_get(mi); \ + bd->changed = 1; \ +} + +#define MI_EDJE_SET(edj) \ + if( strcmp(edj, "") ) \ + { \ + e_menu_item_icon_edje_set(mi, \ + (char *)e_theme_edje_file_get("base/theme/borders", \ + "widgets/border/default/"edj), \ + "widgets/border/default/"edj); \ + } + +#define NEW_MI_ACTION(txt, var, edj) \ + mi = e_menu_item_new(m); \ + e_menu_item_label_set(mi, txt); \ + e_menu_item_callback_set(mi, _e_border_menu_cb_##var, bd); \ + MI_EDJE_SET(edj); + +#define NEW_MI_CHECK(txt, var, cbvar, edj) \ + mi = e_menu_item_new(m); \ + e_menu_item_label_set(mi, txt); \ + e_menu_item_check_set(mi, 1); \ + e_menu_item_toggle_set(mi, (bd->var ? 1 : 0)); \ + e_menu_item_callback_set(mi, _e_border_menu_cb_##cbvar, bd); \ + MI_EDJE_SET(edj); + +#define NEW_MI_RADIO(txt, var, val, cb, edj) \ + mi = e_menu_item_new(m); \ + e_menu_item_label_set(mi, txt); \ + e_menu_item_radio_set(mi, 1); \ + e_menu_item_radio_group_set(mi, 2); \ + e_menu_item_toggle_set(mi, (bd->var == val ? 1 : 0)); \ + e_menu_item_callback_set(mi, cb, bd); \ + MI_EDJE_SET(edj); + +#define NEW_MI_SUBMENU(txt, var, edj) \ + mi = e_menu_item_new(m); \ + e_menu_item_label_set(mi, txt); \ + e_menu_item_submenu_set(mi, bd->border_##var##_menu); \ + MI_EDJE_SET(edj); + +#define NEW_MI_SEPARATOR() \ + mi = e_menu_item_new(m); \ + e_menu_item_separator_set(mi, 1); + +#define NEW_REMEMBER_MI(txt, flag, var, cb, edj) \ + mi = e_menu_item_new(m); \ + e_menu_item_label_set(mi, txt); \ + e_menu_item_check_set(mi, 1); \ + if ((bd->remember) && (bd->remember->flag & var)) \ + e_menu_item_toggle_set(mi, 1); \ + e_menu_item_callback_set(mi, cb, bd); \ + MI_EDJE_SET(edj); + +#define MI_COND(cond, action) \ + if(cond) \ + { \ + action; \ + } \ + +#define FREE_MENU(var) \ + if (var) \ + { \ + e_object_del(E_OBJECT(var)); \ + var = NULL; \ + } + +#define FREE_ALL_MENU() \ + FREE_MENU(bd->border_menu); \ + FREE_MENU(bd->border_locks_menu); \ + FREE_MENU(bd->border_user_locks_menu); \ + FREE_MENU(bd->border_application_locks_menu); \ + FREE_MENU(bd->border_common_locks_menu); \ + FREE_MENU(bd->border_remember_menu); \ + FREE_MENU(bd->border_remember_what_menu); \ + FREE_MENU(bd->border_remember_for_menu); \ + FREE_MENU(bd->border_remember_match_menu); \ + FREE_MENU(bd->border_stacking_menu) \ + /* local subsystem functions */ static void _e_border_free(E_Border *bd); static void _e_border_del(E_Border *bd); @@ -1965,26 +2051,9 @@ free(bd->pending_move_resize->data); bd->pending_move_resize = evas_list_remove_list(bd->pending_move_resize, bd->pending_move_resize); } - if (bd->border_menu) - { - e_object_del(E_OBJECT(bd->border_menu)); - bd->border_menu = NULL; - } - if (bd->border_locks_menu) - { - e_object_del(E_OBJECT(bd->border_locks_menu)); - bd->border_locks_menu = NULL; - } - if (bd->border_remember_menu) - { - e_object_del(E_OBJECT(bd->border_remember_menu)); - bd->border_remember_menu = NULL; - } - if (bd->border_stacking_menu) - { - e_object_del(E_OBJECT(bd->border_stacking_menu)); - bd->border_stacking_menu = NULL; - } + + FREE_ALL_MENU(); + if (focused == bd) { // ecore_x_window_focus(bd->zone->container->manager->root); @@ -4125,7 +4194,7 @@ bd->lock_user_shade = rem->prop.lock_user_shade; bd->lock_client_shade = rem->prop.lock_client_shade; bd->lock_user_maximize = rem->prop.lock_user_maximize; - bd->lock_client_mazimize = rem->prop.lock_client_mazimize; + bd->lock_client_maximize = rem->prop.lock_client_maximize; bd->lock_user_fullscreen = rem->prop.lock_user_fullscreen; bd->lock_client_fullscreen = rem->prop.lock_client_fullscreen; bd->lock_border = rem->prop.lock_border; @@ -5077,36 +5146,12 @@ bd = e_object_data_get(E_OBJECT(m)); if (bd) { - if (bd->border_locks_menu) - { - e_object_del(E_OBJECT(bd->border_locks_menu)); - bd->border_locks_menu = NULL; - } - if (bd->border_remember_menu) - { - e_object_del(E_OBJECT(bd->border_remember_menu)); - bd->border_remember_menu = NULL; - } - if (bd->border_stacking_menu) - { - e_object_del(E_OBJECT(bd->border_stacking_menu)); - bd->border_stacking_menu = NULL; - } + FREE_ALL_MENU(); bd->border_menu = NULL; } e_object_del(E_OBJECT(m)); } -#define NEW_LOCK_FN(var) \ -static void \ -_e_border_menu_cb_##var(void *data, E_Menu *m, E_Menu_Item *mi) \ -{ \ - E_Border *bd; \ - bd = data; \ - bd->var = e_menu_item_toggle_get(mi); \ - bd->changed = 1; \ -} - NEW_LOCK_FN(lock_user_location) NEW_LOCK_FN(lock_client_location) NEW_LOCK_FN(lock_user_size) @@ -5122,7 +5167,7 @@ NEW_LOCK_FN(lock_user_shade) NEW_LOCK_FN(lock_client_shade) NEW_LOCK_FN(lock_user_maximize) -NEW_LOCK_FN(lock_client_mazimize) +NEW_LOCK_FN(lock_client_maximize) NEW_LOCK_FN(lock_user_fullscreen) NEW_LOCK_FN(lock_client_fullscreen) NEW_LOCK_FN(lock_border) @@ -5582,285 +5627,136 @@ E_App *a; if (bd->border_menu) return; + + m = e_menu_new(); + bd->border_user_locks_menu = m; + NEW_MI_CHECK(_("Position"), lock_user_location, lock_user_location, "position"); + NEW_MI_CHECK(_("Size"), lock_user_size, lock_user_size, "size"); + NEW_MI_CHECK(_("Iconify"), lock_user_iconify, lock_user_iconify, "minimize"); + NEW_MI_CHECK(_("Shade"), lock_user_shade, lock_user_shade, "shade"); + NEW_MI_CHECK(_("Maximize"), lock_user_maximize, lock_user_maximize, "maximize"); + NEW_MI_CHECK(_("Sticky"), lock_user_sticky, lock_user_sticky, "stick"); +/* NEW_LOCK_CHECK(_("Virtual Desktop"), lock_user_desk, lock_user_desk, "desktop"); */ + NEW_MI_CHECK(_("Fullscreen"), lock_user_fullscreen, lock_user_fullscreen, "fullscreen"); + NEW_MI_CHECK(_("Stacking"), lock_user_stacking, lock_user_stacking, "stacking"); + + m = e_menu_new(); + bd->border_application_locks_menu = m; + NEW_MI_CHECK(_("Position"), lock_client_location, lock_client_location, "position"); + NEW_MI_CHECK(_("Size"), lock_client_size, lock_client_size, "size"); + NEW_MI_CHECK(_("Iconify"), lock_client_iconify, lock_client_iconify, "minimize"); + NEW_MI_CHECK(_("Shade"), lock_client_shade, lock_client_shade, "shade"); + NEW_MI_CHECK(_("Maximize"), lock_client_maximize, lock_client_maximize, "maximize"); + NEW_MI_CHECK(_("Sticky"), lock_client_sticky, lock_client_sticky, "stick"); +/* NEW_LOCK_CHECK(_("Virtual Desktop"), lock_client_desk, lock_client_desk, "desktop"); */ + NEW_MI_CHECK(_("Fullscreen"), lock_client_fullscreen, lock_client_fullscreen, "fullscreen"); + NEW_MI_CHECK(_("Stacking"), lock_client_stacking, lock_client_stacking, "stacking"); + + m = e_menu_new(); + bd->border_common_locks_menu = m; + NEW_MI_CHECK(_("Border"), lock_border, lock_border, "borderless"); + NEW_MI_CHECK(_("Close"), lock_close, lock_close, "close"); +/* NEW_MI_CHECK(_("Focus In"), lock_focus_in, lock_focus_in, "focus_in"); */ +/* NEW_MI_CHECK(_("Focus Out"), lock_focus_out, lock_focus_out, "focus_out"); */ + NEW_MI_CHECK(_("Lifespan"), lock_life, lock_life, "life"); m = e_menu_new(); bd->border_locks_menu = m; + NEW_MI_SUBMENU(_("User"), user_locks, "user"); + NEW_MI_SUBMENU(_("Application"), application_locks, "application"); + NEW_MI_SUBMENU(_("Common"), common_locks, "common"); -#define NEW_LOCK_MI(txt, var) \ - mi = e_menu_item_new(m); \ - e_menu_item_label_set(mi, txt); \ - e_menu_item_check_set(mi, 1); \ - e_menu_item_toggle_set(mi, bd->var); \ - e_menu_item_callback_set(mi, _e_border_menu_cb_##var, bd); - - /* FIXME: 1 big menu right now - mayeb layer make it 3 submenus? */ - NEW_LOCK_MI(_("Position (User)"), lock_user_location); - NEW_LOCK_MI(_("Size (User)"), lock_user_size); - NEW_LOCK_MI(_("Stacking (User)"), lock_user_stacking); - NEW_LOCK_MI(_("Iconify (User)"), lock_user_iconify); -/* NEW_LOCK_MI(_("Virtual Desktop (User)"), lock_user_desk);*/ - NEW_LOCK_MI(_("Sticky (User)"), lock_user_sticky); - NEW_LOCK_MI(_("Shade (User)"), lock_user_shade); - NEW_LOCK_MI(_("Maximize (User)"), lock_user_maximize); - NEW_LOCK_MI(_("Fullscreen (User)"), lock_user_fullscreen); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_LOCK_MI(_("Position (Application)"), lock_client_location); - NEW_LOCK_MI(_("Size (Application)"), lock_client_size); - NEW_LOCK_MI(_("Stacking (Application)"), lock_client_stacking); - NEW_LOCK_MI(_("Iconify (Application)"), lock_client_iconify); -/* NEW_LOCK_MI(_("Virtual Desktop (Application)"), lock_client_desk);*/ - NEW_LOCK_MI(_("Sticky (Application)"), lock_client_sticky); - NEW_LOCK_MI(_("Shade (Application)"), lock_client_shade); - NEW_LOCK_MI(_("Maximize (Application)"), lock_client_mazimize); - NEW_LOCK_MI(_("Fullscreen (Application)"), lock_client_fullscreen); + m = e_menu_new(); + bd->border_remember_what_menu = m; + NEW_REMEMBER_MI(_("Position"), apply, E_REMEMBER_APPLY_POS, _e_border_menu_cb_remember_apply_pos, "position"); + NEW_REMEMBER_MI(_("Size"), apply, E_REMEMBER_APPLY_SIZE, _e_border_menu_cb_remember_apply_size, "size"); + NEW_REMEMBER_MI(_("Stickiness"), apply, E_REMEMBER_APPLY_STICKY, _e_border_menu_cb_remember_apply_sticky, "stick"); + NEW_REMEMBER_MI(_("Shaded State"), apply, E_REMEMBER_APPLY_SHADE, _e_border_menu_cb_remember_apply_shade, "shade"); + NEW_REMEMBER_MI(_("Border"), apply, E_REMEMBER_APPLY_BORDER, _e_border_menu_cb_remember_apply_border, "borderless"); + NEW_REMEMBER_MI(_("Skip Window List"), apply, E_REMEMBER_APPLY_SKIP_WINLIST, _e_border_menu_cb_remember_apply_skip_winlist, "skip_winlist"); + NEW_REMEMBER_MI(_("Stacking"), apply, E_REMEMBER_APPLY_LAYER, _e_border_menu_cb_remember_apply_layer, "stacking"); + NEW_MI_SEPARATOR(); + NEW_REMEMBER_MI(_("Locks"), apply, E_REMEMBER_APPLY_LOCKS, _e_border_menu_cb_remember_apply_locks, "locks"); + NEW_MI_SEPARATOR(); + NEW_REMEMBER_MI(_("Desktop"), apply, E_REMEMBER_APPLY_DESKTOP, _e_border_menu_cb_remember_apply_desktop, "desktop"); + NEW_REMEMBER_MI(_("Zone"), apply, E_REMEMBER_APPLY_ZONE, _e_border_menu_cb_remember_apply_zone, "zone"); +/* mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); - NEW_LOCK_MI(_("Border"), lock_border); - NEW_LOCK_MI(_("Close"), lock_close); -/* NEW_LOCK_MI(_("Focus In"), lock_focus_in);*/ -/* NEW_LOCK_MI(_("Focus Out"), lock_focus_out);*/ - NEW_LOCK_MI(_("Lifespan"), lock_life); - - m = e_menu_new(); - bd->border_remember_menu = m; + NEW_REMEMBER_MI(_("Run this porgram on login"), apply, E_REMEMBER_APPLY_RUN, _e_border_menu_cb_remember_apply_run); + */ -#define NEW_REMEMBER_MI(txt, flag, var, cb) \ - mi = e_menu_item_new(m); \ - e_menu_item_label_set(mi, txt); \ - e_menu_item_check_set(mi, 1); \ - if ((bd->remember) && (bd->remember->flag & var)) \ - e_menu_item_toggle_set(mi, 1); \ - e_menu_item_callback_set(mi, cb, bd); - + m = e_menu_new(); + bd->border_remember_for_menu = m; mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Remember This Window")); \ + e_menu_item_label_set(mi, _("This Window")); \ e_menu_item_check_set(mi, 1); if (bd->remember) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _e_border_menu_cb_remember, bd); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Remember This Instance Only"), apply_first_only, 1, _e_border_menu_cb_remember_first); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Match by Name"), match, E_REMEMBER_MATCH_NAME, _e_border_menu_cb_remember_match_name); - NEW_REMEMBER_MI(_("Match by Class"), match, E_REMEMBER_MATCH_CLASS, _e_border_menu_cb_remember_match_class); - NEW_REMEMBER_MI(_("Match by Title"), match, E_REMEMBER_MATCH_TITLE, _e_border_menu_cb_remember_match_title); - NEW_REMEMBER_MI(_("Match by Role"), match, E_REMEMBER_MATCH_ROLE, _e_border_menu_cb_remember_match_role); - NEW_REMEMBER_MI(_("Match by Window Type"), match, E_REMEMBER_MATCH_TYPE, _e_border_menu_cb_remember_match_type); - NEW_REMEMBER_MI(_("Match by Transient Status"), match, E_REMEMBER_MATCH_TRANSIENT, _e_border_menu_cb_remember_match_transient); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Remember Position"), apply, E_REMEMBER_APPLY_POS, _e_border_menu_cb_remember_apply_pos); - NEW_REMEMBER_MI(_("Remember Size"), apply, E_REMEMBER_APPLY_SIZE, _e_border_menu_cb_remember_apply_size); - NEW_REMEMBER_MI(_("Remember Stacking"), apply, E_REMEMBER_APPLY_LAYER, _e_border_menu_cb_remember_apply_layer); - NEW_REMEMBER_MI(_("Remember Locks"), apply, E_REMEMBER_APPLY_LOCKS, _e_border_menu_cb_remember_apply_locks); - NEW_REMEMBER_MI(_("Remember Border"), apply, E_REMEMBER_APPLY_BORDER, _e_border_menu_cb_remember_apply_border); - NEW_REMEMBER_MI(_("Remember Stickiness"), apply, E_REMEMBER_APPLY_STICKY, _e_border_menu_cb_remember_apply_sticky); - NEW_REMEMBER_MI(_("Remember Desktop"), apply, E_REMEMBER_APPLY_DESKTOP, _e_border_menu_cb_remember_apply_desktop); - NEW_REMEMBER_MI(_("Remember Shaded State"), apply, E_REMEMBER_APPLY_SHADE, _e_border_menu_cb_remember_apply_shade); - NEW_REMEMBER_MI(_("Remember Zone"), apply, E_REMEMBER_APPLY_ZONE, _e_border_menu_cb_remember_apply_zone); - NEW_REMEMBER_MI(_("Remember Skip Window List"), apply, E_REMEMBER_APPLY_SKIP_WINLIST, _e_border_menu_cb_remember_apply_skip_winlist); -/* - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - NEW_REMEMBER_MI(_("Run this porgram on login"), apply, E_REMEMBER_APPLY_RUN, _e_border_menu_cb_remember_apply_run); - */ + /* MI_EDJE_SET(""); */ + NEW_REMEMBER_MI(_("This Instance Only"), apply_first_only, 1, _e_border_menu_cb_remember_first, ""); + + m = e_menu_new(); + bd->border_remember_match_menu = m; + NEW_REMEMBER_MI(_("Name"), match, E_REMEMBER_MATCH_NAME, _e_border_menu_cb_remember_match_name, ""); + NEW_REMEMBER_MI(_("Class"), match, E_REMEMBER_MATCH_CLASS, _e_border_menu_cb_remember_match_class, ""); + NEW_REMEMBER_MI(_("Title"), match, E_REMEMBER_MATCH_TITLE, _e_border_menu_cb_remember_match_title, ""); + NEW_REMEMBER_MI(_("Role"), match, E_REMEMBER_MATCH_ROLE, _e_border_menu_cb_remember_match_role, ""); + NEW_REMEMBER_MI(_("Window Type"), match, E_REMEMBER_MATCH_TYPE, _e_border_menu_cb_remember_match_type, ""); + NEW_REMEMBER_MI(_("Transient Status"), match, E_REMEMBER_MATCH_TRANSIENT, _e_border_menu_cb_remember_match_transient, ""); + + m = e_menu_new(); + bd->border_remember_menu = m; + NEW_MI_SUBMENU(_("What"), remember_what, ""); + NEW_MI_SUBMENU(_("For"), remember_for, ""); + NEW_MI_SUBMENU(_("Match By"), remember_match, ""); m = e_menu_new(); bd->border_stacking_menu = m; if (!bd->lock_user_stacking) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Always On Top")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 2); - e_menu_item_toggle_set(mi, (bd->layer == 150 ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_on_top, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stack_on_top"), - "widgets/border/default/stack_on_top"); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Normal")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 2); - e_menu_item_toggle_set(mi, (bd->layer == 100 ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_normal, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stack_normal"), - "widgets/border/default/stack_normal"); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Always Below")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 2); - e_menu_item_toggle_set(mi, (bd->layer == 50 ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_below, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stack_below"), - "widgets/border/default/stack_below"); + NEW_MI_RADIO(_("Always On Top"), layer, 150, _e_border_menu_cb_on_top, "stack_on_top"); + NEW_MI_RADIO(_("Normal"), layer, 100, _e_border_menu_cb_normal, "stack_normal"); + NEW_MI_RADIO(_("Always Below"), layer, 50, _e_border_menu_cb_below, "stack_below"); } - + m = e_menu_new(); e_object_data_set(E_OBJECT(m), bd); bd->border_menu = m; e_menu_post_deactivate_callback_set(m, _e_border_cb_border_menu_end, NULL); - if (!bd->lock_close) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Close")); - e_menu_item_callback_set(mi, _e_border_menu_cb_close, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/close"), - "widgets/border/default/close"); - } - - if (!bd->lock_user_iconify) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Iconify")); - e_menu_item_callback_set(mi, _e_border_menu_cb_iconify, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/minimize"), - "widgets/border/default/minimize"); - } - - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - - if ((!bd->lock_close) && (!bd->internal)) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Kill")); - e_menu_item_callback_set(mi, _e_border_menu_cb_kill, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/kill"), - "widgets/border/default/kill"); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - } - - if (!bd->lock_user_shade) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Shaded")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, (bd->shaded ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_shade, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/shade"), - "widgets/border/default/shade"); - } - - if (!bd->lock_user_maximize) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Maximized")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/maximize"), - "widgets/border/default/maximize"); - } - - if (!bd->lock_user_sticky) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Sticky")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, (bd->sticky ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_stick, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stick"), - "widgets/border/default/stick"); - } - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Stacking")); - e_menu_item_submenu_set(mi, bd->border_stacking_menu); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/stacking"), - "widgets/border/default/stacking"); - + MI_COND(!bd->lock_close, NEW_MI_ACTION(_("Close"), close, "close")); + MI_COND((!bd->lock_close) && (!bd->internal), NEW_MI_ACTION(_("Kill"), kill, "kill")); + NEW_MI_SEPARATOR(); + MI_COND(!bd->lock_user_iconify, NEW_MI_ACTION(_("Iconify"), iconify, "minimize")); + MI_COND(!bd->lock_user_maximize, NEW_MI_CHECK(_("Maximized"), maximized, maximize, "maximize")); + MI_COND(!bd->lock_user_shade, NEW_MI_CHECK(_("Shaded"), shaded, shade, "shade")); + MI_COND(!bd->lock_user_sticky, NEW_MI_CHECK(_("Sticky"), sticky, stick, "stick")); if (!bd->lock_border) { + /* NOTE: must bd be changed to be compliant to this macro regarding borderless ? */ + /* MI_COND(!bd->lock_border, NEW_MI_CHECK(_("Borderless"), borderless, _e_border_menu_cb_borderless, "borderless")); */ mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Borderless")); e_menu_item_check_set(mi, 1); e_menu_item_toggle_set(mi, !strcmp("borderless", bd->client.border.name)); e_menu_item_callback_set(mi, _e_border_menu_cb_borderless, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/borderless"), - "widgets/border/default/borderless"); - } - - if (!bd->lock_user_fullscreen) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Fullscreen")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, bd->fullscreen); - e_menu_item_callback_set(mi, _e_border_menu_cb_fullscreen, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/fullscreen"), - "widgets/border/default/fullscreen"); - } - - if ((bd->client.icccm.accepts_focus) && - (!bd->client.netwm.state.skip_taskbar)) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Skip Window List")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, bd->user_skip_winlist); - e_menu_item_callback_set(mi, _e_border_menu_cb_skip_winlist, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/skip_winlist"), - "widgets/border/default/skip_winlist"); + MI_EDJE_SET("borderless"); } - - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Locks")); - e_menu_item_submenu_set(mi, bd->border_locks_menu); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/locks"), - "widgets/border/default/locks"); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Remember")); - e_menu_item_submenu_set(mi, bd->border_remember_menu); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/remember"), - "widgets/border/default/remember"); - mi = e_menu_item_new(m); - e_menu_item_separator_set(mi, 1); - + MI_COND(!bd->lock_user_fullscreen, NEW_MI_CHECK(_("Fullscreen"), fullscreen, fullscreen, "fullscreen")); + MI_COND(((bd->client.icccm.accepts_focus) && + (!bd->client.netwm.state.skip_taskbar)), NEW_MI_CHECK(_("Skip Window List"), + user_skip_winlist, skip_winlist, "skip_winlist")); + MI_COND(!bd->lock_user_stacking, NEW_MI_SUBMENU(_("Stacking"), stacking, "stacking")); + NEW_MI_SEPARATOR(); + NEW_MI_SUBMENU(_("Locks"), locks, "locks"); + NEW_MI_SUBMENU(_("Remember"), remember, "remember"); + NEW_MI_SEPARATOR(); mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Send To")); e_menu_item_submenu_pre_callback_set(mi, _e_border_menu_cb_sendto_pre, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/sendto"), - "widgets/border/default/sendto"); + MI_EDJE_SET("sendto"); if (ecore_file_app_installed("e_util_eapp_edit")) { --- e/src/bin/e_border.h 2005-07-13 11:25:28.000000000 +0200 +++ e.fun/src/bin/e_border.h 2005-07-14 08:20:06.927879546 +0200 @@ -304,7 +304,7 @@ unsigned int lock_user_shade : 1; /*DONE*/ unsigned int lock_client_shade : 1; /*DONE*/ unsigned int lock_user_maximize : 1; /*DONE*/ - unsigned int lock_client_mazimize : 1; /*DONE*/ + unsigned int lock_client_maximize : 1; /*DONE*/ unsigned int lock_user_fullscreen : 1; /*DONE*/ unsigned int lock_client_fullscreen : 1; /*DONE*/ unsigned int lock_border : 1; /*DONE*/ @@ -336,7 +336,13 @@ Evas_List *stick_desks; E_Menu *border_menu; E_Menu *border_locks_menu; + E_Menu *border_user_locks_menu; + E_Menu *border_application_locks_menu; + E_Menu *border_common_locks_menu; E_Menu *border_remember_menu; + E_Menu *border_remember_what_menu; + E_Menu *border_remember_for_menu; + E_Menu *border_remember_match_menu; E_Menu *border_stacking_menu; Evas_List *pending_move_resize; --- e/src/bin/e_config.c 2005-07-13 11:25:28.000000000 +0200 +++ e.fun/src/bin/e_config.c 2005-07-14 01:32:03.000000000 +0200 @@ -148,7 +148,7 @@ E_CONFIG_VAL(D, T, prop.lock_user_shade, UCHAR); E_CONFIG_VAL(D, T, prop.lock_client_shade, UCHAR); E_CONFIG_VAL(D, T, prop.lock_user_maximize, UCHAR); - E_CONFIG_VAL(D, T, prop.lock_client_mazimize, UCHAR); + E_CONFIG_VAL(D, T, prop.lock_client_maximize, UCHAR); E_CONFIG_VAL(D, T, prop.lock_user_fullscreen, UCHAR); E_CONFIG_VAL(D, T, prop.lock_client_fullscreen, UCHAR); E_CONFIG_VAL(D, T, prop.lock_border, UCHAR); --- e/src/bin/e_remember.c 2005-07-10 14:42:47.000000000 +0200 +++ e.fun/src/bin/e_remember.c 2005-07-14 01:32:22.000000000 +0200 @@ -189,7 +189,7 @@ rem->prop.lock_user_shade = bd->lock_user_shade; rem->prop.lock_client_shade = bd->lock_client_shade; rem->prop.lock_user_maximize = bd->lock_user_maximize; - rem->prop.lock_client_mazimize = bd->lock_client_mazimize; + rem->prop.lock_client_maximize = bd->lock_client_maximize; rem->prop.lock_user_fullscreen = bd->lock_user_fullscreen; rem->prop.lock_client_fullscreen = bd->lock_client_fullscreen; rem->prop.lock_border = bd->lock_border; --- e/src/bin/e_remember.h 2005-07-10 14:42:48.000000000 +0200 +++ e.fun/src/bin/e_remember.h 2005-07-14 01:32:49.000000000 +0200 @@ -62,7 +62,7 @@ unsigned char lock_user_shade; unsigned char lock_client_shade; unsigned char lock_user_maximize; - unsigned char lock_client_mazimize; + unsigned char lock_client_maximize; unsigned char lock_user_fullscreen; unsigned char lock_client_fullscreen; unsigned char lock_border; --- e/data/themes/images/Makefile.in 2005-07-13 11:29:46.000000000 +0200 +++ e.fun/data/themes/images/Makefile.in 2005-07-14 08:19:46.135608198 +0200 @@ -179,9 +179,18 @@ x_libs = @x_libs@ MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = \ -e17_brushed.png \ -e17_reflection_shadow_overlay.png \ -e17_sm_reflection_shadow_overlay.png \ +e17_battery_000.png \ +e17_battery_010.png \ +e17_battery_020.png \ +e17_battery_030.png \ +e17_battery_040.png \ +e17_battery_050.png \ +e17_battery_060.png \ +e17_battery_070.png \ +e17_battery_080.png \ +e17_battery_090.png \ +e17_battery_100.png \ +e17_battery_ac.png \ e17_border1.png \ e17_border2.png \ e17_border3.png \ @@ -189,61 +198,30 @@ e17_border5.png \ e17_border6.png \ e17_border7.png \ -e17_button.png \ +e17_brushed.png \ e17_button2.png \ +e17_button_detail_application.png \ e17_button_detail_borderless.png \ e17_button_detail_close.png \ e17_button_detail_fullscreen.png \ e17_button_detail_kill.png \ +e17_button_detail_life.png \ e17_button_detail_locks.png \ e17_button_detail_maximize.png \ e17_button_detail_minimize.png \ +e17_button_detail_position.png \ e17_button_detail_remember.png \ e17_button_detail_sendto.png \ e17_button_detail_shade.png \ +e17_button_detail_size.png \ e17_button_detail_skip_winlist.png \ e17_button_detail_stack_below.png \ e17_button_detail_stacking.png \ e17_button_detail_stack_normal.png \ e17_button_detail_stack_on_top.png \ e17_button_detail_stick.png \ -e17_menu_arrow.png \ -e17_menu_bg.png \ -e17_menu_bg_border.png \ -e17_menu_check1.png \ -e17_menu_check2.png \ -e17_menu_radio1.png \ -e17_menu_radio2.png \ -e17_menu_separator.png \ -e17_mini_button.png \ -e17_mini_button_shadow1.png \ -e17_mini_button_shadow2.png \ -e17_titlebar.png \ -e17_titlebar_hung.png \ -e17_titlebar_glint1.png \ -e17_titlebar_glint2.png \ -e17_titlebar_glint3.png \ -e17_titlebar_outline.png \ -e17_titlebar_shadow1.png \ -e17_titlebar_shadow2.png \ -e17_ibar_arrow_d.png \ -e17_ibar_arrow_l.png \ -e17_ibar_arrow_r.png \ -e17_ibar_arrow_u.png \ -e17_ibar_bg_h.png \ -e17_ibar_bg_v.png \ -e17_ibar_handle_h.png \ -e17_ibar_handle_h2.png \ -e17_ibar_handle_thumb_h.png \ -e17_ibar_handle_thumb_v.png \ -e17_ibar_handle_v.png \ -e17_ibar_handle_v2.png \ -e17_ibar_lamp_d.png \ -e17_ibar_lamp_l.png \ -e17_ibar_lamp_r.png \ -e17_ibar_lamp_u.png \ -e17_ibar_over_h.png \ -e17_ibar_over_v.png \ +e17_button_detail_user.png \ +e17_button.png \ e17_clock_bg.png \ e17_clock_fg.png \ e17_clock_hour_00.png \ @@ -426,27 +404,10 @@ e17_clock_seconds_57.png \ e17_clock_seconds_58.png \ e17_clock_seconds_59.png \ -e17_battery_000.png \ -e17_battery_010.png \ -e17_battery_020.png \ -e17_battery_030.png \ -e17_battery_040.png \ -e17_battery_050.png \ -e17_battery_060.png \ -e17_battery_070.png \ -e17_battery_080.png \ -e17_battery_090.png \ -e17_battery_100.png \ -e17_battery_ac.png \ -e17_pager_desk.png \ -e17_pager_desk_sel.png \ -e17_pager_window.png \ -e17_temperature_base.png \ -e17_temperature_mid.png \ -e17_temperature_overlay.png \ -e17_gadman_indicator.png \ -e17_gadman_overlay.png \ -e17_logo.png \ +e17_cpufreq_cpu1.png \ +e17_cpufreq_cpu2.png \ +e17_cpufreq_decrease1.png \ +e17_cpufreq_decrease2.png \ e17_cpufreq_freq00.png \ e17_cpufreq_freq01.png \ e17_cpufreq_freq02.png \ @@ -460,14 +421,58 @@ e17_cpufreq_freq10.png \ e17_cpufreq_increase1.png \ e17_cpufreq_increase2.png \ -e17_cpufreq_decrease1.png \ -e17_cpufreq_decrease2.png \ -e17_cpufreq_cpu1.png \ -e17_cpufreq_cpu2.png \ -e17_winlist_top.png \ -e17_winlist_bottom.png \ +e17_gadman_indicator.png \ +e17_gadman_overlay.png \ +e17_ibar_arrow_d.png \ +e17_ibar_arrow_l.png \ +e17_ibar_arrow_r.png \ +e17_ibar_arrow_u.png \ +e17_ibar_bg_h.png \ +e17_ibar_bg_v.png \ +e17_ibar_handle_h2.png \ +e17_ibar_handle_h.png \ +e17_ibar_handle_thumb_h.png \ +e17_ibar_handle_thumb_v.png \ +e17_ibar_handle_v2.png \ +e17_ibar_handle_v.png \ +e17_ibar_lamp_d.png \ +e17_ibar_lamp_l.png \ +e17_ibar_lamp_r.png \ +e17_ibar_lamp_u.png \ +e17_ibar_over_h.png \ +e17_ibar_over_v.png \ +e17_logo.png \ +e17_menu_arrow.png \ +e17_menu_bg_border.png \ +e17_menu_bg.png \ +e17_menu_check1.png \ +e17_menu_check2.png \ +e17_menu_radio1.png \ +e17_menu_radio2.png \ +e17_menu_separator.png \ +e17_mini_button.png \ +e17_mini_button_shadow1.png \ +e17_mini_button_shadow2.png \ +e17_pager_desk.png \ +e17_pager_desk_sel.png \ +e17_pager_window.png \ e17_pager_window_shaded.png \ -e17_transition_vswipe_gap.png +e17_reflection_shadow_overlay.png \ +e17_sm_reflection_shadow_overlay.png \ +e17_temperature_base.png \ +e17_temperature_mid.png \ +e17_temperature_overlay.png \ +e17_titlebar_glint1.png \ +e17_titlebar_glint2.png \ +e17_titlebar_glint3.png \ +e17_titlebar_hung.png \ +e17_titlebar_outline.png \ +e17_titlebar.png \ +e17_titlebar_shadow1.png \ +e17_titlebar_shadow2.png \ +e17_transition_vswipe_gap.png \ +e17_winlist_bottom.png \ +e17_winlist_top.png all: all-am