diff --git a/data/themes/default_border.edc b/data/themes/default_border.edc index ab6339b94..cd0c9d847 100644 --- a/data/themes/default_border.edc +++ b/data/themes/default_border.edc @@ -227,6 +227,8 @@ images { 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_locks_user.png" COMP; + image: "e17_button_detail_locks_application.png" COMP; image: "e17_button_detail_borderless.png" COMP; image: "e17_button_detail_remember.png" COMP; image: "e17_button_detail_skip_winlist.png" COMP; @@ -1677,6 +1679,8 @@ FULL_SIZE_BORDER_BUTTON("shade") FULL_SIZE_BORDER_BUTTON("stick") FULL_SIZE_BORDER_BUTTON("kill") FULL_SIZE_BORDER_BUTTON("locks") +FULL_SIZE_BORDER_BUTTON("locks_user") +FULL_SIZE_BORDER_BUTTON("locks_application") FULL_SIZE_BORDER_BUTTON("borderless") FULL_SIZE_BORDER_BUTTON("fullscreen") FULL_SIZE_BORDER_BUTTON("remember") diff --git a/data/themes/images/Makefile.am b/data/themes/images/Makefile.am index bfed4e9d0..7d1fa95eb 100644 --- a/data/themes/images/Makefile.am +++ b/data/themes/images/Makefile.am @@ -17,6 +17,8 @@ e17_button_detail_close.png \ e17_button_detail_fullscreen.png \ e17_button_detail_kill.png \ e17_button_detail_locks.png \ +e17_button_detail_locks_user.png \ +e17_button_detail_locks_application.png \ e17_button_detail_maximize.png \ e17_button_detail_minimize.png \ e17_button_detail_remember.png \ diff --git a/data/themes/images/e17_button_detail_locks_application.png b/data/themes/images/e17_button_detail_locks_application.png new file mode 100644 index 000000000..c7fdadc6d Binary files /dev/null and b/data/themes/images/e17_button_detail_locks_application.png differ diff --git a/data/themes/images/e17_button_detail_locks_user.png b/data/themes/images/e17_button_detail_locks_user.png new file mode 100644 index 000000000..6f04ae969 Binary files /dev/null and b/data/themes/images/e17_button_detail_locks_user.png differ diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 2a057c26e..be39d021b 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2068,6 +2068,16 @@ _e_border_menus_del(E_Border *bd) e_object_del(E_OBJECT(bd->border_locks_menu)); bd->border_locks_menu = NULL; } + if (bd->border_locks_user_menu) + { + e_object_del(E_OBJECT(bd->border_locks_user_menu)); + bd->border_locks_user_menu = NULL; + } + if (bd->border_locks_application_menu) + { + e_object_del(E_OBJECT(bd->border_locks_application_menu)); + bd->border_locks_application_menu = NULL; + } if (bd->border_remember_menu) { e_object_del(E_OBJECT(bd->border_remember_menu)); @@ -5572,7 +5582,7 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key) if (bd->border_menu) return; m = e_menu_new(); - bd->border_locks_menu = m; + bd->border_locks_user_menu = m; #define NEW_LOCK_MI(txt, var) \ mi = e_menu_item_new(m); \ @@ -5581,29 +5591,51 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key) 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_maximize); - NEW_LOCK_MI(_("Fullscreen (Application)"), lock_client_fullscreen); + NEW_LOCK_MI(_("Position"), lock_user_location); + NEW_LOCK_MI(_("Size"), lock_user_size); + NEW_LOCK_MI(_("Stacking"), lock_user_stacking); + NEW_LOCK_MI(_("Iconify"), lock_user_iconify); +/* NEW_LOCK_MI(_("Virtual Desktop)"), lock_user_desk);*/ + NEW_LOCK_MI(_("Sticky"), lock_user_sticky); + NEW_LOCK_MI(_("Shade"), lock_user_shade); + NEW_LOCK_MI(_("Maximize"), lock_user_maximize); + NEW_LOCK_MI(_("Fullscreen"), lock_user_fullscreen); + + m = e_menu_new(); + bd->border_locks_application_menu = m; + + NEW_LOCK_MI(_("Position"), lock_client_location); + NEW_LOCK_MI(_("Size"), lock_client_size); + NEW_LOCK_MI(_("Stacking"), lock_client_stacking); + NEW_LOCK_MI(_("Iconify"), lock_client_iconify); +/* NEW_LOCK_MI(_("Virtual Desktop"), lock_client_desk);*/ + NEW_LOCK_MI(_("Sticky"), lock_client_sticky); + NEW_LOCK_MI(_("Shade"), lock_client_shade); + NEW_LOCK_MI(_("Maximize"), lock_client_maximize); + NEW_LOCK_MI(_("Fullscreen"), lock_client_fullscreen); + + m = e_menu_new(); + bd->border_locks_menu = m; + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("User")); + e_menu_item_submenu_set(mi, bd->border_locks_user_menu); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/locks_user"), + "widgets/border/default/locks_user"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Application")); + e_menu_item_submenu_set(mi, bd->border_locks_application_menu); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/locks_application"), + "widgets/border/default/locks_application"); + 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);*/ @@ -5691,7 +5723,7 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key) "widgets/border/default/stack_below"), "widgets/border/default/stack_below"); } - + m = e_menu_new(); e_object_data_set(E_OBJECT(m), bd); bd->border_menu = m; diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 0f55652ee..64109a59c 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -336,6 +336,8 @@ struct _E_Border Evas_List *stick_desks; E_Menu *border_menu; E_Menu *border_locks_menu; + E_Menu *border_locks_user_menu; + E_Menu *border_locks_application_menu; E_Menu *border_remember_menu; E_Menu *border_stacking_menu; Evas_List *pending_move_resize;