summaryrefslogtreecommitdiffstats
path: root/src/sp-line.cpp
diff options
context:
space:
mode:
authorAbhishek Sharma Public <spyzerdotabhishek0at-signgmaildotcom>2010-06-29 18:05:42 +0000
committerAbhishek Sharma Public <spyzerdotabhishek0at-signgmaildotcom>2010-06-29 18:05:42 +0000
commit8867de5daf309e4cdd3fce177b408618490be4f3 (patch)
tree19a528d472e7a63f9cab97daa5c979d977db821b /src/sp-line.cpp
parentminor fix in Dutch translation of win32 installer (diff)
downloadinkscape-8867de5daf309e4cdd3fce177b408618490be4f3.tar.gz
inkscape-8867de5daf309e4cdd3fce177b408618490be4f3.zip
This is the first c++ification commit from me. It handles sp-line, sp-polyline, sp-item and marks the onset of document c++ification as well. Users can check performace increase with [/usr/bin/time -v inkscape_binary_with_commandline_options].
(bzr r9546.1.1)
Diffstat (limited to 'src/sp-line.cpp')
-rw-r--r--src/sp-line.cpp106
1 files changed, 54 insertions, 52 deletions
diff --git a/src/sp-line.cpp b/src/sp-line.cpp
index d0ce32397..878fceb67 100644
--- a/src/sp-line.cpp
+++ b/src/sp-line.cpp
@@ -25,24 +25,25 @@
#include "document.h"
#include "inkscape.h"
-static void sp_line_class_init (SPLineClass *klass);
-static void sp_line_init (SPLine *line);
+//static void sp_line_class_init (SPLineClass *klass);
+//static void sp_line_init (SPLine *line);
-static void sp_line_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr);
-static void sp_line_set (SPObject *object, unsigned int key, const gchar *value);
-static Inkscape::XML::Node *sp_line_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
+//static void sp_line_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr);
+//static void sp_line_set (SPObject *object, unsigned int key, const gchar *value);
+//static Inkscape::XML::Node *sp_line_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
-static gchar *sp_line_description (SPItem * item);
-static Geom::Matrix sp_line_set_transform(SPItem *item, Geom::Matrix const &xform);
+//static gchar *sp_line_description (SPItem * item);
+//static Geom::Matrix sp_line_set_transform(SPItem *item, Geom::Matrix const &xform);
-static void sp_line_update (SPObject *object, SPCtx *ctx, guint flags);
-static void sp_line_set_shape (SPShape *shape);
-static void sp_line_convert_to_guides(SPItem *item);
+//static void sp_line_update (SPObject *object, SPCtx *ctx, guint flags);
+//static void sp_line_set_shape (SPShape *shape);
+//static void sp_line_convert_to_guides(SPItem *item);
-static SPShapeClass *parent_class;
+//static SPShapeClass *static_parent_class;
+SPShapeClass * SPLineClass::static_parent_class=0;
GType
-sp_line_get_type (void)
+SPLine::sp_line_get_type (void)
{
static GType line_type = 0;
@@ -51,7 +52,7 @@ sp_line_get_type (void)
sizeof (SPLineClass),
NULL, /* base_init */
NULL, /* base_finalize */
- (GClassInitFunc) sp_line_class_init,
+ (GClassInitFunc) SPLineClass::sp_line_class_init,
NULL, /* klass_finalize */
NULL, /* klass_data */
sizeof (SPLine),
@@ -64,29 +65,30 @@ sp_line_get_type (void)
return line_type;
}
-static void
-sp_line_class_init (SPLineClass *klass)
+
+void
+SPLineClass::sp_line_class_init (SPLineClass *klass)
{
- parent_class = (SPShapeClass *) g_type_class_ref (SP_TYPE_SHAPE);
+ SPLineClass::static_parent_class = (SPShapeClass *) g_type_class_ref (SP_TYPE_SHAPE);
SPObjectClass *sp_object_class = (SPObjectClass *) klass;
- sp_object_class->build = sp_line_build;
- sp_object_class->set = sp_line_set;
- sp_object_class->write = sp_line_write;
+ sp_object_class->build = SPLine::sp_line_build;
+ sp_object_class->set = SPLine::sp_line_set;
+ sp_object_class->write = SPLine::sp_line_write;
SPItemClass *item_class = (SPItemClass *) klass;
- item_class->description = sp_line_description;
- item_class->set_transform = sp_line_set_transform;
- item_class->convert_to_guides = sp_line_convert_to_guides;
+ item_class->description = SPLine::sp_line_description;
+ item_class->set_transform = SPLine::sp_line_set_transform;
+ item_class->convert_to_guides = SPLine::sp_line_convert_to_guides;
- sp_object_class->update = sp_line_update;
+ sp_object_class->update = SPLine::sp_line_update;
SPShapeClass *shape_class = (SPShapeClass *) klass;
- shape_class->set_shape = sp_line_set_shape;
+ shape_class->set_shape = SPLine::sp_line_set_shape;
}
-static void
-sp_line_init (SPLine * line)
+void
+SPLine::sp_line_init (SPLine * line)
{
line->x1.unset();
line->y1.unset();
@@ -95,11 +97,11 @@ sp_line_init (SPLine * line)
}
-static void
-sp_line_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr)
+void
+SPLine::sp_line_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr)
{
- if (((SPObjectClass *) parent_class)->build) {
- ((SPObjectClass *) parent_class)->build (object, document, repr);
+ if (((SPObjectClass *) SPLineClass::static_parent_class)->build) {
+ ((SPObjectClass *) SPLineClass::static_parent_class)->build (object, document, repr);
}
sp_object_read_attr (object, "x1");
@@ -108,8 +110,8 @@ sp_line_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * r
sp_object_read_attr (object, "y2");
}
-static void
-sp_line_set (SPObject *object, unsigned int key, const gchar *value)
+void
+SPLine::sp_line_set (SPObject *object, unsigned int key, const gchar *value)
{
SPLine * line = SP_LINE (object);
@@ -133,14 +135,14 @@ sp_line_set (SPObject *object, unsigned int key, const gchar *value)
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
break;
default:
- if (((SPObjectClass *) parent_class)->set)
- ((SPObjectClass *) parent_class)->set (object, key, value);
+ if (((SPObjectClass *) SPLineClass::static_parent_class)->set)
+ ((SPObjectClass *) SPLineClass::static_parent_class)->set (object, key, value);
break;
}
}
-static void
-sp_line_update (SPObject *object, SPCtx *ctx, guint flags)
+void
+SPLine::sp_line_update (SPObject *object, SPCtx *ctx, guint flags)
{
if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) {
SPLine *line = SP_LINE (object);
@@ -159,13 +161,13 @@ sp_line_update (SPObject *object, SPCtx *ctx, guint flags)
sp_shape_set_shape ((SPShape *) object);
}
- if (((SPObjectClass *) parent_class)->update)
- ((SPObjectClass *) parent_class)->update (object, ctx, flags);
+ if (((SPObjectClass *) SPLineClass::static_parent_class)->update)
+ ((SPObjectClass *) SPLineClass::static_parent_class)->update (object, ctx, flags);
}
-static Inkscape::XML::Node *
-sp_line_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags)
+Inkscape::XML::Node *
+SPLine::sp_line_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags)
{
SPLine *line = SP_LINE (object);
@@ -182,25 +184,25 @@ sp_line_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML
sp_repr_set_svg_double(repr, "x2", line->x2.computed);
sp_repr_set_svg_double(repr, "y2", line->y2.computed);
- if (((SPObjectClass *) (parent_class))->write)
- ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr, flags);
+ if (((SPObjectClass *) (SPLineClass::static_parent_class))->write)
+ ((SPObjectClass *) (SPLineClass::static_parent_class))->write (object, xml_doc, repr, flags);
return repr;
}
-static gchar *
-sp_line_description(SPItem */*item*/)
+gchar *
+SPLine::sp_line_description(SPItem */*item*/)
{
return g_strdup(_("<b>Line</b>"));
}
-static void
-sp_line_convert_to_guides(SPItem *item)
+void
+SPLine::sp_line_convert_to_guides(SPItem *item)
{
SPLine *line = SP_LINE(item);
Geom::Point points[2];
- Geom::Matrix const i2d (sp_item_i2d_affine(item));
+ Geom::Matrix const i2d (item->i2d_affine());
points[0] = Geom::Point(line->x1.computed, line->y1.computed)*i2d;
points[1] = Geom::Point(line->x2.computed, line->y2.computed)*i2d;
@@ -208,8 +210,8 @@ sp_line_convert_to_guides(SPItem *item)
sp_guide_create(inkscape_active_desktop(), points[0], points[1]);
}
-static Geom::Matrix
-sp_line_set_transform (SPItem *item, Geom::Matrix const &xform)
+Geom::Matrix
+SPLine::sp_line_set_transform (SPItem *item, Geom::Matrix const &xform)
{
SPLine *line = SP_LINE (item);
Geom::Point points[2];
@@ -225,15 +227,15 @@ sp_line_set_transform (SPItem *item, Geom::Matrix const &xform)
line->x2.computed = points[1][Geom::X];
line->y2.computed = points[1][Geom::Y];
- sp_item_adjust_stroke(item, xform.descrim());
+ item->adjust_stroke(xform.descrim());
SP_OBJECT (item)->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG);
return Geom::identity();
}
-static void
-sp_line_set_shape (SPShape *shape)
+void
+SPLine::sp_line_set_shape (SPShape *shape)
{
SPLine *line = SP_LINE (shape);