diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-04-02 19:29:05 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-04-02 19:29:05 +0000 |
| commit | be6575c39673b06bd51215e47fea86de5f1ee746 (patch) | |
| tree | 33e4facc760cd4a514f044aabf2f49395942e5a8 /src | |
| parent | Added virtual destructor to SPObject. Switched to new factory. Replaced some ... (diff) | |
| download | inkscape-be6575c39673b06bd51215e47fea86de5f1ee746.tar.gz inkscape-be6575c39673b06bd51215e47fea86de5f1ee746.zip | |
Replaced some forgotten old casting macros.
All object files are first compiled into a static library and then Inkscape and Inkview are linked against this library.
Thus the linker omits some global function calls that are necessary for class registration.
This intermediate step was removed so that both executables are directly linked against all object files.
(bzr r11608.1.71)
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.am | 7 | ||||
| -rw-r--r-- | src/sp-linear-gradient-fns.h | 8 | ||||
| -rw-r--r-- | src/sp-mesh-gradient-fns.h | 7 | ||||
| -rw-r--r-- | src/sp-mesh-patch-fns.h | 7 | ||||
| -rw-r--r-- | src/sp-mesh-row-fns.h | 7 | ||||
| -rw-r--r-- | src/sp-object-repr.cpp | 156 | ||||
| -rw-r--r-- | src/sp-radial-gradient-fns.h | 9 |
7 files changed, 95 insertions, 106 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index b9ec53ab1..aecd79170 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,7 +23,6 @@ endif noinst_LIBRARIES = \ - libinkscape.a \ dom/libdom.a \ libcroco/libcroco.a \ libavoid/libavoid.a \ @@ -199,13 +198,13 @@ DISTCLEANFILES = \ # ################################################ # this should speed up the build -libinkscape_a_SOURCES = $(ink_common_sources) +#libinkscape_a_SOURCES = $(ink_common_sources) -inkscape_SOURCES += main.cpp $(win32_sources) +inkscape_SOURCES += main.cpp $(ink_common_sources) $(win32_sources) inkscape_LDADD = $(all_libs) inkscape_LDFLAGS = $(kdeldflags) $(mwindows) -inkview_SOURCES += inkview.cpp $(win32_sources) +inkview_SOURCES += inkview.cpp $(ink_common_sources) $(win32_sources) inkview_LDADD = $(all_libs) inkview_LDFLAGS = $(mwindows) diff --git a/src/sp-linear-gradient-fns.h b/src/sp-linear-gradient-fns.h index 14e575ebe..059877a4e 100644 --- a/src/sp-linear-gradient-fns.h +++ b/src/sp-linear-gradient-fns.h @@ -8,6 +8,8 @@ #include <glib-object.h> #include <glib.h> +#include "sp-linear-gradient.h" + namespace Inkscape { namespace XML { class Node; @@ -17,10 +19,8 @@ class Node; struct SPLinearGradient; #define SP_TYPE_LINEARGRADIENT (sp_lineargradient_get_type()) -#define SP_LINEARGRADIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_LINEARGRADIENT, SPLinearGradient)) -#define SP_LINEARGRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_LINEARGRADIENT, SPLinearGradientClass)) -#define SP_IS_LINEARGRADIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_LINEARGRADIENT)) -#define SP_IS_LINEARGRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_LINEARGRADIENT)) +#define SP_LINEARGRADIENT(obj) ((SPLinearGradient*)obj) +#define SP_IS_LINEARGRADIENT(obj) (dynamic_cast<const SPLinearGradient*>((SPObject*)obj)) GType sp_lineargradient_get_type(); diff --git a/src/sp-mesh-gradient-fns.h b/src/sp-mesh-gradient-fns.h index 4196a6de2..88fc69637 100644 --- a/src/sp-mesh-gradient-fns.h +++ b/src/sp-mesh-gradient-fns.h @@ -17,11 +17,8 @@ class Node; struct SPMeshGradient; #define SP_TYPE_MESHGRADIENT (sp_meshgradient_get_type()) -#define SP_MESHGRADIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_MESHGRADIENT, SPMeshGradient)) -#define SP_MESHGRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_MESHGRADIENT, SPMeshGradientClass)) -#define SP_IS_MESHGRADIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_MESHGRADIENT)) -#define SP_IS_MESHGRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_MESHGRADIENT)) - +#define SP_MESHGRADIENT(obj) ((SPMeshGradient*)obj) +#define SP_IS_MESHGRADIENT(obj) (dynamic_cast<const SPMeshGradient*>((SPObject*)obj)) GType sp_meshgradient_get_type(); diff --git a/src/sp-mesh-patch-fns.h b/src/sp-mesh-patch-fns.h index 37fb5a70a..163dfcdce 100644 --- a/src/sp-mesh-patch-fns.h +++ b/src/sp-mesh-patch-fns.h @@ -16,11 +16,8 @@ class Node; class SPMeshPatch; #define SP_TYPE_MESHPATCH (sp_meshpatch_get_type()) -#define SP_MESHPATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_MESHPATCH, SPMeshPatch)) -#define SP_MESHPATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_MESHPATCH, SPMeshPatchClass)) -#define SP_IS_MESHPATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_MESHPATCH)) -#define SP_IS_MESHPATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_MESHPATCH)) - +#define SP_MESHPATCH(obj) ((SPMeshPatch*)obj) +#define SP_IS_MESHPATCH(obj) (dynamic_cast<const SPMeshPatch*>((SPObject*)obj)) GType sp_meshpatch_get_type(); diff --git a/src/sp-mesh-row-fns.h b/src/sp-mesh-row-fns.h index 5d85fdfea..7f73c2104 100644 --- a/src/sp-mesh-row-fns.h +++ b/src/sp-mesh-row-fns.h @@ -16,11 +16,8 @@ class Node; class SPMeshRow; #define SP_TYPE_MESHROW (sp_meshrow_get_type()) -#define SP_MESHROW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_MESHROW, SPMeshRow)) -#define SP_MESHROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_MESHROW, SPMeshRowClass)) -#define SP_IS_MESHROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_MESHROW)) -#define SP_IS_MESHROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_MESHROW)) - +#define SP_MESHROW(obj) ((SPMeshRow*)obj) +#define SP_IS_MESHROW(obj) (dynamic_cast<const SPMeshRow*>((SPObject*)obj)) GType sp_meshrow_get_type(); diff --git a/src/sp-object-repr.cpp b/src/sp-object-repr.cpp index c3d60c5e8..1b6eb87a6 100644 --- a/src/sp-object-repr.cpp +++ b/src/sp-object-repr.cpp @@ -135,84 +135,84 @@ populate_dtables() { struct NameTypeEntry { char const *const name; GType const type_id; }; NameTypeEntry const repr_name_entries[] = { - { "svg:a", SP_TYPE_ANCHOR }, - //{ "svg:animate", SP_TYPE_ANIMATE }, - { "svg:circle", SP_TYPE_CIRCLE }, - { "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 }, - { "svg:flowLine", SP_TYPE_FLOWLINE }, - { "svg:flowPara", SP_TYPE_FLOWPARA }, - { "svg:flowRegion", SP_TYPE_FLOWREGION }, - { "svg:flowRegionBreak", SP_TYPE_FLOWREGIONBREAK }, - { "svg:flowRegionExclude", SP_TYPE_FLOWREGIONEXCLUDE }, - { "svg:flowRoot", SP_TYPE_FLOWTEXT }, - { "svg:flowSpan", SP_TYPE_FLOWTSPAN }, - { "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 }, - { "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 }, - { "svg:marker", SP_TYPE_MARKER }, - { "svg:mask", SP_TYPE_MASK }, - { "svg:meshGradient", SP_TYPE_MESHGRADIENT }, - { "svg:meshRow", SP_TYPE_MESHROW }, - { "svg:meshPatch", SP_TYPE_MESHPATCH }, - { "svg:metadata", SP_TYPE_METADATA }, - { "svg:path", SP_TYPE_PATH }, - { "svg:pattern", SP_TYPE_PATTERN }, - { "svg:polygon", SP_TYPE_POLYGON }, - { "svg:polyline", SP_TYPE_POLYLINE }, - { "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_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 }, - { "inkscape:path-effect", TYPE_LIVEPATHEFFECT } +// { "svg:a", SP_TYPE_ANCHOR }, +// //{ "svg:animate", SP_TYPE_ANIMATE }, +// { "svg:circle", SP_TYPE_CIRCLE }, +// { "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 }, +// { "svg:flowLine", SP_TYPE_FLOWLINE }, +// { "svg:flowPara", SP_TYPE_FLOWPARA }, +// { "svg:flowRegion", SP_TYPE_FLOWREGION }, +// { "svg:flowRegionBreak", SP_TYPE_FLOWREGIONBREAK }, +// { "svg:flowRegionExclude", SP_TYPE_FLOWREGIONEXCLUDE }, +// { "svg:flowRoot", SP_TYPE_FLOWTEXT }, +// { "svg:flowSpan", SP_TYPE_FLOWTSPAN }, +// { "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 }, +// { "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 }, +// { "svg:marker", SP_TYPE_MARKER }, +// { "svg:mask", SP_TYPE_MASK }, +// { "svg:meshGradient", SP_TYPE_MESHGRADIENT }, +// { "svg:meshRow", SP_TYPE_MESHROW }, +// { "svg:meshPatch", SP_TYPE_MESHPATCH }, +// { "svg:metadata", SP_TYPE_METADATA }, +// { "svg:path", SP_TYPE_PATH }, +// { "svg:pattern", SP_TYPE_PATTERN }, +// { "svg:polygon", SP_TYPE_POLYGON }, +// { "svg:polyline", SP_TYPE_POLYLINE }, +// { "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_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 }, +// { "inkscape:path-effect", TYPE_LIVEPATHEFFECT } }; NameTypeEntry const sodipodi_name_entries[] = { { "arc", SP_TYPE_ARC }, diff --git a/src/sp-radial-gradient-fns.h b/src/sp-radial-gradient-fns.h index 43ed7bf03..aa2db64ca 100644 --- a/src/sp-radial-gradient-fns.h +++ b/src/sp-radial-gradient-fns.h @@ -7,6 +7,8 @@ #include <glib-object.h> +#include "sp-radial-gradient.h" + namespace Inkscape { namespace XML { class Node; @@ -16,11 +18,8 @@ class Node; struct SPRadialGradient; #define SP_TYPE_RADIALGRADIENT (sp_radialgradient_get_type()) -#define SP_RADIALGRADIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_RADIALGRADIENT, SPRadialGradient)) -#define SP_RADIALGRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_RADIALGRADIENT, SPRadialGradientClass)) -#define SP_IS_RADIALGRADIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_RADIALGRADIENT)) -#define SP_IS_RADIALGRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_RADIALGRADIENT)) - +#define SP_RADIALGRADIENT(obj) ((SPRadialGradient*)obj) +#define SP_IS_RADIALGRADIENT(obj) (dynamic_cast<const SPRadialGradient*>((SPObject*)obj)) GType sp_radialgradient_get_type(); |
