summaryrefslogtreecommitdiff
path: root/src/core.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2002-09-27 01:40:17 +0000
committerHavoc Pennington <hp@src.gnome.org>2002-09-27 01:40:17 +0000
commit47f67eb270c093004a2ae9f1c68a082ffa0bbc91 (patch)
treee174faf579b754fd5bfd2839fa02eabdeedaaa34 /src/core.c
parente608366a8efd5634d4a01eaa7d3c25af8404315b (diff)
downloadmetacity-47f67eb270c093004a2ae9f1c68a082ffa0bbc91.tar.gz
use MetaAccelLabel to display accelerators for the menu items
2002-09-26 Havoc Pennington <hp@pobox.com> * src/menu.c (meta_window_menu_new): use MetaAccelLabel to display accelerators for the menu items * src/metaaccellabel.c: cut-and-paste GtkAccelLabel and port to use virtual modifiers * src/Makefile.am (metacity_SOURCES): add metaaccellabel.[hc] * src/prefs.c (meta_prefs_get_window_binding): new function * src/core.c (meta_core_get_menu_accelerator): new function
Diffstat (limited to 'src/core.c')
-rw-r--r--src/core.c97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/core.c b/src/core.c
index abcaf9d8..fb3a185d 100644
--- a/src/core.c
+++ b/src/core.c
@@ -22,6 +22,7 @@
#include "core.h"
#include "frame.h"
#include "workspace.h"
+#include "prefs.h"
void
meta_core_get_client_size (Display *xdisplay,
@@ -509,6 +510,102 @@ meta_core_show_window_menu (Display *xdisplay,
meta_window_show_menu (window, root_x, root_y, button, timestamp);
}
+void
+meta_core_get_menu_accelerator (MetaMenuOp menu_op,
+ int workspace,
+ unsigned int *keysym,
+ MetaVirtualModifier *modifiers)
+{
+ const char *name;
+
+ name = NULL;
+
+ switch (menu_op)
+ {
+ case META_MENU_OP_DELETE:
+ name = META_KEYBINDING_CLOSE;
+ break;
+ case META_MENU_OP_MINIMIZE:
+ name = META_KEYBINDING_MINIMIZE;
+ break;
+ case META_MENU_OP_UNMAXIMIZE:
+ name = META_KEYBINDING_UNMAXIMIZE;
+ break;
+ case META_MENU_OP_MAXIMIZE:
+ name = META_KEYBINDING_MAXIMIZE;
+ break;
+ case META_MENU_OP_UNSHADE:
+ name = META_KEYBINDING_TOGGLE_SHADE;
+ break;
+ case META_MENU_OP_SHADE:
+ name = META_KEYBINDING_TOGGLE_SHADE;
+ break;
+ case META_MENU_OP_UNSTICK:
+ name = META_KEYBINDING_TOGGLE_STICKY;
+ break;
+ case META_MENU_OP_STICK:
+ name = META_KEYBINDING_TOGGLE_STICKY;
+ break;
+ case META_MENU_OP_WORKSPACES:
+ switch (workspace)
+ {
+ case 1:
+ name = META_KEYBINDING_MOVE_WORKSPACE_1;
+ break;
+ case 2:
+ name = META_KEYBINDING_MOVE_WORKSPACE_2;
+ break;
+ case 3:
+ name = META_KEYBINDING_MOVE_WORKSPACE_3;
+ break;
+ case 4:
+ name = META_KEYBINDING_MOVE_WORKSPACE_4;
+ break;
+ case 5:
+ name = META_KEYBINDING_MOVE_WORKSPACE_5;
+ break;
+ case 6:
+ name = META_KEYBINDING_MOVE_WORKSPACE_6;
+ break;
+ case 7:
+ name = META_KEYBINDING_MOVE_WORKSPACE_7;
+ break;
+ case 8:
+ name = META_KEYBINDING_MOVE_WORKSPACE_8;
+ break;
+ case 9:
+ name = META_KEYBINDING_MOVE_WORKSPACE_9;
+ break;
+ case 10:
+ name = META_KEYBINDING_MOVE_WORKSPACE_10;
+ break;
+ case 11:
+ name = META_KEYBINDING_MOVE_WORKSPACE_11;
+ break;
+ case 12:
+ name = META_KEYBINDING_MOVE_WORKSPACE_12;
+ break;
+ }
+ break;
+ case META_MENU_OP_MOVE:
+ name = META_KEYBINDING_BEGIN_MOVE;
+ break;
+ case META_MENU_OP_RESIZE:
+ name = META_KEYBINDING_BEGIN_RESIZE;
+ break;
+ }
+
+ if (name)
+ {
+ meta_prefs_get_window_binding (name, keysym, modifiers);
+ }
+ else
+ {
+ *keysym = 0;
+ *modifiers = 0;
+ }
+}
+
char *
meta_core_get_workspace_name_with_index (Display *xdisplay,
int index)