Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / sp-object-repr.cpp
index 3987dbcbb99aa54edd291845317aec98aa1cd6ff..475a57521c3780306c877c6cd5864733803a6150 100644 (file)
@@ -1,10 +1,9 @@
-#define __SP_OBJECT_REPR_C__
-
 /*
  * Object type dictionary and build frontend
  *
  * Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
+ *   Abhishek Sharma
  *
  * Copyright (C) 1999-2003 Lauris Kaplinski
  *
@@ -13,7 +12,7 @@
 
 #include "sp-defs.h"
 #include "sp-symbol.h"
-#include "sp-marker.h"
+#include "marker.h"
 #include "sp-use.h"
 #include "sp-root.h"
 #include "sp-image.h"
 #include "sp-path.h"
 #include "sp-radial-gradient-fns.h"
 #include "sp-rect.h"
+#include "box3d.h"
+#include "box3d-side.h"
+#include "persp3d.h"
 #include "sp-ellipse.h"
 #include "sp-star.h"
-#include "sp-stop-fns.h"
+#include "sp-stop.h"
 #include "sp-spiral.h"
 #include "sp-offset.h"
 #include "sp-line.h"
 #include "sp-metadata.h"
 #include "sp-polyline.h"
 #include "sp-textpath.h"
+#include "sp-tref.h"
 #include "sp-tspan.h"
 #include "sp-pattern.h"
 #include "sp-clippath.h"
 #include "sp-flowdiv.h"
 #include "sp-flowregion.h"
 #include "sp-flowtext.h"
+#include "sp-script.h"
+#include "config.h"
+
+#ifdef ENABLE_SVG_FONTS
+    #include "sp-font.h"
+    #include "sp-font-face.h"
+    #include "sp-glyph.h"
+    #include "sp-missing-glyph.h"
+    #include "sp-glyph-kerning.h"
+#endif
+
 #include "sp-style-elem.h"
+#include "sp-switch.h"
 #include "color-profile-fns.h"
 #include "xml/repr.h"
+#include "sp-filter.h"
+#include "sp-gaussian-blur.h"
+#include "filters/blend.h"
+#include "filters/colormatrix.h"
+#include "filters/componenttransfer.h"
+#include "filters/componenttransfer-funcnode.h"
+#include "filters/composite.h"
+#include "filters/convolvematrix.h"
+#include "filters/diffuselighting.h"
+#include "filters/distantlight.h"
+#include "filters/displacementmap.h"
+#include "filters/flood.h"
+#include "filters/image.h"
+#include "filters/merge.h"
+#include "filters/morphology.h"
+#include "filters/offset.h"
+#include "filters/pointlight.h"
+#include "filters/specularlighting.h"
+#include "filters/spotlight.h"
+#include "filters/tile.h"
+#include "filters/turbulence.h"
+#include "filters/mergenode.h"
+#include "live_effects/lpeobject.h"
+#include "sp-title.h"
+#include "sp-desc.h"
+
 
 enum NameType { REPR_NAME, SODIPODI_TYPE };
 static unsigned const N_NAME_TYPES = SODIPODI_TYPE + 1;
@@ -65,7 +106,7 @@ sp_object_repr_build_tree(SPDocument *document, Inkscape::XML::Node *repr)
     g_assert(newobj != NULL);
     SPObject *const object = SP_OBJECT(newobj);
     g_assert(object != NULL);
-    sp_object_invoke_build(object, document, repr, FALSE);
+    object->invoke_build(document, repr, FALSE);
 
     return object;
 }
@@ -98,7 +139,9 @@ populate_dtables()
         { "svg:color-profile", COLORPROFILE_TYPE },
         { "svg:clipPath", SP_TYPE_CLIPPATH },
         { "svg:defs", SP_TYPE_DEFS },
+        { "svg:desc", SP_TYPE_DESC },
         { "svg:ellipse", SP_TYPE_ELLIPSE },
+        { "svg:filter", SP_TYPE_FILTER },
         /* Note: flow* elements are proposed additions for SVG 1.2, they aren't in
            SVG 1.1. */
         { "svg:flowDiv", SP_TYPE_FLOWDIV },
@@ -109,7 +152,39 @@ populate_dtables()
         { "svg:flowRegionExclude", SP_TYPE_FLOWREGIONEXCLUDE },
         { "svg:flowRoot", SP_TYPE_FLOWTEXT },
         { "svg:flowSpan", SP_TYPE_FLOWTSPAN },
+#ifdef ENABLE_SVG_FONTS
+        { "svg:font", SP_TYPE_FONT },
+        { "svg:font-face", SP_TYPE_FONTFACE },
+        { "svg:glyph", SP_TYPE_GLYPH },
+        { "svg:missing-glyph", SP_TYPE_MISSING_GLYPH },
+        { "svg:hkern", SP_TYPE_HKERN },
+        { "svg:vkern", SP_TYPE_VKERN },
+#endif
         { "svg:g", SP_TYPE_GROUP },
+        { "svg:feBlend", SP_TYPE_FEBLEND },
+        { "svg:feColorMatrix", SP_TYPE_FECOLORMATRIX },
+        { "svg:feComponentTransfer", SP_TYPE_FECOMPONENTTRANSFER },
+        { "svg:feComposite", SP_TYPE_FECOMPOSITE },
+        { "svg:feConvolveMatrix", SP_TYPE_FECONVOLVEMATRIX },
+        { "svg:feDiffuseLighting", SP_TYPE_FEDIFFUSELIGHTING },
+        { "svg:feDistantLight", SP_TYPE_FEDISTANTLIGHT },
+        { "svg:feDisplacementMap", SP_TYPE_FEDISPLACEMENTMAP },
+        { "svg:feFlood", SP_TYPE_FEFLOOD },
+        { "svg:feFuncR", SP_TYPE_FEFUNCR },
+        { "svg:feFuncG", SP_TYPE_FEFUNCG },
+        { "svg:feFuncB", SP_TYPE_FEFUNCB },
+        { "svg:feFuncA", SP_TYPE_FEFUNCA },
+        { "svg:feGaussianBlur", SP_TYPE_GAUSSIANBLUR },
+        { "svg:feImage", SP_TYPE_FEIMAGE },
+        { "svg:feMerge", SP_TYPE_FEMERGE },
+        { "svg:feMorphology", SP_TYPE_FEMORPHOLOGY },
+        { "svg:feOffset", SP_TYPE_FEOFFSET },
+        { "svg:fePointLight", SP_TYPE_FEPOINTLIGHT },
+        { "svg:feSpecularLighting", SP_TYPE_FESPECULARLIGHTING },
+        { "svg:feSpotLight", SP_TYPE_FESPOTLIGHT },
+        { "svg:feTile", SP_TYPE_FETILE },
+        { "svg:feTurbulence", SP_TYPE_FETURBULENCE },
+        { "svg:feMergeNode", SP_TYPE_FEMERGENODE },
         { "svg:image", SP_TYPE_IMAGE },
         { "svg:line", SP_TYPE_LINE },
         { "svg:linearGradient", SP_TYPE_LINEARGRADIENT },
@@ -123,20 +198,27 @@ populate_dtables()
         { "svg:radialGradient", SP_TYPE_RADIALGRADIENT },
         { "svg:rect", SP_TYPE_RECT },
         { "svg:stop", SP_TYPE_STOP },
+        { "svg:script", SP_TYPE_SCRIPT },
         { "svg:svg", SP_TYPE_ROOT },
         { "svg:style", SP_TYPE_STYLE_ELEM },
-        { "svg:switch", SP_TYPE_GROUP },
+        { "svg:switch", SP_TYPE_SWITCH },
         { "svg:symbol", SP_TYPE_SYMBOL },
         { "svg:text", SP_TYPE_TEXT },
         { "svg:textPath", SP_TYPE_TEXTPATH },
+        { "svg:title", SP_TYPE_TITLE },
+        { "svg:tref", SP_TYPE_TREF },
         { "svg:tspan", SP_TYPE_TSPAN },
-        { "svg:use", SP_TYPE_USE }
+        { "svg:use", SP_TYPE_USE },
+        { "inkscape:path-effect", TYPE_LIVEPATHEFFECT }
     };
     NameTypeEntry const sodipodi_name_entries[] = {
         { "arc", SP_TYPE_ARC },
         { "inkscape:offset", SP_TYPE_OFFSET },
         { "spiral", SP_TYPE_SPIRAL },
-        { "star", SP_TYPE_STAR }
+        { "star", SP_TYPE_STAR },
+        { "inkscape:box3d", SP_TYPE_BOX3D },
+        { "inkscape:box3dside", SP_TYPE_BOX3D_SIDE },
+        { "inkscape:persp3d", SP_TYPE_PERSP3D }
     };
 
     NameTypeEntry const *const t2entries[] = {
@@ -207,4 +289,4 @@ sp_object_type_register(gchar const *name, GType const gtype)
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :