summaryrefslogtreecommitdiff
path: root/tikzit/src/gtk/Application.m
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@cs.ox.ac.uk>2012-12-12 12:57:25 +0000
committerAlex Merry <alex.merry@cs.ox.ac.uk>2012-12-12 12:57:25 +0000
commit4ee50a8cf2b592c2ac98a45da63bde6466a9ee9f (patch)
tree1462a0245783ef25427803d8d67a2af8f2e0cabe /tikzit/src/gtk/Application.m
parentad869704e6dd52315bff174070e570727e7e8d98 (diff)
Implement (single-key) tool shortcuts
Diffstat (limited to 'tikzit/src/gtk/Application.m')
-rw-r--r--tikzit/src/gtk/Application.m13
1 files changed, 13 insertions, 0 deletions
diff --git a/tikzit/src/gtk/Application.m b/tikzit/src/gtk/Application.m
index 4096fe9..11d0cd7 100644
--- a/tikzit/src/gtk/Application.m
+++ b/tikzit/src/gtk/Application.m
@@ -198,6 +198,19 @@ Application* app = nil;
}
}
+- (void) activateToolForKey:(unsigned int)keyVal withMask:(InputMask)mask {
+ // FIXME: cache the accel info, rather than reparsing it every time?
+ for (id<Tool> tool in tools) {
+ guint toolKey = 0;
+ GdkModifierType toolMod = 0;
+ gtk_accelerator_parse ([[tool shortcut] UTF8String], &toolKey, &toolMod);
+ if (toolKey != 0 && toolKey == keyVal && (int)mask == (int)toolMod) {
+ [self setActiveTool:tool];
+ return;
+ }
+ }
+}
+
- (void) _addWindow:(Window*)window {
[window setActiveTool:activeTool];
[openWindows addObject:window];