]> Dogcows Code - chaz/openbox/blobdiff - openbox/client_menu.c
1) translate all of openbox's output
[chaz/openbox] / openbox / client_menu.c
index bd57f06d8d4667c680cbe52bf849d05a1962d847..f67ea906dd7280d0a5dcc88444791847f7c67444 100644 (file)
@@ -1,10 +1,28 @@
-#include "kernel/debug.h"
-#include "kernel/menu.h"
-#include "kernel/menuframe.h"
-#include "kernel/screen.h"
-#include "kernel/client.h"
-#include "kernel/openbox.h"
-#include "kernel/frame.h"
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+   client_menu.c for the Openbox window manager
+   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
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   See the COPYING file for a copy of the GNU General Public License.
+*/
+
+#include "debug.h"
+#include "menu.h"
+#include "menuframe.h"
+#include "screen.h"
+#include "client.h"
+#include "openbox.h"
+#include "frame.h"
 #include "gettext.h"
 
 #include <glib.h>
@@ -39,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)
@@ -54,9 +70,16 @@ 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"));
     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"));
     e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_SHADE;
 
     e = menu_find_entry_id(menu, CLIENT_MOVE);
@@ -67,6 +90,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)
@@ -100,6 +126,7 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
     guint i;
     GSList *acts;
     ObAction *act;
+    ObMenuEntry *e;;
 
     menu_clear_entries(menu);
 
@@ -107,11 +134,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");
@@ -120,17 +147,15 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
             name = screen_desktop_names[i];
         }
 
-        act = action_from_string("SendToDesktop");
+        act = action_from_string("SendToDesktop",
+                                 OB_USER_ACTION_MENU_SELECTION);
         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);
 
-        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;
-        }
     }
 }
 
@@ -138,17 +163,23 @@ void client_menu_startup()
 {
     GSList *acts;
     ObMenu *menu;
+    ObMenuEntry *e;
 
     menu = menu_new(LAYER_MENU_NAME, _("Layer"), NULL);
     menu_set_update_func(menu, layer_update);
 
-    acts = g_slist_prepend(NULL, action_from_string("SendToTopLayer"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("SendToTopLayer", OB_USER_ACTION_MENU_SELECTION));
     menu_add_normal(menu, LAYER_TOP, _("Always on top"), acts);
 
-    acts = g_slist_prepend(NULL, action_from_string("SendToNormalLayer"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("SendToNormalLayer",
+                            OB_USER_ACTION_MENU_SELECTION));
     menu_add_normal(menu, LAYER_NORMAL, _("Normal"), acts);
 
-    acts = g_slist_prepend(NULL, action_from_string("SendToBottomLayer"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("SendToBottomLayer",
+                            OB_USER_ACTION_MENU_SELECTION));
     menu_add_normal(menu, LAYER_BOTTOM, _("Always on bottom"),acts);
 
 
@@ -163,34 +194,61 @@ void client_menu_startup()
 
     menu_add_submenu(menu, CLIENT_LAYER, LAYER_MENU_NAME);
 
-    acts = g_slist_prepend(NULL, action_from_string("Iconify"));
-    menu_add_normal(menu, CLIENT_ICONIFY, _("Iconify"), acts);
-
-    acts = g_slist_prepend(NULL, action_from_string("ToggleMaximizeFull"));
-    menu_add_normal(menu, CLIENT_MAXIMIZE, _("Maximize"), acts);
-
-    acts = g_slist_prepend(NULL, action_from_string("Raise"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Iconify", OB_USER_ACTION_MENU_SELECTION));
+    e = menu_add_normal(menu, CLIENT_ICONIFY, _("Iconify"), 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;
+    e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("ToggleMaximizeFull",
+                            OB_USER_ACTION_MENU_SELECTION));
+    e = menu_add_normal(menu, CLIENT_MAXIMIZE, "MAXIMIZE", acts);
+    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;
+    e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Raise", OB_USER_ACTION_MENU_SELECTION));
     menu_add_normal(menu, CLIENT_RAISE, _("Raise to top"), acts);
 
-    acts = g_slist_prepend(NULL, action_from_string("Lower"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Lower", OB_USER_ACTION_MENU_SELECTION));
     menu_add_normal(menu, CLIENT_LOWER, _("Lower to bottom"),acts);
 
-    acts = g_slist_prepend(NULL, action_from_string("ToggleShade"));
-    menu_add_normal(menu, CLIENT_SHADE, _("Roll up/down"), acts);
-
-    acts = g_slist_prepend(NULL, action_from_string("ToggleDecorations"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("ToggleShade", OB_USER_ACTION_MENU_SELECTION));
+    e = menu_add_normal(menu, CLIENT_SHADE, "SHADE", acts);
+    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;
+    e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("ToggleDecorations",
+                            OB_USER_ACTION_MENU_SELECTION));
     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("KeyboardMove"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Move", OB_USER_ACTION_MENU_SELECTION));
     menu_add_normal(menu, CLIENT_MOVE, _("Move"), acts);
 
-    acts = g_slist_prepend(NULL, action_from_string("KeyboardResize"));
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Resize", OB_USER_ACTION_MENU_SELECTION));
     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"));
-    menu_add_normal(menu, CLIENT_CLOSE, _("Close"), acts);
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Close", OB_USER_ACTION_MENU_SELECTION));
+    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;
+    e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
 }
This page took 0.028806 seconds and 4 git commands to generate.