diff options
author | Alex Merry <alex.merry@cs.ox.ac.uk> | 2013-02-13 13:31:08 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@cs.ox.ac.uk> | 2013-02-13 14:57:11 +0000 |
commit | 814372e88b23ce7956b2322d6f382742e2277ea5 (patch) | |
tree | c92167f83e2bfee10206c9b1fcf0494584cf92a8 /tikzit/src/gtk/SelectTool.m | |
parent | 0a7223674204a6e8ee311e226b2b5ddef88803a3 (diff) |
GTK: Add shortcuts for changing selection mode
Now when the graph has focus, shift+n will choose node selection,
shift+e edge selection and shift+b both.
Diffstat (limited to 'tikzit/src/gtk/SelectTool.m')
-rw-r--r-- | tikzit/src/gtk/SelectTool.m | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/tikzit/src/gtk/SelectTool.m b/tikzit/src/gtk/SelectTool.m index 6f3ceeb..d5c482f 100644 --- a/tikzit/src/gtk/SelectTool.m +++ b/tikzit/src/gtk/SelectTool.m @@ -23,6 +23,8 @@ #import "TikzDocument.h" #import "tzstockitems.h" +#import <gdk/gdkkeysyms.h> + #define DRAG_SELECT_MODE_KEY "tikzit-drag-select-mode" static const InputMask unionSelectMask = ShiftMask; @@ -73,7 +75,7 @@ static void drag_select_mode_cb (GtkToggleButton *button, SelectTool *tool); FALSE, 0); - GtkWidget *nodeOpt = gtk_radio_button_new_with_label (NULL, "nodes"); + GtkWidget *nodeOpt = gtk_radio_button_new_with_label (NULL, "nodes (N)"); g_object_set_data (G_OBJECT (nodeOpt), DRAG_SELECT_MODE_KEY, (gpointer)DragSelectsNodes); @@ -89,7 +91,7 @@ static void drag_select_mode_cb (GtkToggleButton *button, SelectTool *tool); GtkWidget *edgeOpt = gtk_radio_button_new_with_label ( gtk_radio_button_get_group (GTK_RADIO_BUTTON (nodeOpt)), - "edges"); + "edges (E)"); g_object_set_data (G_OBJECT (edgeOpt), DRAG_SELECT_MODE_KEY, (gpointer)DragSelectsEdges); @@ -105,7 +107,7 @@ static void drag_select_mode_cb (GtkToggleButton *button, SelectTool *tool); GtkWidget *bothOpt = gtk_radio_button_new_with_label ( gtk_radio_button_get_group (GTK_RADIO_BUTTON (edgeOpt)), - "both"); + "both (B)"); g_object_set_data (G_OBJECT (bothOpt), DRAG_SELECT_MODE_KEY, (gpointer)DragSelectsBoth); @@ -359,6 +361,16 @@ static void drag_select_mode_cb (GtkToggleButton *button, SelectTool *tool); } } +- (void) keyPressed:(unsigned int)keyVal withMask:(InputMask)mask { + if (keyVal == GDK_KEY_N && mask == ShiftMask) { + [self setDragSelectMode:DragSelectsNodes]; + } else if (keyVal == GDK_KEY_E && mask == ShiftMask) { + [self setDragSelectMode:DragSelectsEdges]; + } else if (keyVal == GDK_KEY_B && mask == ShiftMask) { + [self setDragSelectMode:DragSelectsBoth]; + } +} + - (void) renderWithContext:(id<RenderContext>)context onSurface:(id<Surface>)surface { if (!NSIsEmptyRect (selectionBox)) { [context saveState]; |