Object resize keys < and > 0.92
authordanigm <dani@danigm.net>
Fri, 19 Mar 2010 16:53:50 +0000 (16:53 +0000)
committerdanigm <danigm@aa302d1f-72b1-406a-902b-8593ca2b2744>
Fri, 19 Mar 2010 16:53:50 +0000 (16:53 +0000)
From: danigm <dani@danigm.net>

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

README
src/selector-tool.c
src/tbo-object.c
src/tbo-object.h

diff --git a/README b/README
index 5198e03..ceb2129 100644 (file)
--- a/README
+++ b/README
@@ -26,10 +26,11 @@ the frame with "selector" tool. In frame view you can draw:
    from tool-area and drag&drop it into drawing area.
  * You can add text to doodle with text-tool
  * You can select/Move/resize/rotate objects in frame with select-tool
+ * You can resize an object using "<" and ">" keys.
  * With arrows keys you can move the selected object
  * To flip the current object use "v" key and "h" key
  * You can remove a frame object selecting it and pressing "del" key
- * You can clone an object pressing ctrl+d
+ * You can clone an object pressing "ctrl+d"
  * To return to "page view" press "esc" key
 
 You can control the zoom with "+" and "-" keys or with zoom tools
index 234ba7b..97cafd6 100644 (file)
@@ -491,6 +491,12 @@ frame_view_on_key (GtkWidget *widget, GdkEventKey *event, TboWindow *tbo)
             case GDK_Up:
                 tbo_object_move (OBJ, MOVE_UP);
                 break;
+            case GDK_less:
+                tbo_object_resize (OBJ, RESIZE_LESS);
+                break;
+            case GDK_greater:
+                tbo_object_resize (OBJ, RESIZE_GREATER);
+                break;
             case GDK_Down:
                 tbo_object_move (OBJ, MOVE_DOWN);
                 break;
index 1a1839b..2733dee 100644 (file)
@@ -96,6 +96,27 @@ tbo_object_move (tbo_object *self, enum MOVE_OPT type)
 }
 
 void
+tbo_object_resize (tbo_object *self, enum RESIZE_OPT type)
+{
+    switch (type)
+    {
+        case RESIZE_LESS:
+            if (self->width > 10 && self->height > 10)
+            {
+                self->width *= 0.95;
+                self->height *= 0.95;
+            }
+            break;
+        case RESIZE_GREATER:
+            self->width *= 1.05;
+            self->height *= 1.05;
+            break;
+        default:
+            break;
+    }
+}
+
+void
 tbo_object_save (tbo_object *self, FILE *file)
 {
     self->save (self, file);
index 0d234e3..820aee5 100644 (file)
@@ -11,6 +11,12 @@ enum MOVE_OPT
     MOVE_RIGHT,
 };
 
+enum RESIZE_OPT
+{
+    RESIZE_LESS,
+    RESIZE_GREATER,
+};
+
 static int MOVING_OFFSET = 10;
 
 void tbo_object_flipv (tbo_object *self);
@@ -19,4 +25,5 @@ void tbo_object_get_flip_matrix (tbo_object *self, cairo_matrix_t *mx);
 void tbo_object_order_down (tbo_object *self);
 void tbo_object_order_up (tbo_object *self);
 void tbo_object_move (tbo_object *self, enum MOVE_OPT type);
+void tbo_object_resize (tbo_object *self, enum RESIZE_OPT type);
 void tbo_object_save (tbo_object *self, FILE *file);