diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-04-01 00:14:53 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-04-01 00:14:53 +0000 |
| commit | 25078fc60b120e877a7b79bc6f08fe2a0f45c3d7 (patch) | |
| tree | a59731c3f66e5c0ec00d54f2a7eb25437271a2df /src | |
| parent | Prepared exchange of casting macros. (diff) | |
| download | inkscape-25078fc60b120e877a7b79bc6f08fe2a0f45c3d7.tar.gz inkscape-25078fc60b120e877a7b79bc6f08fe2a0f45c3d7.zip | |
Replaced all casting macros with glib-independent ones.
(bzr r11608.1.64)
Diffstat (limited to 'src')
80 files changed, 219 insertions, 359 deletions
diff --git a/src/box3d-side.h b/src/box3d-side.h index 930e797ad..7a1d760a2 100644 --- a/src/box3d-side.h +++ b/src/box3d-side.h @@ -17,10 +17,8 @@ #include "axis-manip.h" #define SP_TYPE_BOX3D_SIDE (box3d_side_get_type ()) -#define SP_BOX3D_SIDE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_BOX3D_SIDE, Box3DSide)) -#define SP_BOX3D_SIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_BOX3D_SIDE, Box3DSideClass)) -#define SP_IS_BOX3D_SIDE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_BOX3D_SIDE)) -#define SP_IS_BOX3D_SIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_BOX3D_SIDE)) +#define SP_BOX3D_SIDE(obj) ((Box3DSide*)obj) +#define SP_IS_BOX3D_SIDE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(Box3DSide))) class SPBox3D; struct Persp3D; diff --git a/src/box3d.h b/src/box3d.h index 133cfd1c8..a854f197f 100644 --- a/src/box3d.h +++ b/src/box3d.h @@ -21,10 +21,8 @@ #include "axis-manip.h" #define SP_TYPE_BOX3D (box3d_get_type ()) -#define SP_BOX3D(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_BOX3D, SPBox3D)) -#define SP_BOX3D_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_BOX3D, Box3DClass)) -#define SP_IS_BOX3D(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_BOX3D)) -#define SP_IS_BOX3D_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_BOX3D)) +#define SP_BOX3D(obj) ((SPBox3D*)obj) +#define SP_IS_BOX3D(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPBox3D))) struct Persp3D; class Persp3DReference; diff --git a/src/color-profile.h b/src/color-profile.h index 92184d826..ad538721d 100644 --- a/src/color-profile.h +++ b/src/color-profile.h @@ -95,10 +95,8 @@ GType colorprofile_get_type(); } // namespace Inkscape #define COLORPROFILE_TYPE (Inkscape::colorprofile_get_type()) -#define COLORPROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), COLORPROFILE_TYPE, Inkscape::ColorProfile)) -#define COLORPROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), COLORPROFILE_TYPE, Inkscape::ColorProfileClass)) -#define IS_COLORPROFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), COLORPROFILE_TYPE)) -#define IS_COLORPROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), COLORPROFILE_TYPE)) +#define COLORPROFILE(obj) ((Inkscape::ColorProfile*)obj) +#define IS_COLORPROFILE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(Inkscape::ColorProfile))) #endif // !SEEN_COLOR_PROFILE_H diff --git a/src/filters/blend.h b/src/filters/blend.h index cd0326eb4..d1fbc3c04 100644 --- a/src/filters/blend.h +++ b/src/filters/blend.h @@ -17,10 +17,8 @@ #include "display/nr-filter-blend.h" #define SP_TYPE_FEBLEND (sp_feBlend_get_type()) -#define SP_FEBLEND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEBLEND, SPFeBlend)) -#define SP_FEBLEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEBLEND, SPFeBlendClass)) -#define SP_IS_FEBLEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEBLEND)) -#define SP_IS_FEBLEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEBLEND)) +#define SP_FEBLEND(obj) ((SPFeBlend*)obj) +#define SP_IS_FEBLEND(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeBlend))) class CFeBlend; diff --git a/src/filters/colormatrix.h b/src/filters/colormatrix.h index 2ce1da06a..b8cf82757 100644 --- a/src/filters/colormatrix.h +++ b/src/filters/colormatrix.h @@ -16,10 +16,8 @@ #include "display/nr-filter-colormatrix.h" #define SP_TYPE_FECOLORMATRIX (sp_feColorMatrix_get_type()) -#define SP_FECOLORMATRIX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FECOLORMATRIX, SPFeColorMatrix)) -#define SP_FECOLORMATRIX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FECOLORMATRIX, SPFeColorMatrixClass)) -#define SP_IS_FECOLORMATRIX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FECOLORMATRIX)) -#define SP_IS_FECOLORMATRIX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FECOLORMATRIX)) +#define SP_FECOLORMATRIX(obj) ((SPFeColorMatrix*)obj) +#define SP_IS_FECOLORMATRIX(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeColorMatrix))) class CFeColorMatrix; diff --git a/src/filters/componenttransfer-funcnode.h b/src/filters/componenttransfer-funcnode.h index 674074353..ca9bbf50d 100644 --- a/src/filters/componenttransfer-funcnode.h +++ b/src/filters/componenttransfer-funcnode.h @@ -23,16 +23,18 @@ #define SP_TYPE_FEFUNCB (sp_fefuncB_get_type()) #define SP_TYPE_FEFUNCA (sp_fefuncA_get_type()) -#define SP_IS_FEFUNCR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCR)) -#define SP_IS_FEFUNCG(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCG)) -#define SP_IS_FEFUNCB(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCB)) -#define SP_IS_FEFUNCA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCA)) - -#define SP_FEFUNCNODE(obj) (SP_IS_FEFUNCR(obj) ? G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEFUNCR, SPFeFuncNode) : (SP_IS_FEFUNCG(obj) ? G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEFUNCG, SPFeFuncNode) : (SP_IS_FEFUNCB(obj) ? G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEFUNCB, SPFeFuncNode):(SP_IS_FEFUNCA(obj) ? G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEFUNCA, SPFeFuncNode): NULL)))) - -#define SP_FEFUNCNODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEFUNCNODE, SPFeFuncNodeClass)) - -#define SP_IS_FEFUNCNODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEFUNCNODE)) +// CPPIFY: Casting macros buggy, as these aren't classes. +//#define SP_IS_FEFUNCR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCR)) +//#define SP_IS_FEFUNCG(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCG)) +//#define SP_IS_FEFUNCB(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCB)) +//#define SP_IS_FEFUNCA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFUNCA)) + +#define SP_FEFUNCNODE(obj) ((SPFeFuncNode*)obj) + +#define SP_IS_FEFUNCR(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeFuncNode))) +#define SP_IS_FEFUNCG(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeFuncNode))) +#define SP_IS_FEFUNCB(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeFuncNode))) +#define SP_IS_FEFUNCA(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeFuncNode))) class CFeFuncNode; diff --git a/src/filters/componenttransfer.h b/src/filters/componenttransfer.h index e46f228bc..bb3ccb96c 100644 --- a/src/filters/componenttransfer.h +++ b/src/filters/componenttransfer.h @@ -14,10 +14,8 @@ #include "sp-filter-primitive.h" #define SP_TYPE_FECOMPONENTTRANSFER (sp_feComponentTransfer_get_type()) -#define SP_FECOMPONENTTRANSFER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FECOMPONENTTRANSFER, SPFeComponentTransfer)) -#define SP_FECOMPONENTTRANSFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FECOMPONENTTRANSFER, SPFeComponentTransferClass)) -#define SP_IS_FECOMPONENTTRANSFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FECOMPONENTTRANSFER)) -#define SP_IS_FECOMPONENTTRANSFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FECOMPONENTTRANSFER)) +#define SP_FECOMPONENTTRANSFER(obj) ((SPFeComponentTransfer*)obj) +#define SP_IS_FECOMPONENTTRANSFER(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeComponentTransfer))) namespace Inkscape { namespace Filters { diff --git a/src/filters/composite.h b/src/filters/composite.h index 780e84e20..6a3ea8abc 100644 --- a/src/filters/composite.h +++ b/src/filters/composite.h @@ -14,10 +14,8 @@ #include "sp-filter-primitive.h" #define SP_TYPE_FECOMPOSITE (sp_feComposite_get_type()) -#define SP_FECOMPOSITE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FECOMPOSITE, SPFeComposite)) -#define SP_FECOMPOSITE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FECOMPOSITE, SPFeCompositeClass)) -#define SP_IS_FECOMPOSITE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FECOMPOSITE)) -#define SP_IS_FECOMPOSITE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FECOMPOSITE)) +#define SP_FECOMPOSITE(obj) ((SPFeComposite*)obj) +#define SP_IS_FECOMPOSITE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeComposite))) enum FeCompositeOperator { // Default value is 'over', but let's distinquish specifying the diff --git a/src/filters/convolvematrix.h b/src/filters/convolvematrix.h index 6b00bb9e2..0f2c6110d 100644 --- a/src/filters/convolvematrix.h +++ b/src/filters/convolvematrix.h @@ -19,10 +19,8 @@ #include "display/nr-filter-convolve-matrix.h" #define SP_TYPE_FECONVOLVEMATRIX (sp_feConvolveMatrix_get_type()) -#define SP_FECONVOLVEMATRIX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FECONVOLVEMATRIX, SPFeConvolveMatrix)) -#define SP_FECONVOLVEMATRIX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FECONVOLVEMATRIX, SPFeConvolveMatrixClass)) -#define SP_IS_FECONVOLVEMATRIX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FECONVOLVEMATRIX)) -#define SP_IS_FECONVOLVEMATRIX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FECONVOLVEMATRIX)) +#define SP_FECONVOLVEMATRIX(obj) ((SPFeConvolveMatrix*)obj) +#define SP_IS_FECONVOLVEMATRIX(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeConvolveMatrix))) class CFeConvolveMatrix; diff --git a/src/filters/diffuselighting.h b/src/filters/diffuselighting.h index 3bfe7e4f5..524c2b780 100644 --- a/src/filters/diffuselighting.h +++ b/src/filters/diffuselighting.h @@ -16,10 +16,8 @@ #include "number-opt-number.h" #define SP_TYPE_FEDIFFUSELIGHTING (sp_feDiffuseLighting_get_type()) -#define SP_FEDIFFUSELIGHTING(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEDIFFUSELIGHTING, SPFeDiffuseLighting)) -#define SP_FEDIFFUSELIGHTING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEDIFFUSELIGHTING, SPFeDiffuseLightingClass)) -#define SP_IS_FEDIFFUSELIGHTING(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEDIFFUSELIGHTING)) -#define SP_IS_FEDIFFUSELIGHTING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEDIFFUSELIGHTING)) +#define SP_FEDIFFUSELIGHTING(obj) ((SPFeDiffuseLighting*)obj) +#define SP_IS_FEDIFFUSELIGHTING(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeDiffuseLighting))) struct SVGICCColor; diff --git a/src/filters/displacementmap.h b/src/filters/displacementmap.h index a2eac1ecf..3a5317354 100644 --- a/src/filters/displacementmap.h +++ b/src/filters/displacementmap.h @@ -15,10 +15,8 @@ #include "sp-filter-primitive.h" #define SP_TYPE_FEDISPLACEMENTMAP (sp_feDisplacementMap_get_type()) -#define SP_FEDISPLACEMENTMAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEDISPLACEMENTMAP, SPFeDisplacementMap)) -#define SP_FEDISPLACEMENTMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEDISPLACEMENTMAP, SPFeDisplacementMapClass)) -#define SP_IS_FEDISPLACEMENTMAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEDISPLACEMENTMAP)) -#define SP_IS_FEDISPLACEMENTMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEDISPLACEMENTMAP)) +#define SP_FEDISPLACEMENTMAP(obj) ((SPFeDisplacementMap*)obj) +#define SP_IS_FEDISPLACEMENTMAP(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeDisplacementMap))) enum FilterDisplacementMapChannelSelector { DISPLACEMENTMAP_CHANNEL_RED, diff --git a/src/filters/distantlight.h b/src/filters/distantlight.h index e0fa3b1c2..c11ffed5b 100644 --- a/src/filters/distantlight.h +++ b/src/filters/distantlight.h @@ -18,10 +18,8 @@ #include "sp-object.h" #define SP_TYPE_FEDISTANTLIGHT (sp_fedistantlight_get_type()) -#define SP_FEDISTANTLIGHT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEDISTANTLIGHT, SPFeDistantLight)) -#define SP_FEDISTANTLIGHT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEDISTANTLIGHT, SPFeDistantLightClass)) -#define SP_IS_FEDISTANTLIGHT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEDISTANTLIGHT)) -#define SP_IS_FEDISTANTLIGHT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEDISTANTLIGHT)) +#define SP_FEDISTANTLIGHT(obj) ((SPFeDistantLight*)obj) +#define SP_IS_FEDISTANTLIGHT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeDistantLight))) /* Distant light class */ diff --git a/src/filters/flood.h b/src/filters/flood.h index 24231f992..baef69a3a 100644 --- a/src/filters/flood.h +++ b/src/filters/flood.h @@ -18,10 +18,8 @@ G_BEGIN_DECLS #define SP_TYPE_FEFLOOD (sp_feFlood_get_type()) -#define SP_FEFLOOD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEFLOOD, SPFeFlood)) -#define SP_FEFLOOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEFLOOD, SPFeFloodClass)) -#define SP_IS_FEFLOOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEFLOOD)) -#define SP_IS_FEFLOOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEFLOOD)) +#define SP_FEFLOOD(obj) ((SPFeFlood*)obj) +#define SP_IS_FEFLOOD(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeFlood))) class CFeFlood; diff --git a/src/filters/gaussian-blur.h b/src/filters/gaussian-blur.h index 2872f0cc3..a13ba0e99 100644 --- a/src/filters/gaussian-blur.h +++ b/src/filters/gaussian-blur.h @@ -16,10 +16,8 @@ #include "number-opt-number.h" #define SP_TYPE_GAUSSIANBLUR (sp_gaussianBlur_get_type()) -#define SP_GAUSSIANBLUR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_GAUSSIANBLUR, SPGaussianBlur)) -#define SP_GAUSSIANBLUR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_GAUSSIANBLUR, SPGaussianBlurClass)) -#define SP_IS_GAUSSIANBLUR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_GAUSSIANBLUR)) -#define SP_IS_GAUSSIANBLUR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_GAUSSIANBLUR)) +#define SP_GAUSSIANBLUR(obj) ((SPGaussianBlur*)obj) +#define SP_IS_GAUSSIANBLUR(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPGaussianBlur))) class CGaussianBlur; diff --git a/src/filters/image.h b/src/filters/image.h index 0144082fa..3618ac678 100644 --- a/src/filters/image.h +++ b/src/filters/image.h @@ -19,10 +19,8 @@ #include "uri-references.h" #define SP_TYPE_FEIMAGE (sp_feImage_get_type()) -#define SP_FEIMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEIMAGE, SPFeImage)) -#define SP_FEIMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEIMAGE, SPFeImageClass)) -#define SP_IS_FEIMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEIMAGE)) -#define SP_IS_FEIMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEIMAGE)) +#define SP_FEIMAGE(obj) ((SPFeImage*)obj) +#define SP_IS_FEIMAGE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeImage))) class CFeImage; diff --git a/src/filters/merge.h b/src/filters/merge.h index 9b30a7a05..574e5fc4a 100644 --- a/src/filters/merge.h +++ b/src/filters/merge.h @@ -13,10 +13,8 @@ #include "sp-filter-primitive.h" #define SP_TYPE_FEMERGE (sp_feMerge_get_type()) -#define SP_FEMERGE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEMERGE, SPFeMerge)) -#define SP_FEMERGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEMERGE, SPFeMergeClass)) -#define SP_IS_FEMERGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEMERGE)) -#define SP_IS_FEMERGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEMERGE)) +#define SP_FEMERGE(obj) ((SPFeMerge*)obj) +#define SP_IS_FEMERGE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeMerge))) class CFeMerge; diff --git a/src/filters/mergenode.h b/src/filters/mergenode.h index 897df31be..eecf74fb1 100644 --- a/src/filters/mergenode.h +++ b/src/filters/mergenode.h @@ -18,8 +18,8 @@ #include "sp-object.h" #define SP_TYPE_FEMERGENODE (sp_feMergeNode_get_type()) -#define SP_FEMERGENODE(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_FEMERGENODE, SPFeMergeNode)) -#define SP_IS_FEMERGENODE(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_FEMERGENODE)) +#define SP_FEMERGENODE(obj) ((SPFeMergeNode*)obj) +#define SP_IS_FEMERGENODE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeMergeNode))) class CFeMergeNode; diff --git a/src/filters/morphology.h b/src/filters/morphology.h index 3ef629ef4..8f571fdba 100644 --- a/src/filters/morphology.h +++ b/src/filters/morphology.h @@ -17,10 +17,8 @@ #include "display/nr-filter-morphology.h" #define SP_TYPE_FEMORPHOLOGY (sp_feMorphology_get_type()) -#define SP_FEMORPHOLOGY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEMORPHOLOGY, SPFeMorphology)) -#define SP_FEMORPHOLOGY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEMORPHOLOGY, SPFeMorphologyClass)) -#define SP_IS_FEMORPHOLOGY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEMORPHOLOGY)) -#define SP_IS_FEMORPHOLOGY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEMORPHOLOGY)) +#define SP_FEMORPHOLOGY(obj) ((SPFeMorphology*)obj) +#define SP_IS_FEMORPHOLOGY(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeMorphology))) class CFeMorphology; diff --git a/src/filters/offset.h b/src/filters/offset.h index df0f9768d..7fc3083f8 100644 --- a/src/filters/offset.h +++ b/src/filters/offset.h @@ -15,10 +15,8 @@ #include "sp-filter-primitive.h" #define SP_TYPE_FEOFFSET (sp_feOffset_get_type()) -#define SP_FEOFFSET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEOFFSET, SPFeOffset)) -#define SP_FEOFFSET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEOFFSET, SPFeOffsetClass)) -#define SP_IS_FEOFFSET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEOFFSET)) -#define SP_IS_FEOFFSET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEOFFSET)) +#define SP_FEOFFSET(obj) ((SPFeOffset*)obj) +#define SP_IS_FEOFFSET(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeOffset))) class CFeOffset; diff --git a/src/filters/pointlight.h b/src/filters/pointlight.h index 814a065be..8082aec45 100644 --- a/src/filters/pointlight.h +++ b/src/filters/pointlight.h @@ -18,10 +18,8 @@ #include "sp-object.h" #define SP_TYPE_FEPOINTLIGHT (sp_fepointlight_get_type()) -#define SP_FEPOINTLIGHT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FEPOINTLIGHT, SPFePointLight)) -#define SP_FEPOINTLIGHT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FEPOINTLIGHT, SPFePointLightClass)) -#define SP_IS_FEPOINTLIGHT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FEPOINTLIGHT)) -#define SP_IS_FEPOINTLIGHT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FEPOINTLIGHT)) +#define SP_FEPOINTLIGHT(obj) ((SPFePointLight*)obj) +#define SP_IS_FEPOINTLIGHT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFePointLight))) class CFePointLight; diff --git a/src/filters/specularlighting.h b/src/filters/specularlighting.h index b7e8d8591..9a0917bbf 100644 --- a/src/filters/specularlighting.h +++ b/src/filters/specularlighting.h @@ -18,10 +18,8 @@ #include "number-opt-number.h" #define SP_TYPE_FESPECULARLIGHTING (sp_feSpecularLighting_get_type()) -#define SP_FESPECULARLIGHTING(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FESPECULARLIGHTING, SPFeSpecularLighting)) -#define SP_FESPECULARLIGHTING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FESPECULARLIGHTING, SPFeSpecularLightingClass)) -#define SP_IS_FESPECULARLIGHTING(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FESPECULARLIGHTING)) -#define SP_IS_FESPECULARLIGHTING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FESPECULARLIGHTING)) +#define SP_FESPECULARLIGHTING(obj) ((SPFeSpecularLighting*)obj) +#define SP_IS_FESPECULARLIGHTING(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeSpecularLighting))) struct SVGICCColor; diff --git a/src/filters/spotlight.h b/src/filters/spotlight.h index 51a1406de..17f84f3c2 100644 --- a/src/filters/spotlight.h +++ b/src/filters/spotlight.h @@ -18,10 +18,8 @@ #include "sp-object.h" #define SP_TYPE_FESPOTLIGHT (sp_fespotlight_get_type()) -#define SP_FESPOTLIGHT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FESPOTLIGHT, SPFeSpotLight)) -#define SP_FESPOTLIGHT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FESPOTLIGHT, SPFeSpotLightClass)) -#define SP_IS_FESPOTLIGHT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FESPOTLIGHT)) -#define SP_IS_FESPOTLIGHT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FESPOTLIGHT)) +#define SP_FESPOTLIGHT(obj) ((SPFeSpotLight*)obj) +#define SP_IS_FESPOTLIGHT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeSpotLight))) class CFeSpotLight; diff --git a/src/filters/tile.h b/src/filters/tile.h index 3ef56b515..36c547d9c 100644 --- a/src/filters/tile.h +++ b/src/filters/tile.h @@ -15,10 +15,8 @@ #include "sp-filter-primitive.h" #define SP_TYPE_FETILE (sp_feTile_get_type()) -#define SP_FETILE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FETILE, SPFeTile)) -#define SP_FETILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FETILE, SPFeTileClass)) -#define SP_IS_FETILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FETILE)) -#define SP_IS_FETILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FETILE)) +#define SP_FETILE(obj) ((SPFeTile*)obj) +#define SP_IS_FETILE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeTile))) /* FeTile base class */ class CFeTile; diff --git a/src/filters/turbulence.h b/src/filters/turbulence.h index ccfa3da92..0e01ae52c 100644 --- a/src/filters/turbulence.h +++ b/src/filters/turbulence.h @@ -18,10 +18,8 @@ #include "display/nr-filter-turbulence.h" #define SP_TYPE_FETURBULENCE (sp_feTurbulence_get_type()) -#define SP_FETURBULENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FETURBULENCE, SPFeTurbulence)) -#define SP_FETURBULENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FETURBULENCE, SPFeTurbulenceClass)) -#define SP_IS_FETURBULENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FETURBULENCE)) -#define SP_IS_FETURBULENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FETURBULENCE)) +#define SP_FETURBULENCE(obj) ((SPFeTurbulence*)obj) +#define SP_IS_FETURBULENCE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFeTurbulence))) /* FeTurbulence base class */ diff --git a/src/live_effects/lpeobject.h b/src/live_effects/lpeobject.h index f360d7bdd..02513d258 100644 --- a/src/live_effects/lpeobject.h +++ b/src/live_effects/lpeobject.h @@ -23,8 +23,8 @@ namespace Inkscape { } #define TYPE_LIVEPATHEFFECT (LivePathEffectObject::livepatheffect_get_type()) -#define LIVEPATHEFFECT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), TYPE_LIVEPATHEFFECT, LivePathEffectObject)) -#define IS_LIVEPATHEFFECT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), TYPE_LIVEPATHEFFECT)) +#define LIVEPATHEFFECT(obj) ((LivePathEffectObject*)obj) +#define IS_LIVEPATHEFFECT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(LivePathEffectObject))) /// The LivePathEffect vtable. struct LivePathEffectObjectClass { diff --git a/src/marker.h b/src/marker.h index 6f4f1e604..47e1a4037 100644 --- a/src/marker.h +++ b/src/marker.h @@ -19,8 +19,8 @@ */ #define SP_TYPE_MARKER (sp_marker_get_type ()) -#define SP_MARKER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_MARKER, SPMarker)) -#define SP_IS_MARKER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_MARKER)) +#define SP_MARKER(obj) ((SPMarker*)obj) +#define SP_IS_MARKER(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPMarker))) struct SPMarkerView; class CMarker; diff --git a/src/persp3d.h b/src/persp3d.h index a17a50347..684fb4df2 100644 --- a/src/persp3d.h +++ b/src/persp3d.h @@ -13,10 +13,8 @@ */ #define SP_TYPE_PERSP3D (persp3d_get_type ()) -#define SP_PERSP3D(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_PERSP3D, Persp3D)) -#define SP_PERSP3D_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_PERSP3D, Persp3DClass)) -#define SP_IS_PERSP3D(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_PERSP3D)) -#define SP_IS_PERSP3D_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_PERSP3D)) +#define SP_PERSP3D(obj) ((Persp3D*)obj) +#define SP_IS_PERSP3D(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(Persp3D))) #include <list> #include <vector> diff --git a/src/sp-anchor.h b/src/sp-anchor.h index 1fbe3950d..132054998 100644 --- a/src/sp-anchor.h +++ b/src/sp-anchor.h @@ -16,10 +16,8 @@ #include "sp-item-group.h" #define SP_TYPE_ANCHOR (sp_anchor_get_type ()) -#define SP_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_ANCHOR, SPAnchor)) -#define SP_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_ANCHOR, SPAnchorClass)) -#define SP_IS_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_ANCHOR)) -#define SP_IS_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_ANCHOR)) +#define SP_ANCHOR(obj) ((SPAnchor*)obj) +#define SP_IS_ANCHOR(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPAnchor))) class CAnchor; diff --git a/src/sp-clippath.h b/src/sp-clippath.h index 231c72581..f3894dc8f 100644 --- a/src/sp-clippath.h +++ b/src/sp-clippath.h @@ -16,10 +16,8 @@ */ #define SP_TYPE_CLIPPATH (sp_clippath_get_type()) -#define SP_CLIPPATH(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_CLIPPATH, SPClipPath)) -#define SP_CLIPPATH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_CLIPPATH, SPClipPathClass)) -#define SP_IS_CLIPPATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_CLIPPATH)) -#define SP_IS_CLIPPATH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_CLIPPATH)) +#define SP_CLIPPATH(obj) ((SPClipPath*)obj) +#define SP_IS_CLIPPATH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPClipPath))) struct SPClipPathView; diff --git a/src/sp-defs.h b/src/sp-defs.h index b2c3f8b0e..17dc84078 100644 --- a/src/sp-defs.h +++ b/src/sp-defs.h @@ -16,10 +16,8 @@ #include "sp-object.h" #define SP_TYPE_DEFS (sp_defs_get_type()) -#define SP_DEFS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_DEFS, SPDefs)) -#define SP_DEFS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_DEFS, SPDefsClass)) -#define SP_IS_DEFS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_DEFS)) -#define SP_IS_DEFS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_DEFS)) +#define SP_DEFS(obj) ((SPDefs*)obj) +#define SP_IS_DEFS(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPDefs))) GType sp_defs_get_type(void) G_GNUC_CONST; diff --git a/src/sp-desc.h b/src/sp-desc.h index 3f8f346e6..0faaae0e0 100644 --- a/src/sp-desc.h +++ b/src/sp-desc.h @@ -15,7 +15,8 @@ #include "sp-object.h" #define SP_TYPE_DESC (sp_desc_get_type ()) -#define SP_IS_DESC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_DESC)) +#define SP_DESC(obj) ((SPDesc*)obj) +#define SP_IS_DESC(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPDesc))) class CDesc; diff --git a/src/sp-ellipse.h b/src/sp-ellipse.h index 70e1e9618..caaf8aee9 100644 --- a/src/sp-ellipse.h +++ b/src/sp-ellipse.h @@ -22,10 +22,8 @@ G_BEGIN_DECLS /* Common parent class */ #define SP_TYPE_GENERICELLIPSE (sp_genericellipse_get_type ()) -#define SP_GENERICELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_GENERICELLIPSE, SPGenericEllipse)) -#define SP_GENERICELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_GENERICELLIPSE, SPGenericEllipseClass)) -#define SP_IS_GENERICELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_GENERICELLIPSE)) -#define SP_IS_GENERICELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_GENERICELLIPSE)) +#define SP_GENERICELLIPSE(obj) ((SPGenericEllipse*)obj) +#define SP_IS_GENERICELLIPSE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPGenericEllipse))) class CGenericEllipse; @@ -73,10 +71,8 @@ void sp_genericellipse_normalize (SPGenericEllipse *ellipse); /* SVG <ellipse> element */ #define SP_TYPE_ELLIPSE (sp_ellipse_get_type ()) -#define SP_ELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_ELLIPSE, SPEllipse)) -#define SP_ELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_ELLIPSE, SPEllipseClass)) -#define SP_IS_ELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_ELLIPSE)) -#define SP_IS_ELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_ELLIPSE)) +#define SP_ELLIPSE(obj) ((SPEllipse*)obj) +#define SP_IS_ELLIPSE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPEllipse))) class CEllipse; @@ -112,10 +108,8 @@ void sp_ellipse_position_set (SPEllipse * ellipse, gdouble x, gdouble y, gdouble /* SVG <circle> element */ #define SP_TYPE_CIRCLE (sp_circle_get_type ()) -#define SP_CIRCLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_CIRCLE, SPCircle)) -#define SP_CIRCLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_CIRCLE, SPCircleClass)) -#define SP_IS_CIRCLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_CIRCLE)) -#define SP_IS_CIRCLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_CIRCLE)) +#define SP_CIRCLE(obj) ((SPCircle*)obj) +#define SP_IS_CIRCLE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPCircle))) class CCircle; @@ -149,10 +143,8 @@ GType sp_circle_get_type (void); /* <path sodipodi:type="arc"> element */ #define SP_TYPE_ARC (sp_arc_get_type ()) -#define SP_ARC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_ARC, SPArc)) -#define SP_ARC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_ARC, SPArcClass)) -#define SP_IS_ARC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_ARC)) -#define SP_IS_ARC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_ARC)) +#define SP_ARC(obj) ((SPArc*)obj) +#define SP_IS_ARC(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPArc))) class CArc; diff --git a/src/sp-filter-primitive.h b/src/sp-filter-primitive.h index abf0659e9..b090d0681 100644 --- a/src/sp-filter-primitive.h +++ b/src/sp-filter-primitive.h @@ -18,10 +18,8 @@ #include "svg/svg-length.h" #define SP_TYPE_FILTER_PRIMITIVE (sp_filter_primitive_get_type ()) -#define SP_FILTER_PRIMITIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FILTER_PRIMITIVE, SPFilterPrimitive)) -#define SP_FILTER_PRIMITIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FILTER_PRIMITIVE, SPFilterPrimitiveClass)) -#define SP_IS_FILTER_PRIMITIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FILTER_PRIMITIVE)) -#define SP_IS_FILTER_PRIMITIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FILTER_PRIMITIVE)) +#define SP_FILTER_PRIMITIVE(obj) ((SPFilterPrimitive*)obj) +#define SP_IS_FILTER_PRIMITIVE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFilterPrimitive))) namespace Inkscape { namespace Filters { diff --git a/src/sp-filter.h b/src/sp-filter.h index 0db572225..263f9cdd1 100644 --- a/src/sp-filter.h +++ b/src/sp-filter.h @@ -22,10 +22,8 @@ #include <glibmm/ustring.h> #define SP_TYPE_FILTER (sp_filter_get_type()) -#define SP_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_FILTER, SPFilter)) -#define SP_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_FILTER, SPFilterClass)) -#define SP_IS_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_FILTER)) -#define SP_IS_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_FILTER)) +#define SP_FILTER(obj) ((SPFilter*)obj) +#define SP_IS_FILTER(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFilter))) #define SP_FILTER_FILTER_UNITS(f) (SP_FILTER(f)->filterUnits) #define SP_FILTER_PRIMITIVE_UNITS(f) (SP_FILTER(f)->primitiveUnits) diff --git a/src/sp-flowdiv.h b/src/sp-flowdiv.h index 5b1e49f85..2f06cb312 100644 --- a/src/sp-flowdiv.h +++ b/src/sp-flowdiv.h @@ -8,34 +8,24 @@ #include "sp-item.h" #define SP_TYPE_FLOWDIV (sp_flowdiv_get_type ()) -#define SP_FLOWDIV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWDIV, SPFlowdiv)) -#define SP_FLOWDIV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWDIV, SPFlowdivClass)) -#define SP_IS_FLOWDIV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWDIV)) -#define SP_IS_FLOWDIV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWDIV)) +#define SP_FLOWDIV(obj) ((SPFlowdiv*)obj) +#define SP_IS_FLOWDIV(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowdiv))) #define SP_TYPE_FLOWTSPAN (sp_flowtspan_get_type ()) -#define SP_FLOWTSPAN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWTSPAN, SPFlowtspan)) -#define SP_FLOWTSPAN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWTSPAN, SPFlowtspanClass)) -#define SP_IS_FLOWTSPAN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWTSPAN)) -#define SP_IS_FLOWTSPAN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWTSPAN)) +#define SP_FLOWTSPAN(obj) ((SPFlowtspan*)obj) +#define SP_IS_FLOWTSPAN(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowtspan))) #define SP_TYPE_FLOWPARA (sp_flowpara_get_type ()) -#define SP_FLOWPARA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWPARA, SPFlowpara)) -#define SP_FLOWPARA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWPARA, SPFlowparaClass)) -#define SP_IS_FLOWPARA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWPARA)) -#define SP_IS_FLOWPARA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWPARA)) +#define SP_FLOWPARA(obj) ((SPFlowpara*)obj) +#define SP_IS_FLOWPARA(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowpara))) #define SP_TYPE_FLOWLINE (sp_flowline_get_type ()) -#define SP_FLOWLINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWLINE, SPFlowline)) -#define SP_FLOWLINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWLINE, SPFlowlineClass)) -#define SP_IS_FLOWLINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWLINE)) -#define SP_IS_FLOWLINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWLINE)) +#define SP_FLOWLINE(obj) ((SPFlowline*)obj) +#define SP_IS_FLOWLINE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowline))) #define SP_TYPE_FLOWREGIONBREAK (sp_flowregionbreak_get_type ()) -#define SP_FLOWREGIONBREAK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWREGIONBREAK, SPFlowregionbreak)) -#define SP_FLOWREGIONBREAK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWREGIONBREAK, SPFlowregionbreakClass)) -#define SP_IS_FLOWREGIONBREAK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWREGIONBREAK)) -#define SP_IS_FLOWREGIONBREAK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWREGIONBREAK)) +#define SP_FLOWREGIONBREAK(obj) ((SPFlowregionbreak*)obj) +#define SP_IS_FLOWREGIONBREAK(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowregionbreak))) class CFlowdiv; class CFlowtspan; diff --git a/src/sp-flowregion.h b/src/sp-flowregion.h index 600a49282..e9461e82b 100644 --- a/src/sp-flowregion.h +++ b/src/sp-flowregion.h @@ -7,16 +7,12 @@ #include "sp-item.h" #define SP_TYPE_FLOWREGION (sp_flowregion_get_type ()) -#define SP_FLOWREGION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWREGION, SPFlowregion)) -#define SP_FLOWREGION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWREGION, SPFlowregionClass)) -#define SP_IS_FLOWREGION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWREGION)) -#define SP_IS_FLOWREGION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWREGION)) +#define SP_FLOWREGION(obj) ((SPFlowregion*)obj) +#define SP_IS_FLOWREGION(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowregion))) #define SP_TYPE_FLOWREGIONEXCLUDE (sp_flowregionexclude_get_type ()) -#define SP_FLOWREGIONEXCLUDE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWREGIONEXCLUDE, SPFlowregionExclude)) -#define SP_FLOWREGIONEXCLUDE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWREGIONEXCLUDE, SPFlowregionExcludeClass)) -#define SP_IS_FLOWREGIONEXCLUDE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWREGIONEXCLUDE)) -#define SP_IS_FLOWREGIONEXCLUDE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWREGIONEXCLUDE)) +#define SP_FLOWREGIONEXCLUDE(obj) ((SPFlowregionExclude*)obj) +#define SP_IS_FLOWREGIONEXCLUDE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowregionExclude))) class Path; class Shape; diff --git a/src/sp-flowtext.h b/src/sp-flowtext.h index f3dfb0a8e..06e2442e6 100644 --- a/src/sp-flowtext.h +++ b/src/sp-flowtext.h @@ -10,10 +10,8 @@ #include "libnrtype/Layout-TNG.h" #define SP_TYPE_FLOWTEXT (sp_flowtext_get_type ()) -#define SP_FLOWTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FLOWTEXT, SPFlowtext)) -#define SP_FLOWTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FLOWTEXT, SPFlowtextClass)) -#define SP_IS_FLOWTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FLOWTEXT)) -#define SP_IS_FLOWTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FLOWTEXT)) +#define SP_FLOWTEXT(obj) ((SPFlowtext*)obj) +#define SP_IS_FLOWTEXT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFlowtext))) namespace Inkscape { diff --git a/src/sp-font-face.h b/src/sp-font-face.h index b39ea881f..0aab3b577 100644 --- a/src/sp-font-face.h +++ b/src/sp-font-face.h @@ -27,10 +27,8 @@ G_BEGIN_DECLS #define SP_TYPE_FONTFACE (sp_fontface_get_type ()) -#define SP_FONTFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FONTFACE, SPFontFace)) -#define SP_FONTFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FONTFACE, SPFontFaceClass)) -#define SP_IS_FONTFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FONTFACE)) -#define SP_IS_FONTFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FONTFACE)) +#define SP_FONTFACE(obj) ((SPFontFace*)obj) +#define SP_IS_FONTFACE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFontFace))) enum FontFaceStyleType{ SP_FONTFACE_STYLE_ALL, diff --git a/src/sp-font.h b/src/sp-font.h index 1bddc7503..44b24b6f2 100644 --- a/src/sp-font.h +++ b/src/sp-font.h @@ -19,10 +19,8 @@ #include "sp-object.h" #define SP_TYPE_FONT (sp_font_get_type ()) -#define SP_FONT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FONT, SPFont)) -#define SP_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FONT, SPFontClass)) -#define SP_IS_FONT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FONT)) -#define SP_IS_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FONT)) +#define SP_FONT(obj) ((SPFont*)obj) +#define SP_IS_FONT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPFont))) class CFont; diff --git a/src/sp-glyph-kerning.h b/src/sp-glyph-kerning.h index fdb93ca59..2e7fe6e82 100644 --- a/src/sp-glyph-kerning.h +++ b/src/sp-glyph-kerning.h @@ -20,16 +20,24 @@ #include "unicoderange.h" #define SP_TYPE_HKERN (sp_glyph_kerning_h_get_type ()) -#define SP_HKERN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_HKERN, SPHkern)) -#define SP_HKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_HKERN, SPGlyphKerningClass)) -#define SP_IS_HKERN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_HKERN)) -#define SP_IS_HKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_HKERN)) +//#define SP_HKERN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_HKERN, SPHkern)) +//#define SP_HKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_HKERN, SPGlyphKerningClass)) +//#define SP_IS_HKERN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_HKERN)) +//#define SP_IS_HKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_HKERN)) + +#define SP_HKERN(obj) ((SPHkern*)obj) +#define SP_IS_HKERN(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPHkern))) #define SP_TYPE_VKERN (sp_glyph_kerning_v_get_type ()) -#define SP_VKERN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_VKERN, SPVkern)) -#define SP_VKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_VKERN, SPGlyphKerningClass)) -#define SP_IS_VKERN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_VKERN)) -#define SP_IS_VKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_VKERN)) +//#define SP_VKERN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_VKERN, SPVkern)) +//#define SP_VKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_VKERN, SPGlyphKerningClass)) +//#define SP_IS_VKERN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_VKERN)) +//#define SP_IS_VKERN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_VKERN)) + +#define SP_VKERN(obj) ((SPVkern*)obj) +#define SP_IS_VKERN(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPVkern))) + +// CPPIFY: These casting macros are buggy, as Vkern and Hkern aren't "real" classes. class GlyphNames{ public: diff --git a/src/sp-glyph.h b/src/sp-glyph.h index 6543b1af2..4746a18e1 100644 --- a/src/sp-glyph.h +++ b/src/sp-glyph.h @@ -19,10 +19,8 @@ #include "sp-object.h" #define SP_TYPE_GLYPH (sp_glyph_get_type ()) -#define SP_GLYPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_GLYPH, SPGlyph)) -#define SP_GLYPH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_GLYPH, SPGlyphClass)) -#define SP_IS_GLYPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_GLYPH)) -#define SP_IS_GLYPH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_GLYPH)) +#define SP_GLYPH(obj) ((SPGlyph*)obj) +#define SP_IS_GLYPH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPGlyph))) enum glyphArabicForm { GLYPH_ARABIC_FORM_INITIAL, diff --git a/src/sp-gradient.h b/src/sp-gradient.h index e5744fab4..cd52b7ff5 100644 --- a/src/sp-gradient.h +++ b/src/sp-gradient.h @@ -31,10 +31,8 @@ class SPGradientReference; struct SPStop; #define SP_TYPE_GRADIENT (SPGradient::getType()) -#define SP_GRADIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_GRADIENT, SPGradient)) -#define SP_GRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_GRADIENT, SPGradientClass)) -#define SP_IS_GRADIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_GRADIENT)) -#define SP_IS_GRADIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_GRADIENT)) +#define SP_GRADIENT(obj) ((SPGradient*)obj) +#define SP_IS_GRADIENT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPGradient))) enum SPGradientType { SP_GRADIENT_TYPE_UNKNOWN, diff --git a/src/sp-guide.h b/src/sp-guide.h index 23cc17900..7c09b6482 100644 --- a/src/sp-guide.h +++ b/src/sp-guide.h @@ -26,11 +26,8 @@ class SPDesktop; G_BEGIN_DECLS #define SP_TYPE_GUIDE (sp_guide_get_type()) -#define SP_GUIDE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_GUIDE, SPGuide)) -#define SP_GUIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_GUIDE, SPGuideClass)) -#define SP_IS_GUIDE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_GUIDE)) -#define SP_IS_GUIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_GUIDE)) - +#define SP_GUIDE(obj) ((SPGuide*)obj) +#define SP_IS_GUIDE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPGuide))) class CGuide; diff --git a/src/sp-image.h b/src/sp-image.h index a095d9eb4..7389683ab 100644 --- a/src/sp-image.h +++ b/src/sp-image.h @@ -15,10 +15,8 @@ */ #define SP_TYPE_IMAGE (sp_image_get_type ()) -#define SP_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_IMAGE, SPImage)) -#define SP_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_IMAGE, SPImageClass)) -#define SP_IS_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_IMAGE)) -#define SP_IS_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_IMAGE)) +#define SP_IMAGE(obj) ((SPImage*)obj) +#define SP_IS_IMAGE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPImage))) class CImage; diff --git a/src/sp-item-group.h b/src/sp-item-group.h index 9f22e2ef8..4e04b47f0 100644 --- a/src/sp-item-group.h +++ b/src/sp-item-group.h @@ -17,10 +17,8 @@ #include "sp-lpe-item.h" #define SP_TYPE_GROUP (sp_group_get_type ()) -#define SP_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_GROUP, SPGroup)) -#define SP_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_GROUP, SPGroupClass)) -#define SP_IS_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_GROUP)) -#define SP_IS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_GROUP)) +#define SP_GROUP(obj) ((SPGroup*)obj) +#define SP_IS_GROUP(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPGroup))) #define SP_IS_LAYER(obj) (SP_IS_GROUP(obj) && SP_GROUP(obj)->layerMode() == SPGroup::LAYER) diff --git a/src/sp-item.h b/src/sp-item.h index 870dae031..f3002487d 100644 --- a/src/sp-item.h +++ b/src/sp-item.h @@ -102,9 +102,8 @@ class SPItemClass; class CItem; #define SP_TYPE_ITEM (sp_item_get_type ()) -#define SP_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_ITEM, SPItem)) -#define SP_ITEM_CLASS(clazz) (G_TYPE_CHECK_CLASS_CAST((clazz), SP_TYPE_ITEM, SPItemClass)) -#define SP_IS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_ITEM)) +#define SP_ITEM(obj) ((SPItem*)obj) +#define SP_IS_ITEM(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPItem))) GType sp_item_get_type() G_GNUC_CONST; diff --git a/src/sp-line.h b/src/sp-line.h index e59c15e9c..964c9717d 100644 --- a/src/sp-line.h +++ b/src/sp-line.h @@ -20,10 +20,8 @@ #define SP_TYPE_LINE (sp_line_get_type()) -#define SP_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_LINE, SPLine)) -#define SP_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_LINE, SPLineClass)) -#define SP_IS_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_LINE)) -#define SP_IS_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_LINE)) +#define SP_LINE(obj) ((SPLine*)obj) +#define SP_IS_LINE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPLine))) class SPLine; class SPLineClass; diff --git a/src/sp-lpe-item.h b/src/sp-lpe-item.h index 60fef13b7..847461116 100644 --- a/src/sp-lpe-item.h +++ b/src/sp-lpe-item.h @@ -19,10 +19,8 @@ #include <list> #define SP_TYPE_LPE_ITEM (sp_lpe_item_get_type()) -#define SP_LPE_ITEM(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_LPE_ITEM, SPLPEItem)) -#define SP_LPE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_LPE_ITEM, SPLPEItemClass)) -#define SP_IS_LPE_ITEM(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_LPE_ITEM)) -#define SP_IS_LPE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_LPE_ITEM)) +#define SP_LPE_ITEM(obj) ((SPLPEItem*)obj) +#define SP_IS_LPE_ITEM(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPLPEItem))) class CLPEItem; class LivePathEffectObject; diff --git a/src/sp-mask.h b/src/sp-mask.h index e0048c13f..c254591e2 100644 --- a/src/sp-mask.h +++ b/src/sp-mask.h @@ -19,10 +19,8 @@ #include "xml/node.h" #define SP_TYPE_MASK (sp_mask_get_type ()) -#define SP_MASK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_MASK, SPMask)) -#define SP_MASK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_MASK, SPMaskClass)) -#define SP_IS_MASK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_MASK)) -#define SP_IS_MASK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_MASK)) +#define SP_MASK(obj) ((SPMask*)obj) +#define SP_IS_MASK(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPMask))) struct SPMaskView; diff --git a/src/sp-mesh-patch.h b/src/sp-mesh-patch.h index 58655d65a..7ff7eeb47 100644 --- a/src/sp-mesh-patch.h +++ b/src/sp-mesh-patch.h @@ -23,10 +23,8 @@ struct SPMeshPatch; struct SPMeshPatchClass; #define SP_TYPE_MESHPATCH (sp_meshpatch_get_type()) -#define SP_MESHPATCH(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_MESHPATCH, SPMeshPatch)) -#define SP_MESHPATCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_MESHPATCH, SPMeshPatchClass)) -#define SP_IS_MESHPATCH(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_MESHPATCH)) -#define SP_IS_MESHPATCH_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_MESHPATCH)) +#define SP_MESHPATCH(obj) ((SPMeshPatch*)obj) +#define SP_IS_MESHPATCH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPMeshPatch))) GType sp_meshpatch_get_type(); diff --git a/src/sp-mesh-row.h b/src/sp-mesh-row.h index 98187b124..595424a1c 100644 --- a/src/sp-mesh-row.h +++ b/src/sp-mesh-row.h @@ -20,10 +20,8 @@ struct SPMeshRow; struct SPMeshRowClass; #define SP_TYPE_MESHROW (sp_meshrow_get_type()) -#define SP_MESHROW(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_MESHROW, SPMeshRow)) -#define SP_MESHROW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_MESHROW, SPMeshRowClass)) -#define SP_IS_MESHROW(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_MESHROW)) -#define SP_IS_MESHROW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_MESHROW)) +#define SP_MESHROW(obj) ((SPMeshRow*)obj) +#define SP_IS_MESHROW(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPMeshRow))) GType sp_meshrow_get_type(); diff --git a/src/sp-metadata.h b/src/sp-metadata.h index d610a1592..36da719f0 100644 --- a/src/sp-metadata.h +++ b/src/sp-metadata.h @@ -18,8 +18,8 @@ /* Metadata base class */ #define SP_TYPE_METADATA (sp_metadata_get_type ()) -#define SP_METADATA(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_METADATA, SPMetadata)) -#define SP_IS_METADATA(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_METADATA)) +#define SP_METADATA(obj) ((SPMetadata*)obj) +#define SP_IS_METADATA(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPMetadata))) class CMetadata; diff --git a/src/sp-missing-glyph.h b/src/sp-missing-glyph.h index 213b98d97..cdd50cf51 100644 --- a/src/sp-missing-glyph.h +++ b/src/sp-missing-glyph.h @@ -19,10 +19,8 @@ #include "sp-object.h" #define SP_TYPE_MISSING_GLYPH (sp_missing_glyph_get_type ()) -#define SP_MISSING_GLYPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_MISSING_GLYPH, SPMissingGlyph)) -#define SP_MISSING_GLYPH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_MISSING_GLYPH, SPMissingGlyphClass)) -#define SP_IS_MISSING_GLYPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_MISSING_GLYPH)) -#define SP_IS_MISSING_GLYPH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_MISSING_GLYPH)) +#define SP_MISSING_GLYPH(obj) ((SPMissingGlyph*)obj) +#define SP_IS_MISSING_GLYPH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPMissingGlyph))) class CMissingGlyph; diff --git a/src/sp-namedview.h b/src/sp-namedview.h index 294f39d59..0adccde75 100644 --- a/src/sp-namedview.h +++ b/src/sp-namedview.h @@ -15,10 +15,8 @@ */ #define SP_TYPE_NAMEDVIEW (sp_namedview_get_type()) -#define SP_NAMEDVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_NAMEDVIEW, SPNamedView)) -#define SP_NAMEDVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_NAMEDVIEW, SPNamedViewClass)) -#define SP_IS_NAMEDVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_NAMEDVIEW)) -#define SP_IS_NAMEDVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_NAMEDVIEW)) +#define SP_NAMEDVIEW(obj) ((SPNamedView*)obj) +#define SP_IS_NAMEDVIEW(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPNamedView))) #include "sp-object-group.h" #include "sp-metric.h" diff --git a/src/sp-object-group.h b/src/sp-object-group.h index aa54092e6..e1e4b279e 100644 --- a/src/sp-object-group.h +++ b/src/sp-object-group.h @@ -17,10 +17,8 @@ #include "sp-object.h" #define SP_TYPE_OBJECTGROUP (sp_objectgroup_get_type ()) -#define SP_OBJECTGROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_OBJECTGROUP, SPObjectGroup)) -#define SP_OBJECTGROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_OBJECTGROUP, SPObjectGroupClass)) -#define SP_IS_OBJECTGROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_OBJECTGROUP)) -#define SP_IS_OBJECTGROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_OBJECTGROUP)) +#define SP_OBJECTGROUP(obj) ((SPObjectGroup*)obj) +#define SP_IS_OBJECTGROUP(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPObjectGroup))) GType sp_objectgroup_get_type() G_GNUC_CONST; class CObjectGroup; diff --git a/src/sp-object.h b/src/sp-object.h index cd6dbc247..1b40e5a97 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -19,9 +19,8 @@ class SPObject; class SPObjectClass; #define SP_TYPE_OBJECT (sp_object_get_type()) -#define SP_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_OBJECT, SPObject)) -#define SP_OBJECT_CLASS(clazz) (G_TYPE_CHECK_CLASS_CAST((clazz), SP_TYPE_OBJECT, SPObjectClass)) -#define SP_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_OBJECT)) +#define SP_OBJECT(obj) ((SPObject*)obj) +#define SP_IS_OBJECT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPObject))) /* Async modification flags */ #define SP_OBJECT_MODIFIED_FLAG (1 << 0) diff --git a/src/sp-offset.h b/src/sp-offset.h index a18f2d889..78c5b6468 100644 --- a/src/sp-offset.h +++ b/src/sp-offset.h @@ -17,10 +17,8 @@ #include <sigc++/sigc++.h> #define SP_TYPE_OFFSET (sp_offset_get_type ()) -#define SP_OFFSET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_OFFSET, SPOffset)) -#define SP_OFFSET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_OFFSET, SPOffsetClass)) -#define SP_IS_OFFSET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_OFFSET)) -#define SP_IS_OFFSET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_OFFSET)) +#define SP_OFFSET(obj) ((SPOffset*)obj) +#define SP_IS_OFFSET(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPOffset))) class COffset; class SPUseReference; diff --git a/src/sp-paint-server.h b/src/sp-paint-server.h index a44a0040f..53e728827 100644 --- a/src/sp-paint-server.h +++ b/src/sp-paint-server.h @@ -21,10 +21,8 @@ #include "uri-references.h" #define SP_TYPE_PAINT_SERVER (sp_paint_server_get_type()) -#define SP_PAINT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_PAINT_SERVER, SPPaintServer)) -#define SP_PAINT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_PAINT_SERVER, SPPaintServerClass)) -#define SP_IS_PAINT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_PAINT_SERVER)) -#define SP_IS_PAINT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_PAINT_SERVER)) +#define SP_PAINT_SERVER(obj) ((SPPaintServer*)obj) +#define SP_IS_PAINT_SERVER(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPPaintServer))) GType sp_paint_server_get_type(void) G_GNUC_CONST; diff --git a/src/sp-path.h b/src/sp-path.h index 27d5b739d..21e830d4c 100644 --- a/src/sp-path.h +++ b/src/sp-path.h @@ -23,8 +23,8 @@ class SPCurve; class CPath; #define SP_TYPE_PATH (sp_path_get_type ()) -#define SP_PATH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_PATH, SPPath)) -#define SP_IS_PATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_PATH)) +#define SP_PATH(obj) ((SPPath*)obj) +#define SP_IS_PATH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPPath))) /** * SVG <path> implementation diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 782b24940..5a35db4d2 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -17,14 +17,12 @@ #include "sp-item.h" #define SP_TYPE_PATTERN (sp_pattern_get_type ()) -#define SP_PATTERN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_PATTERN, SPPattern)) -#define SP_PATTERN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_PATTERN, SPPatternClass)) -#define SP_IS_PATTERN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_PATTERN)) -#define SP_IS_PATTERN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_PATTERN)) +#define SP_PATTERN(obj) ((SPPattern*)obj) +#define SP_IS_PATTERN(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPPattern))) GType sp_pattern_get_type (void); -struct SPPattern; +struct SPPatternReference; #include "svg/svg-length.h" #include "sp-paint-server.h" @@ -34,24 +32,6 @@ struct SPPattern; #include <sigc++/connection.h> -class SPPatternReference : public Inkscape::URIReference { -public: - SPPatternReference (SPObject *obj) : URIReference(obj) {} - SPPattern *getObject() const { - return reinterpret_cast<SPPattern *>(URIReference::getObject()); - } - -protected: - virtual bool _acceptObject(SPObject *obj) const { - return SP_IS_PATTERN (obj); - } -}; - -enum { - SP_PATTERN_UNITS_USERSPACEONUSE, - SP_PATTERN_UNITS_OBJECTBOUNDINGBOX -}; - class CPattern; class SPPattern : public SPPaintServer { @@ -104,6 +84,24 @@ protected: }; +class SPPatternReference : public Inkscape::URIReference { +public: + SPPatternReference (SPObject *obj) : URIReference(obj) {} + SPPattern *getObject() const { + return reinterpret_cast<SPPattern *>(URIReference::getObject()); + } + +protected: + virtual bool _acceptObject(SPObject *obj) const { + return SP_IS_PATTERN (obj); + } +}; + +enum { + SP_PATTERN_UNITS_USERSPACEONUSE, + SP_PATTERN_UNITS_OBJECTBOUNDINGBOX +}; + guint pattern_users (SPPattern *pattern); SPPattern *pattern_chain (SPPattern *pattern); SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property); diff --git a/src/sp-polygon.h b/src/sp-polygon.h index 68ba35293..2d82c7014 100644 --- a/src/sp-polygon.h +++ b/src/sp-polygon.h @@ -16,10 +16,8 @@ #include "sp-shape.h" #define SP_TYPE_POLYGON (sp_polygon_get_type ()) -#define SP_POLYGON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_POLYGON, SPPolygon)) -#define SP_POLYGON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_POLYGON, SPPolygonClass)) -#define SP_IS_POLYGON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_POLYGON)) -#define SP_IS_POLYGON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_POLYGON)) +#define SP_POLYGON(obj) ((SPPolygon*)obj) +#define SP_IS_POLYGON(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPPolygon))) class CPolygon; diff --git a/src/sp-polyline.h b/src/sp-polyline.h index 306b1db1a..acba1bb8b 100644 --- a/src/sp-polyline.h +++ b/src/sp-polyline.h @@ -6,10 +6,8 @@ #define SP_TYPE_POLYLINE (sp_polyline_get_type ()) -#define SP_POLYLINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_POLYLINE, SPPolyLine)) -#define SP_POLYLINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_POLYLINE, SPPolyLineClass)) -#define SP_IS_POLYLINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_POLYLINE)) -#define SP_IS_POLYLINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_POLYLINE)) +#define SP_POLYLINE(obj) ((SPPolyLine*)obj) +#define SP_IS_POLYLINE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPPolyLine))) class SPPolyLine; class SPPolyLineClass; diff --git a/src/sp-rect.h b/src/sp-rect.h index e8f1e87a8..0bea4e253 100644 --- a/src/sp-rect.h +++ b/src/sp-rect.h @@ -21,10 +21,8 @@ G_BEGIN_DECLS #define SP_TYPE_RECT (sp_rect_get_type ()) -#define SP_RECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_RECT, SPRect)) -#define SP_RECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_RECT, SPRectClass)) -#define SP_IS_RECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_RECT)) -#define SP_IS_RECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_RECT)) +#define SP_RECT(obj) ((SPRect*)obj) +#define SP_IS_RECT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPRect))) class CRect; diff --git a/src/sp-root.h b/src/sp-root.h index 9e5002b35..56814ef2c 100644 --- a/src/sp-root.h +++ b/src/sp-root.h @@ -20,10 +20,8 @@ #include "sp-item-group.h" #define SP_TYPE_ROOT (sp_root_get_type()) -#define SP_ROOT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_ROOT, SPRoot)) -#define SP_ROOT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_ROOT, SPRootClass)) -#define SP_IS_ROOT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_ROOT)) -#define SP_IS_ROOT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_ROOT)) +#define SP_ROOT(obj) ((SPRoot*)obj) +#define SP_IS_ROOT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPRoot))) class SPDefs; class CRoot; diff --git a/src/sp-script.h b/src/sp-script.h index a8ec05db7..b62ae22fc 100644 --- a/src/sp-script.h +++ b/src/sp-script.h @@ -15,10 +15,8 @@ #include "sp-item.h" #define SP_TYPE_SCRIPT (sp_script_get_type()) -#define SP_SCRIPT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_SCRIPT, SPScript)) -#define SP_SCRIPT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_SCRIPT, SPScriptClass)) -#define SP_IS_SCRIPT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_SCRIPT)) -#define SP_IS_SCRIPT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_SCRIPT)) +#define SP_SCRIPT(obj) ((SPScript*)obj) +#define SP_IS_SCRIPT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPScript))) /* SPScript */ diff --git a/src/sp-shape.h b/src/sp-shape.h index 85ac89a00..e0be6cbea 100644 --- a/src/sp-shape.h +++ b/src/sp-shape.h @@ -23,10 +23,8 @@ #include <sigc++/connection.h> #define SP_TYPE_SHAPE (sp_shape_get_type ()) -#define SP_SHAPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_SHAPE, SPShape)) -#define SP_SHAPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_SHAPE, SPShapeClass)) -#define SP_IS_SHAPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_SHAPE)) -#define SP_IS_SHAPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_SHAPE)) +#define SP_SHAPE(obj) ((SPShape*)obj) +#define SP_IS_SHAPE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPShape))) #define SP_SHAPE_WRITE_PATH (1 << 2) diff --git a/src/sp-spiral.h b/src/sp-spiral.h index 5c62139e3..0ef82defc 100644 --- a/src/sp-spiral.h +++ b/src/sp-spiral.h @@ -24,10 +24,8 @@ #define SAMPLE_SIZE 8 ///< sample size per one bezier #define SP_TYPE_SPIRAL (sp_spiral_get_type ()) -#define SP_SPIRAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_SPIRAL, SPSpiral)) -#define SP_SPIRAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_SPIRAL, SPSpiralClass)) -#define SP_IS_SPIRAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_SPIRAL)) -#define SP_IS_SPIRAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_SPIRAL)) +#define SP_SPIRAL(obj) ((SPSpiral*)obj) +#define SP_IS_SPIRAL(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPSpiral))) class CSpiral; /** diff --git a/src/sp-star.h b/src/sp-star.h index 60de2a6aa..43ba217ef 100644 --- a/src/sp-star.h +++ b/src/sp-star.h @@ -17,10 +17,8 @@ #include "sp-polygon.h" #define SP_TYPE_STAR (sp_star_get_type ()) -#define SP_STAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_STAR, SPStar)) -#define SP_STAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_STAR, SPStarClass)) -#define SP_IS_STAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_STAR)) -#define SP_IS_STAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_STAR)) +#define SP_STAR(obj) ((SPStar*)obj) +#define SP_IS_STAR(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPStar))) class CStar; typedef enum { diff --git a/src/sp-stop.h b/src/sp-stop.h index 55786bfd7..2dcf04d6c 100644 --- a/src/sp-stop.h +++ b/src/sp-stop.h @@ -17,10 +17,8 @@ class ustring; } #define SP_TYPE_STOP (sp_stop_get_type()) -#define SP_STOP(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_STOP, SPStop)) -#define SP_STOP_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_STOP, SPStopClass)) -#define SP_IS_STOP(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_STOP)) -#define SP_IS_STOP_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_STOP)) +#define SP_STOP(obj) ((SPStop*)obj) +#define SP_IS_STOP(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPStop))) GType sp_stop_get_type(); diff --git a/src/sp-string.h b/src/sp-string.h index 790964214..9e12f8429 100644 --- a/src/sp-string.h +++ b/src/sp-string.h @@ -11,10 +11,8 @@ #include "sp-object.h" #define SP_TYPE_STRING (sp_string_get_type ()) -#define SP_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_STRING, SPString)) -#define SP_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_STRING, SPStringClass)) -#define SP_IS_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_STRING)) -#define SP_IS_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_STRING)) +#define SP_STRING(obj) ((SPString*)obj) +#define SP_IS_STRING(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPString))) class CString; diff --git a/src/sp-style-elem.h b/src/sp-style-elem.h index 6e3fc3cce..46ae73f7d 100644 --- a/src/sp-style-elem.h +++ b/src/sp-style-elem.h @@ -5,10 +5,8 @@ #include "media.h" #define SP_TYPE_STYLE_ELEM (sp_style_elem_get_type()) -#define SP_STYLE_ELEM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_STYLE_ELEM, SPStyleElem)) -#define SP_STYLE_ELEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_STYLE_ELEM, SPStyleElemClass)) -#define SP_IS_STYLE_ELEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_STYLE_ELEM)) -#define SP_IS_STYLE_ELEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_STYLE_ELEM)) +#define SP_STYLE_ELEM(obj) ((SPStyleElem*)obj) +#define SP_IS_STYLE_ELEM(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPStyleElem))) class CStyleElem; diff --git a/src/sp-switch.h b/src/sp-switch.h index aae8a8a14..391815959 100644 --- a/src/sp-switch.h +++ b/src/sp-switch.h @@ -20,10 +20,8 @@ G_BEGIN_DECLS #define SP_TYPE_SWITCH (sp_switch_get_type()) -#define SP_SWITCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_SWITCH, SPSwitch)) -#define SP_SWITCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_SWITCH, SPSwitchClass)) -#define SP_IS_SWITCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_SWITCH)) -#define SP_IS_SWITCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_SWITCH)) +#define SP_SWITCH(obj) ((SPSwitch*)obj) +#define SP_IS_SWITCH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPSwitch))) GType sp_switch_get_type() G_GNUC_CONST; class CSwitch; diff --git a/src/sp-symbol.h b/src/sp-symbol.h index 0c2ecae36..1ced63c52 100644 --- a/src/sp-symbol.h +++ b/src/sp-symbol.h @@ -18,8 +18,8 @@ */ #define SP_TYPE_SYMBOL (sp_symbol_get_type ()) -#define SP_SYMBOL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_SYMBOL, SPSymbol)) -#define SP_IS_SYMBOL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_SYMBOL)) +#define SP_SYMBOL(obj) ((SPSymbol*)obj) +#define SP_IS_SYMBOL(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPSymbol))) class CSymbol; diff --git a/src/sp-text.h b/src/sp-text.h index 7e2cffd18..51d248e1a 100644 --- a/src/sp-text.h +++ b/src/sp-text.h @@ -23,10 +23,8 @@ #define SP_TYPE_TEXT (sp_text_get_type()) -#define SP_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_TEXT, SPText)) -#define SP_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_TEXT, SPTextClass)) -#define SP_IS_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_TEXT)) -#define SP_IS_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_TEXT)) +#define SP_TEXT(obj) ((SPText*)obj) +#define SP_IS_TEXT(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPText))) /* Text specific flags */ #define SP_TEXT_CONTENT_MODIFIED_FLAG SP_OBJECT_USER_MODIFIED_FLAG_A diff --git a/src/sp-textpath.h b/src/sp-textpath.h index 18fc645d5..52b18a735 100644 --- a/src/sp-textpath.h +++ b/src/sp-textpath.h @@ -10,10 +10,8 @@ class Path; #define SP_TYPE_TEXTPATH (sp_textpath_get_type()) -#define SP_TEXTPATH(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_TEXTPATH, SPTextPath)) -#define SP_TEXTPATH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_TEXTPATH, SPTextPathClass)) -#define SP_IS_TEXTPATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_TEXTPATH)) -#define SP_IS_TEXTPATH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_TEXTPATH)) +#define SP_TEXTPATH(obj) ((SPTextPath*)obj) +#define SP_IS_TEXTPATH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPTextPath))) class CTextPath; diff --git a/src/sp-title.h b/src/sp-title.h index 17559c488..f276ab177 100644 --- a/src/sp-title.h +++ b/src/sp-title.h @@ -15,7 +15,8 @@ #include "sp-object.h" #define SP_TYPE_TITLE (sp_title_get_type ()) -#define SP_IS_TITLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_TITLE)) +#define SP_TITLE(obj) ((SPTitle*)obj) +#define SP_IS_TITLE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPTitle))) class CTitle; diff --git a/src/sp-tref.h b/src/sp-tref.h index 17ec2f591..e953a95be 100644 --- a/src/sp-tref.h +++ b/src/sp-tref.h @@ -23,10 +23,8 @@ /* tref base class */ #define SP_TYPE_TREF (sp_tref_get_type()) -#define SP_TREF(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_TREF, SPTRef)) -#define SP_TREF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_TREF, SPTSpanClass)) -#define SP_IS_TREF(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_TREF)) -#define SP_IS_TREF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_TREF)) +#define SP_TREF(obj) ((SPTRef*)obj) +#define SP_IS_TREF(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPTRef))) class CTRef; diff --git a/src/sp-tspan.h b/src/sp-tspan.h index ed4bc4506..e9dd25569 100644 --- a/src/sp-tspan.h +++ b/src/sp-tspan.h @@ -12,10 +12,8 @@ G_BEGIN_DECLS #define SP_TYPE_TSPAN (sp_tspan_get_type()) -#define SP_TSPAN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_TSPAN, SPTSpan)) -#define SP_TSPAN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), SP_TYPE_TSPAN, SPTSpanClass)) -#define SP_IS_TSPAN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_TSPAN)) -#define SP_IS_TSPAN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SP_TYPE_TSPAN)) +#define SP_TSPAN(obj) ((SPTSpan*)obj) +#define SP_IS_TSPAN(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPTSpan))) enum { SP_TSPAN_ROLE_UNSPECIFIED, diff --git a/src/sp-use.h b/src/sp-use.h index 4107f45af..171b4787a 100644 --- a/src/sp-use.h +++ b/src/sp-use.h @@ -20,10 +20,8 @@ #define SP_TYPE_USE (sp_use_get_type ()) -#define SP_USE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_USE, SPUse)) -#define SP_USE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_USE, SPUseClass)) -#define SP_IS_USE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_USE)) -#define SP_IS_USE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_USE)) +#define SP_USE(obj) ((SPUse*)obj) +#define SP_IS_USE(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPUse))) class SPUseReference; class CUse; diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index ea125a380..291e19016 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -91,7 +91,8 @@ void gr_apply_gradient_to_item( SPItem *item, SPGradient *gr, SPGradientType ini bool isFill = (mode == Inkscape::FOR_FILL); if (style && (isFill ? style->fill.isPaintserver() : style->stroke.isPaintserver()) - && SP_IS_GRADIENT(isFill ? style->getFillPaintServer() : style->getStrokePaintServer()) ) { + //&& SP_IS_GRADIENT(isFill ? style->getFillPaintServer() : style->getStrokePaintServer()) ) { + && (isFill ? SP_IS_GRADIENT(style->getFillPaintServer()) : SP_IS_GRADIENT(style->getStrokePaintServer())) ) { SPPaintServer *server = isFill ? style->getFillPaintServer() : style->getStrokePaintServer(); if ( SP_IS_LINEARGRADIENT(server) ) { sp_item_set_gradient(item, gr, SP_GRADIENT_TYPE_LINEAR, mode); |
