+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+ client_menu.c for the Openbox window manager
+ Copyright (c) 2003 Ben 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"
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);
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)
guint i;
GSList *acts;
ObAction *act;
+ ObMenuEntry *e;;
menu_clear_entries(menu);
return;
for (i = 0; i <= screen_num_desktops; ++i) {
- gchar *name;
+ const gchar *name;
guint desk;
if (i >= screen_num_desktops) {
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;
- }
}
}
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);
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;
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);
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;