summaryrefslogtreecommitdiffstats
path: root/src/sp-item.h
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2012-08-17 23:36:49 +0000
committerMarkus Engel <markus.engel@tum.de>2012-08-17 23:36:49 +0000
commit07eac1237fe242e6680bd0d76552771ff852fef7 (patch)
tree5eff84cc7b8a7f85cdf6d55b0ded6f32c6a50c83 /src/sp-item.h
parentAdded "virtual pad" to SPObject. (diff)
downloadinkscape-07eac1237fe242e6680bd0d76552771ff852fef7.tar.gz
inkscape-07eac1237fe242e6680bd0d76552771ff852fef7.zip
Added "virtual pad" to SPItem.
(bzr r11608.1.2)
Diffstat (limited to 'src/sp-item.h')
-rw-r--r--src/sp-item.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/sp-item.h b/src/sp-item.h
index 2c7bd5a5d..69300e093 100644
--- a/src/sp-item.h
+++ b/src/sp-item.h
@@ -100,6 +100,7 @@ public:
class SPItem;
class SPItemClass;
+class CItem;
#define SP_TYPE_ITEM (SPItem::getType ())
#define SP_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_ITEM, SPItem))
@@ -120,6 +121,8 @@ public:
VISUAL_BBOX
};
+ CItem* citem;
+
unsigned int sensitive : 1;
unsigned int stop_paint: 1;
mutable unsigned bbox_valid : 1;
@@ -244,6 +247,7 @@ private:
static void mask_ref_changed(SPObject *old_clip, SPObject *clip, SPItem *item);
friend class SPItemClass;
+ friend class CItem;
};
/// The SPItem vtable.
@@ -283,8 +287,36 @@ public:
static void sp_item_class_init(SPItemClass *klass);
friend class SPItem;
+ friend class CItem;
+};
+
+
+class CItem : public CObject {
+public:
+ CItem(SPItem* item);
+ virtual ~CItem();
+
+ virtual void onBuild(SPDocument *document, Inkscape::XML::Node *repr);
+ virtual void onRelease();
+ virtual void onSet(unsigned int key, gchar const* value);
+ virtual void onUpdate(SPCtx *ctx, guint flags);
+ virtual Inkscape::XML::Node* onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags);
+
+ virtual Geom::OptRect onBbox(Geom::Affine const &transform, SPItem::BBoxType type);
+ virtual void onPrint(SPPrintContext *ctx);
+ virtual gchar* onDescription();
+ virtual Inkscape::DrawingItem* onShow(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags);
+ virtual void onHide(unsigned int key);
+ virtual void onSnappoints(std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs);
+ virtual Geom::Affine onSetTransform(Geom::Affine const &transform);
+ virtual void onConvertToGuides();
+ virtual gint onEvent(SPEvent *event);
+
+protected:
+ SPItem* spitem;
};
+
// Utility
Geom::Affine i2anc_affine(SPObject const *item, SPObject const *ancestor);