From 62fbbefccbe10ec11e727735e6bfe890003b0af2 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 21 Aug 2012 02:54:06 +0200 Subject: Added "virtual pad" to - SPPaintServer - SPPattern - SPGradient - SPStop - SPLinearGradient - SPMeshGradient - SPMeshPatch - SPMeshRow - SPRadialGradient As all subclasses of SPPaintServer now have "virtual pads" with correct inheritance, the virtual function call to "onCreatePattern" was converted to C++ style. (bzr r11608.1.35) --- src/sp-pattern.h | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index debce86fb..329192c4b 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -53,7 +53,12 @@ enum { SP_PATTERN_UNITS_OBJECTBOUNDINGBOX }; -struct SPPattern : public SPPaintServer { +class CPattern; + +class SPPattern : public SPPaintServer { +public: + CPattern* cpattern; + /* Reference (href) */ gchar *href; SPPatternReference *ref; @@ -82,6 +87,24 @@ struct SPPatternClass { SPPaintServerClass parent_class; }; + +class CPattern : public CPaintServer { +public: + CPattern(SPPattern* pattern); + virtual ~CPattern(); + + virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr); + virtual void onRelease(); + virtual void onSet(unsigned int key, const gchar* value); + virtual void onUpdate(SPCtx* ctx, unsigned int flags); + virtual void onModified(unsigned int flags); + virtual cairo_pattern_t* onCreatePattern(cairo_t *ct, Geom::OptRect const &bbox, double opacity); + +protected: + SPPattern* sppattern; +}; + + guint pattern_users (SPPattern *pattern); SPPattern *pattern_chain (SPPattern *pattern); SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property); -- cgit v1.2.3 From 7df6616da5ea2debb86838366ddf746841549cdb Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 30 Mar 2013 00:56:13 +0100 Subject: Renamed virtual function names. (bzr r11608.1.57) --- src/sp-pattern.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 6f341bd93..782b24940 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -92,12 +92,12 @@ public: CPattern(SPPattern* pattern); virtual ~CPattern(); - virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void onRelease(); - virtual void onSet(unsigned int key, const gchar* value); - virtual void onUpdate(SPCtx* ctx, unsigned int flags); - virtual void onModified(unsigned int flags); - virtual cairo_pattern_t* onCreatePattern(cairo_t *ct, Geom::OptRect const &bbox, double opacity); + virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); + virtual void release(); + virtual void set(unsigned int key, const gchar* value); + virtual void update(SPCtx* ctx, unsigned int flags); + virtual void modified(unsigned int flags); + virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); protected: SPPattern* sppattern; -- cgit v1.2.3 From 25078fc60b120e877a7b79bc6f08fe2a0f45c3d7 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Mon, 1 Apr 2013 02:14:53 +0200 Subject: Replaced all casting macros with glib-independent ones. (bzr r11608.1.64) --- src/sp-pattern.h | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'src/sp-pattern.h') 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(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 -class SPPatternReference : public Inkscape::URIReference { -public: - SPPatternReference (SPObject *obj) : URIReference(obj) {} - SPPattern *getObject() const { - return reinterpret_cast(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(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); -- cgit v1.2.3 From 69f3b6f1abb2bb422935d43262e1e99aab359954 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 2 Apr 2013 01:41:30 +0200 Subject: Added constructors to SP classes. (bzr r11608.1.67) --- src/sp-pattern.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 5a35db4d2..7c56184fb 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -36,6 +36,7 @@ class CPattern; class SPPattern : public SPPaintServer { public: + SPPattern(); CPattern* cpattern; /* Reference (href) */ -- cgit v1.2.3 From b0cc47554b385fb68643d07efe6e42366c7121ad Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 6 Apr 2013 01:36:16 +0200 Subject: Merged PaintServer and subclasses; moved Gradient classes to own files. (bzr r11608.1.82) --- src/sp-pattern.h | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 7c56184fb..a2cef6068 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -16,11 +16,9 @@ #include #include "sp-item.h" -#define SP_TYPE_PATTERN (sp_pattern_get_type ()) -#define SP_PATTERN(obj) ((SPPattern*)obj) -#define SP_IS_PATTERN(obj) (obj != NULL && static_cast(obj)->typeHierarchy.count(typeid(SPPattern))) -GType sp_pattern_get_type (void); +#define SP_PATTERN(obj) ((SPPattern*)obj) +#define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj)) struct SPPatternReference; @@ -32,12 +30,10 @@ struct SPPatternReference; #include -class CPattern; - class SPPattern : public SPPaintServer { public: SPPattern(); - CPattern* cpattern; + virtual ~SPPattern(); /* Reference (href) */ gchar *href; @@ -61,17 +57,6 @@ public: guint viewBox_set : 1; sigc::connection modified_connection; -}; - -struct SPPatternClass { - SPPaintServerClass parent_class; -}; - - -class CPattern : public CPaintServer { -public: - CPattern(SPPattern* pattern); - virtual ~CPattern(); virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); @@ -79,9 +64,6 @@ public: virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); - -protected: - SPPattern* sppattern; }; -- cgit v1.2.3 From beecbea1b415d5b9536f2309c4f30fc258e346f5 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Wed, 31 Jul 2013 22:51:23 +0200 Subject: Cleaned up a bit; fixed struct vs. class forward declarations. (bzr r11608.1.111) --- src/sp-pattern.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index a2cef6068..78bd1549a 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -20,7 +20,7 @@ #define SP_PATTERN(obj) ((SPPattern*)obj) #define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj)) -struct SPPatternReference; +class SPPatternReference; #include "svg/svg-length.h" #include "sp-paint-server.h" -- cgit v1.2.3 From bf4a1d2d49850170b936c30cfe2b30e798716406 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 3 Aug 2013 03:03:43 +0200 Subject: Cleaned up. (bzr r11608.1.117) --- src/sp-pattern.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 78bd1549a..3e33528f8 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -58,12 +58,14 @@ public: sigc::connection modified_connection; + virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); + +protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); virtual void set(unsigned int key, const gchar* value); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); }; -- cgit v1.2.3 From bb4246887ab6a0833cc4d2263b31f951ce314061 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 14 Sep 2013 22:43:15 +0200 Subject: Modified SP_IS_ macros. (bzr r11608.1.122) --- src/sp-pattern.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 3e33528f8..c7a2a96c3 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -18,7 +18,7 @@ #include "sp-item.h" #define SP_PATTERN(obj) ((SPPattern*)obj) -#define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj)) +#define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj) != NULL) class SPPatternReference; -- cgit v1.2.3 From 5cf6efefbfd06d723973b6517b442f0ee64416b7 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 15 Sep 2013 02:43:49 +0200 Subject: Added runtime check in SP_-cast macros. (bzr r11608.1.123) --- src/sp-pattern.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-pattern.h') diff --git a/src/sp-pattern.h b/src/sp-pattern.h index c7a2a96c3..4e3657ccf 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -17,7 +17,7 @@ #include "sp-item.h" -#define SP_PATTERN(obj) ((SPPattern*)obj) +#define SP_PATTERN(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj) != NULL) class SPPatternReference; -- cgit v1.2.3