summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2013-01-26 16:18:08 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2013-01-26 16:18:08 +0000
commit55b2e59196c6e980bdb3f03379de6707dd91082b (patch)
tree8502ac20fa9c4bd4ffa4aee6da3f52a0e906c199 /src
parentfix crash (diff)
downloadinkscape-55b2e59196c6e980bdb3f03379de6707dd91082b.tar.gz
inkscape-55b2e59196c6e980bdb3f03379de6707dd91082b.zip
More GObject boilerplate reduction
(bzr r12064)
Diffstat (limited to 'src')
-rw-r--r--src/box3d-context.cpp43
-rw-r--r--src/common-context.cpp39
-rw-r--r--src/ege-output-action.cpp31
-rw-r--r--src/event-context.cpp25
-rw-r--r--src/measure-context.cpp39
-rw-r--r--src/pen-context.cpp46
-rw-r--r--src/persp3d.cpp30
-rw-r--r--src/rect-context.cpp44
-rw-r--r--src/sp-flowtext.cpp56
-rw-r--r--src/sp-glyph.cpp50
-rw-r--r--src/sp-missing-glyph.cpp46
-rw-r--r--src/sp-object.h5
-rw-r--r--src/sp-offset.cpp61
-rw-r--r--src/sp-paint-server.cpp30
-rw-r--r--src/sp-paint-server.h9
-rw-r--r--src/sp-path.cpp50
-rw-r--r--src/sp-style-elem.cpp40
-rw-r--r--src/sp-symbol.cpp77
-rw-r--r--src/text-context.cpp41
-rw-r--r--src/tweak-context.cpp36
-rw-r--r--src/zoom-context.cpp39
21 files changed, 168 insertions, 669 deletions
diff --git a/src/box3d-context.cpp b/src/box3d-context.cpp
index a58059e89..1af5ed29f 100644
--- a/src/box3d-context.cpp
+++ b/src/box3d-context.cpp
@@ -53,8 +53,6 @@
using Inkscape::DocumentUndo;
-static void sp_box3d_context_class_init(Box3DContextClass *klass);
-static void sp_box3d_context_init(Box3DContext *box3d_context);
static void sp_box3d_context_dispose(GObject *object);
static void sp_box3d_context_setup(SPEventContext *ec);
@@ -66,34 +64,13 @@ static gint sp_box3d_context_item_handler(SPEventContext *event_context, SPItem
static void sp_box3d_drag(Box3DContext &bc, guint state);
static void sp_box3d_finish(Box3DContext *bc);
-static SPEventContextClass *parent_class;
-
-GType sp_box3d_context_get_type()
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(Box3DContextClass),
- NULL, NULL,
- (GClassInitFunc) sp_box3d_context_class_init,
- NULL, NULL,
- sizeof(Box3DContext),
- 4,
- (GInstanceInitFunc) sp_box3d_context_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "Box3DContext", &info, (GTypeFlags) 0);
- }
- return type;
-}
+G_DEFINE_TYPE(Box3DContext, sp_box3d_context, SP_TYPE_EVENT_CONTEXT);
static void sp_box3d_context_class_init(Box3DContextClass *klass)
{
GObjectClass *object_class = (GObjectClass *) klass;
SPEventContextClass *event_context_class = (SPEventContextClass *) klass;
- parent_class = (SPEventContextClass *) g_type_class_peek_parent(klass);
-
object_class->dispose = sp_box3d_context_dispose;
event_context_class->setup = sp_box3d_context_setup;
@@ -135,8 +112,8 @@ static void sp_box3d_context_finish(SPEventContext *ec)
bc->sel_changed_connection.disconnect();
// sp_repr_remove_listener_by_data(cc->active_shape_repr, cc);
- if (((SPEventContextClass *) parent_class)->finish) {
- ((SPEventContextClass *) parent_class)->finish(ec);
+ if (((SPEventContextClass *) sp_box3d_context_parent_class)->finish) {
+ ((SPEventContextClass *) sp_box3d_context_parent_class)->finish(ec);
}
}
@@ -166,7 +143,7 @@ static void sp_box3d_context_dispose(GObject *object)
delete bc->_message_context;
}
- G_OBJECT_CLASS(parent_class)->dispose(object);
+ G_OBJECT_CLASS(sp_box3d_context_parent_class)->dispose(object);
}
/**
@@ -211,8 +188,8 @@ static void sp_box3d_context_setup(SPEventContext *ec)
{
Box3DContext *bc = SP_BOX3D_CONTEXT(ec);
- if (((SPEventContextClass *) parent_class)->setup) {
- ((SPEventContextClass *) parent_class)->setup(ec);
+ if (((SPEventContextClass *) sp_box3d_context_parent_class)->setup) {
+ ((SPEventContextClass *) sp_box3d_context_parent_class)->setup(ec);
}
ec->shape_editor = new ShapeEditor(ec->desktop);
@@ -259,8 +236,8 @@ static gint sp_box3d_context_item_handler(SPEventContext *event_context, SPItem
break;
}
- if (((SPEventContextClass *) parent_class)->item_handler) {
- ret = ((SPEventContextClass *) parent_class)->item_handler(event_context, item, event);
+ if (((SPEventContextClass *) sp_box3d_context_parent_class)->item_handler) {
+ ret = ((SPEventContextClass *) sp_box3d_context_parent_class)->item_handler(event_context, item, event);
}
return ret;
@@ -572,8 +549,8 @@ static gint sp_box3d_context_root_handler(SPEventContext *event_context, GdkEven
}
if (!ret) {
- if (((SPEventContextClass *) parent_class)->root_handler) {
- ret = ((SPEventContextClass *) parent_class)->root_handler(event_context, event);
+ if (((SPEventContextClass *) sp_box3d_context_parent_class)->root_handler) {
+ ret = ((SPEventContextClass *) sp_box3d_context_parent_class)->root_handler(event_context, event);
}
}
diff --git a/src/common-context.cpp b/src/common-context.cpp
index 9d5dbb048..ff99b5c0b 100644
--- a/src/common-context.cpp
+++ b/src/common-context.cpp
@@ -19,8 +19,6 @@
#define DRAG_MAX 1.0
-static void sp_common_context_class_init(SPCommonContextClass *klass);
-static void sp_common_context_init(SPCommonContext *erc);
static void sp_common_context_dispose(GObject *object);
static void sp_common_context_setup(SPEventContext *ec);
@@ -28,38 +26,13 @@ static void sp_common_context_set(SPEventContext *ec, Inkscape::Preferences::Ent
static gint sp_common_context_root_handler(SPEventContext *event_context, GdkEvent *event);
-
-static SPEventContextClass *common_parent_class = 0;
-
-GType sp_common_context_get_type(void)
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPCommonContextClass),
- 0, // base_init
- 0, // base_finalize
- (GClassInitFunc)sp_common_context_class_init,
- 0, // class_finalize
- 0, // class_data
- sizeof(SPCommonContext),
- 0, // n_preallocs
- (GInstanceInitFunc)sp_common_context_init,
- 0 // value_table
- };
- type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPCommonContext", &info, static_cast<GTypeFlags>(0));
- }
- return type;
-}
-
+G_DEFINE_TYPE(SPCommonContext, sp_common_context, SP_TYPE_EVENT_CONTEXT);
static void sp_common_context_class_init(SPCommonContextClass *klass)
{
GObjectClass *object_class = (GObjectClass *) klass;
SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass);
- common_parent_class = SP_EVENT_CONTEXT_CLASS(g_type_class_peek_parent(klass));
-
object_class->dispose = sp_common_context_dispose;
event_context_class->setup = sp_common_context_setup;
@@ -144,14 +117,14 @@ static void sp_common_context_dispose(GObject *object)
ctx->_message_context = 0;
}
- G_OBJECT_CLASS(common_parent_class)->dispose(object);
+ G_OBJECT_CLASS(sp_common_context_parent_class)->dispose(object);
}
static void sp_common_context_setup(SPEventContext *ec)
{
- if ( common_parent_class->setup ) {
- common_parent_class->setup(ec);
+ if ( SP_EVENT_CONTEXT_CLASS(sp_common_context_parent_class)->setup ) {
+ SP_EVENT_CONTEXT_CLASS(sp_common_context_parent_class)->setup(ec);
}
}
@@ -199,8 +172,8 @@ static gint sp_common_context_root_handler(SPEventContext *event_context, GdkEve
if ( !ret ) {
- if ( common_parent_class->root_handler ) {
- ret = common_parent_class->root_handler(event_context, event);
+ if ( SP_EVENT_CONTEXT_CLASS(sp_common_context_parent_class)->root_handler ) {
+ ret = SP_EVENT_CONTEXT_CLASS(sp_common_context_parent_class)->root_handler(event_context, event);
}
}
diff --git a/src/ege-output-action.cpp b/src/ege-output-action.cpp
index 1b356c55d..214bd4b29 100644
--- a/src/ege-output-action.cpp
+++ b/src/ege-output-action.cpp
@@ -46,8 +46,6 @@
#include "ege-output-action.h"
-static void ege_output_action_class_init( EgeOutputActionClass* klass );
-static void ege_output_action_init( EgeOutputAction* action );
static void ege_output_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec );
static void ege_output_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec );
static void fixup_labels( GObject *gobject, GParamSpec *arg1, gpointer user_data );
@@ -55,9 +53,6 @@ static void fixup_labels( GObject *gobject, GParamSpec *arg1, gpointer user_data
/* static GtkWidget* create_menu_item( GtkAction* action ); */
static GtkWidget* create_tool_item( GtkAction* action );
-static GtkActionClass* gParentClass = 0;
-
-
struct _EgeOutputActionPrivate
{
gboolean useMarkup;
@@ -69,34 +64,12 @@ enum {
PROP_USE_MARKUP = 1,
};
-GType ege_output_action_get_type( void )
-{
- static GType myType = 0;
- if ( !myType ) {
- static const GTypeInfo myInfo = {
- sizeof( EgeOutputActionClass ),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc)ege_output_action_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof( EgeOutputAction ),
- 0, /* n_preallocs */
- (GInstanceInitFunc)ege_output_action_init,
- NULL
- };
-
- myType = g_type_register_static( GTK_TYPE_ACTION, "EgeOutputAction", &myInfo, (GTypeFlags)0 );
- }
-
- return myType;
-}
+G_DEFINE_TYPE(EgeOutputAction, ege_output_action, GTK_TYPE_ACTION);
void ege_output_action_class_init( EgeOutputActionClass* klass )
{
if ( klass ) {
GObjectClass* objClass = G_OBJECT_CLASS( klass );
- gParentClass = GTK_ACTION_CLASS( g_type_class_peek_parent( klass ) );
objClass->get_property = ege_output_action_get_property;
objClass->set_property = ege_output_action_set_property;
@@ -228,7 +201,7 @@ GtkWidget* create_tool_item( GtkAction* action )
g_value_unset( &value );
} else {
- item = gParentClass->create_tool_item( action );
+ item = GTK_ACTION_CLASS(ege_output_action_parent_class)->create_tool_item( action );
}
return item;
diff --git a/src/event-context.cpp b/src/event-context.cpp
index 71d4a5fb9..4e5917afa 100644
--- a/src/event-context.cpp
+++ b/src/event-context.cpp
@@ -54,8 +54,6 @@
#include "sp-guide.h"
#include "color.h"
-static void sp_event_context_class_init(SPEventContextClass *klass);
-static void sp_event_context_init(SPEventContext *event_context);
static void sp_event_context_dispose(GObject *object);
static void sp_event_context_private_setup(SPEventContext *ec);
@@ -66,8 +64,6 @@ static gint sp_event_context_private_item_handler(
static void set_event_location(SPDesktop * desktop, GdkEvent * event);
-static GObjectClass *parent_class;
-
// globals for temporary switching to selector by space
static bool selector_toggled = FALSE;
static int switch_selector_to = 0;
@@ -85,22 +81,7 @@ static guint32 scroll_event_time = 0;
static gdouble scroll_multiply = 1;
static guint scroll_keyval = 0;
-/**
- * Registers the SPEventContext class with Glib and returns its type number.
- */
-GType sp_event_context_get_type(void) {
- static GType type = 0;
- if (!type) {
- GTypeInfo info = { sizeof(SPEventContextClass), NULL, NULL,
- (GClassInitFunc) sp_event_context_class_init, NULL, NULL,
- sizeof(SPEventContext), 4,
- (GInstanceInitFunc) sp_event_context_init, NULL, /* value_table */
- };
- type = g_type_register_static(G_TYPE_OBJECT, "SPEventContext", &info,
- (GTypeFlags) 0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPEventContext, sp_event_context, G_TYPE_OBJECT);
/**
* Callback to set up the SPEventContext vtable.
@@ -108,8 +89,6 @@ GType sp_event_context_get_type(void) {
static void sp_event_context_class_init(SPEventContextClass *klass) {
GObjectClass *object_class = G_OBJECT_CLASS(klass);
- parent_class = G_OBJECT_CLASS(g_type_class_peek_parent(klass));
-
object_class->dispose = sp_event_context_dispose;
klass->setup = sp_event_context_private_setup;
@@ -166,7 +145,7 @@ static void sp_event_context_dispose(GObject *object) {
delete ec->_delayed_snap_event;
}
- G_OBJECT_CLASS(parent_class)->dispose(object);
+ G_OBJECT_CLASS(sp_event_context_parent_class)->dispose(object);
}
/**
diff --git a/src/measure-context.cpp b/src/measure-context.cpp
index 7a04b9915..dc23cf5c6 100644
--- a/src/measure-context.cpp
+++ b/src/measure-context.cpp
@@ -47,16 +47,12 @@
using Inkscape::ControlManager;
using Inkscape::CTLINE_SECONDARY;
-static void sp_measure_context_class_init(SPMeasureContextClass *klass);
-static void sp_measure_context_init(SPMeasureContext *measure_context);
static void sp_measure_context_setup(SPEventContext *ec);
static void sp_measure_context_finish(SPEventContext *ec);
static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEvent *event);
static gint sp_measure_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event);
-static SPEventContextClass *parent_class;
-
static gint xp = 0; // where drag started
static gint yp = 0;
static gint tolerance = 0;
@@ -68,26 +64,7 @@ boost::optional<Geom::Point> lastEnd;
std::vector<Inkscape::Display::TemporaryItem*> measure_tmp_items;
-GType sp_measure_context_get_type(void)
-{
- static GType type = 0;
-
- if (!type) {
- GTypeInfo info = {
- sizeof(SPMeasureContextClass),
- NULL, NULL,
- reinterpret_cast<GClassInitFunc>(sp_measure_context_class_init), // TODO needs two params?
- NULL, NULL,
- sizeof(SPMeasureContext),
- 4,
- reinterpret_cast<GInstanceInitFunc>(sp_measure_context_init), // TODO needs two params?
- NULL, // value_table
- };
- type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPMeasureContext", &info, static_cast<GTypeFlags>(0));
- }
-
- return type;
-}
+G_DEFINE_TYPE(SPMeasureContext, sp_measure_context, SP_TYPE_EVENT_CONTEXT);
namespace
{
@@ -258,8 +235,6 @@ static void sp_measure_context_class_init(SPMeasureContextClass *klass)
{
SPEventContextClass *event_context_class = reinterpret_cast<SPEventContextClass *>(klass);
- parent_class = static_cast<SPEventContextClass*>(g_type_class_peek_parent(klass));
-
event_context_class->setup = sp_measure_context_setup;
event_context_class->finish = sp_measure_context_finish;
@@ -290,8 +265,8 @@ static void sp_measure_context_finish(SPEventContext *ec)
static void sp_measure_context_setup(SPEventContext *ec)
{
- if (parent_class->setup) {
- parent_class->setup(ec);
+ if (SP_EVENT_CONTEXT_CLASS(sp_measure_context_parent_class)->setup) {
+ SP_EVENT_CONTEXT_CLASS(sp_measure_context_parent_class)->setup(ec);
}
}
@@ -299,8 +274,8 @@ static gint sp_measure_context_item_handler(SPEventContext *event_context, SPIte
{
gint ret = FALSE;
- if (parent_class->item_handler) {
- ret = parent_class->item_handler(event_context, item, event);
+ if (SP_EVENT_CONTEXT_CLASS(sp_measure_context_parent_class)->item_handler) {
+ ret = SP_EVENT_CONTEXT_CLASS(sp_measure_context_parent_class)->item_handler(event_context, item, event);
}
return ret;
@@ -789,8 +764,8 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
}
if (!ret) {
- if (parent_class->root_handler) {
- ret = parent_class->root_handler(event_context, event);
+ if (SP_EVENT_CONTEXT_CLASS(sp_measure_context_parent_class)->root_handler) {
+ ret = SP_EVENT_CONTEXT_CLASS(sp_measure_context_parent_class)->root_handler(event_context, event);
}
}
diff --git a/src/pen-context.cpp b/src/pen-context.cpp
index cb20eb3eb..6e3ed201e 100644
--- a/src/pen-context.cpp
+++ b/src/pen-context.cpp
@@ -47,9 +47,6 @@
using Inkscape::ControlManager;
-
-static void sp_pen_context_class_init(SPPenContextClass *klass);
-static void sp_pen_context_init(SPPenContext *pc);
static void sp_pen_context_dispose(GObject *object);
static void sp_pen_context_setup(SPEventContext *ec);
@@ -78,35 +75,12 @@ static void pen_enable_events(SPPenContext *const pc);
static Geom::Point pen_drag_origin_w(0, 0);
static bool pen_within_tolerance = false;
-static SPDrawContextClass *pen_parent_class;
-
static int pen_next_paraxial_direction(const SPPenContext *const pc, Geom::Point const &pt, Geom::Point const &origin, guint state);
static void pen_set_to_nearest_horiz_vert(const SPPenContext *const pc, Geom::Point &pt, guint const state, bool snap);
static int pen_last_paraxial_dir = 0; // last used direction in horizontal/vertical mode; 0 = horizontal, 1 = vertical
-
-/**
- * Register SPPenContext with Gdk and return its type.
- */
-GType sp_pen_context_get_type(void)
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPPenContextClass),
- NULL, NULL,
- (GClassInitFunc) sp_pen_context_class_init,
- NULL, NULL,
- sizeof(SPPenContext),
- 4,
- (GInstanceInitFunc) sp_pen_context_init,
- NULL, // value_table
- };
- type = g_type_register_static(SP_TYPE_DRAW_CONTEXT, "SPPenContext", &info, (GTypeFlags)0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPPenContext, sp_pen_context, SP_TYPE_DRAW_CONTEXT);
/**
* Initialize the SPPenContext vtable.
@@ -119,8 +93,6 @@ static void sp_pen_context_class_init(SPPenContextClass *klass)
object_class = (GObjectClass *) klass;
event_context_class = (SPEventContextClass *) klass;
- pen_parent_class = (SPDrawContextClass*)g_type_class_peek_parent(klass);
-
object_class->dispose = sp_pen_context_dispose;
event_context_class->setup = sp_pen_context_setup;
@@ -181,7 +153,7 @@ static void sp_pen_context_dispose(GObject *object)
pc->cl1 = NULL;
}
- G_OBJECT_CLASS(pen_parent_class)->dispose(object);
+ G_OBJECT_CLASS(sp_pen_context_parent_class)->dispose(object);
if (pc->expecting_clicks_for_LPE > 0) {
// we received too few clicks to sanely set the parameter path so we remove the LPE from the item
@@ -203,8 +175,8 @@ static void sp_pen_context_setup(SPEventContext *ec)
{
SPPenContext *pc = SP_PEN_CONTEXT(ec);
- if (((SPEventContextClass *) pen_parent_class)->setup) {
- ((SPEventContextClass *) pen_parent_class)->setup(ec);
+ if (((SPEventContextClass *) sp_pen_context_parent_class)->setup) {
+ ((SPEventContextClass *) sp_pen_context_parent_class)->setup(ec);
}
ControlManager &mgr = ControlManager::getManager();
@@ -265,8 +237,8 @@ static void sp_pen_context_finish(SPEventContext *ec)
pen_cancel (pc);
}
- if (((SPEventContextClass *) pen_parent_class)->finish) {
- ((SPEventContextClass *) pen_parent_class)->finish(ec);
+ if (((SPEventContextClass *) sp_pen_context_parent_class)->finish) {
+ ((SPEventContextClass *) sp_pen_context_parent_class)->finish(ec);
}
}
@@ -347,8 +319,8 @@ static gint sp_pen_context_item_handler(SPEventContext *ec, SPItem *item, GdkEve
}
if (!ret) {
- if (((SPEventContextClass *) pen_parent_class)->item_handler)
- ret = ((SPEventContextClass *) pen_parent_class)->item_handler(ec, item, event);
+ if (((SPEventContextClass *) sp_pen_context_parent_class)->item_handler)
+ ret = ((SPEventContextClass *) sp_pen_context_parent_class)->item_handler(ec, item, event);
}
return ret;
@@ -390,7 +362,7 @@ static gint sp_pen_context_root_handler(SPEventContext *ec, GdkEvent *event)
if (!ret) {
gint (*const parent_root_handler)(SPEventContext *, GdkEvent *)
- = ((SPEventContextClass *) pen_parent_class)->root_handler;
+ = ((SPEventContextClass *) sp_pen_context_parent_class)->root_handler;
if (parent_root_handler) {
ret = parent_root_handler(ec, event);
}
diff --git a/src/persp3d.cpp b/src/persp3d.cpp
index a20537d95..2744efb75 100644
--- a/src/persp3d.cpp
+++ b/src/persp3d.cpp
@@ -27,9 +27,6 @@
using Inkscape::DocumentUndo;
-static void persp3d_class_init(Persp3DClass *klass);
-static void persp3d_init(Persp3D *persp);
-
static void persp3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
static void persp3d_release(SPObject *object);
static void persp3d_set(SPObject *object, unsigned key, gchar const *value);
@@ -41,8 +38,6 @@ static void persp3d_on_repr_attr_changed (Inkscape::XML::Node * repr, const gcha
static void persp3d_update_with_point (Persp3DImpl *persp_impl, Proj::Axis const axis, Proj::Pt2 const &new_image);
static gchar * persp3d_pt_to_str (Persp3DImpl *persp_impl, Proj::Axis const axis);
-static SPObjectClass *persp3d_parent_class;
-
static int global_counter = 0;
/* Constructor/destructor for the internal class */
@@ -54,28 +49,7 @@ Persp3DImpl::Persp3DImpl() {
my_counter = global_counter++;
}
-/**
- * Registers Persp3d class and returns its type.
- */
-GType
-persp3d_get_type()
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(Persp3DClass),
- NULL, NULL,
- (GClassInitFunc) persp3d_class_init,
- NULL, NULL,
- sizeof(Persp3D),
- 16,
- (GInstanceInitFunc) persp3d_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_OBJECT, "Persp3D", &info, (GTypeFlags)0);
- }
- return type;
-}
+G_DEFINE_TYPE(Persp3D, persp3d, SP_TYPE_OBJECT);
static Inkscape::XML::NodeEventVector const persp3d_repr_events = {
NULL, /* child_added */
@@ -92,8 +66,6 @@ static void persp3d_class_init(Persp3DClass *klass)
{
SPObjectClass *sp_object_class = (SPObjectClass *) klass;
- persp3d_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT);
-
sp_object_class->build = persp3d_build;
sp_object_class->release = persp3d_release;
sp_object_class->set = persp3d_set;
diff --git a/src/rect-context.cpp b/src/rect-context.cpp
index 33ccee93c..040127ae3 100644
--- a/src/rect-context.cpp
+++ b/src/rect-context.cpp
@@ -49,8 +49,6 @@ using Inkscape::DocumentUndo;
//static const double goldenratio = 1.61803398874989484820; // golden ratio
-static void sp_rect_context_class_init(SPRectContextClass *klass);
-static void sp_rect_context_init(SPRectContext *rect_context);
static void sp_rect_context_dispose(GObject *object);
static void sp_rect_context_setup(SPEventContext *ec);
@@ -64,35 +62,13 @@ static void sp_rect_drag(SPRectContext &rc, Geom::Point const pt, guint state);
static void sp_rect_finish(SPRectContext *rc);
static void sp_rect_cancel(SPRectContext *rc);
-static SPEventContextClass *parent_class;
-
-
-GType sp_rect_context_get_type()
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPRectContextClass),
- NULL, NULL,
- (GClassInitFunc) sp_rect_context_class_init,
- NULL, NULL,
- sizeof(SPRectContext),
- 4,
- (GInstanceInitFunc) sp_rect_context_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPRectContext", &info, (GTypeFlags) 0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPRectContext, sp_rect_context, SP_TYPE_EVENT_CONTEXT);
static void sp_rect_context_class_init(SPRectContextClass *klass)
{
GObjectClass *object_class = (GObjectClass *) klass;
SPEventContextClass *event_context_class = (SPEventContextClass *) klass;
- parent_class = (SPEventContextClass *) g_type_class_peek_parent(klass);
-
object_class->dispose = sp_rect_context_dispose;
event_context_class->setup = sp_rect_context_setup;
@@ -133,8 +109,8 @@ static void sp_rect_context_finish(SPEventContext *ec)
sp_rect_finish(rc);
rc->sel_changed_connection.disconnect();
- if (((SPEventContextClass *) parent_class)->finish) {
- ((SPEventContextClass *) parent_class)->finish(ec);
+ if (((SPEventContextClass *) sp_rect_context_parent_class)->finish) {
+ ((SPEventContextClass *) sp_rect_context_parent_class)->finish(ec);
}
}
@@ -161,7 +137,7 @@ static void sp_rect_context_dispose(GObject *object)
delete rc->_message_context;
}
- G_OBJECT_CLASS(parent_class)->dispose(object);
+ G_OBJECT_CLASS(sp_rect_context_parent_class)->dispose(object);
}
/**
@@ -182,8 +158,8 @@ static void sp_rect_context_setup(SPEventContext *ec)
{
SPRectContext *rc = SP_RECT_CONTEXT(ec);
- if (((SPEventContextClass *) parent_class)->setup) {
- ((SPEventContextClass *) parent_class)->setup(ec);
+ if (((SPEventContextClass *) sp_rect_context_parent_class)->setup) {
+ ((SPEventContextClass *) sp_rect_context_parent_class)->setup(ec);
}
ec->shape_editor = new ShapeEditor(ec->desktop);
@@ -245,8 +221,8 @@ static gint sp_rect_context_item_handler(SPEventContext *event_context, SPItem *
break;
}
- if (((SPEventContextClass *) parent_class)->item_handler) {
- ret = ((SPEventContextClass *) parent_class)->item_handler(event_context, item, event);
+ if (((SPEventContextClass *) sp_rect_context_parent_class)->item_handler) {
+ ret = ((SPEventContextClass *) sp_rect_context_parent_class)->item_handler(event_context, item, event);
}
return ret;
@@ -458,8 +434,8 @@ static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent
}
if (!ret) {
- if (((SPEventContextClass *) parent_class)->root_handler) {
- ret = ((SPEventContextClass *) parent_class)->root_handler(event_context, event);
+ if (((SPEventContextClass *) sp_rect_context_parent_class)->root_handler) {
+ ret = ((SPEventContextClass *) sp_rect_context_parent_class)->root_handler(event_context, event);
}
}
diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp
index dc5b1d8bd..1d95c2f8a 100644
--- a/src/sp-flowtext.cpp
+++ b/src/sp-flowtext.cpp
@@ -34,8 +34,6 @@
#include "display/drawing-text.h"
-static void sp_flowtext_class_init(SPFlowtextClass *klass);
-static void sp_flowtext_init(SPFlowtext *group);
static void sp_flowtext_dispose(GObject *object);
static void sp_flowtext_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref);
@@ -53,29 +51,7 @@ static void sp_flowtext_snappoints(SPItem const *item, std::vector<Inkscape::Sna
static Inkscape::DrawingItem *sp_flowtext_show(SPItem *item, Inkscape::Drawing &drawing, unsigned key, unsigned flags);
static void sp_flowtext_hide(SPItem *item, unsigned key);
-static SPItemClass *parent_class;
-
-GType
-sp_flowtext_get_type(void)
-{
- static GType group_type = 0;
- if (!group_type) {
- GTypeInfo group_info = {
- sizeof(SPFlowtextClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_flowtext_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(SPFlowtext),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_flowtext_init,
- NULL, /* value_table */
- };
- group_type = g_type_register_static(SP_TYPE_ITEM, "SPFlowtext", &group_info, (GTypeFlags)0);
- }
- return group_type;
-}
+G_DEFINE_TYPE(SPFlowtext, sp_flowtext, SP_TYPE_ITEM);
static void
sp_flowtext_class_init(SPFlowtextClass *klass)
@@ -84,8 +60,6 @@ sp_flowtext_class_init(SPFlowtextClass *klass)
SPObjectClass *sp_object_class = (SPObjectClass *) klass;
SPItemClass *item_class = (SPItemClass *) klass;
- parent_class = (SPItemClass *)g_type_class_ref(SP_TYPE_ITEM);
-
object_class->dispose = sp_flowtext_dispose;
sp_object_class->child_added = sp_flowtext_child_added;
@@ -122,8 +96,8 @@ sp_flowtext_dispose(GObject *object)
static void
sp_flowtext_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref)
{
- if (((SPObjectClass *) (parent_class))->child_added)
- (* ((SPObjectClass *) (parent_class))->child_added)(object, child, ref);
+ if (((SPObjectClass *) (sp_flowtext_parent_class))->child_added)
+ (* ((SPObjectClass *) (sp_flowtext_parent_class))->child_added)(object, child, ref);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
}
@@ -133,8 +107,8 @@ sp_flowtext_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::
static void
sp_flowtext_remove_child(SPObject *object, Inkscape::XML::Node *child)
{
- if (((SPObjectClass *) (parent_class))->remove_child)
- (* ((SPObjectClass *) (parent_class))->remove_child)(object, child);
+ if (((SPObjectClass *) (sp_flowtext_parent_class))->remove_child)
+ (* ((SPObjectClass *) (sp_flowtext_parent_class))->remove_child)(object, child);
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
}
@@ -145,8 +119,8 @@ static void sp_flowtext_update(SPObject *object, SPCtx *ctx, unsigned flags)
SPItemCtx *ictx = (SPItemCtx *) ctx;
SPItemCtx cctx = *ictx;
- if (((SPObjectClass *) (parent_class))->update) {
- ((SPObjectClass *) (parent_class))->update(object, ctx, flags);
+ if (((SPObjectClass *) (sp_flowtext_parent_class))->update) {
+ ((SPObjectClass *) (sp_flowtext_parent_class))->update(object, ctx, flags);
}
if (flags & SP_OBJECT_MODIFIED_FLAG) flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
@@ -225,8 +199,8 @@ sp_flowtext_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *r
{
object->_requireSVGVersion(Inkscape::Version(1, 2));
- if (((SPObjectClass *) (parent_class))->build) {
- (* ((SPObjectClass *) (parent_class))->build)(object, document, repr);
+ if (((SPObjectClass *) (sp_flowtext_parent_class))->build) {
+ (* ((SPObjectClass *) (sp_flowtext_parent_class))->build)(object, document, repr);
}
object->readAttr( "inkscape:layoutOptions" ); // must happen after css has been read
@@ -284,8 +258,8 @@ sp_flowtext_set(SPObject *object, unsigned key, gchar const *value)
break;
}
default:
- if (((SPObjectClass *) (parent_class))->set) {
- (* ((SPObjectClass *) (parent_class))->set)(object, key, value);
+ if (((SPObjectClass *) (sp_flowtext_parent_class))->set) {
+ (* ((SPObjectClass *) (sp_flowtext_parent_class))->set)(object, key, value);
}
break;
}
@@ -320,8 +294,8 @@ static Inkscape::XML::Node *sp_flowtext_write(SPObject *object, Inkscape::XML::D
}
}
- if (((SPObjectClass *) (parent_class))->write) {
- ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags);
+ if (((SPObjectClass *) (sp_flowtext_parent_class))->write) {
+ ((SPObjectClass *) (sp_flowtext_parent_class))->write(object, xml_doc, repr, flags);
}
return repr;
@@ -404,8 +378,8 @@ sp_flowtext_show(SPItem *item, Inkscape::Drawing &drawing, unsigned/* key*/, uns
static void
sp_flowtext_hide(SPItem *item, unsigned int key)
{
- if (((SPItemClass *) parent_class)->hide)
- ((SPItemClass *) parent_class)->hide(item, key);
+ if (((SPItemClass *) sp_flowtext_parent_class)->hide)
+ ((SPItemClass *) sp_flowtext_parent_class)->hide(item, key);
}
diff --git a/src/sp-glyph.cpp b/src/sp-glyph.cpp
index 719375688..e14ef8667 100644
--- a/src/sp-glyph.cpp
+++ b/src/sp-glyph.cpp
@@ -23,46 +23,18 @@
#include "document.h"
#include <cstring>
-static void sp_glyph_class_init(SPGlyphClass *gc);
-static void sp_glyph_init(SPGlyph *glyph);
-
static void sp_glyph_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
static void sp_glyph_release(SPObject *object);
static void sp_glyph_set(SPObject *object, unsigned int key, const gchar *value);
static Inkscape::XML::Node *sp_glyph_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
static void sp_glyph_update(SPObject *object, SPCtx *ctx, guint flags);
-static SPObjectClass *parent_class;
-
-GType sp_glyph_get_type(void)
-{
- static GType type = 0;
-
- if (!type) {
- GTypeInfo info = {
- sizeof(SPGlyphClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_glyph_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(SPGlyph),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_glyph_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_OBJECT, "SPGlyph", &info, (GTypeFlags) 0);
- }
-
- return type;
-}
+G_DEFINE_TYPE(SPGlyph, sp_glyph, SP_TYPE_OBJECT);
static void sp_glyph_class_init(SPGlyphClass *gc)
{
SPObjectClass *sp_object_class = (SPObjectClass *) gc;
- parent_class = (SPObjectClass*)g_type_class_peek_parent(gc);
-
sp_object_class->build = sp_glyph_build;
sp_object_class->release = sp_glyph_release;
sp_object_class->set = sp_glyph_set;
@@ -88,8 +60,8 @@ static void sp_glyph_init(SPGlyph *glyph)
static void sp_glyph_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
{
- if (((SPObjectClass *) (parent_class))->build) {
- ((SPObjectClass *) (parent_class))->build(object, document, repr);
+ if (((SPObjectClass *) (sp_glyph_parent_class))->build) {
+ ((SPObjectClass *) (sp_glyph_parent_class))->build(object, document, repr);
}
object->readAttr( "unicode" );
@@ -108,8 +80,8 @@ static void sp_glyph_release(SPObject *object)
{
//SPGlyph *glyph = SP_GLYPH(object);
- if (((SPObjectClass *) parent_class)->release) {
- ((SPObjectClass *) parent_class)->release(object);
+ if (((SPObjectClass *) sp_glyph_parent_class)->release) {
+ ((SPObjectClass *) sp_glyph_parent_class)->release(object);
}
}
@@ -233,8 +205,8 @@ static void sp_glyph_set(SPObject *object, unsigned int key, const gchar *value)
}
default:
{
- if (((SPObjectClass *) (parent_class))->set) {
- ((SPObjectClass *) (parent_class))->set(object, key, value);
+ if (((SPObjectClass *) (sp_glyph_parent_class))->set) {
+ ((SPObjectClass *) (sp_glyph_parent_class))->set(object, key, value);
}
break;
}
@@ -264,8 +236,8 @@ sp_glyph_update(SPObject *object, SPCtx *ctx, guint flags)
object->readAttr( "vert-adv-y" );
}
- if (((SPObjectClass *) parent_class)->update) {
- ((SPObjectClass *) parent_class)->update(object, ctx, flags);
+ if (((SPObjectClass *) sp_glyph_parent_class)->update) {
+ ((SPObjectClass *) sp_glyph_parent_class)->update(object, ctx, flags);
}
}
@@ -306,8 +278,8 @@ static Inkscape::XML::Node *sp_glyph_write(SPObject *object, Inkscape::XML::Docu
COPY_ATTR(repr, object->getRepr(), "vert-adv-y");
}
- if (((SPObjectClass *) (parent_class))->write) {
- ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags);
+ if (((SPObjectClass *) (sp_glyph_parent_class))->write) {
+ ((SPObjectClass *) (sp_glyph_parent_class))->write(object, xml_doc, repr, flags);
}
return repr;
diff --git a/src/sp-missing-glyph.cpp b/src/sp-missing-glyph.cpp
index fdf75253e..bdf993e5b 100644
--- a/src/sp-missing-glyph.cpp
+++ b/src/sp-missing-glyph.cpp
@@ -21,45 +21,17 @@
#include "sp-missing-glyph.h"
#include "document.h"
-static void sp_missing_glyph_class_init(SPMissingGlyphClass *gc);
-static void sp_missing_glyph_init(SPMissingGlyph *glyph);
-
static void sp_missing_glyph_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
static void sp_missing_glyph_release(SPObject *object);
static void sp_missing_glyph_set(SPObject *object, unsigned int key, const gchar *value);
static Inkscape::XML::Node *sp_missing_glyph_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
-static SPObjectClass *parent_class;
-
-GType sp_missing_glyph_get_type(void)
-{
- static GType type = 0;
-
- if (!type) {
- GTypeInfo info = {
- sizeof(SPMissingGlyphClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_missing_glyph_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(SPMissingGlyph),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_missing_glyph_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_OBJECT, "SPMissingGlyph", &info, (GTypeFlags) 0);
- }
-
- return type;
-}
+G_DEFINE_TYPE(SPMissingGlyph, sp_missing_glyph, SP_TYPE_OBJECT);
static void sp_missing_glyph_class_init(SPMissingGlyphClass *gc)
{
SPObjectClass *sp_object_class = (SPObjectClass *) gc;
- parent_class = (SPObjectClass*)g_type_class_peek_parent(gc);
-
sp_object_class->build = sp_missing_glyph_build;
sp_object_class->release = sp_missing_glyph_release;
sp_object_class->set = sp_missing_glyph_set;
@@ -78,8 +50,8 @@ static void sp_missing_glyph_init(SPMissingGlyph *glyph)
static void sp_missing_glyph_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
{
- if (((SPObjectClass *) (parent_class))->build) {
- ((SPObjectClass *) (parent_class))->build(object, document, repr);
+ if (((SPObjectClass *) (sp_missing_glyph_parent_class))->build) {
+ ((SPObjectClass *) (sp_missing_glyph_parent_class))->build(object, document, repr);
}
object->readAttr( "d" );
@@ -93,8 +65,8 @@ static void sp_missing_glyph_release(SPObject *object)
{
//SPMissingGlyph *glyph = SP_MISSING_GLYPH(object);
- if (((SPObjectClass *) parent_class)->release) {
- ((SPObjectClass *) parent_class)->release(object);
+ if (((SPObjectClass *) sp_missing_glyph_parent_class)->release) {
+ ((SPObjectClass *) sp_missing_glyph_parent_class)->release(object);
}
}
@@ -150,8 +122,8 @@ static void sp_missing_glyph_set(SPObject *object, unsigned int key, const gchar
}
default:
{
- if (((SPObjectClass *) (parent_class))->set) {
- ((SPObjectClass *) (parent_class))->set(object, key, value);
+ if (((SPObjectClass *) (sp_missing_glyph_parent_class))->set) {
+ ((SPObjectClass *) (sp_missing_glyph_parent_class))->set(object, key, value);
}
break;
}
@@ -186,8 +158,8 @@ static Inkscape::XML::Node *sp_missing_glyph_write(SPObject *object, Inkscape::X
COPY_ATTR(repr, object->getRepr(), "vert-adv-y");
}
- if (((SPObjectClass *) (parent_class))->write) {
- ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags);
+ if (((SPObjectClass *) (sp_missing_glyph_parent_class))->write) {
+ ((SPObjectClass *) (sp_missing_glyph_parent_class))->write(object, xml_doc, repr, flags);
}
return repr;
diff --git a/src/sp-object.h b/src/sp-object.h
index b3f3e6c2f..5828eda13 100644
--- a/src/sp-object.h
+++ b/src/sp-object.h
@@ -800,10 +800,7 @@ private:
public:
- /**
- * Registers the SPObject class with Gdk and returns its type number.
- */
- static GType get_type();
+ static GType get_type() {return sp_object_get_type();}
/**
* Callback for attr_changed node event.
diff --git a/src/sp-offset.cpp b/src/sp-offset.cpp
index bc8a46252..95511aea3 100644
--- a/src/sp-offset.cpp
+++ b/src/sp-offset.cpp
@@ -68,8 +68,6 @@ class SPDocument;
* radius (look in object-edit).
*/
-static void sp_offset_class_init (SPOffsetClass * klass);
-static void sp_offset_init (SPOffset * offset);
static void sp_offset_finalize(GObject *obj);
static void sp_offset_build (SPObject * object, SPDocument * document,
@@ -102,38 +100,7 @@ static void sp_offset_source_modified (SPObject *iSource, guint flags, SPItem *i
// reappearing in offset when the radius becomes too large
static bool use_slow_but_correct_offset_method=false;
-
-// nothing special here, same for every class in sodipodi/inkscape
-static SPShapeClass *parent_class;
-
-/**
- * Register SPOffset class and return its type number.
- */
-GType
-sp_offset_get_type (void)
-{
- static GType offset_type = 0;
-
- if (!offset_type)
- {
- GTypeInfo offset_info = {
- sizeof (SPOffsetClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_offset_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (SPOffset),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_offset_init,
- NULL, /* value_table */
- };
- offset_type =
- g_type_register_static (SP_TYPE_SHAPE, "SPOffset", &offset_info,
- (GTypeFlags) 0);
- }
- return offset_type;
-}
+G_DEFINE_TYPE(SPOffset, sp_offset, SP_TYPE_SHAPE);
/**
* SPOffset vtable initialization.
@@ -146,8 +113,6 @@ sp_offset_class_init(SPOffsetClass *klass)
SPItemClass *item_class = (SPItemClass *) klass;
SPShapeClass *shape_class = (SPShapeClass *) klass;
- parent_class = (SPShapeClass *) g_type_class_ref (SP_TYPE_SHAPE);
-
gobject_class->finalize = sp_offset_finalize;
sp_object_class->build = sp_offset_build;
@@ -213,8 +178,8 @@ sp_offset_finalize(GObject *obj)
static void
sp_offset_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
{
- if (((SPObjectClass *) parent_class)->build)
- ((SPObjectClass *) parent_class)->build (object, document, repr);
+ if (((SPObjectClass *) sp_offset_parent_class)->build)
+ ((SPObjectClass *) sp_offset_parent_class)->build (object, document, repr);
//XML Tree being used directly here while it shouldn't be.
if (object->getRepr()->attribute("inkscape:radius")) {
@@ -290,8 +255,8 @@ sp_offset_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XM
repr->setAttribute("d", d);
g_free (d);
- if (((SPObjectClass *) (parent_class))->write)
- ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr,
+ if (((SPObjectClass *) (sp_offset_parent_class))->write)
+ ((SPObjectClass *) (sp_offset_parent_class))->write (object, xml_doc, repr,
flags | SP_SHAPE_WRITE_PATH);
return repr;
@@ -317,8 +282,8 @@ sp_offset_release(SPObject *object)
offset->sourceHref = NULL;
offset->sourceRef->detach();
- if (((SPObjectClass *) parent_class)->release) {
- ((SPObjectClass *) parent_class)->release (object);
+ if (((SPObjectClass *) sp_offset_parent_class)->release) {
+ ((SPObjectClass *) sp_offset_parent_class)->release (object);
}
}
@@ -389,8 +354,8 @@ sp_offset_set(SPObject *object, unsigned key, gchar const *value)
}
break;
default:
- if (((SPObjectClass *) parent_class)->set)
- ((SPObjectClass *) parent_class)->set (object, key, value);
+ if (((SPObjectClass *) sp_offset_parent_class)->set)
+ ((SPObjectClass *) sp_offset_parent_class)->set (object, key, value);
break;
}
}
@@ -411,8 +376,8 @@ sp_offset_update(SPObject *object, SPCtx *ctx, guint flags)
}
offset->isUpdating=false;
- if (((SPObjectClass *) parent_class)->update)
- ((SPObjectClass *) parent_class)->update (object, ctx, flags);
+ if (((SPObjectClass *) sp_offset_parent_class)->update)
+ ((SPObjectClass *) sp_offset_parent_class)->update (object, ctx, flags);
}
/**
@@ -725,8 +690,8 @@ sp_offset_set_shape(SPShape *shape)
*/
static void sp_offset_snappoints(SPItem const *item, std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs)
{
- if (((SPItemClass *) parent_class)->snappoints) {
- ((SPItemClass *) parent_class)->snappoints (item, p, snapprefs);
+ if (((SPItemClass *) sp_offset_parent_class)->snappoints) {
+ ((SPItemClass *) sp_offset_parent_class)->snappoints (item, p, snapprefs);
}
}
diff --git a/src/sp-paint-server.cpp b/src/sp-paint-server.cpp
index ae4a60ba6..298b39117 100644
--- a/src/sp-paint-server.cpp
+++ b/src/sp-paint-server.cpp
@@ -20,12 +20,8 @@
#include "sp-gradient.h"
#include "xml/node.h"
-static void sp_paint_server_class_init(SPPaintServerClass *psc);
-
static cairo_pattern_t *sp_paint_server_create_dummy_pattern(SPPaintServer *ps, cairo_t *ct, Geom::OptRect const &bbox, double opacity);
-static SPObjectClass *parent_class;
-
SPPaintServer *SPPaintServerReference::getObject() const
{
return static_cast<SPPaintServer *>(URIReference::getObject());
@@ -36,35 +32,15 @@ bool SPPaintServerReference::_acceptObject(SPObject *obj) const
return SP_IS_PAINT_SERVER(obj);
}
-GType SPPaintServer::get_type(void)
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPPaintServerClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_paint_server_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(SPPaintServer),
- 16, /* n_preallocs */
- (GInstanceInitFunc) SPPaintServer::init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_OBJECT, "SPPaintServer", &info, (GTypeFlags) 0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPPaintServer, sp_paint_server, SP_TYPE_OBJECT);
static void sp_paint_server_class_init(SPPaintServerClass *psc)
{
psc->pattern_new = sp_paint_server_create_dummy_pattern;
-
- parent_class = static_cast<SPObjectClass *>(g_type_class_ref(SP_TYPE_OBJECT));
}
-void SPPaintServer::init(SPPaintServer * /*ps*/)
+static void
+sp_paint_server_init(SPPaintServer * /*ps*/)
{
}
diff --git a/src/sp-paint-server.h b/src/sp-paint-server.h
index a266ee5a5..f4948dfdb 100644
--- a/src/sp-paint-server.h
+++ b/src/sp-paint-server.h
@@ -20,24 +20,21 @@
#include "sp-object.h"
#include "uri-references.h"
-#define SP_TYPE_PAINT_SERVER (SPPaintServer::get_type())
+#define SP_TYPE_PAINT_SERVER (sp_paint_server_get_type())
#define SP_PAINT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_PAINT_SERVER, SPPaintServer))
#define SP_PAINT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_PAINT_SERVER, SPPaintServerClass))
#define SP_IS_PAINT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_PAINT_SERVER))
#define SP_IS_PAINT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_PAINT_SERVER))
+GType sp_paint_server_get_type(void) G_GNUC_CONST;
+
struct SPPaintServer : public SPObject {
protected:
bool swatch;
public:
- static GType get_type(void);
-
bool isSwatch() const;
bool isSolid() const;
-
-private:
- static void init(SPPaintServer *ps);
};
struct SPPaintServerClass {
diff --git a/src/sp-path.cpp b/src/sp-path.cpp
index 107ceac16..478a689e3 100644
--- a/src/sp-path.cpp
+++ b/src/sp-path.cpp
@@ -51,8 +51,6 @@
#define noPATH_VERBOSE
-static void sp_path_class_init(SPPathClass *klass);
-static void sp_path_init(SPPath *path);
static void sp_path_finalize(GObject *obj);
static void sp_path_release(SPObject *object);
@@ -67,31 +65,7 @@ static void sp_path_convert_to_guides(SPItem *item);
static void sp_path_update(SPObject *object, SPCtx *ctx, guint flags);
static void sp_path_update_patheffect(SPLPEItem *lpeitem, bool write);
-static SPShapeClass *parent_class;
-
-/**
- * Gets the GType object for SPPathClass
- */
-GType
-sp_path_get_type(void)
-{
- static GType type = 0;
-
- if (!type) {
- GTypeInfo info = {
- sizeof(SPPathClass),
- NULL, NULL,
- (GClassInitFunc) sp_path_class_init,
- NULL, NULL,
- sizeof(SPPath),
- 16,
- (GInstanceInitFunc) sp_path_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_SHAPE, "SPPath", &info, (GTypeFlags)0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPPath, sp_path, SP_TYPE_SHAPE);
/**
* Does the object-oriented work of initializing the class structure
@@ -106,8 +80,6 @@ sp_path_class_init(SPPathClass * klass)
SPItemClass *item_class = (SPItemClass *) klass;
SPLPEItemClass *lpe_item_class = (SPLPEItemClass *) klass;
- parent_class = (SPShapeClass *)g_type_class_peek_parent(klass);
-
gobject_class->finalize = sp_path_finalize;
sp_object_class->build = sp_path_build;
@@ -216,8 +188,8 @@ sp_path_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
sp_conn_end_pair_build(object);
- if (((SPObjectClass *) parent_class)->build) {
- ((SPObjectClass *) parent_class)->build(object, document, repr);
+ if (((SPObjectClass *) sp_path_parent_class)->build) {
+ ((SPObjectClass *) sp_path_parent_class)->build(object, document, repr);
}
object->readAttr( "inkscape:original-d" );
@@ -237,8 +209,8 @@ sp_path_release(SPObject *object)
path->connEndPair.release();
- if (((SPObjectClass *) parent_class)->release) {
- ((SPObjectClass *) parent_class)->release(object);
+ if (((SPObjectClass *) sp_path_parent_class)->release) {
+ ((SPObjectClass *) sp_path_parent_class)->release(object);
}
}
@@ -294,8 +266,8 @@ sp_path_set(SPObject *object, unsigned int key, gchar const *value)
path->connEndPair.setAttr(key, value);
break;
default:
- if (((SPObjectClass *) parent_class)->set) {
- ((SPObjectClass *) parent_class)->set(object, key, value);
+ if (((SPObjectClass *) sp_path_parent_class)->set) {
+ ((SPObjectClass *) sp_path_parent_class)->set(object, key, value);
}
break;
}
@@ -337,8 +309,8 @@ g_message("sp_path_write writes 'd' attribute");
SP_PATH(shape)->connEndPair.writeRepr(repr);
- if (((SPObjectClass *)(parent_class))->write) {
- ((SPObjectClass *)(parent_class))->write(object, xml_doc, repr, flags);
+ if (((SPObjectClass *)(sp_path_parent_class))->write) {
+ ((SPObjectClass *)(sp_path_parent_class))->write(object, xml_doc, repr, flags);
}
return repr;
@@ -351,8 +323,8 @@ sp_path_update(SPObject *object, SPCtx *ctx, guint flags)
flags &= ~SP_OBJECT_USER_MODIFIED_FLAG_B; // since we change the description, it's not a "just translation" anymore
}
- if (((SPObjectClass *) parent_class)->update) {
- ((SPObjectClass *) parent_class)->update(object, ctx, flags);
+ if (((SPObjectClass *) sp_path_parent_class)->update) {
+ ((SPObjectClass *) sp_path_parent_class)->update(object, ctx, flags);
}
SPPath *path = SP_PATH(object);
diff --git a/src/sp-style-elem.cpp b/src/sp-style-elem.cpp
index 2e14ae5ff..da7a575b7 100644
--- a/src/sp-style-elem.cpp
+++ b/src/sp-style-elem.cpp
@@ -7,42 +7,16 @@
#include "style.h"
using Inkscape::XML::TEXT_NODE;
-static void sp_style_elem_init(SPStyleElem *style_elem);
-static void sp_style_elem_class_init(SPStyleElemClass *klass);
static void sp_style_elem_build(SPObject *object, SPDocument *doc, Inkscape::XML::Node *repr);
static void sp_style_elem_set(SPObject *object, unsigned const key, gchar const *const value);
static void sp_style_elem_read_content(SPObject *);
static Inkscape::XML::Node *sp_style_elem_write(SPObject *, Inkscape::XML::Document *, Inkscape::XML::Node *, guint flags);
-static SPObjectClass *parent_class;
-
-GType
-sp_style_elem_get_type()
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPStyleElemClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_style_elem_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(SPStyleElem),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_style_elem_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_OBJECT, "SPStyleElem", &info, (GTypeFlags) 0);
- }
-
- return type;
-}
+G_DEFINE_TYPE(SPStyleElem, sp_style_elem, SP_TYPE_OBJECT);
static void
sp_style_elem_class_init(SPStyleElemClass *klass)
{
- parent_class = (SPObjectClass *)g_type_class_ref(SP_TYPE_OBJECT);
/* FIXME */
klass->build = sp_style_elem_build;
@@ -89,8 +63,8 @@ sp_style_elem_set(SPObject *object, unsigned const key, gchar const *const value
/* title is ignored. */
default: {
- if (parent_class->set) {
- parent_class->set(object, key, value);
+ if (SP_OBJECT_CLASS(sp_style_elem_parent_class)->set) {
+ SP_OBJECT_CLASS(sp_style_elem_parent_class)->set(object, key, value);
}
break;
}
@@ -138,8 +112,8 @@ sp_style_elem_write(SPObject *const object, Inkscape::XML::Document *xml_doc, In
}
/* todo: media */
- if (((SPObjectClass *) parent_class)->write)
- ((SPObjectClass *) parent_class)->write(object, xml_doc, repr, flags);
+ if (((SPObjectClass *) sp_style_elem_parent_class)->write)
+ ((SPObjectClass *) sp_style_elem_parent_class)->write(object, xml_doc, repr, flags);
return repr;
}
@@ -402,8 +376,8 @@ sp_style_elem_build(SPObject *object, SPDocument *document, Inkscape::XML::Node
};
rec_add_listener(*repr, &nodeEventVector, object);
- if (((SPObjectClass *) parent_class)->build) {
- ((SPObjectClass *) parent_class)->build(object, document, repr);
+ if (((SPObjectClass *) sp_style_elem_parent_class)->build) {
+ ((SPObjectClass *) sp_style_elem_parent_class)->build(object, document, repr);
}
}
diff --git a/src/sp-symbol.cpp b/src/sp-symbol.cpp
index 56f862bf3..d4db403e3 100644
--- a/src/sp-symbol.cpp
+++ b/src/sp-symbol.cpp
@@ -26,9 +26,6 @@
#include "sp-symbol.h"
#include "document.h"
-static void sp_symbol_class_init (SPSymbolClass *klass);
-static void sp_symbol_init (SPSymbol *symbol);
-
static void sp_symbol_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
static void sp_symbol_release (SPObject *object);
static void sp_symbol_set (SPObject *object, unsigned int key, const gchar *value);
@@ -42,35 +39,13 @@ static void sp_symbol_hide (SPItem *item, unsigned int key);
static Geom::OptRect sp_symbol_bbox(SPItem const *item, Geom::Affine const &transform, SPItem::BBoxType type);
static void sp_symbol_print (SPItem *item, SPPrintContext *ctx);
-static SPGroupClass *parent_class;
-
-GType
-sp_symbol_get_type (void)
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof (SPSymbolClass),
- NULL, NULL,
- (GClassInitFunc) sp_symbol_class_init,
- NULL, NULL,
- sizeof (SPSymbol),
- 16,
- (GInstanceInitFunc) sp_symbol_init,
- NULL, /* value_table */
- };
- type = g_type_register_static (SP_TYPE_GROUP, "SPSymbol", &info, (GTypeFlags)0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPSymbol, sp_symbol, SP_TYPE_GROUP);
static void sp_symbol_class_init(SPSymbolClass *klass)
{
SPObjectClass *sp_object_class = (SPObjectClass *) klass;
SPItemClass *sp_item_class = (SPItemClass *) klass;
- parent_class = (SPGroupClass *)g_type_class_ref (SP_TYPE_GROUP);
-
sp_object_class->build = sp_symbol_build;
sp_object_class->release = sp_symbol_release;
sp_object_class->set = sp_symbol_set;
@@ -97,15 +72,15 @@ static void sp_symbol_build(SPObject *object, SPDocument *document, Inkscape::XM
object->readAttr( "viewBox" );
object->readAttr( "preserveAspectRatio" );
- if (((SPObjectClass *) parent_class)->build) {
- ((SPObjectClass *) parent_class)->build (object, document, repr);
+ if (((SPObjectClass *) sp_symbol_parent_class)->build) {
+ ((SPObjectClass *) sp_symbol_parent_class)->build (object, document, repr);
}
}
static void sp_symbol_release(SPObject *object)
{
- if (((SPObjectClass *) parent_class)->release) {
- ((SPObjectClass *) parent_class)->release (object);
+ if (((SPObjectClass *) sp_symbol_parent_class)->release) {
+ ((SPObjectClass *) sp_symbol_parent_class)->release (object);
}
}
@@ -202,16 +177,16 @@ static void sp_symbol_set(SPObject *object, unsigned int key, const gchar *value
}
break;
default:
- if (((SPObjectClass *) parent_class)->set)
- ((SPObjectClass *) parent_class)->set (object, key, value);
+ if (((SPObjectClass *) sp_symbol_parent_class)->set)
+ ((SPObjectClass *) sp_symbol_parent_class)->set (object, key, value);
break;
}
}
static void sp_symbol_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref)
{
- if (((SPObjectClass *) (parent_class))->child_added) {
- ((SPObjectClass *) (parent_class))->child_added (object, child, ref);
+ if (((SPObjectClass *) (sp_symbol_parent_class))->child_added) {
+ ((SPObjectClass *) (sp_symbol_parent_class))->child_added (object, child, ref);
}
}
@@ -315,8 +290,8 @@ static void sp_symbol_update(SPObject *object, SPCtx *ctx, guint flags)
}
// And invoke parent method
- if (((SPObjectClass *) (parent_class))->update) {
- ((SPObjectClass *) (parent_class))->update (object, (SPCtx *) &rctx, flags);
+ if (((SPObjectClass *) (sp_symbol_parent_class))->update) {
+ ((SPObjectClass *) (sp_symbol_parent_class))->update (object, (SPCtx *) &rctx, flags);
}
// As last step set additional transform of drawing group
@@ -326,8 +301,8 @@ static void sp_symbol_update(SPObject *object, SPCtx *ctx, guint flags)
}
} else {
// No-op
- if (((SPObjectClass *) (parent_class))->update) {
- ((SPObjectClass *) (parent_class))->update (object, ctx, flags);
+ if (((SPObjectClass *) (sp_symbol_parent_class))->update) {
+ ((SPObjectClass *) (sp_symbol_parent_class))->update (object, ctx, flags);
}
}
}
@@ -336,8 +311,8 @@ static void sp_symbol_modified(SPObject *object, guint flags)
{
SP_SYMBOL(object);
- if (((SPObjectClass *) (parent_class))->modified) {
- (* ((SPObjectClass *) (parent_class))->modified) (object, flags);
+ if (((SPObjectClass *) (sp_symbol_parent_class))->modified) {
+ (* ((SPObjectClass *) (sp_symbol_parent_class))->modified) (object, flags);
}
}
@@ -355,8 +330,8 @@ static Inkscape::XML::Node *sp_symbol_write(SPObject *object, Inkscape::XML::Doc
//XML Tree being used directly here while it shouldn't be.
repr->setAttribute("preserveAspectRatio", object->getRepr()->attribute("preserveAspectRatio"));
- if (((SPObjectClass *) (parent_class))->write) {
- ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr, flags);
+ if (((SPObjectClass *) (sp_symbol_parent_class))->write) {
+ ((SPObjectClass *) (sp_symbol_parent_class))->write (object, xml_doc, repr, flags);
}
return repr;
@@ -369,8 +344,8 @@ static Inkscape::DrawingItem *sp_symbol_show(SPItem *item, Inkscape::Drawing &dr
if (symbol->cloned) {
// Cloned <symbol> is actually renderable
- if (((SPItemClass *) (parent_class))->show) {
- ai = ((SPItemClass *) (parent_class))->show (item, drawing, key, flags);
+ if (((SPItemClass *) (sp_symbol_parent_class))->show) {
+ ai = ((SPItemClass *) (sp_symbol_parent_class))->show (item, drawing, key, flags);
Inkscape::DrawingGroup *g = dynamic_cast<Inkscape::DrawingGroup *>(ai);
if (g) {
g->setChildTransform(symbol->c2p);
@@ -387,8 +362,8 @@ static void sp_symbol_hide(SPItem *item, unsigned int key)
if (symbol->cloned) {
/* Cloned <symbol> is actually renderable */
- if (((SPItemClass *) (parent_class))->hide) {
- ((SPItemClass *) (parent_class))->hide (item, key);
+ if (((SPItemClass *) (sp_symbol_parent_class))->hide) {
+ ((SPItemClass *) (sp_symbol_parent_class))->hide (item, key);
}
}
}
@@ -401,15 +376,15 @@ static Geom::OptRect sp_symbol_bbox(SPItem const *item, Geom::Affine const &tran
if (symbol->cloned) {
// Cloned <symbol> is actually renderable
- if (((SPItemClass *) (parent_class))->bbox) {
+ if (((SPItemClass *) (sp_symbol_parent_class))->bbox) {
Geom::Affine const a( symbol->c2p * transform );
- bbox = ((SPItemClass *) (parent_class))->bbox(item, a, type);
+ bbox = ((SPItemClass *) (sp_symbol_parent_class))->bbox(item, a, type);
}
} else {
// Need bounding box for Symbols dialog
Geom::Affine const a;
- bbox = ((SPItemClass *) (parent_class))->bbox(item, a, type);
+ bbox = ((SPItemClass *) (sp_symbol_parent_class))->bbox(item, a, type);
}
return bbox;
}
@@ -422,8 +397,8 @@ static void sp_symbol_print(SPItem *item, SPPrintContext *ctx)
sp_print_bind(ctx, symbol->c2p, 1.0);
- if (((SPItemClass *) (parent_class))->print) {
- ((SPItemClass *) (parent_class))->print (item, ctx);
+ if (((SPItemClass *) (sp_symbol_parent_class))->print) {
+ ((SPItemClass *) (sp_symbol_parent_class))->print (item, ctx);
}
sp_print_release (ctx);
diff --git a/src/text-context.cpp b/src/text-context.cpp
index 90715b805..1ee21e732 100644
--- a/src/text-context.cpp
+++ b/src/text-context.cpp
@@ -57,8 +57,6 @@
using Inkscape::ControlManager;
using Inkscape::DocumentUndo;
-static void sp_text_context_class_init(SPTextContextClass *klass);
-static void sp_text_context_init(SPTextContext *text_context);
static void sp_text_context_dispose(GObject *obj);
static void sp_text_context_setup(SPEventContext *ec);
@@ -81,34 +79,13 @@ static gint sptc_focus_in(GtkWidget *widget, GdkEventFocus *event, SPTextContext
static gint sptc_focus_out(GtkWidget *widget, GdkEventFocus *event, SPTextContext *tc);
static void sptc_commit(GtkIMContext *imc, gchar *string, SPTextContext *tc);
-static SPEventContextClass *parent_class;
-
-GType sp_text_context_get_type()
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPTextContextClass),
- NULL, NULL,
- (GClassInitFunc) sp_text_context_class_init,
- NULL, NULL,
- sizeof(SPTextContext),
- 4,
- (GInstanceInitFunc) sp_text_context_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPTextContext", &info, (GTypeFlags)0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPTextContext, sp_text_context, SP_TYPE_EVENT_CONTEXT);
static void sp_text_context_class_init(SPTextContextClass *klass)
{
GObjectClass *object_class=G_OBJECT_CLASS(klass);
SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass);
- parent_class = SP_EVENT_CONTEXT_CLASS(g_type_class_peek_parent(klass));
-
object_class->dispose = sp_text_context_dispose;
event_context_class->setup = sp_text_context_setup;
@@ -173,8 +150,8 @@ static void sp_text_context_dispose(GObject *obj)
tc->text_sel_end.~iterator();
tc->text_sel_start.~iterator();
tc->text_selection_quads.~vector();
- if (G_OBJECT_CLASS(parent_class)->dispose) {
- G_OBJECT_CLASS(parent_class)->dispose(obj);
+ if (G_OBJECT_CLASS(sp_text_context_parent_class)->dispose) {
+ G_OBJECT_CLASS(sp_text_context_parent_class)->dispose(obj);
}
if (tc->grabbed) {
sp_canvas_item_ungrab(tc->grabbed, GDK_CURRENT_TIME);
@@ -236,8 +213,8 @@ static void sp_text_context_setup(SPEventContext *ec)
}
}
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->setup)
- (SP_EVENT_CONTEXT_CLASS(parent_class))->setup(ec);
+ if ((SP_EVENT_CONTEXT_CLASS(sp_text_context_parent_class))->setup)
+ (SP_EVENT_CONTEXT_CLASS(sp_text_context_parent_class))->setup(ec);
ec->shape_editor = new ShapeEditor(ec->desktop);
@@ -455,8 +432,8 @@ static gint sp_text_context_item_handler(SPEventContext *event_context, SPItem *
}
if (!ret) {
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->item_handler)
- ret = (SP_EVENT_CONTEXT_CLASS(parent_class))->item_handler(event_context, item, event);
+ if ((SP_EVENT_CONTEXT_CLASS(sp_text_context_parent_class))->item_handler)
+ ret = (SP_EVENT_CONTEXT_CLASS(sp_text_context_parent_class))->item_handler(event_context, item, event);
}
return ret;
@@ -1324,8 +1301,8 @@ static gint sp_text_context_root_handler(SPEventContext *const event_context, Gd
}
// if nobody consumed it so far
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler) { // and there's a handler in parent context,
- return (SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler(event_context, event); // send event to parent
+ if ((SP_EVENT_CONTEXT_CLASS(sp_text_context_parent_class))->root_handler) { // and there's a handler in parent context,
+ return (SP_EVENT_CONTEXT_CLASS(sp_text_context_parent_class))->root_handler(event_context, event); // send event to parent
} else {
return FALSE; // return "I did nothing" value so that global shortcuts can be activated
}
diff --git a/src/tweak-context.cpp b/src/tweak-context.cpp
index 870b9cce1..28e4c1629 100644
--- a/src/tweak-context.cpp
+++ b/src/tweak-context.cpp
@@ -81,35 +81,13 @@ using Inkscape::DocumentUndo;
#define DYNA_MIN_WIDTH 1.0e-6
-static void sp_tweak_context_class_init(SPTweakContextClass *klass);
-static void sp_tweak_context_init(SPTweakContext *ddc);
static void sp_tweak_context_dispose(GObject *object);
static void sp_tweak_context_setup(SPEventContext *ec);
static void sp_tweak_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
static gint sp_tweak_context_root_handler(SPEventContext *ec, GdkEvent *event);
-static SPEventContextClass *parent_class;
-
-GType
-sp_tweak_context_get_type(void)
-{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof(SPTweakContextClass),
- NULL, NULL,
- (GClassInitFunc) sp_tweak_context_class_init,
- NULL, NULL,
- sizeof(SPTweakContext),
- 4,
- (GInstanceInitFunc) sp_tweak_context_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPTweakContext", &info, (GTypeFlags)0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPTweakContext, sp_tweak_context, SP_TYPE_EVENT_CONTEXT);
static void
sp_tweak_context_class_init(SPTweakContextClass *klass)
@@ -117,8 +95,6 @@ sp_tweak_context_class_init(SPTweakContextClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS(klass);
SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass);
- parent_class = SP_EVENT_CONTEXT_CLASS(g_type_class_peek_parent(klass));
-
object_class->dispose = sp_tweak_context_dispose;
event_context_class->setup = sp_tweak_context_setup;
@@ -173,7 +149,7 @@ sp_tweak_context_dispose(GObject *object)
delete tc->_message_context;
}
- G_OBJECT_CLASS(parent_class)->dispose(object);
+ G_OBJECT_CLASS(sp_tweak_context_parent_class)->dispose(object);
}
static bool is_transform_mode (gint mode)
@@ -290,8 +266,8 @@ sp_tweak_context_setup(SPEventContext *ec)
{
SPTweakContext *tc = SP_TWEAK_CONTEXT(ec);
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->setup) {
- (SP_EVENT_CONTEXT_CLASS(parent_class))->setup(ec);
+ if ((SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->setup) {
+ (SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->setup(ec);
}
{
@@ -1535,8 +1511,8 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
}
if (!ret) {
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler) {
- ret = (SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler(event_context, event);
+ if ((SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->root_handler) {
+ ret = (SP_EVENT_CONTEXT_CLASS(sp_tweak_context_parent_class))->root_handler(event_context, event);
}
}
diff --git a/src/zoom-context.cpp b/src/zoom-context.cpp
index 9311901d3..7a5e4f90e 100644
--- a/src/zoom-context.cpp
+++ b/src/zoom-context.cpp
@@ -26,48 +26,23 @@
#include "zoom-context.h"
-static void sp_zoom_context_class_init(SPZoomContextClass *klass);
-static void sp_zoom_context_init(SPZoomContext *zoom_context);
static void sp_zoom_context_setup(SPEventContext *ec);
static void sp_zoom_context_finish (SPEventContext *ec);
static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent *event);
static gint sp_zoom_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event);
-static SPEventContextClass *parent_class;
-
static gint xp = 0, yp = 0; // where drag started
static gint tolerance = 0;
static bool within_tolerance = false;
static bool escaped;
-GType sp_zoom_context_get_type(void)
-{
- static GType type = 0;
-
- if (!type) {
- GTypeInfo info = {
- sizeof(SPZoomContextClass),
- NULL, NULL,
- (GClassInitFunc) sp_zoom_context_class_init,
- NULL, NULL,
- sizeof(SPZoomContext),
- 4,
- (GInstanceInitFunc) sp_zoom_context_init,
- NULL, /* value_table */
- };
- type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPZoomContext", &info, (GTypeFlags) 0);
- }
-
- return type;
-}
+G_DEFINE_TYPE(SPZoomContext, sp_zoom_context, SP_TYPE_EVENT_CONTEXT);
static void sp_zoom_context_class_init(SPZoomContextClass *klass)
{
SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass);
- parent_class = SP_EVENT_CONTEXT_CLASS(g_type_class_peek_parent(klass));
-
event_context_class->setup = sp_zoom_context_setup;
event_context_class->finish = sp_zoom_context_finish;
@@ -107,8 +82,8 @@ static void sp_zoom_context_setup(SPEventContext *ec)
ec->enableGrDrag();
}
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->setup) {
- (SP_EVENT_CONTEXT_CLASS(parent_class))->setup(ec);
+ if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup) {
+ (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->setup(ec);
}
}
@@ -116,8 +91,8 @@ static gint sp_zoom_context_item_handler(SPEventContext *event_context, SPItem *
{
gint ret = FALSE;
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->item_handler) {
- ret = (SP_EVENT_CONTEXT_CLASS(parent_class))->item_handler (event_context, item, event);
+ if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler) {
+ ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->item_handler (event_context, item, event);
}
return ret;
@@ -264,8 +239,8 @@ static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent
}
if (!ret) {
- if ((SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler) {
- ret = (SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler(event_context, event);
+ if ((SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler) {
+ ret = (SP_EVENT_CONTEXT_CLASS(sp_zoom_context_parent_class))->root_handler(event_context, event);
}
}