summaryrefslogtreecommitdiffstats
path: root/src/sp-string.cpp
diff options
context:
space:
mode:
authorMartin Owens <doctormo@gmail.com>2014-03-27 01:33:44 +0000
committerMartin Owens <doctormo@gmail.com>2014-03-27 01:33:44 +0000
commit5a4fb2325f60d292b47330f540b26a3279341c90 (patch)
treed2aa7967be25450b83e625025366c618101ae49f /src/sp-string.cpp
parentThe Polar Arrange Tab of the Arrange Dialog now hides the parametric (diff)
parentRemove Snap menu item and improve grid menu item text (diff)
downloadinkscape-5a4fb2325f60d292b47330f540b26a3279341c90.tar.gz
inkscape-5a4fb2325f60d292b47330f540b26a3279341c90.zip
Commit a merge to trunk, with probabal errors
(bzr r11073.1.36)
Diffstat (limited to 'src/sp-string.cpp')
-rw-r--r--src/sp-string.cpp102
1 files changed, 27 insertions, 75 deletions
diff --git a/src/sp-string.cpp b/src/sp-string.cpp
index 3512aa45a..08755a5fc 100644
--- a/src/sp-string.cpp
+++ b/src/sp-string.cpp
@@ -32,87 +32,42 @@
#include "sp-string.h"
#include "xml/repr.h"
+#include "sp-factory.h"
-/*#####################################################
-# SPSTRING
-#####################################################*/
-
-static void sp_string_class_init(SPStringClass *classname);
-static void sp_string_init(SPString *string);
-
-static void sp_string_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
-static void sp_string_release(SPObject *object);
-static void sp_string_read_content(SPObject *object);
-static void sp_string_update(SPObject *object, SPCtx *ctx, unsigned flags);
-
-static SPObjectClass *string_parent_class;
-
-GType
-sp_string_get_type()
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPStringClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_string_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(SPString),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_string_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_OBJECT, "SPString", &info, (GTypeFlags)0);
+namespace {
+ SPObject* createString() {
+ return new SPString();
}
- return type;
-}
-
-static void
-sp_string_class_init(SPStringClass *classname)
-{
- SPObjectClass *sp_object_class;
- sp_object_class = (SPObjectClass *) classname;
+ bool stringRegistered = SPFactory::instance().registerObject("string", createString);
+}
- string_parent_class = (SPObjectClass*)g_type_class_ref(SP_TYPE_OBJECT);
+/*#####################################################
+# SPSTRING
+#####################################################*/
- sp_object_class->build = sp_string_build;
- sp_object_class->release = sp_string_release;
- sp_object_class->read_content = sp_string_read_content;
- sp_object_class->update = sp_string_update;
+SPString::SPString() : SPObject() {
+ //new (&this->string) Glib::ustring();
}
-static void
-sp_string_init(SPString *string)
-{
- new (&string->string) Glib::ustring();
+SPString::~SPString() {
}
-static void
-sp_string_build(SPObject *object, SPDocument *doc, Inkscape::XML::Node *repr)
-{
- sp_string_read_content(object);
+void SPString::build(SPDocument *doc, Inkscape::XML::Node *repr) {
+ SPString* object = this;
+ object->read_content();
- if (((SPObjectClass *) string_parent_class)->build)
- ((SPObjectClass *) string_parent_class)->build(object, doc, repr);
+ SPObject::build(doc, repr);
}
-static void
-sp_string_release(SPObject *object)
-{
- SPString *string = SP_STRING(object);
+void SPString::release() {
+ SPObject::release();
+}
- string->string.~ustring();
- if (((SPObjectClass *) string_parent_class)->release)
- ((SPObjectClass *) string_parent_class)->release(object);
-}
+void SPString::read_content() {
+ SPString* object = this;
-static void
-sp_string_read_content(SPObject *object)
-{
SPString *string = SP_STRING(object);
string->string.clear();
@@ -153,16 +108,13 @@ sp_string_read_content(SPObject *object)
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
}
-static void
-sp_string_update(SPObject *object, SPCtx *ctx, unsigned flags)
-{
- if (((SPObjectClass *) string_parent_class)->update)
- ((SPObjectClass *) string_parent_class)->update(object, ctx, flags);
+void SPString::update(SPCtx * /*ctx*/, unsigned /*flags*/) {
+// SPObject::onUpdate(ctx, flags);
- if (flags & (SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_MODIFIED_FLAG)) {
- /* Parent style or we ourselves changed, so recalculate */
- flags &= ~SP_OBJECT_USER_MODIFIED_FLAG_B; // won't be "just a transformation" anymore, we're going to recompute "x" and "y" attributes
- }
+ // if (flags & (SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_MODIFIED_FLAG)) {
+ // /* Parent style or we ourselves changed, so recalculate */
+ // flags &= ~SP_OBJECT_USER_MODIFIED_FLAG_B; // won't be "just a transformation" anymore, we're going to recompute "x" and "y" attributes
+ // }
}