diff --git a/src/sp-object.h b/src/sp-object.h
index 5d22e33e4290c41dbb38256c9121d1616c024ced..59cab2328252d99cebe84bf2b760a5620f6360fd 100644 (file)
--- a/src/sp-object.h
+++ b/src/sp-object.h
#define SP_OBJECT_WRITE_ALL (1 << 2)
/* Convenience stuff */
-#define SP_OBJECT_ID(o) (((SPObject *) (o))->id)
+#define SP_OBJECT_ID(o) (((SPObject *) (o))->getId())
#define SP_OBJECT_REPR(o) (((SPObject *) (o))->repr)
#define SP_OBJECT_DOCUMENT(o) (((SPObject *) (o))->document)
#define SP_OBJECT_PARENT(o) (((SPObject *) (o))->parent)
namespace Inkscape {
namespace XML {
class Node;
+class Document;
}
}
SPObject *_last_child; /* Remembered last child */
SPObject *next; /* Next object in linked list */
Inkscape::XML::Node *repr; /* Our xml representation */
+
+private:
gchar *id; /* Our very own unique id */
+public:
+
+ /**
+ * Returns the objects current ID string.
+ */
+ gchar const* getId() const;
/** @brief cleans up an SPObject, releasing its references and
* requesting that references to it be released
/* A non-const version can be similarly constructed if you want one.
* (Don't just cast away the constness, which would be ill-formed.) */
+ SPObject *getNext();
+ SPObject *getPrev();
+
bool hasChildren() const { return ( children != NULL ); }
SPObject *firstChild() { return children; }
/** Retrieves the title of this object */
gchar *title() const;
/** Sets the title of this object */
- void setTitle(gchar const *title);
+ bool setTitle(gchar const *title, bool verbatim=false);
/** Retrieves the description of this object */
gchar *desc() const;
/** Sets the description of this object */
- void setDesc(gchar const *desc);
+ bool setDesc(gchar const *desc, bool verbatim=false);
/** @brief Set the policy under which this object will be
* orphan-collected.
/** @brief Updates the object's repr based on the object's state.
*
* This method updates the the repr attached to the object to reflect the object's current
- * state; see the two-argument version for details.
+ * state; see the three-argument version for details.
*
* @param flags object write flags that apply to this update
*
*
* @return the updated repr
*/
- Inkscape::XML::Node *updateRepr(Inkscape::XML::Node *repr, unsigned int flags);
+ Inkscape::XML::Node *updateRepr(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags);
/** @brief Queues an deferred update of this object's display.
*
private:
// Private member functions used in the definitions of setTitle(),
// setDesc(), title() and desc().
- void setTitleOrDesc(gchar const *value, gchar const *svg_tagname);
+ bool setTitleOrDesc(gchar const *value, gchar const *svg_tagname, bool verbatim);
gchar * getTitleOrDesc(gchar const *svg_tagname) const;
SPObject * findFirstChild(gchar const *tagname) const;
GString * textualContent() const;
+
+ friend class SPObjectImpl;
};
/// The SPObject vtable.
/* Modification handler */
void (* modified) (SPObject *object, unsigned int flags);
- Inkscape::XML::Node * (* write) (SPObject *object, Inkscape::XML::Node *repr, unsigned int flags);
+ Inkscape::XML::Node * (* write) (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags);
};
@@ -553,8 +567,6 @@ void sp_object_removeAttribute(SPObject *object, gchar const *key, SPException *
gchar const *sp_object_get_style_property(SPObject const *object,
gchar const *key, gchar const *def);
-Inkscape::Version sp_object_get_sodipodi_version(SPObject *object);
-
int sp_object_compare_position(SPObject const *first, SPObject const *second);
SPObject *sp_object_prev(SPObject *child);
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :