* 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
* To return to "page view" press "esc" key
You can control the zoom with "+" and "-" keys or with zoom tools
case GDK_Right:
tbo_object_move (OBJ, MOVE_RIGHT);
break;
+ case GDK_d:
+ if (event->state & GDK_CONTROL_MASK)
+ {
+ tbo_object *cloned_obj = OBJ->clone (OBJ);
+ cloned_obj->x += 10;
+ cloned_obj->y -= 10;
+ tbo_frame_add_obj (SELECTED, cloned_obj);
+ set_selected_obj (cloned_obj, tbo);
+ }
+ break;
default:
break;
}
image->free = tbo_svg_image_free;
image->draw = tbo_svg_image_draw;
image->save = tbo_svg_image_save;
+ image->clone = tbo_svg_image_clone;
image->type = SVGOBJ;
image->flipv = FALSE;
image->fliph = FALSE;
snprintf (buffer, 1024, " </svgimage>\n");
fwrite (buffer, sizeof (char), strlen (buffer), file);
}
+
+SVGImage *
+tbo_svg_image_clone (SVGImage *self)
+{
+ SVGImage *newimage;
+
+ newimage = tbo_svgimage_new_width_params (self->x,
+ self->y,
+ self->width,
+ self->height,
+ self->data);
+ newimage->angle = self->angle;
+ newimage->flipv = self->flipv;
+ newimage->fliph = self->fliph;
+
+ return newimage;
+}
void tbo_svg_image_free (SVGImage *self);
void tbo_svg_image_draw (SVGImage *self, Frame *frame, cairo_t *cr);
void tbo_svg_image_save (SVGImage *self, FILE *file);
+SVGImage * tbo_svg_image_clone (SVGImage *self);
#endif
void (*free) (struct tbo_object *);
void (*draw) (struct tbo_object *, Frame *, cairo_t *);
void (*save) (struct tbo_object *, FILE *);
+ struct tbo_object * (*clone) (struct tbo_object *);
enum TYPE type;
gpointer data;
};
text->free = tbo_text_free;
text->draw = tbo_text_draw;
text->save = tbo_text_save;
+ text->clone = tbo_text_clone;
text->type = TEXTOBJ;
text->flipv = FALSE;
text->fliph = FALSE;
snprintf (buffer, 1024, "\n </text>\n");
fwrite (buffer, sizeof (char), strlen (buffer), file);
}
+
+TextObj *
+tbo_text_clone (TextObj *self)
+{
+ TextObj *newtext;
+ text_data *data;
+ data = (text_data*)self->data;
+
+ newtext = tbo_text_new ();
+ newtext->flipv = self->flipv;
+ newtext->fliph = self->fliph;
+ tbo_text_change_color (newtext, data->font_color->r,
+ data->font_color->g,
+ data->font_color->b);
+ tbo_text_change_font (newtext, tbo_text_get_string (self));
+ tbo_text_set_text (newtext, data->text->str);
+ newtext->angle = self->angle;
+ newtext->x = self->x;
+ newtext->y = self->y;
+ newtext->width = self->width;
+ newtext->height = self->height;
+
+ return newtext;
+}
void tbo_text_get_color (TextObj *self, GdkColor *color);
char * tbo_text_get_string (TextObj *self);
void tbo_text_save (TextObj *self, FILE *file);
+TextObj * tbo_text_clone (TextObj *self);
#endif