]> Dogcows Code - chaz/openbox/blobdiff - openbox/client_menu.c
add keyboard shortcuts to the menus. you can specify the shortcut key with & even...
[chaz/openbox] / openbox / client_menu.c
index e9922bdd30e0274629b19de1a815643aa25f7e05..fc88025cdb47e71211ae7c3d29082930eb14a1ec 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- 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,16 +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);
-    g_free(e->data.normal.label);
-    e->data.normal.label =
-        g_strdup(frame->client->max_vert || frame->client->max_horz ?
-                 _("Restore") : _("Maximize"));
+    menu_entry_set_label(e,
+                         (frame->client->max_vert || frame->client->max_horz ?
+                          _("Restor&e") : _("Maximiz&e")));
     e->data.normal.enabled =frame->client->functions & OB_CLIENT_FUNC_MAXIMIZE;
 
     e = menu_find_entry_id(menu, CLIENT_SHADE);
-    g_free(e->data.normal.label);
-    e->data.normal.label = g_strdup(frame->client->shaded ?
-                                    _("Roll down") : _("Roll up"));
+    menu_entry_set_label(e, (frame->client->shaded ?
+                             _("&Roll down") : _("&Roll up")));
     e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_SHADE;
 
     e = menu_find_entry_id(menu, CLIENT_MOVE);
@@ -136,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");
@@ -167,42 +163,41 @@ void client_menu_startup()
     ObMenu *menu;
     ObMenuEntry *e;
 
-    menu = menu_new(LAYER_MENU_NAME, _("Layer"), NULL);
+    menu = menu_new(LAYER_MENU_NAME, _("&Layer"), 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);
 
     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);
 
     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);
 
 
-    menu = menu_new(SEND_TO_MENU_NAME, _("Send to desktop"), NULL);
+    menu = menu_new(SEND_TO_MENU_NAME, _("&Send to desktop"), NULL);
+    menu_show_all_shortcuts(menu, TRUE);
     menu_set_update_func(menu, send_to_update);
 
 
     menu = menu_new(CLIENT_MENU_NAME, _("Client menu"), 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);
     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;
@@ -219,11 +214,11 @@ 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);
 
     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);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("ToggleShade", OB_USER_ACTION_MENU_SELECTION));
@@ -236,23 +231,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);
 
-    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);
 
     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, _("&Resize"), acts);
 
-    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);
     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.025255 seconds and 4 git commands to generate.