Change between tools with keys
authordanigm <dani@danigm.net>
Fri, 2 Apr 2010 23:37:36 +0000 (23:37 +0000)
committerdanigm <danigm@aa302d1f-72b1-406a-902b-8593ca2b2744>
Fri, 2 Apr 2010 23:37:36 +0000 (23:37 +0000)
 * 's' for selector
 * 'f' for frame
 * 'd' for doodle
 * 't' for text

From: danigm <dani@danigm.net>

git-svn-id: https://forja.rediris.es/svn/cusl4-tbo@111 aa302d1f-72b1-406a-902b-8593ca2b2744

TODO
src/ui-drawing.c
src/ui-toolbar.c
src/ui-toolbar.h

diff --git a/TODO b/TODO
index f078892..0a4530a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -3,13 +3,6 @@ TBO TODO things:
 
  * Undo/Redo tool. (hard)
 
- * Change between tools with keys: (middle)
-    * 's' for selector
-    * 'f' for frame
-    * 'd' for doodle
-    * 't' for text
-    ...
-
  * Ask for size at export as png, pdf and svg. (easy)
 
  * Zoom levels: (easy)
index 2545ace..2d7b18a 100644 (file)
@@ -112,6 +112,18 @@ on_key_cb (GtkWidget    *widget,
             case GDK_1:
                 tbo_drawing_zoom_100 (tbo);
                 break;
+            case GDK_s:
+                set_selected_tool_and_action (SELECTOR, tbo);
+                break;
+            case GDK_t:
+                set_selected_tool_and_action (TEXT, tbo);
+                break;
+            case GDK_d:
+                set_selected_tool_and_action (DOODLE, tbo);
+                break;
+            case GDK_f:
+                set_selected_tool_and_action (FRAME, tbo);
+                break;
             default:
                 break;
         }
index d755841..cf629ad 100644 (file)
@@ -310,6 +310,30 @@ static const tool_and_action tools_actions [] = {
 };
 
 void
+set_selected_tool_and_action (enum Tool tool, TboWindow *tbo)
+{
+    GtkToggleAction *action;
+    enum Tool action_tool;
+    gchar *name;
+
+    int i;
+    GtkToggleActionEntry entry;
+
+    for (i=0; i<G_N_ELEMENTS (tools_actions); i++)
+    {
+        if (tool == tools_actions[i].tool)
+        {
+            name = (gchar *) tools_actions[i].action;
+            break;
+        }
+    }
+
+    action = (GtkToggleAction *) gtk_action_group_get_action (ACTION_GROUP, name);
+    if (gtk_action_is_sensitive (GTK_ACTION (action)))
+        gtk_toggle_action_set_active (action, TRUE);
+}
+
+void
 unselect (enum Tool tool, TboWindow *tbo)
 {
     int i;
index 8de0df7..ad9bbdd 100644 (file)
@@ -40,6 +40,7 @@ void tool_signal (enum Tool tool, enum ToolSignal signal, gpointer data);
 
 enum Tool get_selected_tool ();
 void set_selected_tool (enum Tool tool, TboWindow *tbo);
+void set_selected_tool_and_action (enum Tool tool, TboWindow *tbo);
 
 GtkWidget *generate_toolbar (TboWindow *window);