summaryrefslogtreecommitdiffstats
path: root/src/sp-guide.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-03-29 23:52:42 +0000
committerMarkus Engel <markus.engel@tum.de>2013-03-29 23:52:42 +0000
commita168040d5a452544328a1e6ad35aaac351f94d44 (patch)
treefae1ba829f543a473da281bd5fa6e4deabbf6912 /src/sp-guide.cpp
parentRemoved function pointers from SPObject and subclasses. (diff)
parentDutch translation update (diff)
downloadinkscape-a168040d5a452544328a1e6ad35aaac351f94d44.tar.gz
inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.zip
merged from trunk
(bzr r11608.1.56)
Diffstat (limited to 'src/sp-guide.cpp')
-rw-r--r--src/sp-guide.cpp166
1 files changed, 7 insertions, 159 deletions
diff --git a/src/sp-guide.cpp b/src/sp-guide.cpp
index 7b05e04b3..a7900909c 100644
--- a/src/sp-guide.cpp
+++ b/src/sp-guide.cpp
@@ -53,52 +53,18 @@ enum {
PROP_HICOLOR
};
-static void sp_guide_class_init(SPGuideClass *gc);
-static void sp_guide_init(SPGuide *guide);
static void sp_guide_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void sp_guide_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
-static void sp_guide_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
-static void sp_guide_release(SPObject *object);
-static void sp_guide_set(SPObject *object, unsigned int key, const gchar *value);
-
-static SPObjectClass *parent_class;
-
-GType sp_guide_get_type(void)
-{
- static GType guide_type = 0;
-
- if (!guide_type) {
- GTypeInfo guide_info = {
- sizeof(SPGuideClass),
- NULL, NULL,
- (GClassInitFunc) sp_guide_class_init,
- NULL, NULL,
- sizeof(SPGuide),
- 16,
- (GInstanceInitFunc) sp_guide_init,
- NULL, /* value_table */
- };
- guide_type = g_type_register_static(SP_TYPE_OBJECT, "SPGuide", &guide_info, (GTypeFlags) 0);
- }
-
- return guide_type;
-}
+G_DEFINE_TYPE(SPGuide, sp_guide, SP_TYPE_OBJECT);
static void sp_guide_class_init(SPGuideClass *gc)
{
GObjectClass *gobject_class = (GObjectClass *) gc;
- SPObjectClass *sp_object_class = (SPObjectClass *) gc;
-
- parent_class = (SPObjectClass*) g_type_class_ref(SP_TYPE_OBJECT);
gobject_class->set_property = sp_guide_set_property;
gobject_class->get_property = sp_guide_get_property;
- //sp_object_class->build = sp_guide_build;
-// sp_object_class->release = sp_guide_release;
-// sp_object_class->set = sp_guide_set;
-
g_object_class_install_property(gobject_class,
PROP_COLOR,
g_param_spec_uint("color", "Color", "Color",
@@ -126,6 +92,8 @@ CGuide::~CGuide() {
static void sp_guide_init(SPGuide *guide)
{
guide->cguide = new CGuide(guide);
+
+ delete guide->cobject;
guide->cobject = guide->cguide;
guide->normal_to_line = Geom::Point(0.,1.);
@@ -166,21 +134,6 @@ static void sp_guide_get_property(GObject *object, guint prop_id, GValue *value,
}
}
-//static void sp_guide_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
-//{
-// if (((SPObjectClass *) (parent_class))->build) {
-// (* ((SPObjectClass *) (parent_class))->build)(object, document, repr);
-// }
-//
-// object->readAttr( "inkscape:label" );
-// object->readAttr( "orientation" );
-// object->readAttr( "position" );
-//
-// /* Register */
-// document->addResource("guide", object);
-// ((SPGuide*)object)->cguide->onBuild(document, repr);
-//}
-
void CGuide::onBuild(SPDocument *document, Inkscape::XML::Node *repr) {
CObject::onBuild(document, repr);
@@ -194,26 +147,6 @@ void CGuide::onBuild(SPDocument *document, Inkscape::XML::Node *repr) {
document->addResource("guide", object);
}
-static void sp_guide_release(SPObject *object)
-{
-// SPGuide *guide = (SPGuide *) object;
-//
-// while (guide->views) {
-// sp_guideline_delete(SP_GUIDELINE(guide->views->data));
-// guide->views = g_slist_remove(guide->views, guide->views->data);
-// }
-//
-// if (object->document) {
-// // Unregister ourselves
-// object->document->removeResource("guide", object);
-// }
-//
-// if (((SPObjectClass *) parent_class)->release) {
-// ((SPObjectClass *) parent_class)->release(object);
-// }
- ((SPGuide*)object)->cguide->onRelease();
-}
-
void CGuide::onRelease() {
SPGuide* object = this->spguide;
SPGuide *guide = (SPGuide *) object;
@@ -228,91 +161,9 @@ void CGuide::onRelease() {
object->document->removeResource("guide", object);
}
-// if (((SPObjectClass *) parent_class)->release) {
-// ((SPObjectClass *) parent_class)->release(object);
-// }
CObject::onRelease();
}
-static void sp_guide_set(SPObject *object, unsigned int key, const gchar *value)
-{
-// SPGuide *guide = SP_GUIDE(object);
-//
-// switch (key) {
-// case SP_ATTR_INKSCAPE_LABEL:
-// if (value) {
-// guide->label = g_strdup(value);
-// } else {
-// guide->label = NULL;
-// }
-//
-// sp_guide_set_label(*guide, guide->label, false);
-// break;
-// case SP_ATTR_ORIENTATION:
-// {
-// if (value && !strcmp(value, "horizontal")) {
-// /* Visual representation of a horizontal line, constrain vertically (y coordinate). */
-// guide->normal_to_line = Geom::Point(0., 1.);
-// } else if (value && !strcmp(value, "vertical")) {
-// guide->normal_to_line = Geom::Point(1., 0.);
-// } else if (value) {
-// gchar ** strarray = g_strsplit(value, ",", 2);
-// double newx, newy;
-// unsigned int success = sp_svg_number_read_d(strarray[0], &newx);
-// success += sp_svg_number_read_d(strarray[1], &newy);
-// g_strfreev (strarray);
-// if (success == 2 && (fabs(newx) > 1e-6 || fabs(newy) > 1e-6)) {
-// Geom::Point direction(newx, newy);
-// direction.normalize();
-// guide->normal_to_line = direction;
-// } else {
-// // default to vertical line for bad arguments
-// guide->normal_to_line = Geom::Point(1., 0.);
-// }
-// } else {
-// // default to vertical line for bad arguments
-// guide->normal_to_line = Geom::Point(1., 0.);
-// }
-// sp_guide_set_normal(*guide, guide->normal_to_line, false);
-// }
-// break;
-// case SP_ATTR_POSITION:
-// {
-// if (value) {
-// gchar ** strarray = g_strsplit(value, ",", 2);
-// double newx, newy;
-// unsigned int success = sp_svg_number_read_d(strarray[0], &newx);
-// success += sp_svg_number_read_d(strarray[1], &newy);
-// g_strfreev (strarray);
-// if (success == 2) {
-// guide->point_on_line = Geom::Point(newx, newy);
-// } else if (success == 1) {
-// // before 0.46 style guideline definition.
-// const gchar *attr = object->getRepr()->attribute("orientation");
-// if (attr && !strcmp(attr, "horizontal")) {
-// guide->point_on_line = Geom::Point(0, newx);
-// } else {
-// guide->point_on_line = Geom::Point(newx, 0);
-// }
-// }
-// } else {
-// // default to (0,0) for bad arguments
-// guide->point_on_line = Geom::Point(0,0);
-// }
-// // update position in non-committing way
-// // fixme: perhaps we need to add an update method instead, and request_update here
-// sp_guide_moveto(*guide, guide->point_on_line, false);
-// }
-// break;
-// default:
-// if (((SPObjectClass *) (parent_class))->set) {
-// ((SPObjectClass *) (parent_class))->set(object, key, value);
-// }
-// break;
-// }
- ((SPGuide*)object)->cguide->onSet(key, value);
-}
-
void CGuide::onSet(unsigned int key, const gchar *value) {
SPGuide* object = this->spguide;
SPGuide *guide = SP_GUIDE(object);
@@ -384,9 +235,6 @@ void CGuide::onSet(unsigned int key, const gchar *value) {
}
break;
default:
-// if (((SPObjectClass *) (parent_class))->set) {
-// ((SPObjectClass *) (parent_class))->set(object, key, value);
-// }
CObject::onSet(key, value);
break;
}
@@ -430,10 +278,10 @@ sp_guide_create_guides_around_page(SPDesktop *dt) {
Geom::Point B(C[Geom::X], 0);
Geom::Point D(0, C[Geom::Y]);
- pts.push_back(std::make_pair<Geom::Point, Geom::Point>(A, B));
- pts.push_back(std::make_pair<Geom::Point, Geom::Point>(B, C));
- pts.push_back(std::make_pair<Geom::Point, Geom::Point>(C, D));
- pts.push_back(std::make_pair<Geom::Point, Geom::Point>(D, A));
+ pts.push_back(std::pair<Geom::Point, Geom::Point>(A, B));
+ pts.push_back(std::pair<Geom::Point, Geom::Point>(B, C));
+ pts.push_back(std::pair<Geom::Point, Geom::Point>(C, D));
+ pts.push_back(std::pair<Geom::Point, Geom::Point>(D, A));
sp_guide_pt_pairs_to_guides(doc, pts);