From 8867de5daf309e4cdd3fce177b408618490be4f3 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Public Date: Tue, 29 Jun 2010 23:35:42 +0530 Subject: 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) --- src/sp-polyline.cpp | 66 +++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 32 deletions(-) (limited to 'src/sp-polyline.cpp') diff --git a/src/sp-polyline.cpp b/src/sp-polyline.cpp index 08f446d61..110fb4d01 100644 --- a/src/sp-polyline.cpp +++ b/src/sp-polyline.cpp @@ -20,19 +20,21 @@ #include "xml/repr.h" #include "document.h" -static void sp_polyline_class_init (SPPolyLineClass *klass); -static void sp_polyline_init (SPPolyLine *polyline); +//static void sp_polyline_class_init (SPPolyLineClass *klass); +//static void sp_polyline_init (SPPolyLine *polyline); -static void sp_polyline_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr); -static void sp_polyline_set (SPObject *object, unsigned int key, const gchar *value); -static Inkscape::XML::Node *sp_polyline_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); +//static void sp_polyline_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr); +//static void sp_polyline_set (SPObject *object, unsigned int key, const gchar *value); +//static Inkscape::XML::Node *sp_polyline_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static gchar * sp_polyline_description (SPItem * item); +//static gchar * sp_polyline_description (SPItem * item); -static SPShapeClass *parent_class; +//static SPShapeClass *parent_class; + +SPShapeClass * SPPolyLineClass::static_parent_class=0; GType -sp_polyline_get_type (void) +SPPolyLine::sp_polyline_get_type (void) { static GType polyline_type = 0; @@ -41,7 +43,7 @@ sp_polyline_get_type (void) sizeof (SPPolyLineClass), NULL, /* base_init */ NULL, /* base_finalize */ - (GClassInitFunc) sp_polyline_class_init, + (GClassInitFunc) SPPolyLineClass::sp_polyline_class_init, NULL, /* klass_finalize */ NULL, /* klass_data */ sizeof (SPPolyLine), @@ -54,8 +56,8 @@ sp_polyline_get_type (void) return polyline_type; } -static void -sp_polyline_class_init (SPPolyLineClass *klass) +void +SPPolyLineClass::sp_polyline_class_init (SPPolyLineClass *klass) { GObjectClass * gobject_class; SPObjectClass * sp_object_class; @@ -65,33 +67,33 @@ sp_polyline_class_init (SPPolyLineClass *klass) sp_object_class = (SPObjectClass *) klass; item_class = (SPItemClass *) klass; - parent_class = (SPShapeClass *)g_type_class_ref (SP_TYPE_SHAPE); + static_parent_class = (SPShapeClass *)g_type_class_ref (SP_TYPE_SHAPE); - sp_object_class->build = sp_polyline_build; - sp_object_class->set = sp_polyline_set; - sp_object_class->write = sp_polyline_write; + sp_object_class->build = SPPolyLine::sp_polyline_build; + sp_object_class->set = SPPolyLine::sp_polyline_set; + sp_object_class->write = SPPolyLine::sp_polyline_write; - item_class->description = sp_polyline_description; + item_class->description = SPPolyLine::sp_polyline_description; } -static void -sp_polyline_init (SPPolyLine * /*polyline*/) +void +SPPolyLine::sp_polyline_init (SPPolyLine * /*polyline*/) { /* Nothing here */ } -static void -sp_polyline_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr) +void +SPPolyLine::sp_polyline_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr) { - if (((SPObjectClass *) parent_class)->build) - ((SPObjectClass *) parent_class)->build (object, document, repr); + if (((SPObjectClass *) SPPolyLineClass::static_parent_class)->build) + ((SPObjectClass *) SPPolyLineClass::static_parent_class)->build (object, document, repr); sp_object_read_attr (object, "points"); } -static void -sp_polyline_set (SPObject *object, unsigned int key, const gchar *value) +void +SPPolyLine::sp_polyline_set (SPObject *object, unsigned int key, const gchar *value) { SPPolyLine *polyline; @@ -144,14 +146,14 @@ sp_polyline_set (SPObject *object, unsigned int key, const gchar *value) break; } default: - if (((SPObjectClass *) parent_class)->set) - ((SPObjectClass *) parent_class)->set (object, key, value); + if (((SPObjectClass *) SPPolyLineClass::static_parent_class)->set) + ((SPObjectClass *) SPPolyLineClass::static_parent_class)->set (object, key, value); break; } } -static Inkscape::XML::Node * -sp_polyline_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) +Inkscape::XML::Node * +SPPolyLine::sp_polyline_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { SPPolyLine *polyline; @@ -165,14 +167,14 @@ sp_polyline_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape: repr->mergeFrom(SP_OBJECT_REPR (object), "id"); } - if (((SPObjectClass *) (parent_class))->write) - ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr, flags); + if (((SPObjectClass *) (SPPolyLineClass::static_parent_class))->write) + ((SPObjectClass *) (SPPolyLineClass::static_parent_class))->write (object, xml_doc, repr, flags); return repr; } -static gchar * -sp_polyline_description(SPItem */*item*/) +gchar * +SPPolyLine::sp_polyline_description(SPItem */*item*/) { return g_strdup(_("Polyline")); } -- cgit v1.2.3 From 6cc35b45eab6422a6b6f67d621aa259a0a73786f Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Public Date: Mon, 12 Jul 2010 22:06:46 +0530 Subject: SPObject c++ification finalized along with the beginning of XML Privatisation tweaks (bzr r9546.1.6) --- src/sp-polyline.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-polyline.cpp') diff --git a/src/sp-polyline.cpp b/src/sp-polyline.cpp index 110fb4d01..b5eb81a11 100644 --- a/src/sp-polyline.cpp +++ b/src/sp-polyline.cpp @@ -89,7 +89,7 @@ SPPolyLine::sp_polyline_build (SPObject * object, SPDocument * document, Inkscap if (((SPObjectClass *) SPPolyLineClass::static_parent_class)->build) ((SPObjectClass *) SPPolyLineClass::static_parent_class)->build (object, document, repr); - sp_object_read_attr (object, "points"); + object->readAttr( "points"); } void -- cgit v1.2.3 From cde0571b44ec5b108907bda85971c49f3ceb1de8 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Public Date: Wed, 14 Jul 2010 23:40:35 +0530 Subject: SPShape c++ified to the extent it was possible and more changes done for XML privatisation. Major changes yet to come. (bzr r9546.1.7) --- src/sp-polyline.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-polyline.cpp') diff --git a/src/sp-polyline.cpp b/src/sp-polyline.cpp index b5eb81a11..5bf40352d 100644 --- a/src/sp-polyline.cpp +++ b/src/sp-polyline.cpp @@ -141,7 +141,7 @@ SPPolyLine::sp_polyline_set (SPObject *object, unsigned int key, const gchar *va } } - sp_shape_set_curve (SP_SHAPE (polyline), curve, TRUE); + (SP_SHAPE (polyline))->setCurve (curve, TRUE); curve->unref(); break; } -- cgit v1.2.3