summaryrefslogtreecommitdiff
path: root/tikzit/src/gtk/SelectTool.m
diff options
context:
space:
mode:
Diffstat (limited to 'tikzit/src/gtk/SelectTool.m')
-rw-r--r--tikzit/src/gtk/SelectTool.m18
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];