]> Dogcows Code - chaz/openbox/blobdiff - openbox/client_menu.c
cleanups for keyboard menu shotcuts. dont let & set a shortcut from stuff like menu...
[chaz/openbox] / openbox / client_menu.c
index 1e7d5edc547c8351f0c80b37db1de7ef9eadc1e9..be76715520c50fc52f4ab889d00de84c9561a4d8 100644 (file)
@@ -1,7 +1,7 @@
-/* -*- indent-tabs-mode: t; tab-width: 4; c-basic-offset: 4; -*-
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    client_menu.c for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003-2007   Dana Jansens
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -57,8 +57,6 @@ static void client_update(ObMenuFrame *frame, gpointer data)
     ObMenuEntry *e;
     GList *it;
 
-    frame->show_title = FALSE;
-
     for (it = menu->entries; it; it = g_list_next(it)) {
         e = it->data;
         if (e->type == OB_MENU_ENTRY_TYPE_NORMAL)
@@ -72,9 +70,14 @@ static void client_update(ObMenuFrame *frame, gpointer data)
     e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_ICONIFY;
 
     e = menu_find_entry_id(menu, CLIENT_MAXIMIZE);
+    menu_entry_set_label(e,
+                         (frame->client->max_vert || frame->client->max_horz ?
+                          _("Restor&e") : _("Maximiz&e")), TRUE);
     e->data.normal.enabled =frame->client->functions & OB_CLIENT_FUNC_MAXIMIZE;
 
     e = menu_find_entry_id(menu, CLIENT_SHADE);
+    menu_entry_set_label(e, (frame->client->shaded ?
+                             _("&Roll down") : _("&Roll up")), TRUE);
     e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_SHADE;
 
     e = menu_find_entry_id(menu, CLIENT_MOVE);
@@ -85,6 +88,9 @@ static void client_update(ObMenuFrame *frame, gpointer data)
 
     e = menu_find_entry_id(menu, CLIENT_CLOSE);
     e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_CLOSE;
+
+    e = menu_find_entry_id(menu, CLIENT_DECORATE);
+    e->data.normal.enabled = client_normal(frame->client);
 }
 
 static void layer_update(ObMenuFrame *frame, gpointer data)
@@ -118,6 +124,7 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
     guint i;
     GSList *acts;
     ObAction *act;
+    ObMenuEntry *e;;
 
     menu_clear_entries(menu);
 
@@ -125,11 +132,11 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
         return;
 
     for (i = 0; i <= screen_num_desktops; ++i) {
-        gchar *name;
+        const gchar *name;
         guint desk;
 
         if (i >= screen_num_desktops) {
-            menu_add_separator(menu, -1);
+            menu_add_separator(menu, -1, NULL);
 
             desk = DESKTOP_ALL;
             name = _("All desktops");
@@ -143,13 +150,10 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
         act->data.sendto.desk = desk;
         act->data.sendto.follow = FALSE;
         acts = g_slist_prepend(NULL, act);
-        menu_add_normal(menu, desk, name, acts);
+        e = menu_add_normal(menu, desk, name, acts, FALSE);
 
-        if (frame->client->desktop == desk) {
-            ObMenuEntry *e = menu_find_entry_id(menu, desk);
-            g_assert(e);
+        if (frame->client->desktop == desk)
             e->data.normal.enabled = FALSE;
-        }
     }
 }
 
@@ -159,42 +163,40 @@ void client_menu_startup()
     ObMenu *menu;
     ObMenuEntry *e;
 
-    menu = menu_new(LAYER_MENU_NAME, _("Layer"), NULL);
+    menu = menu_new(LAYER_MENU_NAME, _("&Layer"), TRUE, NULL);
+    menu_show_all_shortcuts(menu, TRUE);
     menu_set_update_func(menu, layer_update);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("SendToTopLayer", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, LAYER_TOP, _("Always on top"), acts);
+    menu_add_normal(menu, LAYER_TOP, _("Always on &top"), acts, TRUE);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("SendToNormalLayer",
                             OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, LAYER_NORMAL, _("Normal"), acts);
+    menu_add_normal(menu, LAYER_NORMAL, _("&Normal"), acts, TRUE);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("SendToBottomLayer",
                             OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, LAYER_BOTTOM, _("Always on bottom"),acts);
+    menu_add_normal(menu, LAYER_BOTTOM, _("Always on &bottom"),acts, TRUE);
 
 
-    menu = menu_new(SEND_TO_MENU_NAME, _("Send to desktop"), NULL);
+    menu = menu_new(SEND_TO_MENU_NAME, _("&Send to desktop"), TRUE, NULL);
     menu_set_update_func(menu, send_to_update);
 
 
-    menu = menu_new(CLIENT_MENU_NAME, _("Client menu"), NULL);
+    menu = menu_new(CLIENT_MENU_NAME, _("Client menu"), TRUE, NULL);
+    menu_show_all_shortcuts(menu, TRUE);
     menu_set_update_func(menu, client_update);
 
-    e = menu_add_submenu(menu, CLIENT_SEND_TO, SEND_TO_MENU_NAME);
-    e->data.normal.mask = ob_rr_theme->desk_mask;
-    e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
-    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
-    e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+    menu_add_submenu(menu, CLIENT_SEND_TO, SEND_TO_MENU_NAME);
 
     menu_add_submenu(menu, CLIENT_LAYER, LAYER_MENU_NAME);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("Iconify", OB_USER_ACTION_MENU_SELECTION));
-    e = menu_add_normal(menu, CLIENT_ICONIFY, _("Iconify"), acts);
+    e = menu_add_normal(menu, CLIENT_ICONIFY, _("Ico&nify"), acts, TRUE);
     e->data.normal.mask = ob_rr_theme->iconify_mask;
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
     e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
@@ -203,7 +205,7 @@ void client_menu_startup()
     acts = g_slist_prepend(NULL, action_from_string
                            ("ToggleMaximizeFull",
                             OB_USER_ACTION_MENU_SELECTION));
-    e = menu_add_normal(menu, CLIENT_MAXIMIZE, _("Maximize"), acts);
+    e = menu_add_normal(menu, CLIENT_MAXIMIZE, "MAXIMIZE", acts, TRUE);
     e->data.normal.mask = ob_rr_theme->max_mask; 
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
     e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
@@ -211,15 +213,15 @@ void client_menu_startup()
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("Raise", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_RAISE, _("Raise to top"), acts);
+    menu_add_normal(menu, CLIENT_RAISE, _("Raise to &top"), acts, TRUE);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("Lower", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_LOWER, _("Lower to bottom"),acts);
+    menu_add_normal(menu, CLIENT_LOWER, _("Lower to &bottom"),acts, TRUE);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("ToggleShade", OB_USER_ACTION_MENU_SELECTION));
-    e = menu_add_normal(menu, CLIENT_SHADE, _("Roll up/down"), acts);
+    e = menu_add_normal(menu, CLIENT_SHADE, "SHADE", acts, TRUE);
     e->data.normal.mask = ob_rr_theme->shade_mask;
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
     e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
@@ -228,23 +230,23 @@ void client_menu_startup()
     acts = g_slist_prepend(NULL, action_from_string
                            ("ToggleDecorations",
                             OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_DECORATE, _("Decorate"), acts);
+    menu_add_normal(menu, CLIENT_DECORATE, _("&Decorate"), acts, TRUE);
 
-    menu_add_separator(menu, -1);
+    menu_add_separator(menu, -1, NULL);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("Move", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_MOVE, _("Move"), acts);
+    menu_add_normal(menu, CLIENT_MOVE, _("&Move"), acts, TRUE);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("Resize", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_RESIZE, _("Resize"), acts);
+    menu_add_normal(menu, CLIENT_RESIZE, _("Resi&ze"), acts, TRUE);
 
-    menu_add_separator(menu, -1);
+    menu_add_separator(menu, -1, NULL);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("Close", OB_USER_ACTION_MENU_SELECTION));
-    e = menu_add_normal(menu, CLIENT_CLOSE, _("Close"), acts);
+    e = menu_add_normal(menu, CLIENT_CLOSE, _("&Close"), acts, TRUE);
     e->data.normal.mask = ob_rr_theme->close_mask;
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
     e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
This page took 0.029763 seconds and 4 git commands to generate.