diff options
author | Alex Merry <alex.merry@cs.ox.ac.uk> | 2012-12-12 12:57:25 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@cs.ox.ac.uk> | 2012-12-12 12:57:25 +0000 |
commit | 4ee50a8cf2b592c2ac98a45da63bde6466a9ee9f (patch) | |
tree | 1462a0245783ef25427803d8d67a2af8f2e0cabe /tikzit/src/gtk/Application.m | |
parent | ad869704e6dd52315bff174070e570727e7e8d98 (diff) |
Implement (single-key) tool shortcuts
Diffstat (limited to 'tikzit/src/gtk/Application.m')
-rw-r--r-- | tikzit/src/gtk/Application.m | 13 |
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]; |