diff options
| author | Alex Valavanis <valavanisalex@gmail.com> | 2013-01-26 19:33:04 +0000 |
|---|---|---|
| committer | Alex Valavanis <valavanisalex@gmail.com> | 2013-01-26 19:33:04 +0000 |
| commit | 1615436543169f305d1df4d830ed8f5ec5dc75ed (patch) | |
| tree | 3357241d19485b7a0e0e190d66474cd58c8d9166 /src | |
| parent | More GObject boilerplate reduction (diff) | |
| download | inkscape-1615436543169f305d1df4d830ed8f5ec5dc75ed.tar.gz inkscape-1615436543169f305d1df4d830ed8f5ec5dc75ed.zip | |
More GObject boilerplate reduction
(bzr r12065)
Diffstat (limited to 'src')
43 files changed, 463 insertions, 1544 deletions
diff --git a/src/connector-context.cpp b/src/connector-context.cpp index 24a7203ac..9631eecb1 100644 --- a/src/connector-context.cpp +++ b/src/connector-context.cpp @@ -109,8 +109,6 @@ using Inkscape::DocumentUndo; -static void sp_connector_context_class_init(SPConnectorContextClass *klass); -static void sp_connector_context_init(SPConnectorContext *conn_context); static void sp_connector_context_dispose(GObject *object); static void sp_connector_context_setup(SPEventContext *ec); @@ -156,8 +154,6 @@ static void shape_event_attr_changed(Inkscape::XML::Node *repr, gchar const *nam /*static Geom::Point connector_drag_origin_w(0, 0); static bool connector_within_tolerance = false;*/ -static SPEventContextClass *parent_class; - static Inkscape::XML::NodeEventVector shape_repr_events = { NULL, /* child_added */ @@ -175,26 +171,7 @@ static Inkscape::XML::NodeEventVector layer_repr_events = { NULL /* order_changed */ }; - -GType -sp_connector_context_get_type(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPConnectorContextClass), - NULL, NULL, - (GClassInitFunc) sp_connector_context_class_init, - NULL, NULL, - sizeof(SPConnectorContext), - 4, - (GInstanceInitFunc) sp_connector_context_init, - NULL, /* value_table */ - }; - type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPConnectorContext", &info, (GTypeFlags)0); - } - return type; -} +G_DEFINE_TYPE(SPConnectorContext, sp_connector_context, SP_TYPE_EVENT_CONTEXT); static void sp_connector_context_class_init(SPConnectorContextClass *klass) @@ -202,8 +179,6 @@ sp_connector_context_class_init(SPConnectorContextClass *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_connector_context_dispose; event_context_class->setup = sp_connector_context_setup; @@ -283,7 +258,7 @@ sp_connector_context_dispose(GObject *object) } g_assert( cc->newConnRef == NULL ); - G_OBJECT_CLASS(parent_class)->dispose(object); + G_OBJECT_CLASS(sp_connector_context_parent_class)->dispose(object); } @@ -293,8 +268,8 @@ sp_connector_context_setup(SPEventContext *ec) SPConnectorContext *cc = SP_CONNECTOR_CONTEXT(ec); SPDesktop *dt = ec->desktop; - if ((SP_EVENT_CONTEXT_CLASS(parent_class))->setup) { - (SP_EVENT_CONTEXT_CLASS(parent_class))->setup(ec); + if ((SP_EVENT_CONTEXT_CLASS(sp_connector_context_parent_class))->setup) { + (SP_EVENT_CONTEXT_CLASS(sp_connector_context_parent_class))->setup(ec); } cc->selection = sp_desktop_selection(dt); @@ -358,8 +333,8 @@ sp_connector_context_finish(SPEventContext *ec) spcc_connector_finish(cc); cc->state = SP_CONNECTOR_CONTEXT_IDLE; - if ((SP_EVENT_CONTEXT_CLASS(parent_class))->finish) { - (SP_EVENT_CONTEXT_CLASS(parent_class))->finish(ec); + if ((SP_EVENT_CONTEXT_CLASS(sp_connector_context_parent_class))->finish) { + (SP_EVENT_CONTEXT_CLASS(sp_connector_context_parent_class))->finish(ec); } if (cc->selection) { @@ -560,7 +535,7 @@ sp_connector_context_root_handler(SPEventContext *ec, GdkEvent *event) if (!ret) { gint (*const parent_root_handler)(SPEventContext *, GdkEvent *) - = (SP_EVENT_CONTEXT_CLASS(parent_class))->root_handler; + = (SP_EVENT_CONTEXT_CLASS(sp_connector_context_parent_class))->root_handler; if (parent_root_handler) { ret = parent_root_handler(ec, event); } diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index eb51860ab..8b20ab2de 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -227,21 +227,6 @@ public: static int pickCurrentItem(SPCanvas *canvas, GdkEvent *event); /** - * Class initialization function for SPCanvasClass. - */ - static void classInit(SPCanvasClass *klass); - - /** - * Callback: object initialization for SPCanvas. - */ - static void init(SPCanvas *canvas); - - /** - * Destroy handler for SPCanvas. - */ - static void dispose(GObject *object); - - /** * The canvas widget's realize callback. */ static void realize(GtkWidget *widget); @@ -369,25 +354,11 @@ public: static void add_idle(SPCanvas *canvas); /** - * Convenience function to remove the idle handler of a canvas. - */ - static void remove_idle(SPCanvas *canvas); - - /** - * Removes the transient state of the canvas (idle handler, grabs). - */ - static void shutdown_transients(SPCanvas *canvas); - - /** * Update callback for canvas widget. */ static void requestCanvasUpdate(SPCanvas *canvas); - - static GtkWidgetClass *parentClass; }; -GtkWidgetClass *SPCanvasImpl::parentClass = 0; - GType SPCanvasItem::getType() { static GType object_type = 0; @@ -437,9 +408,9 @@ void sp_canvas_item_class_init(SPCanvasItemClass *klass) G_TYPE_BOOLEAN, 1, GDK_TYPE_EVENT); - gobject_class->dispose = sp_canvas_item_dispose; + gobject_class->dispose = sp_canvas_item_dispose; gobject_class->finalize = sp_canvas_item_finalize; - klass->destroy = sp_canvas_item_real_destroy; + klass->destroy = sp_canvas_item_real_destroy; object_signals[DESTROY] = g_signal_new ("destroy", @@ -1218,68 +1189,46 @@ void SPCanvasGroup::remove(SPCanvasItem *item) } } -/** - * Registers the SPCanvas class if necessary, and returns the type ID - * associated to it. - * - * @return The type ID of the SPCanvas class. - */ -GType SPCanvas::getType(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPCanvasClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)SPCanvasImpl::classInit, - 0, // class_finalize - 0, // class_data - sizeof(SPCanvas), - 0, // n_preallocs - (GInstanceInitFunc)SPCanvasImpl::init, - 0 // value_table - }; - type = g_type_register_static(GTK_TYPE_WIDGET, "SPCanvas", &info, static_cast<GTypeFlags>(0)); - } - return type; -} +static void sp_canvas_dispose (GObject *object); +static void sp_canvas_shutdown_transients(SPCanvas *canvas); -void SPCanvasImpl::classInit(SPCanvasClass *klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; +G_DEFINE_TYPE(SPCanvas, sp_canvas, GTK_TYPE_WIDGET); - parentClass = reinterpret_cast<GtkWidgetClass *>(g_type_class_peek_parent(klass)); +static void +sp_canvas_class_init(SPCanvasClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS(klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - object_class->dispose = SPCanvasImpl::dispose; + object_class->dispose = sp_canvas_dispose; - widget_class->realize = SPCanvasImpl::realize; - widget_class->unrealize = SPCanvasImpl::unrealize; + widget_class->realize = SPCanvasImpl::realize; + widget_class->unrealize = SPCanvasImpl::unrealize; #if GTK_CHECK_VERSION(3,0,0) - widget_class->get_preferred_width = SPCanvasImpl::getPreferredWidth; + widget_class->get_preferred_width = SPCanvasImpl::getPreferredWidth; widget_class->get_preferred_height = SPCanvasImpl::getPreferredHeight; - widget_class->draw = SPCanvasImpl::handleDraw; + widget_class->draw = SPCanvasImpl::handleDraw; #else - widget_class->size_request = SPCanvasImpl::sizeRequest; - widget_class->expose_event = SPCanvasImpl::handleExpose; + widget_class->size_request = SPCanvasImpl::sizeRequest; + widget_class->expose_event = SPCanvasImpl::handleExpose; #endif - widget_class->size_allocate = SPCanvasImpl::sizeAllocate; - widget_class->button_press_event = SPCanvasImpl::button; + widget_class->size_allocate = SPCanvasImpl::sizeAllocate; + widget_class->button_press_event = SPCanvasImpl::button; widget_class->button_release_event = SPCanvasImpl::button; - widget_class->motion_notify_event = SPCanvasImpl::handleMotion; - widget_class->scroll_event = SPCanvasImpl::handleScroll; - widget_class->key_press_event = SPCanvasImpl::handleKeyEvent; - widget_class->key_release_event = SPCanvasImpl::handleKeyEvent; - widget_class->enter_notify_event = SPCanvasImpl::handleCrossing; - widget_class->leave_notify_event = SPCanvasImpl::handleCrossing; - widget_class->focus_in_event = SPCanvasImpl::handleFocusIn; - widget_class->focus_out_event = SPCanvasImpl::handleFocusOut; + widget_class->motion_notify_event = SPCanvasImpl::handleMotion; + widget_class->scroll_event = SPCanvasImpl::handleScroll; + widget_class->key_press_event = SPCanvasImpl::handleKeyEvent; + widget_class->key_release_event = SPCanvasImpl::handleKeyEvent; + widget_class->enter_notify_event = SPCanvasImpl::handleCrossing; + widget_class->leave_notify_event = SPCanvasImpl::handleCrossing; + widget_class->focus_in_event = SPCanvasImpl::handleFocusIn; + widget_class->focus_out_event = SPCanvasImpl::handleFocusOut; } -void SPCanvasImpl::init(SPCanvas *canvas) +static void +sp_canvas_init(SPCanvas *canvas) { gtk_widget_set_has_window (GTK_WIDGET (canvas), TRUE); gtk_widget_set_double_buffered (GTK_WIDGET (canvas), FALSE); @@ -1318,7 +1267,7 @@ void SPCanvasImpl::init(SPCanvas *canvas) canvas->is_scrolling = false; } -void SPCanvasImpl::remove_idle(SPCanvas *canvas) +static void sp_canvas_remove_idle(SPCanvas *canvas) { if (canvas->idle_id) { g_source_remove (canvas->idle_id); @@ -1326,7 +1275,8 @@ void SPCanvasImpl::remove_idle(SPCanvas *canvas) } } -void SPCanvasImpl::shutdown_transients(SPCanvas *canvas) +static void +sp_canvas_shutdown_transients(SPCanvas *canvas) { // We turn off the need_redraw flag, since if the canvas is mapped again // it will request a redraw anyways. We do not turn off the need_update @@ -1352,10 +1302,11 @@ void SPCanvasImpl::shutdown_transients(SPCanvas *canvas) #endif } - remove_idle(canvas); + sp_canvas_remove_idle(canvas); } -void SPCanvasImpl::dispose(GObject *object) +static void +sp_canvas_dispose(GObject *object) { SPCanvas *canvas = SP_CANVAS(object); @@ -1364,12 +1315,12 @@ void SPCanvasImpl::dispose(GObject *object) canvas->root = NULL; } - shutdown_transients(canvas); + sp_canvas_shutdown_transients(canvas); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) canvas->cms_key.~ustring(); #endif - if (G_OBJECT_CLASS(parentClass)->dispose) { - (* G_OBJECT_CLASS(parentClass)->dispose)(object); + if (G_OBJECT_CLASS(sp_canvas_parent_class)->dispose) { + (* G_OBJECT_CLASS(sp_canvas_parent_class)->dispose)(object); } } @@ -1388,7 +1339,7 @@ void trackLatency(GdkEvent const *event) GtkWidget *SPCanvas::createAA() { - SPCanvas *canvas = reinterpret_cast<SPCanvas *>(g_object_new(SPCanvas::getType(), NULL)); + SPCanvas *canvas = SP_CANVAS(g_object_new(SP_TYPE_CANVAS, NULL)); return GTK_WIDGET(canvas); } @@ -1456,10 +1407,10 @@ void SPCanvasImpl::unrealize(GtkWidget *widget) canvas->grabbed_item = NULL; canvas->focused_item = NULL; - shutdown_transients(canvas); + sp_canvas_shutdown_transients(canvas); - if (GTK_WIDGET_CLASS(parentClass)->unrealize) - (* GTK_WIDGET_CLASS(parentClass)->unrealize)(widget); + if (GTK_WIDGET_CLASS(sp_canvas_parent_class)->unrealize) + (* GTK_WIDGET_CLASS(sp_canvas_parent_class)->unrealize)(widget); } diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h index f0366a2e5..b570b739e 100644 --- a/src/display/sp-canvas.h +++ b/src/display/sp-canvas.h @@ -39,7 +39,7 @@ G_BEGIN_DECLS -#define SP_TYPE_CANVAS (SPCanvas::getType()) +#define SP_TYPE_CANVAS (sp_canvas_get_type()) #define SP_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_CANVAS, SPCanvas)) #define SP_IS_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_CANVAS)) @@ -71,14 +71,14 @@ G_END_DECLS class SPCanvasImpl; +GType sp_canvas_get_type() G_GNUC_CONST; + /** * Port of GnomeCanvas for inkscape needs. */ struct SPCanvas { friend class SPCanvasImpl; - static GType getType(); - /** * Returns new canvas as widget. */ diff --git a/src/dyna-draw-context.cpp b/src/dyna-draw-context.cpp index b30950f5a..742d52f09 100644 --- a/src/dyna-draw-context.cpp +++ b/src/dyna-draw-context.cpp @@ -81,8 +81,6 @@ using Inkscape::DocumentUndo; #define DYNA_MIN_WIDTH 1.0e-6 -static void sp_dyna_draw_context_class_init(SPDynaDrawContextClass *klass); -static void sp_dyna_draw_context_init(SPDynaDrawContext *ddc); static void sp_dyna_draw_context_dispose(GObject *object); static void sp_dyna_draw_context_setup(SPEventContext *ec); @@ -101,29 +99,7 @@ static Geom::Point sp_dyna_draw_get_npoint(SPDynaDrawContext const *ddc, Geom::P static Geom::Point sp_dyna_draw_get_vpoint(SPDynaDrawContext const *ddc, Geom::Point n); static void draw_temporary_box(SPDynaDrawContext *dc); - -static SPEventContextClass *dd_parent_class = 0; - -GType sp_dyna_draw_context_get_type(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPDynaDrawContextClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)sp_dyna_draw_context_class_init, - 0, // class_finalize - 0, // class_data - sizeof(SPDynaDrawContext), - 0, // n_preallocs - (GInstanceInitFunc)sp_dyna_draw_context_init, - 0 // value_table - }; - type = g_type_register_static(SP_TYPE_COMMON_CONTEXT, "SPDynaDrawContext", &info, static_cast<GTypeFlags>(0)); - } - return type; -} +G_DEFINE_TYPE(SPDynaDrawContext, sp_dyna_draw_context, SP_TYPE_COMMON_CONTEXT); static void sp_dyna_draw_context_class_init(SPDynaDrawContextClass *klass) @@ -131,8 +107,6 @@ sp_dyna_draw_context_class_init(SPDynaDrawContextClass *klass) GObjectClass *object_class = G_OBJECT_CLASS(klass); SPEventContextClass *event_context_class = SP_EVENT_CONTEXT_CLASS(klass); - dd_parent_class = SP_EVENT_CONTEXT_CLASS(g_type_class_peek_parent(klass)); - object_class->dispose = sp_dyna_draw_context_dispose; event_context_class->setup = sp_dyna_draw_context_setup; @@ -182,7 +156,7 @@ sp_dyna_draw_context_dispose(GObject *object) } - G_OBJECT_CLASS(dd_parent_class)->dispose(object); + G_OBJECT_CLASS(sp_dyna_draw_context_parent_class)->dispose(object); ddc->hatch_pointer_past.~list(); ddc->hatch_nearest_past.~list(); @@ -195,8 +169,8 @@ sp_dyna_draw_context_setup(SPEventContext *ec) { SPDynaDrawContext *ddc = SP_DYNA_DRAW_CONTEXT(ec); - if ((SP_EVENT_CONTEXT_CLASS(dd_parent_class))->setup) - (SP_EVENT_CONTEXT_CLASS(dd_parent_class))->setup(ec); + if ((SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->setup) + (SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->setup(ec); ddc->accumulated = new SPCurve(); ddc->currentcurve = new SPCurve(); @@ -262,8 +236,8 @@ sp_dyna_draw_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val) ddc->keep_selected = val->getBool(); } else { //pass on up to parent class to handle common attributes. - if ( dd_parent_class->set ) { - dd_parent_class->set(ec, val); + if ( SP_COMMON_CONTEXT_CLASS(sp_dyna_draw_context_parent_class)->set ) { + SP_COMMON_CONTEXT_CLASS(sp_dyna_draw_context_parent_class)->set(ec, val); } } @@ -974,8 +948,8 @@ sp_dyna_draw_context_root_handler(SPEventContext *event_context, } if (!ret) { - if ((SP_EVENT_CONTEXT_CLASS(dd_parent_class))->root_handler) { - ret = (SP_EVENT_CONTEXT_CLASS(dd_parent_class))->root_handler(event_context, event); + if ((SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->root_handler) { + ret = (SP_EVENT_CONTEXT_CLASS(sp_dyna_draw_context_parent_class))->root_handler(event_context, event); } } diff --git a/src/ege-adjustment-action.cpp b/src/ege-adjustment-action.cpp index 8253818d2..5a827096f 100644 --- a/src/ege-adjustment-action.cpp +++ b/src/ege-adjustment-action.cpp @@ -50,8 +50,6 @@ #include "ui/widget/gimpspinscale.h" -static void ege_adjustment_action_class_init( EgeAdjustmentActionClass* klass ); -static void ege_adjustment_action_init( EgeAdjustmentAction* action ); static void ege_adjustment_action_finalize( GObject* object ); static void ege_adjustment_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec ); static void ege_adjustment_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec ); @@ -70,8 +68,6 @@ static void ege_adjustment_action_defocus( EgeAdjustmentAction* action ); static void egeAct_free_description( gpointer data, gpointer user_data ); static void egeAct_free_all_descriptions( EgeAdjustmentAction* action ); - -static GtkActionClass* gParentClass = 0; static EgeCreateAdjWidgetCB gFactoryCb = 0; static GQuark gDataName = 0; @@ -146,34 +142,11 @@ enum { BUMP_CUSTOM = 100 }; -GType ege_adjustment_action_get_type( void ) -{ - static GType myType = 0; - if ( !myType ) { - static const GTypeInfo myInfo = { - sizeof( EgeAdjustmentActionClass ), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)ege_adjustment_action_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof( EgeAdjustmentAction ), - 0, /* n_preallocs */ - (GInstanceInitFunc)ege_adjustment_action_init, - NULL - }; - - myType = g_type_register_static( GTK_TYPE_ACTION, "EgeAdjustmentAction", &myInfo, (GTypeFlags)0 ); - } - - return myType; -} - +G_DEFINE_TYPE(EgeAdjustmentAction, ege_adjustment_action, GTK_TYPE_ACTION); static void ege_adjustment_action_class_init( EgeAdjustmentActionClass* klass ) { if ( klass ) { - gParentClass = GTK_ACTION_CLASS( g_type_class_peek_parent( klass ) ); GObjectClass * objClass = G_OBJECT_CLASS( klass ); gDataName = g_quark_from_string("ege-adj-action"); @@ -308,8 +281,8 @@ static void ege_adjustment_action_finalize( GObject* object ) egeAct_free_all_descriptions( action ); - if ( G_OBJECT_CLASS(gParentClass)->finalize ) { - (*G_OBJECT_CLASS(gParentClass)->finalize)(object); + if ( G_OBJECT_CLASS(ege_adjustment_action_parent_class)->finalize ) { + (*G_OBJECT_CLASS(ege_adjustment_action_parent_class)->finalize)(object); } } @@ -772,7 +745,7 @@ static GtkWidget* create_menu_item( GtkAction* action ) gtk_widget_show_all( subby ); g_value_unset( &value ); } else { - item = gParentClass->create_menu_item( action ); + item = GTK_ACTION_CLASS(ege_adjustment_action_parent_class)->create_menu_item( action ); } return item; @@ -910,7 +883,7 @@ static GtkWidget* create_tool_item( GtkAction* action ) g_value_unset( &value ); } else { - item = gParentClass->create_tool_item( action ); + item = GTK_ACTION_CLASS(ege_adjustment_action_parent_class)->create_tool_item( action ); } return item; @@ -918,12 +891,12 @@ static GtkWidget* create_tool_item( GtkAction* action ) static void connect_proxy( GtkAction *action, GtkWidget *proxy ) { - gParentClass->connect_proxy( action, proxy ); + GTK_ACTION_CLASS(ege_adjustment_action_parent_class)->connect_proxy( action, proxy ); } static void disconnect_proxy( GtkAction *action, GtkWidget *proxy ) { - gParentClass->disconnect_proxy( action, proxy ); + GTK_ACTION_CLASS(ege_adjustment_action_parent_class)->disconnect_proxy( action, proxy ); } void ege_adjustment_action_defocus( EgeAdjustmentAction* action ) diff --git a/src/ege-color-prof-tracker.cpp b/src/ege-color-prof-tracker.cpp index c0e095a98..2e1b8188f 100644 --- a/src/ege-color-prof-tracker.cpp +++ b/src/ege-color-prof-tracker.cpp @@ -90,11 +90,9 @@ enum { ADDED, REMOVED, MODIFIED, - LAST_SIGNAL}; - + LAST_SIGNAL +}; -static void ege_color_prof_tracker_class_init( EgeColorProfTrackerClass* klass ); -static void ege_color_prof_tracker_init( EgeColorProfTracker* tracker ); static void ege_color_prof_tracker_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec ); static void ege_color_prof_tracker_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec ); @@ -114,7 +112,6 @@ void handle_property_change(GdkScreen* screen, const gchar* name); void add_x11_tracking_for_screen(GdkScreen* screen, ScreenTrack* screenTrack); #endif /* GDK_WINDOWING_X11 */ -static GObjectClass* gParentClass = 0; static guint signals[LAST_SIGNAL] = {0}; static GSList* tracked_screens = 0; @@ -140,33 +137,11 @@ static void clear_profile( GdkScreen* screen, guint monitor ); static void set_profile( GdkScreen* screen, guint monitor, const guint8* data, guint len ); static void track_screen( GdkScreen* screen, EgeColorProfTracker* tracker ); -GType ege_color_prof_tracker_get_type( void ) -{ - static GType myType = 0; - if ( !myType ) { - static const GTypeInfo myInfo = { - sizeof( EgeColorProfTrackerClass ), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)ege_color_prof_tracker_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof( EgeColorProfTracker ), - 0, /* n_preallocs */ - (GInstanceInitFunc)ege_color_prof_tracker_init, - NULL - }; - - myType = g_type_register_static( G_TYPE_OBJECT, "EgeColorProfTracker", &myInfo, (GTypeFlags)0 ); - } - - return myType; -} +G_DEFINE_TYPE(EgeColorProfTracker, ege_color_prof_tracker, G_TYPE_OBJECT); void ege_color_prof_tracker_class_init( EgeColorProfTrackerClass* klass ) { if ( klass ) { - gParentClass = G_OBJECT_CLASS( g_type_class_peek_parent( klass ) ); GObjectClass* objClass = G_OBJECT_CLASS( klass ); objClass->get_property = ege_color_prof_tracker_get_property; diff --git a/src/ege-select-one-action.cpp b/src/ege-select-one-action.cpp index a5d92e809..33cfd04f2 100644 --- a/src/ege-select-one-action.cpp +++ b/src/ege-select-one-action.cpp @@ -49,9 +49,6 @@ enum { CHANGED = 0, LAST_SIGNAL}; - -static void ege_select_one_action_class_init( EgeSelectOneActionClass* klass ); -static void ege_select_one_action_init( EgeSelectOneAction* action ); static void ege_select_one_action_finalize( GObject* action ); static void ege_select_one_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec ); static void ege_select_one_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec ); @@ -73,7 +70,6 @@ static void disconnect_proxy( GtkAction *action, GtkWidget *proxy ); static int scan_max_width( GtkTreeModel *model, gint labelColumn ); -static GtkActionClass* gParentClass = 0; static guint signals[LAST_SIGNAL] = {0}; static GQuark gDataName = 0; @@ -126,28 +122,7 @@ enum { PROP_SELECTION }; -GType ege_select_one_action_get_type( void ) -{ - static GType myType = 0; - if ( !myType ) { - static const GTypeInfo myInfo = { - sizeof( EgeSelectOneActionClass ), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)ege_select_one_action_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof( EgeSelectOneAction ), - 0, /* n_preallocs */ - (GInstanceInitFunc)ege_select_one_action_init, - NULL - }; - - myType = g_type_register_static( GTK_TYPE_ACTION, "EgeSelectOneAction", &myInfo, (GTypeFlags)0 ); - } - - return myType; -} +G_DEFINE_TYPE(EgeSelectOneAction, ege_select_one_action, GTK_TYPE_ACTION); GtkTreeModel *ege_select_one_action_get_model(EgeSelectOneAction* action ){ return GTK_TREE_MODEL(action->private_data->model); @@ -155,7 +130,6 @@ GtkTreeModel *ege_select_one_action_get_model(EgeSelectOneAction* action ){ void ege_select_one_action_class_init( EgeSelectOneActionClass* klass ) { if ( klass ) { - gParentClass = GTK_ACTION_CLASS( g_type_class_peek_parent( klass ) ); GObjectClass* objClass = G_OBJECT_CLASS( klass ); gDataName = g_quark_from_string("ege-select1-action"); @@ -292,8 +266,8 @@ void ege_select_one_action_finalize( GObject* object ) g_free( action->private_data->appearance ); g_free( action->private_data->selection ); - if ( G_OBJECT_CLASS(gParentClass)->finalize ) { - (*G_OBJECT_CLASS(gParentClass)->finalize)(object); + if ( G_OBJECT_CLASS(ege_select_one_action_parent_class)->finalize ) { + (*G_OBJECT_CLASS(ege_select_one_action_parent_class)->finalize)(object); } } @@ -631,7 +605,7 @@ GtkWidget* create_menu_item( GtkAction* action ) g_free(sss); } else { - item = gParentClass->create_menu_item( action ); + item = GTK_ACTION_CLASS(ege_select_one_action_parent_class)->create_menu_item( action ); } return item; @@ -855,7 +829,7 @@ GtkWidget* create_tool_item( GtkAction* action ) gtk_widget_show_all( item ); } else { - item = gParentClass->create_tool_item( action ); + item = GTK_ACTION_CLASS(ege_select_one_action_parent_class)->create_tool_item( action ); } return item; @@ -864,12 +838,12 @@ GtkWidget* create_tool_item( GtkAction* action ) void connect_proxy( GtkAction *action, GtkWidget *proxy ) { - gParentClass->connect_proxy( action, proxy ); + GTK_ACTION_CLASS(ege_select_one_action_parent_class)->connect_proxy( action, proxy ); } void disconnect_proxy( GtkAction *action, GtkWidget *proxy ) { - gParentClass->disconnect_proxy( action, proxy ); + GTK_ACTION_CLASS(ege_select_one_action_parent_class)->disconnect_proxy( action, proxy ); } diff --git a/src/filters/blend.cpp b/src/filters/blend.cpp index 809bd6c00..a43927e81 100644 --- a/src/filters/blend.cpp +++ b/src/filters/blend.cpp @@ -31,10 +31,6 @@ #include "display/nr-filter-types.h" /* FeBlend base class */ - -static void sp_feBlend_class_init(SPFeBlendClass *klass); -static void sp_feBlend_init(SPFeBlend *feBlend); - static void sp_feBlend_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feBlend_release(SPObject *object); static void sp_feBlend_set(SPObject *object, unsigned int key, gchar const *value); @@ -42,28 +38,7 @@ static void sp_feBlend_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feBlend_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feBlend_build_renderer(SPFilterPrimitive *sp_prim, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feBlend_parent_class; - -GType -sp_feBlend_get_type() -{ - static GType feBlend_type = 0; - - if (!feBlend_type) { - GTypeInfo feBlend_info = { - sizeof(SPFeBlendClass), - NULL, NULL, - (GClassInitFunc) sp_feBlend_class_init, - NULL, NULL, - sizeof(SPFeBlend), - 16, - (GInstanceInitFunc) sp_feBlend_init, - NULL, /* value_table */ - }; - feBlend_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeBlend", &feBlend_info, (GTypeFlags)0); - } - return feBlend_type; -} +G_DEFINE_TYPE(SPFeBlend, sp_feBlend, SP_TYPE_FILTER_PRIMITIVE); static void sp_feBlend_class_init(SPFeBlendClass *klass) @@ -71,8 +46,6 @@ sp_feBlend_class_init(SPFeBlendClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feBlend_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feBlend_build; sp_object_class->release = sp_feBlend_release; sp_object_class->write = sp_feBlend_write; @@ -98,8 +71,8 @@ sp_feBlend_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *re { SPFeBlend *blend = SP_FEBLEND(object); - if (((SPObjectClass *) feBlend_parent_class)->build) { - ((SPObjectClass *) feBlend_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feBlend_parent_class)->build) { + ((SPObjectClass *) sp_feBlend_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -123,8 +96,8 @@ sp_feBlend_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *re static void sp_feBlend_release(SPObject *object) { - if (((SPObjectClass *) feBlend_parent_class)->release) - ((SPObjectClass *) feBlend_parent_class)->release(object); + if (((SPObjectClass *) sp_feBlend_parent_class)->release) + ((SPObjectClass *) sp_feBlend_parent_class)->release(object); } static Inkscape::Filters::FilterBlendMode sp_feBlend_readmode(gchar const *value) @@ -186,8 +159,8 @@ sp_feBlend_set(SPObject *object, unsigned int key, gchar const *value) } break; default: - if (((SPObjectClass *) feBlend_parent_class)->set) - ((SPObjectClass *) feBlend_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feBlend_parent_class)->set) + ((SPObjectClass *) sp_feBlend_parent_class)->set(object, key, value); break; } @@ -218,8 +191,8 @@ sp_feBlend_update(SPObject *object, SPCtx *ctx, guint flags) object->getRepr()->setAttribute("in2", sp_filter_name_for_image(parent, blend->in2)); } - if (((SPObjectClass *) feBlend_parent_class)->update) { - ((SPObjectClass *) feBlend_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feBlend_parent_class)->update) { + ((SPObjectClass *) sp_feBlend_parent_class)->update(object, ctx, flags); } } @@ -267,8 +240,8 @@ sp_feBlend_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML:: } repr->setAttribute("mode", mode); - if (((SPObjectClass *) feBlend_parent_class)->write) { - ((SPObjectClass *) feBlend_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feBlend_parent_class)->write) { + ((SPObjectClass *) sp_feBlend_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/colormatrix.cpp b/src/filters/colormatrix.cpp index b88b84037..aaf1c2986 100644 --- a/src/filters/colormatrix.cpp +++ b/src/filters/colormatrix.cpp @@ -30,10 +30,6 @@ #include "display/nr-filter-colormatrix.h" /* FeColorMatrix base class */ - -static void sp_feColorMatrix_class_init(SPFeColorMatrixClass *klass); -static void sp_feColorMatrix_init(SPFeColorMatrix *feColorMatrix); - static void sp_feColorMatrix_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feColorMatrix_release(SPObject *object); static void sp_feColorMatrix_set(SPObject *object, unsigned int key, gchar const *value); @@ -41,28 +37,7 @@ static void sp_feColorMatrix_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feColorMatrix_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feColorMatrix_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feColorMatrix_parent_class; - -GType -sp_feColorMatrix_get_type() -{ - static GType feColorMatrix_type = 0; - - if (!feColorMatrix_type) { - GTypeInfo feColorMatrix_info = { - sizeof(SPFeColorMatrixClass), - NULL, NULL, - (GClassInitFunc) sp_feColorMatrix_class_init, - NULL, NULL, - sizeof(SPFeColorMatrix), - 16, - (GInstanceInitFunc) sp_feColorMatrix_init, - NULL, /* value_table */ - }; - feColorMatrix_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeColorMatrix", &feColorMatrix_info, (GTypeFlags)0); - } - return feColorMatrix_type; -} +G_DEFINE_TYPE(SPFeColorMatrix, sp_feColorMatrix, SP_TYPE_FILTER_PRIMITIVE); static void sp_feColorMatrix_class_init(SPFeColorMatrixClass *klass) @@ -70,8 +45,6 @@ sp_feColorMatrix_class_init(SPFeColorMatrixClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feColorMatrix_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feColorMatrix_build; sp_object_class->release = sp_feColorMatrix_release; sp_object_class->write = sp_feColorMatrix_write; @@ -93,8 +66,8 @@ sp_feColorMatrix_init(SPFeColorMatrix */*feColorMatrix*/) static void sp_feColorMatrix_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feColorMatrix_parent_class)->build) { - ((SPObjectClass *) feColorMatrix_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feColorMatrix_parent_class)->build) { + ((SPObjectClass *) sp_feColorMatrix_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -108,8 +81,8 @@ sp_feColorMatrix_build(SPObject *object, SPDocument *document, Inkscape::XML::No static void sp_feColorMatrix_release(SPObject *object) { - if (((SPObjectClass *) feColorMatrix_parent_class)->release) - ((SPObjectClass *) feColorMatrix_parent_class)->release(object); + if (((SPObjectClass *) sp_feColorMatrix_parent_class)->release) + ((SPObjectClass *) sp_feColorMatrix_parent_class)->release(object); } static Inkscape::Filters::FilterColorMatrixType sp_feColorMatrix_read_type(gchar const *value){ @@ -158,8 +131,8 @@ sp_feColorMatrix_set(SPObject *object, unsigned int key, gchar const *str) } break; default: - if (((SPObjectClass *) feColorMatrix_parent_class)->set) - ((SPObjectClass *) feColorMatrix_parent_class)->set(object, key, str); + if (((SPObjectClass *) sp_feColorMatrix_parent_class)->set) + ((SPObjectClass *) sp_feColorMatrix_parent_class)->set(object, key, str); break; } } @@ -177,8 +150,8 @@ sp_feColorMatrix_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) feColorMatrix_parent_class)->update) { - ((SPObjectClass *) feColorMatrix_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feColorMatrix_parent_class)->update) { + ((SPObjectClass *) sp_feColorMatrix_parent_class)->update(object, ctx, flags); } } @@ -194,8 +167,8 @@ sp_feColorMatrix_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape: repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) feColorMatrix_parent_class)->write) { - ((SPObjectClass *) feColorMatrix_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feColorMatrix_parent_class)->write) { + ((SPObjectClass *) sp_feColorMatrix_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/componenttransfer.cpp b/src/filters/componenttransfer.cpp index 8cc388dd0..71e1ffe8e 100644 --- a/src/filters/componenttransfer.cpp +++ b/src/filters/componenttransfer.cpp @@ -28,10 +28,6 @@ #include "display/nr-filter-component-transfer.h" /* FeComponentTransfer base class */ - -static void sp_feComponentTransfer_class_init(SPFeComponentTransferClass *klass); -static void sp_feComponentTransfer_init(SPFeComponentTransfer *feComponentTransfer); - static void sp_feComponentTransfer_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feComponentTransfer_release(SPObject *object); static void sp_feComponentTransfer_set(SPObject *object, unsigned int key, gchar const *value); @@ -40,35 +36,14 @@ static void sp_feComponentTransfer_build_renderer(SPFilterPrimitive *primitive, static void sp_feComponentTransfer_remove_child(SPObject *object, Inkscape::XML::Node *child); static void sp_feComponentTransfer_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref); static Inkscape::XML::Node *sp_feComponentTransfer_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPFilterPrimitiveClass *feComponentTransfer_parent_class; -GType -sp_feComponentTransfer_get_type() -{ - static GType feComponentTransfer_type = 0; - - if (!feComponentTransfer_type) { - GTypeInfo feComponentTransfer_info = { - sizeof(SPFeComponentTransferClass), - NULL, NULL, - (GClassInitFunc) sp_feComponentTransfer_class_init, - NULL, NULL, - sizeof(SPFeComponentTransfer), - 16, - (GInstanceInitFunc) sp_feComponentTransfer_init, - NULL, /* value_table */ - }; - feComponentTransfer_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeComponentTransfer", &feComponentTransfer_info, (GTypeFlags)0); - } - return feComponentTransfer_type; -} +G_DEFINE_TYPE(SPFeComponentTransfer, sp_feComponentTransfer, SP_TYPE_FILTER_PRIMITIVE); static void sp_feComponentTransfer_class_init(SPFeComponentTransferClass *klass) { SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feComponentTransfer_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); sp_object_class->build = sp_feComponentTransfer_build; sp_object_class->release = sp_feComponentTransfer_release; @@ -93,8 +68,8 @@ sp_feComponentTransfer_init(SPFeComponentTransfer */*feComponentTransfer*/) static void sp_feComponentTransfer_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feComponentTransfer_parent_class)->build) { - ((SPObjectClass *) feComponentTransfer_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feComponentTransfer_parent_class)->build) { + ((SPObjectClass *) sp_feComponentTransfer_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -144,8 +119,8 @@ sp_feComponentTransfer_child_added(SPObject *object, Inkscape::XML::Node *child, { SPFeComponentTransfer *f = SP_FECOMPONENTTRANSFER(object); - if (((SPObjectClass *) feComponentTransfer_parent_class)->child_added) - (* ((SPObjectClass *) feComponentTransfer_parent_class)->child_added)(object, child, ref); + if (((SPObjectClass *) sp_feComponentTransfer_parent_class)->child_added) + (* ((SPObjectClass *) sp_feComponentTransfer_parent_class)->child_added)(object, child, ref); sp_feComponentTransfer_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -160,8 +135,8 @@ sp_feComponentTransfer_remove_child(SPObject *object, Inkscape::XML::Node *child { SPFeComponentTransfer *f = SP_FECOMPONENTTRANSFER(object); - if (((SPObjectClass *) feComponentTransfer_parent_class)->remove_child) - (* ((SPObjectClass *) feComponentTransfer_parent_class)->remove_child)(object, child); + if (((SPObjectClass *) sp_feComponentTransfer_parent_class)->remove_child) + (* ((SPObjectClass *) sp_feComponentTransfer_parent_class)->remove_child)(object, child); sp_feComponentTransfer_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -173,8 +148,8 @@ sp_feComponentTransfer_remove_child(SPObject *object, Inkscape::XML::Node *child static void sp_feComponentTransfer_release(SPObject *object) { - if (((SPObjectClass *) feComponentTransfer_parent_class)->release) - ((SPObjectClass *) feComponentTransfer_parent_class)->release(object); + if (((SPObjectClass *) sp_feComponentTransfer_parent_class)->release) + ((SPObjectClass *) sp_feComponentTransfer_parent_class)->release(object); } /** @@ -189,8 +164,8 @@ sp_feComponentTransfer_set(SPObject *object, unsigned int key, gchar const *valu switch(key) { /*DEAL WITH SETTING ATTRIBUTES HERE*/ default: - if (((SPObjectClass *) feComponentTransfer_parent_class)->set) - ((SPObjectClass *) feComponentTransfer_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feComponentTransfer_parent_class)->set) + ((SPObjectClass *) sp_feComponentTransfer_parent_class)->set(object, key, value); break; } } @@ -208,8 +183,8 @@ sp_feComponentTransfer_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) feComponentTransfer_parent_class)->update) { - ((SPObjectClass *) feComponentTransfer_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feComponentTransfer_parent_class)->update) { + ((SPObjectClass *) sp_feComponentTransfer_parent_class)->update(object, ctx, flags); } } @@ -225,8 +200,8 @@ sp_feComponentTransfer_write(SPObject *object, Inkscape::XML::Document *doc, Ink repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) feComponentTransfer_parent_class)->write) { - ((SPObjectClass *) feComponentTransfer_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feComponentTransfer_parent_class)->write) { + ((SPObjectClass *) sp_feComponentTransfer_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/composite.cpp b/src/filters/composite.cpp index 66e8e3415..d490f336c 100644 --- a/src/filters/composite.cpp +++ b/src/filters/composite.cpp @@ -26,10 +26,6 @@ #include "sp-filter.h" /* FeComposite base class */ - -static void sp_feComposite_class_init(SPFeCompositeClass *klass); -static void sp_feComposite_init(SPFeComposite *feComposite); - static void sp_feComposite_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feComposite_release(SPObject *object); static void sp_feComposite_set(SPObject *object, unsigned int key, gchar const *value); @@ -37,28 +33,7 @@ static void sp_feComposite_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feComposite_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feComposite_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feComposite_parent_class; - -GType -sp_feComposite_get_type() -{ - static GType feComposite_type = 0; - - if (!feComposite_type) { - GTypeInfo feComposite_info = { - sizeof(SPFeCompositeClass), - NULL, NULL, - (GClassInitFunc) sp_feComposite_class_init, - NULL, NULL, - sizeof(SPFeComposite), - 16, - (GInstanceInitFunc) sp_feComposite_init, - NULL, /* value_table */ - }; - feComposite_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeComposite", &feComposite_info, (GTypeFlags)0); - } - return feComposite_type; -} +G_DEFINE_TYPE(SPFeComposite, sp_feComposite, SP_TYPE_FILTER_PRIMITIVE); static void sp_feComposite_class_init(SPFeCompositeClass *klass) @@ -66,8 +41,6 @@ sp_feComposite_class_init(SPFeCompositeClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feComposite_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feComposite_build; sp_object_class->release = sp_feComposite_release; sp_object_class->write = sp_feComposite_write; @@ -96,8 +69,8 @@ sp_feComposite_init(SPFeComposite *feComposite) static void sp_feComposite_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feComposite_parent_class)->build) { - ((SPObjectClass *) feComposite_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feComposite_parent_class)->build) { + ((SPObjectClass *) sp_feComposite_parent_class)->build(object, document, repr); } SPFeComposite *comp = SP_FECOMPOSITE(object); @@ -128,8 +101,8 @@ sp_feComposite_build(SPObject *object, SPDocument *document, Inkscape::XML::Node static void sp_feComposite_release(SPObject *object) { - if (((SPObjectClass *) feComposite_parent_class)->release) - ((SPObjectClass *) feComposite_parent_class)->release(object); + if (((SPObjectClass *) sp_feComposite_parent_class)->release) + ((SPObjectClass *) sp_feComposite_parent_class)->release(object); } static FeCompositeOperator @@ -212,8 +185,8 @@ sp_feComposite_set(SPObject *object, unsigned int key, gchar const *value) break; default: - if (((SPObjectClass *) feComposite_parent_class)->set) - ((SPObjectClass *) feComposite_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feComposite_parent_class)->set) + ((SPObjectClass *) sp_feComposite_parent_class)->set(object, key, value); break; } @@ -246,8 +219,8 @@ sp_feComposite_update(SPObject *object, SPCtx *ctx, guint flags) object->getRepr()->setAttribute("in2", sp_filter_name_for_image(parent, comp->in2)); } - if (((SPObjectClass *) feComposite_parent_class)->update) { - ((SPObjectClass *) feComposite_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feComposite_parent_class)->update) { + ((SPObjectClass *) sp_feComposite_parent_class)->update(object, ctx, flags); } } @@ -309,8 +282,8 @@ sp_feComposite_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::X repr->setAttribute("k4", 0); } - if (((SPObjectClass *) feComposite_parent_class)->write) { - ((SPObjectClass *) feComposite_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feComposite_parent_class)->write) { + ((SPObjectClass *) sp_feComposite_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/convolvematrix.cpp b/src/filters/convolvematrix.cpp index 470bfb64a..d002ef731 100644 --- a/src/filters/convolvematrix.cpp +++ b/src/filters/convolvematrix.cpp @@ -29,10 +29,6 @@ #include "display/nr-filter-convolve-matrix.h" /* FeConvolveMatrix base class */ - -static void sp_feConvolveMatrix_class_init(SPFeConvolveMatrixClass *klass); -static void sp_feConvolveMatrix_init(SPFeConvolveMatrix *feConvolveMatrix); - static void sp_feConvolveMatrix_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feConvolveMatrix_release(SPObject *object); static void sp_feConvolveMatrix_set(SPObject *object, unsigned int key, gchar const *value); @@ -40,28 +36,7 @@ static void sp_feConvolveMatrix_update(SPObject *object, SPCtx *ctx, guint flags static Inkscape::XML::Node *sp_feConvolveMatrix_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feConvolveMatrix_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feConvolveMatrix_parent_class; - -GType -sp_feConvolveMatrix_get_type() -{ - static GType feConvolveMatrix_type = 0; - - if (!feConvolveMatrix_type) { - GTypeInfo feConvolveMatrix_info = { - sizeof(SPFeConvolveMatrixClass), - NULL, NULL, - (GClassInitFunc) sp_feConvolveMatrix_class_init, - NULL, NULL, - sizeof(SPFeConvolveMatrix), - 16, - (GInstanceInitFunc) sp_feConvolveMatrix_init, - NULL, /* value_table */ - }; - feConvolveMatrix_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeConvolveMatrix", &feConvolveMatrix_info, (GTypeFlags)0); - } - return feConvolveMatrix_type; -} +G_DEFINE_TYPE(SPFeConvolveMatrix, sp_feConvolveMatrix, SP_TYPE_FILTER_PRIMITIVE); static void sp_feConvolveMatrix_class_init(SPFeConvolveMatrixClass *klass) @@ -69,8 +44,6 @@ sp_feConvolveMatrix_class_init(SPFeConvolveMatrixClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feConvolveMatrix_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feConvolveMatrix_build; sp_object_class->release = sp_feConvolveMatrix_release; sp_object_class->write = sp_feConvolveMatrix_write; @@ -104,8 +77,8 @@ sp_feConvolveMatrix_init(SPFeConvolveMatrix *feConvolveMatrix) static void sp_feConvolveMatrix_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feConvolveMatrix_parent_class)->build) { - ((SPObjectClass *) feConvolveMatrix_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feConvolveMatrix_parent_class)->build) { + ((SPObjectClass *) sp_feConvolveMatrix_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -126,8 +99,8 @@ sp_feConvolveMatrix_build(SPObject *object, SPDocument *document, Inkscape::XML: static void sp_feConvolveMatrix_release(SPObject *object) { - if (((SPObjectClass *) feConvolveMatrix_parent_class)->release) - ((SPObjectClass *) feConvolveMatrix_parent_class)->release(object); + if (((SPObjectClass *) sp_feConvolveMatrix_parent_class)->release) + ((SPObjectClass *) sp_feConvolveMatrix_parent_class)->release(object); } static Inkscape::Filters::FilterConvolveMatrixEdgeMode sp_feConvolveMatrix_read_edgeMode(gchar const *value){ @@ -265,8 +238,8 @@ sp_feConvolveMatrix_set(SPObject *object, unsigned int key, gchar const *value) } break; default: - if (((SPObjectClass *) feConvolveMatrix_parent_class)->set) - ((SPObjectClass *) feConvolveMatrix_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feConvolveMatrix_parent_class)->set) + ((SPObjectClass *) sp_feConvolveMatrix_parent_class)->set(object, key, value); break; } @@ -285,8 +258,8 @@ sp_feConvolveMatrix_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) feConvolveMatrix_parent_class)->update) { - ((SPObjectClass *) feConvolveMatrix_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feConvolveMatrix_parent_class)->update) { + ((SPObjectClass *) sp_feConvolveMatrix_parent_class)->update(object, ctx, flags); } } @@ -303,8 +276,8 @@ sp_feConvolveMatrix_write(SPObject *object, Inkscape::XML::Document *doc, Inksca } - if (((SPObjectClass *) feConvolveMatrix_parent_class)->write) { - ((SPObjectClass *) feConvolveMatrix_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feConvolveMatrix_parent_class)->write) { + ((SPObjectClass *) sp_feConvolveMatrix_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/diffuselighting.cpp b/src/filters/diffuselighting.cpp index 0f2f29d67..2e69f7555 100644 --- a/src/filters/diffuselighting.cpp +++ b/src/filters/diffuselighting.cpp @@ -31,10 +31,6 @@ #include "display/nr-filter-diffuselighting.h" /* FeDiffuseLighting base class */ - -static void sp_feDiffuseLighting_class_init(SPFeDiffuseLightingClass *klass); -static void sp_feDiffuseLighting_init(SPFeDiffuseLighting *feDiffuseLighting); - static void sp_feDiffuseLighting_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feDiffuseLighting_release(SPObject *object); static void sp_feDiffuseLighting_set(SPObject *object, unsigned int key, gchar const *value); @@ -52,35 +48,13 @@ static Inkscape::XML::Node *sp_feDiffuseLighting_write(SPObject *object, Inkscap static void sp_feDiffuseLighting_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); static void sp_feDiffuseLighting_children_modified(SPFeDiffuseLighting *sp_diffuselighting); -static SPFilterPrimitiveClass *feDiffuseLighting_parent_class; - -GType -sp_feDiffuseLighting_get_type() -{ - static GType feDiffuseLighting_type = 0; - - if (!feDiffuseLighting_type) { - GTypeInfo feDiffuseLighting_info = { - sizeof(SPFeDiffuseLightingClass), - NULL, NULL, - (GClassInitFunc) sp_feDiffuseLighting_class_init, - NULL, NULL, - sizeof(SPFeDiffuseLighting), - 16, - (GInstanceInitFunc) sp_feDiffuseLighting_init, - NULL, /* value_table */ - }; - feDiffuseLighting_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeDiffuseLighting", &feDiffuseLighting_info, (GTypeFlags)0); - } - return feDiffuseLighting_type; -} +G_DEFINE_TYPE(SPFeDiffuseLighting, sp_feDiffuseLighting, SP_TYPE_FILTER_PRIMITIVE); static void sp_feDiffuseLighting_class_init(SPFeDiffuseLightingClass *klass) { SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feDiffuseLighting_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); sp_object_class->build = sp_feDiffuseLighting_build; sp_object_class->release = sp_feDiffuseLighting_release; @@ -116,8 +90,8 @@ sp_feDiffuseLighting_init(SPFeDiffuseLighting *feDiffuseLighting) static void sp_feDiffuseLighting_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feDiffuseLighting_parent_class)->build) { - ((SPObjectClass *) feDiffuseLighting_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feDiffuseLighting_parent_class)->build) { + ((SPObjectClass *) sp_feDiffuseLighting_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -134,8 +108,8 @@ sp_feDiffuseLighting_build(SPObject *object, SPDocument *document, Inkscape::XML static void sp_feDiffuseLighting_release(SPObject *object) { - if (((SPObjectClass *) feDiffuseLighting_parent_class)->release) - ((SPObjectClass *) feDiffuseLighting_parent_class)->release(object); + if (((SPObjectClass *) sp_feDiffuseLighting_parent_class)->release) + ((SPObjectClass *) sp_feDiffuseLighting_parent_class)->release(object); } /** @@ -213,8 +187,8 @@ sp_feDiffuseLighting_set(SPObject *object, unsigned int key, gchar const *value) object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); break; default: - if (((SPObjectClass *) feDiffuseLighting_parent_class)->set) - ((SPObjectClass *) feDiffuseLighting_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feDiffuseLighting_parent_class)->set) + ((SPObjectClass *) sp_feDiffuseLighting_parent_class)->set(object, key, value); break; } @@ -233,8 +207,8 @@ sp_feDiffuseLighting_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "lighting-color" ); } - if (((SPObjectClass *) feDiffuseLighting_parent_class)->update) { - ((SPObjectClass *) feDiffuseLighting_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feDiffuseLighting_parent_class)->update) { + ((SPObjectClass *) sp_feDiffuseLighting_parent_class)->update(object, ctx, flags); } } @@ -269,8 +243,8 @@ sp_feDiffuseLighting_write(SPObject *object, Inkscape::XML::Document *doc, Inksc } else repr->setAttribute("lighting-color", NULL); - if (((SPObjectClass *) feDiffuseLighting_parent_class)->write) { - ((SPObjectClass *) feDiffuseLighting_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feDiffuseLighting_parent_class)->write) { + ((SPObjectClass *) sp_feDiffuseLighting_parent_class)->write(object, doc, repr, flags); } return repr; @@ -284,8 +258,8 @@ sp_feDiffuseLighting_child_added(SPObject *object, Inkscape::XML::Node *child, I { SPFeDiffuseLighting *f = SP_FEDIFFUSELIGHTING(object); - if (((SPObjectClass *) feDiffuseLighting_parent_class)->child_added) - (* ((SPObjectClass *) feDiffuseLighting_parent_class)->child_added)(object, child, ref); + if (((SPObjectClass *) sp_feDiffuseLighting_parent_class)->child_added) + (* ((SPObjectClass *) sp_feDiffuseLighting_parent_class)->child_added)(object, child, ref); sp_feDiffuseLighting_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -300,8 +274,8 @@ sp_feDiffuseLighting_remove_child(SPObject *object, Inkscape::XML::Node *child) { SPFeDiffuseLighting *f = SP_FEDIFFUSELIGHTING(object); - if (((SPObjectClass *) feDiffuseLighting_parent_class)->remove_child) - (* ((SPObjectClass *) feDiffuseLighting_parent_class)->remove_child)(object, child); + if (((SPObjectClass *) sp_feDiffuseLighting_parent_class)->remove_child) + (* ((SPObjectClass *) sp_feDiffuseLighting_parent_class)->remove_child)(object, child); sp_feDiffuseLighting_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -311,8 +285,8 @@ static void sp_feDiffuseLighting_order_changed (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) { SPFeDiffuseLighting *f = SP_FEDIFFUSELIGHTING(object); - if (((SPObjectClass *) (feDiffuseLighting_parent_class))->order_changed) - (* ((SPObjectClass *) (feDiffuseLighting_parent_class))->order_changed) (object, child, old_ref, new_ref); + if (((SPObjectClass *) (sp_feDiffuseLighting_parent_class))->order_changed) + (* ((SPObjectClass *) (sp_feDiffuseLighting_parent_class))->order_changed) (object, child, old_ref, new_ref); sp_feDiffuseLighting_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); diff --git a/src/filters/displacementmap.cpp b/src/filters/displacementmap.cpp index 69a678c26..408ffce9e 100644 --- a/src/filters/displacementmap.cpp +++ b/src/filters/displacementmap.cpp @@ -26,10 +26,6 @@ #include "display/nr-filter-displacement-map.h" /* FeDisplacementMap base class */ - -static void sp_feDisplacementMap_class_init(SPFeDisplacementMapClass *klass); -static void sp_feDisplacementMap_init(SPFeDisplacementMap *feDisplacementMap); - static void sp_feDisplacementMap_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feDisplacementMap_release(SPObject *object); static void sp_feDisplacementMap_set(SPObject *object, unsigned int key, gchar const *value); @@ -37,28 +33,7 @@ static void sp_feDisplacementMap_update(SPObject *object, SPCtx *ctx, guint flag static void sp_feDisplacementMap_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); static Inkscape::XML::Node *sp_feDisplacementMap_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPFilterPrimitiveClass *feDisplacementMap_parent_class; - -GType -sp_feDisplacementMap_get_type() -{ - static GType feDisplacementMap_type = 0; - - if (!feDisplacementMap_type) { - GTypeInfo feDisplacementMap_info = { - sizeof(SPFeDisplacementMapClass), - NULL, NULL, - (GClassInitFunc) sp_feDisplacementMap_class_init, - NULL, NULL, - sizeof(SPFeDisplacementMap), - 16, - (GInstanceInitFunc) sp_feDisplacementMap_init, - NULL, /* value_table */ - }; - feDisplacementMap_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeDisplacementMap", &feDisplacementMap_info, (GTypeFlags)0); - } - return feDisplacementMap_type; -} +G_DEFINE_TYPE(SPFeDisplacementMap, sp_feDisplacementMap, SP_TYPE_FILTER_PRIMITIVE); static void sp_feDisplacementMap_class_init(SPFeDisplacementMapClass *klass) @@ -66,8 +41,6 @@ sp_feDisplacementMap_class_init(SPFeDisplacementMapClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feDisplacementMap_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feDisplacementMap_build; sp_object_class->release = sp_feDisplacementMap_release; sp_object_class->write = sp_feDisplacementMap_write; @@ -93,8 +66,8 @@ sp_feDisplacementMap_init(SPFeDisplacementMap *feDisplacementMap) static void sp_feDisplacementMap_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feDisplacementMap_parent_class)->build) { - ((SPObjectClass *) feDisplacementMap_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feDisplacementMap_parent_class)->build) { + ((SPObjectClass *) sp_feDisplacementMap_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -121,8 +94,8 @@ sp_feDisplacementMap_build(SPObject *object, SPDocument *document, Inkscape::XML static void sp_feDisplacementMap_release(SPObject *object) { - if (((SPObjectClass *) feDisplacementMap_parent_class)->release) - ((SPObjectClass *) feDisplacementMap_parent_class)->release(object); + if (((SPObjectClass *) sp_feDisplacementMap_parent_class)->release) + ((SPObjectClass *) sp_feDisplacementMap_parent_class)->release(object); } static FilterDisplacementMapChannelSelector sp_feDisplacementMap_readChannelSelector(gchar const *value) @@ -191,8 +164,8 @@ sp_feDisplacementMap_set(SPObject *object, unsigned int key, gchar const *value) } break; default: - if (((SPObjectClass *) feDisplacementMap_parent_class)->set) - ((SPObjectClass *) feDisplacementMap_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feDisplacementMap_parent_class)->set) + ((SPObjectClass *) sp_feDisplacementMap_parent_class)->set(object, key, value); break; } @@ -224,8 +197,8 @@ sp_feDisplacementMap_update(SPObject *object, SPCtx *ctx, guint flags) object->getRepr()->setAttribute("in2", sp_filter_name_for_image(parent, disp->in2)); } - if (((SPObjectClass *) feDisplacementMap_parent_class)->update) { - ((SPObjectClass *) feDisplacementMap_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feDisplacementMap_parent_class)->update) { + ((SPObjectClass *) sp_feDisplacementMap_parent_class)->update(object, ctx, flags); } } @@ -277,8 +250,8 @@ sp_feDisplacementMap_write(SPObject *object, Inkscape::XML::Document *doc, Inksc repr->setAttribute("yChannelSelector", get_channelselector_name(disp->yChannelSelector)); - if (((SPObjectClass *) feDisplacementMap_parent_class)->write) { - ((SPObjectClass *) feDisplacementMap_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feDisplacementMap_parent_class)->write) { + ((SPObjectClass *) sp_feDisplacementMap_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/distantlight.cpp b/src/filters/distantlight.cpp index 891049415..5e1c35a95 100644 --- a/src/filters/distantlight.cpp +++ b/src/filters/distantlight.cpp @@ -30,47 +30,19 @@ #include "macros.h" /* FeDistantLight class */ - -static void sp_fedistantlight_class_init(SPFeDistantLightClass *klass); -static void sp_fedistantlight_init(SPFeDistantLight *fedistantlight); - static void sp_fedistantlight_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_fedistantlight_release(SPObject *object); static void sp_fedistantlight_set(SPObject *object, unsigned int key, gchar const *value); static void sp_fedistantlight_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_fedistantlight_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPObjectClass *feDistantLight_parent_class; - -GType -sp_fedistantlight_get_type() -{ - static GType fedistantlight_type = 0; - - if (!fedistantlight_type) { - GTypeInfo fedistantlight_info = { - sizeof(SPFeDistantLightClass), - NULL, NULL, - (GClassInitFunc) sp_fedistantlight_class_init, - NULL, NULL, - sizeof(SPFeDistantLight), - 16, - (GInstanceInitFunc) sp_fedistantlight_init, - NULL, /* value_table */ - }; - fedistantlight_type = g_type_register_static(SP_TYPE_OBJECT, "SPFeDistantLight", &fedistantlight_info, (GTypeFlags)0); - } - return fedistantlight_type; -} +G_DEFINE_TYPE(SPFeDistantLight, sp_fedistantlight, SP_TYPE_OBJECT); static void sp_fedistantlight_class_init(SPFeDistantLightClass *klass) { - SPObjectClass *sp_object_class = (SPObjectClass *)klass; - feDistantLight_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_fedistantlight_build; sp_object_class->release = sp_fedistantlight_release; sp_object_class->write = sp_fedistantlight_write; @@ -95,8 +67,8 @@ sp_fedistantlight_init(SPFeDistantLight *fedistantlight) static void sp_fedistantlight_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feDistantLight_parent_class)->build) { - ((SPObjectClass *) feDistantLight_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_fedistantlight_parent_class)->build) { + ((SPObjectClass *) sp_fedistantlight_parent_class)->build(object, document, repr); } //Read values of key attributes from XML nodes into object. @@ -170,8 +142,8 @@ sp_fedistantlight_set(SPObject *object, unsigned int key, gchar const *value) break; default: // See if any parents need this value. - if (((SPObjectClass *) feDistantLight_parent_class)->set) { - ((SPObjectClass *) feDistantLight_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_fedistantlight_parent_class)->set) { + ((SPObjectClass *) sp_fedistantlight_parent_class)->set(object, key, value); } break; } @@ -192,8 +164,8 @@ sp_fedistantlight_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "elevation" ); } - if (((SPObjectClass *) feDistantLight_parent_class)->update) { - ((SPObjectClass *) feDistantLight_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_fedistantlight_parent_class)->update) { + ((SPObjectClass *) sp_fedistantlight_parent_class)->update(object, ctx, flags); } } @@ -214,8 +186,8 @@ sp_fedistantlight_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape if (fedistantlight->elevation_set) sp_repr_set_css_double(repr, "elevation", fedistantlight->elevation); - if (((SPObjectClass *) feDistantLight_parent_class)->write) { - ((SPObjectClass *) feDistantLight_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_fedistantlight_parent_class)->write) { + ((SPObjectClass *) sp_fedistantlight_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/gaussian-blur.cpp b/src/filters/gaussian-blur.cpp index ee1af8904..ca93cf6d8 100644 --- a/src/filters/gaussian-blur.cpp +++ b/src/filters/gaussian-blur.cpp @@ -31,10 +31,6 @@ //#include "macros.h" /* GaussianBlur base class */ - -static void sp_gaussianBlur_class_init(SPGaussianBlurClass *klass); -static void sp_gaussianBlur_init(SPGaussianBlur *gaussianBlur); - static void sp_gaussianBlur_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_gaussianBlur_release(SPObject *object); static void sp_gaussianBlur_set(SPObject *object, unsigned int key, gchar const *value); @@ -42,28 +38,7 @@ static void sp_gaussianBlur_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_gaussianBlur_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_gaussianBlur_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *gaussianBlur_parent_class; - -GType -sp_gaussianBlur_get_type() -{ - static GType gaussianBlur_type = 0; - - if (!gaussianBlur_type) { - GTypeInfo gaussianBlur_info = { - sizeof(SPGaussianBlurClass), - NULL, NULL, - (GClassInitFunc) sp_gaussianBlur_class_init, - NULL, NULL, - sizeof(SPGaussianBlur), - 16, - (GInstanceInitFunc) sp_gaussianBlur_init, - NULL, /* value_table */ - }; - gaussianBlur_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPGaussianBlur", &gaussianBlur_info, (GTypeFlags)0); - } - return gaussianBlur_type; -} +G_DEFINE_TYPE(SPGaussianBlur, sp_gaussianBlur, SP_TYPE_FILTER_PRIMITIVE); static void sp_gaussianBlur_class_init(SPGaussianBlurClass *klass) @@ -71,8 +46,6 @@ sp_gaussianBlur_class_init(SPGaussianBlurClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - gaussianBlur_parent_class = (SPFilterPrimitiveClass *)g_type_class_peek_parent(klass); - sp_object_class->build = sp_gaussianBlur_build; sp_object_class->release = sp_gaussianBlur_release; sp_object_class->write = sp_gaussianBlur_write; @@ -95,8 +68,8 @@ sp_gaussianBlur_init(SPGaussianBlur */*gaussianBlur*/) static void sp_gaussianBlur_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) gaussianBlur_parent_class)->build) { - ((SPObjectClass *) gaussianBlur_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_gaussianBlur_parent_class)->build) { + ((SPObjectClass *) sp_gaussianBlur_parent_class)->build(object, document, repr); } object->readAttr( "stdDeviation" ); @@ -110,8 +83,8 @@ static void sp_gaussianBlur_release(SPObject *object) { - if (((SPObjectClass *) gaussianBlur_parent_class)->release) - ((SPObjectClass *) gaussianBlur_parent_class)->release(object); + if (((SPObjectClass *) sp_gaussianBlur_parent_class)->release) + ((SPObjectClass *) sp_gaussianBlur_parent_class)->release(object); } /** @@ -128,8 +101,8 @@ sp_gaussianBlur_set(SPObject *object, unsigned int key, gchar const *value) object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); break; default: - if (((SPObjectClass *) gaussianBlur_parent_class)->set) - ((SPObjectClass *) gaussianBlur_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_gaussianBlur_parent_class)->set) + ((SPObjectClass *) sp_gaussianBlur_parent_class)->set(object, key, value); break; } @@ -145,8 +118,8 @@ sp_gaussianBlur_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "stdDeviation" ); } - if (((SPObjectClass *) gaussianBlur_parent_class)->update) { - ((SPObjectClass *) gaussianBlur_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_gaussianBlur_parent_class)->update) { + ((SPObjectClass *) sp_gaussianBlur_parent_class)->update(object, ctx, flags); } } @@ -162,8 +135,8 @@ sp_gaussianBlur_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape:: repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) gaussianBlur_parent_class)->write) { - ((SPObjectClass *) gaussianBlur_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_gaussianBlur_parent_class)->write) { + ((SPObjectClass *) sp_gaussianBlur_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/image.cpp b/src/filters/image.cpp index f6ef310f7..ec31e59a7 100644 --- a/src/filters/image.cpp +++ b/src/filters/image.cpp @@ -30,10 +30,6 @@ #include "display/nr-filter-image.h" /* FeImage base class */ - -static void sp_feImage_class_init(SPFeImageClass *klass); -static void sp_feImage_init(SPFeImage *feImage); - static void sp_feImage_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feImage_release(SPObject *object); static void sp_feImage_set(SPObject *object, unsigned int key, gchar const *value); @@ -41,35 +37,13 @@ static void sp_feImage_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feImage_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feImage_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feImage_parent_class; - -GType sp_feImage_get_type() -{ - static GType feImage_type = 0; - - if (!feImage_type) { - GTypeInfo feImage_info = { - sizeof(SPFeImageClass), - NULL, NULL, - (GClassInitFunc) sp_feImage_class_init, - NULL, NULL, - sizeof(SPFeImage), - 16, - (GInstanceInitFunc) sp_feImage_init, - NULL, /* value_table */ - }; - feImage_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeImage", &feImage_info, (GTypeFlags)0); - } - return feImage_type; -} +G_DEFINE_TYPE(SPFeImage, sp_feImage, SP_TYPE_FILTER_PRIMITIVE); static void sp_feImage_class_init(SPFeImageClass *klass) { SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass * sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feImage_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feImage_build; sp_object_class->release = sp_feImage_release; sp_object_class->write = sp_feImage_write; @@ -96,8 +70,8 @@ static void sp_feImage_build(SPObject *object, SPDocument *document, Inkscape::X SPFeImage *feImage = SP_FEIMAGE(object); feImage->document = document; - if (((SPObjectClass *) feImage_parent_class)->build) { - ((SPObjectClass *) feImage_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feImage_parent_class)->build) { + ((SPObjectClass *) sp_feImage_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -117,8 +91,8 @@ static void sp_feImage_release(SPObject *object) feImage->_href_modified_connection.disconnect(); if (feImage->SVGElemRef) delete feImage->SVGElemRef; - if (((SPObjectClass *) feImage_parent_class)->release) - ((SPObjectClass *) feImage_parent_class)->release(object); + if (((SPObjectClass *) sp_feImage_parent_class)->release) + ((SPObjectClass *) sp_feImage_parent_class)->release(object); } static void sp_feImage_elem_modified(SPObject* /*href*/, guint /*flags*/, SPObject* obj) @@ -247,8 +221,8 @@ static void sp_feImage_set(SPObject *object, unsigned int key, gchar const *valu break; default: - if (((SPObjectClass *) feImage_parent_class)->set) - ((SPObjectClass *) feImage_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feImage_parent_class)->set) + ((SPObjectClass *) sp_feImage_parent_class)->set(object, key, value); break; } @@ -266,8 +240,8 @@ static void sp_feImage_update(SPObject *object, SPCtx *ctx, guint flags) /* do something to trigger redisplay, updates? */ } - if (((SPObjectClass *) feImage_parent_class)->update) { - ((SPObjectClass *) feImage_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feImage_parent_class)->update) { + ((SPObjectClass *) sp_feImage_parent_class)->update(object, ctx, flags); } } @@ -282,8 +256,8 @@ static Inkscape::XML::Node * sp_feImage_write(SPObject *object, Inkscape::XML::D repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) feImage_parent_class)->write) { - ((SPObjectClass *) feImage_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feImage_parent_class)->write) { + ((SPObjectClass *) sp_feImage_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/merge.cpp b/src/filters/merge.cpp index b5a6d7dad..7346a0892 100644 --- a/src/filters/merge.cpp +++ b/src/filters/merge.cpp @@ -25,10 +25,6 @@ #include "display/nr-filter-merge.h" /* FeMerge base class */ - -static void sp_feMerge_class_init(SPFeMergeClass *klass); -static void sp_feMerge_init(SPFeMerge *feMerge); - static void sp_feMerge_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feMerge_release(SPObject *object); static void sp_feMerge_set(SPObject *object, unsigned int key, gchar const *value); @@ -36,28 +32,7 @@ static void sp_feMerge_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feMerge_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feMerge_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feMerge_parent_class; - -GType -sp_feMerge_get_type() -{ - static GType feMerge_type = 0; - - if (!feMerge_type) { - GTypeInfo feMerge_info = { - sizeof(SPFeMergeClass), - NULL, NULL, - (GClassInitFunc) sp_feMerge_class_init, - NULL, NULL, - sizeof(SPFeMerge), - 16, - (GInstanceInitFunc) sp_feMerge_init, - NULL, /* value_table */ - }; - feMerge_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeMerge", &feMerge_info, (GTypeFlags)0); - } - return feMerge_type; -} +G_DEFINE_TYPE(SPFeMerge, sp_feMerge, SP_TYPE_FILTER_PRIMITIVE); static void sp_feMerge_class_init(SPFeMergeClass *klass) @@ -65,8 +40,6 @@ sp_feMerge_class_init(SPFeMergeClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feMerge_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feMerge_build; sp_object_class->release = sp_feMerge_release; sp_object_class->write = sp_feMerge_write; @@ -89,8 +62,8 @@ sp_feMerge_init(SPFeMerge */*feMerge*/) static void sp_feMerge_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feMerge_parent_class)->build) { - ((SPObjectClass *) feMerge_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feMerge_parent_class)->build) { + ((SPObjectClass *) sp_feMerge_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -102,8 +75,8 @@ sp_feMerge_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *re static void sp_feMerge_release(SPObject *object) { - if (((SPObjectClass *) feMerge_parent_class)->release) - ((SPObjectClass *) feMerge_parent_class)->release(object); + if (((SPObjectClass *) sp_feMerge_parent_class)->release) + ((SPObjectClass *) sp_feMerge_parent_class)->release(object); } /** @@ -118,8 +91,8 @@ sp_feMerge_set(SPObject *object, unsigned int key, gchar const *value) switch(key) { /*DEAL WITH SETTING ATTRIBUTES HERE*/ default: - if (((SPObjectClass *) feMerge_parent_class)->set) - ((SPObjectClass *) feMerge_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feMerge_parent_class)->set) + ((SPObjectClass *) sp_feMerge_parent_class)->set(object, key, value); break; } @@ -135,8 +108,8 @@ sp_feMerge_update(SPObject *object, SPCtx *ctx, guint flags) object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); } - if (((SPObjectClass *) feMerge_parent_class)->update) { - ((SPObjectClass *) feMerge_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feMerge_parent_class)->update) { + ((SPObjectClass *) sp_feMerge_parent_class)->update(object, ctx, flags); } } @@ -153,8 +126,8 @@ sp_feMerge_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML:: } - if (((SPObjectClass *) feMerge_parent_class)->write) { - ((SPObjectClass *) feMerge_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feMerge_parent_class)->write) { + ((SPObjectClass *) sp_feMerge_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/mergenode.cpp b/src/filters/mergenode.cpp index 639928305..fa193ad77 100644 --- a/src/filters/mergenode.cpp +++ b/src/filters/mergenode.cpp @@ -23,46 +23,19 @@ #include "filters/merge.h" #include "display/nr-filter-types.h" -static void sp_feMergeNode_class_init(SPFeMergeNodeClass *klass); -static void sp_feMergeNode_init(SPFeMergeNode *skeleton); - static void sp_feMergeNode_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feMergeNode_release(SPObject *object); static void sp_feMergeNode_set(SPObject *object, unsigned int key, gchar const *value); static void sp_feMergeNode_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feMergeNode_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPObjectClass *feMergeNode_parent_class; - -GType -sp_feMergeNode_get_type() -{ - static GType feMergeNode_type = 0; - - if (!feMergeNode_type) { - GTypeInfo feMergeNode_info = { - sizeof(SPFeMergeNodeClass), - NULL, NULL, - (GClassInitFunc) sp_feMergeNode_class_init, - NULL, NULL, - sizeof(SPFeMergeNode), - 16, - (GInstanceInitFunc) sp_feMergeNode_init, - NULL, /* value_table */ - }; - feMergeNode_type = g_type_register_static(SP_TYPE_OBJECT, "SPFeMergeNode", &feMergeNode_info, (GTypeFlags)0); - } - return feMergeNode_type; -} +G_DEFINE_TYPE(SPFeMergeNode, sp_feMergeNode, SP_TYPE_OBJECT); static void sp_feMergeNode_class_init(SPFeMergeNodeClass *klass) { - //GObjectClass *gobject_class = (GObjectClass *)klass; SPObjectClass *sp_object_class = (SPObjectClass *)klass; - feMergeNode_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feMergeNode_build; sp_object_class->release = sp_feMergeNode_release; sp_object_class->write = sp_feMergeNode_write; @@ -95,8 +68,8 @@ sp_feMergeNode_release(SPObject *object) { /* deal with our children and our selves here */ - if (((SPObjectClass *) feMergeNode_parent_class)->release) - ((SPObjectClass *) feMergeNode_parent_class)->release(object); + if (((SPObjectClass *) sp_feMergeNode_parent_class)->release) + ((SPObjectClass *) sp_feMergeNode_parent_class)->release(object); } /** @@ -117,8 +90,8 @@ sp_feMergeNode_set(SPObject *object, unsigned int key, gchar const *value) } /* See if any parents need this value. */ - if (((SPObjectClass *) feMergeNode_parent_class)->set) { - ((SPObjectClass *) feMergeNode_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feMergeNode_parent_class)->set) { + ((SPObjectClass *) sp_feMergeNode_parent_class)->set(object, key, value); } } @@ -134,8 +107,8 @@ sp_feMergeNode_update(SPObject *object, SPCtx *ctx, guint flags) object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); } - if (((SPObjectClass *) feMergeNode_parent_class)->update) { - ((SPObjectClass *) feMergeNode_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feMergeNode_parent_class)->update) { + ((SPObjectClass *) sp_feMergeNode_parent_class)->update(object, ctx, flags); } } @@ -157,8 +130,8 @@ sp_feMergeNode_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::X } } - if (((SPObjectClass *) feMergeNode_parent_class)->write) { - ((SPObjectClass *) feMergeNode_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feMergeNode_parent_class)->write) { + ((SPObjectClass *) sp_feMergeNode_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/morphology.cpp b/src/filters/morphology.cpp index 42327d59f..886a10311 100644 --- a/src/filters/morphology.cpp +++ b/src/filters/morphology.cpp @@ -27,10 +27,6 @@ #include "display/nr-filter-morphology.h" /* FeMorphology base class */ - -static void sp_feMorphology_class_init(SPFeMorphologyClass *klass); -static void sp_feMorphology_init(SPFeMorphology *feMorphology); - static void sp_feMorphology_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feMorphology_release(SPObject *object); static void sp_feMorphology_set(SPObject *object, unsigned int key, gchar const *value); @@ -38,36 +34,13 @@ static void sp_feMorphology_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feMorphology_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feMorphology_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feMorphology_parent_class; - -GType -sp_feMorphology_get_type() -{ - static GType feMorphology_type = 0; - - if (!feMorphology_type) { - GTypeInfo feMorphology_info = { - sizeof(SPFeMorphologyClass), - NULL, NULL, - (GClassInitFunc) sp_feMorphology_class_init, - NULL, NULL, - sizeof(SPFeMorphology), - 16, - (GInstanceInitFunc) sp_feMorphology_init, - NULL, /* value_table */ - }; - feMorphology_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeMorphology", &feMorphology_info, (GTypeFlags)0); - } - return feMorphology_type; -} +G_DEFINE_TYPE(SPFeMorphology, sp_feMorphology, SP_TYPE_FILTER_PRIMITIVE); static void sp_feMorphology_class_init(SPFeMorphologyClass *klass) { SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - - feMorphology_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); sp_object_class->build = sp_feMorphology_build; sp_object_class->release = sp_feMorphology_release; @@ -92,8 +65,8 @@ sp_feMorphology_init(SPFeMorphology *feMorphology) static void sp_feMorphology_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feMorphology_parent_class)->build) { - ((SPObjectClass *) feMorphology_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feMorphology_parent_class)->build) { + ((SPObjectClass *) sp_feMorphology_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -107,8 +80,8 @@ sp_feMorphology_build(SPObject *object, SPDocument *document, Inkscape::XML::Nod static void sp_feMorphology_release(SPObject *object) { - if (((SPObjectClass *) feMorphology_parent_class)->release) - ((SPObjectClass *) feMorphology_parent_class)->release(object); + if (((SPObjectClass *) sp_feMorphology_parent_class)->release) + ((SPObjectClass *) sp_feMorphology_parent_class)->release(object); } static Inkscape::Filters::FilterMorphologyOperator sp_feMorphology_read_operator(gchar const *value){ @@ -151,8 +124,8 @@ sp_feMorphology_set(SPObject *object, unsigned int key, gchar const *value) object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); break; default: - if (((SPObjectClass *) feMorphology_parent_class)->set) - ((SPObjectClass *) feMorphology_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feMorphology_parent_class)->set) + ((SPObjectClass *) sp_feMorphology_parent_class)->set(object, key, value); break; } @@ -171,8 +144,8 @@ sp_feMorphology_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) feMorphology_parent_class)->update) { - ((SPObjectClass *) feMorphology_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feMorphology_parent_class)->update) { + ((SPObjectClass *) sp_feMorphology_parent_class)->update(object, ctx, flags); } } @@ -188,8 +161,8 @@ sp_feMorphology_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape:: repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) feMorphology_parent_class)->write) { - ((SPObjectClass *) feMorphology_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feMorphology_parent_class)->write) { + ((SPObjectClass *) sp_feMorphology_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/offset.cpp b/src/filters/offset.cpp index f45169aba..2851f4f7d 100644 --- a/src/filters/offset.cpp +++ b/src/filters/offset.cpp @@ -26,10 +26,6 @@ #include "display/nr-filter-offset.h" /* FeOffset base class */ - -static void sp_feOffset_class_init(SPFeOffsetClass *klass); -static void sp_feOffset_init(SPFeOffset *feOffset); - static void sp_feOffset_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feOffset_release(SPObject *object); static void sp_feOffset_set(SPObject *object, unsigned int key, gchar const *value); @@ -37,28 +33,7 @@ static void sp_feOffset_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feOffset_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feOffset_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feOffset_parent_class; - -GType -sp_feOffset_get_type() -{ - static GType feOffset_type = 0; - - if (!feOffset_type) { - GTypeInfo feOffset_info = { - sizeof(SPFeOffsetClass), - NULL, NULL, - (GClassInitFunc) sp_feOffset_class_init, - NULL, NULL, - sizeof(SPFeOffset), - 16, - (GInstanceInitFunc) sp_feOffset_init, - NULL, /* value_table */ - }; - feOffset_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeOffset", &feOffset_info, (GTypeFlags)0); - } - return feOffset_type; -} +G_DEFINE_TYPE(SPFeOffset, sp_feOffset, SP_TYPE_FILTER_PRIMITIVE); static void sp_feOffset_class_init(SPFeOffsetClass *klass) @@ -66,8 +41,6 @@ sp_feOffset_class_init(SPFeOffsetClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feOffset_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feOffset_build; sp_object_class->release = sp_feOffset_release; sp_object_class->write = sp_feOffset_write; @@ -92,8 +65,8 @@ sp_feOffset_init(SPFeOffset *feOffset) static void sp_feOffset_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feOffset_parent_class)->build) { - ((SPObjectClass *) feOffset_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feOffset_parent_class)->build) { + ((SPObjectClass *) sp_feOffset_parent_class)->build(object, document, repr); } object->readAttr( "dx" ); @@ -106,8 +79,8 @@ sp_feOffset_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *r static void sp_feOffset_release(SPObject *object) { - if (((SPObjectClass *) feOffset_parent_class)->release) - ((SPObjectClass *) feOffset_parent_class)->release(object); + if (((SPObjectClass *) sp_feOffset_parent_class)->release) + ((SPObjectClass *) sp_feOffset_parent_class)->release(object); } /** @@ -137,8 +110,8 @@ sp_feOffset_set(SPObject *object, unsigned int key, gchar const *value) /*DEAL WITH SETTING ATTRIBUTES HERE*/ default: - if (((SPObjectClass *) feOffset_parent_class)->set) - ((SPObjectClass *) feOffset_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feOffset_parent_class)->set) + ((SPObjectClass *) sp_feOffset_parent_class)->set(object, key, value); break; } @@ -155,8 +128,8 @@ sp_feOffset_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "dy" ); } - if (((SPObjectClass *) feOffset_parent_class)->update) { - ((SPObjectClass *) feOffset_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feOffset_parent_class)->update) { + ((SPObjectClass *) sp_feOffset_parent_class)->update(object, ctx, flags); } } @@ -172,8 +145,8 @@ sp_feOffset_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML: repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) feOffset_parent_class)->write) { - ((SPObjectClass *) feOffset_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feOffset_parent_class)->write) { + ((SPObjectClass *) sp_feOffset_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/pointlight.cpp b/src/filters/pointlight.cpp index ee6824d00..a512172d1 100644 --- a/src/filters/pointlight.cpp +++ b/src/filters/pointlight.cpp @@ -30,47 +30,19 @@ #include "macros.h" /* FePointLight class */ - -static void sp_fepointlight_class_init(SPFePointLightClass *klass); -static void sp_fepointlight_init(SPFePointLight *fepointlight); - static void sp_fepointlight_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_fepointlight_release(SPObject *object); static void sp_fepointlight_set(SPObject *object, unsigned int key, gchar const *value); static void sp_fepointlight_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_fepointlight_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPObjectClass *fePointLight_parent_class; - -GType -sp_fepointlight_get_type() -{ - static GType fepointlight_type = 0; - - if (!fepointlight_type) { - GTypeInfo fepointlight_info = { - sizeof(SPFePointLightClass), - NULL, NULL, - (GClassInitFunc) sp_fepointlight_class_init, - NULL, NULL, - sizeof(SPFePointLight), - 16, - (GInstanceInitFunc) sp_fepointlight_init, - NULL, /* value_table */ - }; - fepointlight_type = g_type_register_static(SP_TYPE_OBJECT, "SPFePointLight", &fepointlight_info, (GTypeFlags)0); - } - return fepointlight_type; -} +G_DEFINE_TYPE(SPFePointLight, sp_fepointlight, SP_TYPE_OBJECT); static void sp_fepointlight_class_init(SPFePointLightClass *klass) { - SPObjectClass *sp_object_class = (SPObjectClass *)klass; - fePointLight_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_fepointlight_build; sp_object_class->release = sp_fepointlight_release; sp_object_class->write = sp_fepointlight_write; @@ -98,8 +70,8 @@ sp_fepointlight_init(SPFePointLight *fepointlight) static void sp_fepointlight_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) fePointLight_parent_class)->build) { - ((SPObjectClass *) fePointLight_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_fepointlight_parent_class)->build) { + ((SPObjectClass *) sp_fepointlight_parent_class)->build(object, document, repr); } //Read values of key attributes from XML nodes into object. @@ -192,8 +164,8 @@ sp_fepointlight_set(SPObject *object, unsigned int key, gchar const *value) break; default: // See if any parents need this value. - if (((SPObjectClass *) fePointLight_parent_class)->set) { - ((SPObjectClass *) fePointLight_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_fepointlight_parent_class)->set) { + ((SPObjectClass *) sp_fepointlight_parent_class)->set(object, key, value); } break; } @@ -215,8 +187,8 @@ sp_fepointlight_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "z" ); } - if (((SPObjectClass *) fePointLight_parent_class)->update) { - ((SPObjectClass *) fePointLight_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_fepointlight_parent_class)->update) { + ((SPObjectClass *) sp_fepointlight_parent_class)->update(object, ctx, flags); } } @@ -239,8 +211,8 @@ sp_fepointlight_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape:: if (fepointlight->z_set) sp_repr_set_css_double(repr, "z", fepointlight->z); - if (((SPObjectClass *) fePointLight_parent_class)->write) { - ((SPObjectClass *) fePointLight_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_fepointlight_parent_class)->write) { + ((SPObjectClass *) sp_fepointlight_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/specularlighting.cpp b/src/filters/specularlighting.cpp index 71a705c94..44eeff35a 100644 --- a/src/filters/specularlighting.cpp +++ b/src/filters/specularlighting.cpp @@ -31,10 +31,6 @@ #include "display/nr-filter-specularlighting.h" /* FeSpecularLighting base class */ - -static void sp_feSpecularLighting_class_init(SPFeSpecularLightingClass *klass); -static void sp_feSpecularLighting_init(SPFeSpecularLighting *feSpecularLighting); - static void sp_feSpecularLighting_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feSpecularLighting_release(SPObject *object); static void sp_feSpecularLighting_set(SPObject *object, unsigned int key, gchar const *value); @@ -52,35 +48,13 @@ static Inkscape::XML::Node *sp_feSpecularLighting_write(SPObject *object, Inksca static void sp_feSpecularLighting_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); static void sp_feSpecularLighting_children_modified(SPFeSpecularLighting *sp_specularlighting); -static SPFilterPrimitiveClass *feSpecularLighting_parent_class; - -GType -sp_feSpecularLighting_get_type() -{ - static GType feSpecularLighting_type = 0; - - if (!feSpecularLighting_type) { - GTypeInfo feSpecularLighting_info = { - sizeof(SPFeSpecularLightingClass), - NULL, NULL, - (GClassInitFunc) sp_feSpecularLighting_class_init, - NULL, NULL, - sizeof(SPFeSpecularLighting), - 16, - (GInstanceInitFunc) sp_feSpecularLighting_init, - NULL, /* value_table */ - }; - feSpecularLighting_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeSpecularLighting", &feSpecularLighting_info, (GTypeFlags)0); - } - return feSpecularLighting_type; -} +G_DEFINE_TYPE(SPFeSpecularLighting, sp_feSpecularLighting, SP_TYPE_FILTER_PRIMITIVE); static void sp_feSpecularLighting_class_init(SPFeSpecularLightingClass *klass) { SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feSpecularLighting_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); sp_object_class->build = sp_feSpecularLighting_build; sp_object_class->release = sp_feSpecularLighting_release; @@ -118,8 +92,8 @@ sp_feSpecularLighting_init(SPFeSpecularLighting *feSpecularLighting) static void sp_feSpecularLighting_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feSpecularLighting_parent_class)->build) { - ((SPObjectClass *) feSpecularLighting_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feSpecularLighting_parent_class)->build) { + ((SPObjectClass *) sp_feSpecularLighting_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -137,8 +111,8 @@ sp_feSpecularLighting_build(SPObject *object, SPDocument *document, Inkscape::XM static void sp_feSpecularLighting_release(SPObject *object) { - if (((SPObjectClass *) feSpecularLighting_parent_class)->release) - ((SPObjectClass *) feSpecularLighting_parent_class)->release(object); + if (((SPObjectClass *) sp_feSpecularLighting_parent_class)->release) + ((SPObjectClass *) sp_feSpecularLighting_parent_class)->release(object); } /** @@ -239,8 +213,8 @@ sp_feSpecularLighting_set(SPObject *object, unsigned int key, gchar const *value object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); break; default: - if (((SPObjectClass *) feSpecularLighting_parent_class)->set) - ((SPObjectClass *) feSpecularLighting_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feSpecularLighting_parent_class)->set) + ((SPObjectClass *) sp_feSpecularLighting_parent_class)->set(object, key, value); break; } @@ -260,8 +234,8 @@ sp_feSpecularLighting_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "lighting-color" ); } - if (((SPObjectClass *) feSpecularLighting_parent_class)->update) { - ((SPObjectClass *) feSpecularLighting_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feSpecularLighting_parent_class)->update) { + ((SPObjectClass *) sp_feSpecularLighting_parent_class)->update(object, ctx, flags); } } @@ -292,8 +266,8 @@ sp_feSpecularLighting_write(SPObject *object, Inkscape::XML::Document *doc, Inks sp_svg_write_color(c, sizeof(c), fespecularlighting->lighting_color); repr->setAttribute("lighting-color", c); } - if (((SPObjectClass *) feSpecularLighting_parent_class)->write) { - ((SPObjectClass *) feSpecularLighting_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feSpecularLighting_parent_class)->write) { + ((SPObjectClass *) sp_feSpecularLighting_parent_class)->write(object, doc, repr, flags); } return repr; @@ -307,8 +281,8 @@ sp_feSpecularLighting_child_added(SPObject *object, Inkscape::XML::Node *child, { SPFeSpecularLighting *f = SP_FESPECULARLIGHTING(object); - if (((SPObjectClass *) feSpecularLighting_parent_class)->child_added) - (* ((SPObjectClass *) feSpecularLighting_parent_class)->child_added)(object, child, ref); + if (((SPObjectClass *) sp_feSpecularLighting_parent_class)->child_added) + (* ((SPObjectClass *) sp_feSpecularLighting_parent_class)->child_added)(object, child, ref); sp_feSpecularLighting_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -323,8 +297,8 @@ sp_feSpecularLighting_remove_child(SPObject *object, Inkscape::XML::Node *child) { SPFeSpecularLighting *f = SP_FESPECULARLIGHTING(object); - if (((SPObjectClass *) feSpecularLighting_parent_class)->remove_child) - (* ((SPObjectClass *) feSpecularLighting_parent_class)->remove_child)(object, child); + if (((SPObjectClass *) sp_feSpecularLighting_parent_class)->remove_child) + (* ((SPObjectClass *) sp_feSpecularLighting_parent_class)->remove_child)(object, child); sp_feSpecularLighting_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -334,8 +308,8 @@ static void sp_feSpecularLighting_order_changed (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) { SPFeSpecularLighting *f = SP_FESPECULARLIGHTING(object); - if (((SPObjectClass *) (feSpecularLighting_parent_class))->order_changed) - (* ((SPObjectClass *) (feSpecularLighting_parent_class))->order_changed) (object, child, old_ref, new_ref); + if (((SPObjectClass *) (sp_feSpecularLighting_parent_class))->order_changed) + (* ((SPObjectClass *) (sp_feSpecularLighting_parent_class))->order_changed) (object, child, old_ref, new_ref); sp_feSpecularLighting_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); diff --git a/src/filters/spotlight.cpp b/src/filters/spotlight.cpp index 7be83ed00..181e39990 100644 --- a/src/filters/spotlight.cpp +++ b/src/filters/spotlight.cpp @@ -30,47 +30,19 @@ #include "macros.h" /* FeSpotLight class */ - -static void sp_fespotlight_class_init(SPFeSpotLightClass *klass); -static void sp_fespotlight_init(SPFeSpotLight *fespotlight); - static void sp_fespotlight_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_fespotlight_release(SPObject *object); static void sp_fespotlight_set(SPObject *object, unsigned int key, gchar const *value); static void sp_fespotlight_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_fespotlight_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPObjectClass *feSpotLight_parent_class; - -GType -sp_fespotlight_get_type() -{ - static GType fespotlight_type = 0; - - if (!fespotlight_type) { - GTypeInfo fespotlight_info = { - sizeof(SPFeSpotLightClass), - NULL, NULL, - (GClassInitFunc) sp_fespotlight_class_init, - NULL, NULL, - sizeof(SPFeSpotLight), - 16, - (GInstanceInitFunc) sp_fespotlight_init, - NULL, /* value_table */ - }; - fespotlight_type = g_type_register_static(SP_TYPE_OBJECT, "SPFeSpotLight", &fespotlight_info, (GTypeFlags)0); - } - return fespotlight_type; -} +G_DEFINE_TYPE(SPFeSpotLight, sp_fespotlight, SP_TYPE_OBJECT); static void sp_fespotlight_class_init(SPFeSpotLightClass *klass) { - SPObjectClass *sp_object_class = (SPObjectClass *)klass; - feSpotLight_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_fespotlight_build; sp_object_class->release = sp_fespotlight_release; sp_object_class->write = sp_fespotlight_write; @@ -108,8 +80,8 @@ sp_fespotlight_init(SPFeSpotLight *fespotlight) static void sp_fespotlight_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feSpotLight_parent_class)->build) { - ((SPObjectClass *) feSpotLight_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_fespotlight_parent_class)->build) { + ((SPObjectClass *) sp_fespotlight_parent_class)->build(object, document, repr); } //Read values of key attributes from XML nodes into object. @@ -290,8 +262,8 @@ sp_fespotlight_set(SPObject *object, unsigned int key, gchar const *value) break; default: // See if any parents need this value. - if (((SPObjectClass *) feSpotLight_parent_class)->set) { - ((SPObjectClass *) feSpotLight_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_fespotlight_parent_class)->set) { + ((SPObjectClass *) sp_fespotlight_parent_class)->set(object, key, value); } break; } @@ -318,8 +290,8 @@ sp_fespotlight_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "limitingConeAngle" ); } - if (((SPObjectClass *) feSpotLight_parent_class)->update) { - ((SPObjectClass *) feSpotLight_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_fespotlight_parent_class)->update) { + ((SPObjectClass *) sp_fespotlight_parent_class)->update(object, ctx, flags); } } @@ -352,8 +324,8 @@ sp_fespotlight_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::X if (fespotlight->limitingConeAngle_set) sp_repr_set_css_double(repr, "limitingConeAngle", fespotlight->limitingConeAngle); - if (((SPObjectClass *) feSpotLight_parent_class)->write) { - ((SPObjectClass *) feSpotLight_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_fespotlight_parent_class)->write) { + ((SPObjectClass *) sp_fespotlight_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/tile.cpp b/src/filters/tile.cpp index 42a59ede8..d2725f50c 100644 --- a/src/filters/tile.cpp +++ b/src/filters/tile.cpp @@ -23,10 +23,6 @@ #include "display/nr-filter-tile.h" /* FeTile base class */ - -static void sp_feTile_class_init(SPFeTileClass *klass); -static void sp_feTile_init(SPFeTile *feTile); - static void sp_feTile_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feTile_release(SPObject *object); static void sp_feTile_set(SPObject *object, unsigned int key, gchar const *value); @@ -34,28 +30,7 @@ static void sp_feTile_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feTile_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feTile_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feTile_parent_class; - -GType -sp_feTile_get_type() -{ - static GType feTile_type = 0; - - if (!feTile_type) { - GTypeInfo feTile_info = { - sizeof(SPFeTileClass), - NULL, NULL, - (GClassInitFunc) sp_feTile_class_init, - NULL, NULL, - sizeof(SPFeTile), - 16, - (GInstanceInitFunc) sp_feTile_init, - NULL, /* value_table */ - }; - feTile_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeTile", &feTile_info, (GTypeFlags)0); - } - return feTile_type; -} +G_DEFINE_TYPE(SPFeTile, sp_feTile, SP_TYPE_FILTER_PRIMITIVE); static void sp_feTile_class_init(SPFeTileClass *klass) @@ -63,8 +38,6 @@ sp_feTile_class_init(SPFeTileClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feTile_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feTile_build; sp_object_class->release = sp_feTile_release; sp_object_class->write = sp_feTile_write; @@ -86,8 +59,8 @@ sp_feTile_init(SPFeTile */*feTile*/) static void sp_feTile_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feTile_parent_class)->build) { - ((SPObjectClass *) feTile_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feTile_parent_class)->build) { + ((SPObjectClass *) sp_feTile_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -99,8 +72,8 @@ sp_feTile_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *rep static void sp_feTile_release(SPObject *object) { - if (((SPObjectClass *) feTile_parent_class)->release) - ((SPObjectClass *) feTile_parent_class)->release(object); + if (((SPObjectClass *) sp_feTile_parent_class)->release) + ((SPObjectClass *) sp_feTile_parent_class)->release(object); } /** @@ -115,8 +88,8 @@ sp_feTile_set(SPObject *object, unsigned int key, gchar const *value) switch(key) { /*DEAL WITH SETTING ATTRIBUTES HERE*/ default: - if (((SPObjectClass *) feTile_parent_class)->set) - ((SPObjectClass *) feTile_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feTile_parent_class)->set) + ((SPObjectClass *) sp_feTile_parent_class)->set(object, key, value); break; } @@ -135,8 +108,8 @@ sp_feTile_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) feTile_parent_class)->update) { - ((SPObjectClass *) feTile_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feTile_parent_class)->update) { + ((SPObjectClass *) sp_feTile_parent_class)->update(object, ctx, flags); } } @@ -152,8 +125,8 @@ sp_feTile_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::N repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) feTile_parent_class)->write) { - ((SPObjectClass *) feTile_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feTile_parent_class)->write) { + ((SPObjectClass *) sp_feTile_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/filters/turbulence.cpp b/src/filters/turbulence.cpp index 9d1448c70..c4d4ca4ae 100644 --- a/src/filters/turbulence.cpp +++ b/src/filters/turbulence.cpp @@ -29,10 +29,6 @@ #include "display/nr-filter-turbulence.h" /* FeTurbulence base class */ - -static void sp_feTurbulence_class_init(SPFeTurbulenceClass *klass); -static void sp_feTurbulence_init(SPFeTurbulence *feTurbulence); - static void sp_feTurbulence_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_feTurbulence_release(SPObject *object); static void sp_feTurbulence_set(SPObject *object, unsigned int key, gchar const *value); @@ -40,28 +36,7 @@ static void sp_feTurbulence_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feTurbulence_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feTurbulence_build_renderer(SPFilterPrimitive *primitive, Inkscape::Filters::Filter *filter); -static SPFilterPrimitiveClass *feTurbulence_parent_class; - -GType -sp_feTurbulence_get_type() -{ - static GType feTurbulence_type = 0; - - if (!feTurbulence_type) { - GTypeInfo feTurbulence_info = { - sizeof(SPFeTurbulenceClass), - NULL, NULL, - (GClassInitFunc) sp_feTurbulence_class_init, - NULL, NULL, - sizeof(SPFeTurbulence), - 16, - (GInstanceInitFunc) sp_feTurbulence_init, - NULL, /* value_table */ - }; - feTurbulence_type = g_type_register_static(SP_TYPE_FILTER_PRIMITIVE, "SPFeTurbulence", &feTurbulence_info, (GTypeFlags)0); - } - return feTurbulence_type; -} +G_DEFINE_TYPE(SPFeTurbulence, sp_feTurbulence, SP_TYPE_FILTER_PRIMITIVE); static void sp_feTurbulence_class_init(SPFeTurbulenceClass *klass) @@ -69,8 +44,6 @@ sp_feTurbulence_class_init(SPFeTurbulenceClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)klass; SPFilterPrimitiveClass * sp_primitive_class = (SPFilterPrimitiveClass *)klass; - feTurbulence_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_feTurbulence_build; sp_object_class->release = sp_feTurbulence_release; sp_object_class->write = sp_feTurbulence_write; @@ -94,8 +67,8 @@ sp_feTurbulence_init(SPFeTurbulence *feTurbulence) static void sp_feTurbulence_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) feTurbulence_parent_class)->build) { - ((SPObjectClass *) feTurbulence_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_feTurbulence_parent_class)->build) { + ((SPObjectClass *) sp_feTurbulence_parent_class)->build(object, document, repr); } /*LOAD ATTRIBUTES FROM REPR HERE*/ @@ -112,8 +85,8 @@ sp_feTurbulence_build(SPObject *object, SPDocument *document, Inkscape::XML::Nod static void sp_feTurbulence_release(SPObject *object) { - if (((SPObjectClass *) feTurbulence_parent_class)->release) - ((SPObjectClass *) feTurbulence_parent_class)->release(object); + if (((SPObjectClass *) sp_feTurbulence_parent_class)->release) + ((SPObjectClass *) sp_feTurbulence_parent_class)->release(object); } static bool sp_feTurbulence_read_stitchTiles(gchar const *value){ @@ -200,8 +173,8 @@ sp_feTurbulence_set(SPObject *object, unsigned int key, gchar const *value) } break; default: - if (((SPObjectClass *) feTurbulence_parent_class)->set) - ((SPObjectClass *) feTurbulence_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_feTurbulence_parent_class)->set) + ((SPObjectClass *) sp_feTurbulence_parent_class)->set(object, key, value); break; } @@ -220,8 +193,8 @@ sp_feTurbulence_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) feTurbulence_parent_class)->update) { - ((SPObjectClass *) feTurbulence_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_feTurbulence_parent_class)->update) { + ((SPObjectClass *) sp_feTurbulence_parent_class)->update(object, ctx, flags); } } @@ -237,8 +210,8 @@ sp_feTurbulence_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape:: repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) feTurbulence_parent_class)->write) { - ((SPObjectClass *) feTurbulence_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_feTurbulence_parent_class)->write) { + ((SPObjectClass *) sp_feTurbulence_parent_class)->write(object, doc, repr, flags); } /* turbulence doesn't take input */ diff --git a/src/gradient-context.cpp b/src/gradient-context.cpp index 231490771..8fd002d70 100644 --- a/src/gradient-context.cpp +++ b/src/gradient-context.cpp @@ -51,8 +51,6 @@ using Inkscape::DocumentUndo; -static void sp_gradient_context_class_init(SPGradientContextClass *klass); -static void sp_gradient_context_init(SPGradientContext *gr_context); static void sp_gradient_context_dispose(GObject *object); static void sp_gradient_context_setup(SPEventContext *ec); @@ -61,35 +59,13 @@ static gint sp_gradient_context_root_handler(SPEventContext *event_context, GdkE static void sp_gradient_drag(SPGradientContext &rc, Geom::Point const pt, guint state, guint32 etime); -static SPEventContextClass *parent_class; - - -GType sp_gradient_context_get_type() -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPGradientContextClass), - NULL, NULL, - (GClassInitFunc) sp_gradient_context_class_init, - NULL, NULL, - sizeof(SPGradientContext), - 4, - (GInstanceInitFunc) sp_gradient_context_init, - NULL, /* value_table */ - }; - type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPGradientContext", &info, (GTypeFlags) 0); - } - return type; -} +G_DEFINE_TYPE(SPGradientContext, sp_gradient_context, SP_TYPE_EVENT_CONTEXT); static void sp_gradient_context_class_init(SPGradientContextClass *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_gradient_context_dispose; event_context_class->setup = sp_gradient_context_setup; @@ -127,7 +103,7 @@ static void sp_gradient_context_dispose(GObject *object) rc->subselcon->disconnect(); delete rc->subselcon; - G_OBJECT_CLASS(parent_class)->dispose(object); + G_OBJECT_CLASS(sp_gradient_context_parent_class)->dispose(object); } const gchar *gr_handle_descr [] = { @@ -204,8 +180,8 @@ static void sp_gradient_context_setup(SPEventContext *ec) { SPGradientContext *rc = SP_GRADIENT_CONTEXT(ec); - if (((SPEventContextClass *) parent_class)->setup) { - ((SPEventContextClass *) parent_class)->setup(ec); + if (((SPEventContextClass *) sp_gradient_context_parent_class)->setup) { + ((SPEventContextClass *) sp_gradient_context_parent_class)->setup(ec); } Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -879,8 +855,8 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event) } if (!ret) { - if (((SPEventContextClass *) parent_class)->root_handler) { - ret = ((SPEventContextClass *) parent_class)->root_handler(event_context, event); + if (((SPEventContextClass *) sp_gradient_context_parent_class)->root_handler) { + ret = ((SPEventContextClass *) sp_gradient_context_parent_class)->root_handler(event_context, event); } } diff --git a/src/helper/action.cpp b/src/helper/action.cpp index 4fafa191e..0e9957ca3 100644 --- a/src/helper/action.cpp +++ b/src/helper/action.cpp @@ -19,34 +19,9 @@ #include "document.h" #include "helper/action.h" -static void sp_action_class_init (SPActionClass *klass); -static void sp_action_init (SPAction *action); static void sp_action_finalize (GObject *object); -static GObjectClass *parent_class; - -/** - * Register SPAction class and return its type. - */ -GType -sp_action_get_type (void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPActionClass), - NULL, NULL, - (GClassInitFunc) sp_action_class_init, - NULL, NULL, - sizeof(SPAction), - 0, - (GInstanceInitFunc) sp_action_init, - NULL - }; - type = g_type_register_static(G_TYPE_OBJECT, "SPAction", &info, (GTypeFlags)0); - } - return type; -} +G_DEFINE_TYPE(SPAction, sp_action, G_TYPE_OBJECT); /** * SPAction vtable initialization. @@ -54,8 +29,6 @@ sp_action_get_type (void) static void sp_action_class_init (SPActionClass *klass) { - parent_class = (GObjectClass*) g_type_class_ref(G_TYPE_OBJECT); - GObjectClass *object_class = (GObjectClass *) klass; object_class->finalize = sp_action_finalize; } @@ -84,19 +57,19 @@ sp_action_init (SPAction *action) static void sp_action_finalize (GObject *object) { - SPAction *action = SP_ACTION(object); + SPAction *action = SP_ACTION(object); - g_free (action->image); - g_free (action->tip); - g_free (action->name); - g_free (action->id); + g_free (action->image); + g_free (action->tip); + g_free (action->name); + g_free (action->id); action->signal_perform.~signal(); action->signal_set_sensitive.~signal(); action->signal_set_active.~signal(); action->signal_set_name.~signal(); - parent_class->finalize (object); + G_OBJECT_CLASS(sp_action_parent_class)->finalize (object); } /** diff --git a/src/helper/unit-menu.cpp b/src/helper/unit-menu.cpp index bb2254a1b..af07c03c1 100644 --- a/src/helper/unit-menu.cpp +++ b/src/helper/unit-menu.cpp @@ -52,39 +52,16 @@ struct SPUnitSelectorClass { enum {SET_UNIT, LAST_SIGNAL}; -static void sp_unit_selector_class_init(SPUnitSelectorClass *klass); -static void sp_unit_selector_init(SPUnitSelector *selector); static void sp_unit_selector_finalize(GObject *object); -static GtkHBoxClass *unit_selector_parent_class; static guint signals[LAST_SIGNAL] = {0}; -GType sp_unit_selector_get_type(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPUnitSelectorClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)sp_unit_selector_class_init, - 0, // class_finalize - 0, // class_data - sizeof(SPUnitSelector), - 0, // n_preallocs - (GInstanceInitFunc)sp_unit_selector_init, - 0 // value_table - }; - type = g_type_register_static(GTK_TYPE_HBOX, "SPUnitSelector", &info, static_cast<GTypeFlags>(0)); - } - return type; -} +G_DEFINE_TYPE(SPUnitSelector, sp_unit_selector, GTK_TYPE_HBOX); static void sp_unit_selector_class_init(SPUnitSelectorClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); - unit_selector_parent_class = GTK_HBOX_CLASS(g_type_class_peek_parent(klass)); signals[SET_UNIT] = g_signal_new("set_unit", G_TYPE_FROM_CLASS(klass), @@ -142,7 +119,7 @@ sp_unit_selector_finalize(GObject *object) selector->unit = NULL; - G_OBJECT_CLASS(unit_selector_parent_class)->finalize(object); + G_OBJECT_CLASS(sp_unit_selector_parent_class)->finalize(object); } GtkWidget * diff --git a/src/ink-comboboxentry-action.cpp b/src/ink-comboboxentry-action.cpp index d9b1b0965..8df16ec9a 100644 --- a/src/ink-comboboxentry-action.cpp +++ b/src/ink-comboboxentry-action.cpp @@ -63,9 +63,13 @@ enum { }; static guint signals[N_SIGNALS] = {0}; -static GtkActionClass *ink_comboboxentry_action_parent_class = NULL; static GQuark gDataName = 0; +static void ink_comboboxentry_action_init (Ink_ComboBoxEntry_Action *action); +static void ink_comboboxentry_action_class_init (Ink_ComboBoxEntry_ActionClass *klass); + +G_DEFINE_TYPE(Ink_ComboBoxEntry_Action, ink_comboboxentry_action, GTK_TYPE_ACTION); + static void ink_comboboxentry_action_finalize (GObject *object) { // Free any allocated resources. @@ -174,8 +178,8 @@ ink_comboboxentry_action_connect_proxy (GtkAction *action, GTK_ACTION_CLASS (ink_comboboxentry_action_parent_class)->connect_proxy (action, proxy); } - -static void ink_comboboxentry_action_class_init (Ink_ComboBoxEntry_ActionClass *klass) +static void +ink_comboboxentry_action_class_init (Ink_ComboBoxEntry_ActionClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); @@ -192,8 +196,6 @@ static void ink_comboboxentry_action_class_init (Ink_ComboBoxEntry_ActionClass * klass->parent_class.create_tool_item = create_tool_item; klass->parent_class.create_menu_item = create_menu_item; - ink_comboboxentry_action_parent_class = GTK_ACTION_CLASS(g_type_class_peek_parent (klass) ); - g_object_class_install_property ( gobject_class, PROP_MODEL, @@ -292,34 +294,6 @@ static void ink_comboboxentry_action_init (Ink_ComboBoxEntry_Action *action) action->focusWidget = NULL; } -GType ink_comboboxentry_action_get_type () -{ - static GType ink_comboboxentry_action_type = 0; - - if (!ink_comboboxentry_action_type) { - static const GTypeInfo ink_comboboxentry_action_info = { - sizeof(Ink_ComboBoxEntry_ActionClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) ink_comboboxentry_action_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(Ink_ComboBoxEntry_Action), - 0, /* n_preallocs */ - (GInstanceInitFunc)ink_comboboxentry_action_init, /* instance_init */ - NULL /* value_table */ - }; - - ink_comboboxentry_action_type = g_type_register_static (GTK_TYPE_ACTION, - "Ink_ComboBoxEntry_Action", - &ink_comboboxentry_action_info, - (GTypeFlags)0 ); - } - - return ink_comboboxentry_action_type; -} - - Ink_ComboBoxEntry_Action *ink_comboboxentry_action_new (const gchar *name, const gchar *label, const gchar *tooltip, @@ -439,7 +413,7 @@ GtkWidget* create_tool_item( GtkAction* action ) } else { - item = ink_comboboxentry_action_parent_class->create_tool_item( action ); + item = GTK_ACTION_CLASS(ink_comboboxentry_action_parent_class)->create_tool_item( action ); } @@ -451,7 +425,7 @@ GtkWidget* create_menu_item( GtkAction* action ) { GtkWidget* item = 0; - item = ink_comboboxentry_action_parent_class->create_menu_item( action ); + item = GTK_ACTION_CLASS(ink_comboboxentry_action_parent_class)->create_menu_item( action ); g_warning( "ink_comboboxentry_action: create_menu_item not implemented" ); // One can easily modify ege-select-one-action routine to implement this. return item; diff --git a/src/lpe-tool-context.cpp b/src/lpe-tool-context.cpp index fc755b9dc..feabfa02d 100644 --- a/src/lpe-tool-context.cpp +++ b/src/lpe-tool-context.cpp @@ -41,8 +41,6 @@ #include "lpe-tool-context.h" -static void sp_lpetool_context_class_init(SPLPEToolContextClass *klass); -static void sp_lpetool_context_init(SPLPEToolContext *erc); static void sp_lpetool_context_dispose(GObject *object); static void sp_lpetool_context_setup(SPEventContext *ec); @@ -66,28 +64,7 @@ SubtoolEntry lpesubtools[] = { {Inkscape::LivePathEffect::MIRROR_SYMMETRY, "draw-geometry-mirror"} }; -static SPPenContextClass *lpetool_parent_class = 0; - -GType sp_lpetool_context_get_type(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPLPEToolContextClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)sp_lpetool_context_class_init, - 0, // class_finalize - 0, // class_data - sizeof(SPLPEToolContext), - 0, // n_preallocs - (GInstanceInitFunc)sp_lpetool_context_init, - 0 // value_table - }; - type = g_type_register_static(SP_TYPE_PEN_CONTEXT, "SPLPEToolContext", &info, static_cast<GTypeFlags>(0)); - } - return type; -} +G_DEFINE_TYPE(SPLPEToolContext, sp_lpetool_context, SP_TYPE_PEN_CONTEXT); static void sp_lpetool_context_class_init(SPLPEToolContextClass *klass) @@ -95,8 +72,6 @@ sp_lpetool_context_class_init(SPLPEToolContextClass *klass) GObjectClass *object_class = (GObjectClass *) klass; SPEventContextClass *event_context_class = (SPEventContextClass *) klass; - lpetool_parent_class = (SPPenContextClass*)g_type_class_peek_parent(klass); - object_class->dispose = sp_lpetool_context_dispose; event_context_class->setup = sp_lpetool_context_setup; @@ -140,7 +115,7 @@ sp_lpetool_context_dispose(GObject *object) delete lc->_lpetool_message_context; } - G_OBJECT_CLASS(lpetool_parent_class)->dispose(object); + G_OBJECT_CLASS(sp_lpetool_context_parent_class)->dispose(object); } static void @@ -148,8 +123,8 @@ sp_lpetool_context_setup(SPEventContext *ec) { SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(ec); - if (((SPEventContextClass *) lpetool_parent_class)->setup) - ((SPEventContextClass *) lpetool_parent_class)->setup(ec); + if (((SPEventContextClass *) sp_lpetool_context_parent_class)->setup) + ((SPEventContextClass *) sp_lpetool_context_parent_class)->setup(ec); Inkscape::Selection *selection = sp_desktop_selection (ec->desktop); SPItem *item = selection->singleItem(); @@ -204,8 +179,8 @@ sp_lpetool_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val) /* //pass on up to parent class to handle common attributes. - if ( lpetool_parent_class->set ) { - lpetool_parent_class->set(ec, key, val); + if ( sp_lpetool_context_parent_class->set ) { + sp_lpetool_context_parent_class->set(ec, key, val); } */ } @@ -234,8 +209,8 @@ sp_lpetool_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *even } if (!ret) { - if (((SPEventContextClass *) lpetool_parent_class)->item_handler) - ret = ((SPEventContextClass *) lpetool_parent_class)->item_handler(ec, item, event); + if (((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler) + ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->item_handler(ec, item, event); } return ret; @@ -252,7 +227,7 @@ sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event) if (sp_pen_context_has_waiting_LPE(lc)) { // quit when we are waiting for a LPE to be applied - ret = ((SPEventContextClass *) lpetool_parent_class)->root_handler(event_context, event); + ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); return ret; } @@ -284,7 +259,7 @@ sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event) sp_pen_context_wait_for_LPE_mouse_clicks(lc, type, Inkscape::LivePathEffect::Effect::acceptsNumClicks(type)); // we pass the mouse click on to pen tool as the first click which it should collect - ret = ((SPEventContextClass *) lpetool_parent_class)->root_handler(event_context, event); + ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); } break; @@ -320,8 +295,8 @@ sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event) } if (!ret) { - if (((SPEventContextClass *) lpetool_parent_class)->root_handler) { - ret = ((SPEventContextClass *) lpetool_parent_class)->root_handler(event_context, event); + if (((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler) { + ret = ((SPEventContextClass *) sp_lpetool_context_parent_class)->root_handler(event_context, event); } } diff --git a/src/mesh-context.cpp b/src/mesh-context.cpp index 8fd016702..36712d15d 100644 --- a/src/mesh-context.cpp +++ b/src/mesh-context.cpp @@ -53,8 +53,6 @@ using Inkscape::DocumentUndo; -static void sp_mesh_context_class_init(SPMeshContextClass *klass); -static void sp_mesh_context_init(SPMeshContext *gr_context); static void sp_mesh_context_dispose(GObject *object); static void sp_mesh_context_setup(SPEventContext *ec); @@ -63,35 +61,13 @@ static gint sp_mesh_context_root_handler(SPEventContext *event_context, GdkEvent static void sp_mesh_drag(SPMeshContext &rc, Geom::Point const pt, guint state, guint32 etime); -static SPEventContextClass *parent_class; - - -GType sp_mesh_context_get_type() -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPMeshContextClass), - NULL, NULL, - (GClassInitFunc) sp_mesh_context_class_init, - NULL, NULL, - sizeof(SPMeshContext), - 4, - (GInstanceInitFunc) sp_mesh_context_init, - NULL, /* value_table */ - }; - type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "SPMeshContext", &info, (GTypeFlags) 0); - } - return type; -} +G_DEFINE_TYPE(SPMeshContext, sp_mesh_context, SP_TYPE_EVENT_CONTEXT); static void sp_mesh_context_class_init(SPMeshContextClass *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_mesh_context_dispose; event_context_class->setup = sp_mesh_context_setup; @@ -129,7 +105,7 @@ static void sp_mesh_context_dispose(GObject *object) rc->subselcon->disconnect(); delete rc->subselcon; - G_OBJECT_CLASS(parent_class)->dispose(object); + G_OBJECT_CLASS(sp_mesh_context_parent_class)->dispose(object); } const gchar *ms_handle_descr [] = { @@ -270,8 +246,8 @@ static void sp_mesh_context_setup(SPEventContext *ec) { SPMeshContext *rc = SP_MESH_CONTEXT(ec); - if (((SPEventContextClass *) parent_class)->setup) { - ((SPEventContextClass *) parent_class)->setup(ec); + if (((SPEventContextClass *) sp_mesh_context_parent_class)->setup) { + ((SPEventContextClass *) sp_mesh_context_parent_class)->setup(ec); } Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -948,8 +924,8 @@ sp_mesh_context_root_handler(SPEventContext *event_context, GdkEvent *event) } if (!ret) { - if (((SPEventContextClass *) parent_class)->root_handler) { - ret = ((SPEventContextClass *) parent_class)->root_handler(event_context, event); + if (((SPEventContextClass *) sp_mesh_context_parent_class)->root_handler) { + ret = ((SPEventContextClass *) sp_mesh_context_parent_class)->root_handler(event_context, event); } } diff --git a/src/pencil-context.cpp b/src/pencil-context.cpp index 19a040b24..090a43a25 100644 --- a/src/pencil-context.cpp +++ b/src/pencil-context.cpp @@ -45,9 +45,6 @@ #include "display/curve.h" #include "livarot/Path.h" - -static void sp_pencil_context_class_init(SPPencilContextClass *klass); -static void sp_pencil_context_init(SPPencilContext *pc); static void sp_pencil_context_setup(SPEventContext *ec); static void sp_pencil_context_dispose(GObject *object); @@ -66,34 +63,12 @@ static void fit_and_split(SPPencilContext *pc); static void interpolate(SPPencilContext *pc); static void sketch_interpolate(SPPencilContext *pc); -static SPDrawContextClass *pencil_parent_class; static Geom::Point pencil_drag_origin_w(0, 0); static bool pencil_within_tolerance = false; static bool in_svg_plane(Geom::Point const &p) { return Geom::LInfty(p) < 1e18; } -/** - * Register SPPencilContext class with Gdk and return its type number. - */ -GType -sp_pencil_context_get_type() -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPPencilContextClass), - NULL, NULL, - (GClassInitFunc) sp_pencil_context_class_init, - NULL, NULL, - sizeof(SPPencilContext), - 4, - (GInstanceInitFunc) sp_pencil_context_init, - NULL, /* value_table */ - }; - type = g_type_register_static(SP_TYPE_DRAW_CONTEXT, "SPPencilContext", &info, (GTypeFlags)0); - } - return type; -} +G_DEFINE_TYPE(SPPencilContext, sp_pencil_context, SP_TYPE_DRAW_CONTEXT); /** * Initialize SPPencilContext vtable. @@ -107,8 +82,6 @@ sp_pencil_context_class_init(SPPencilContextClass *klass) object_class = (GObjectClass *) klass; event_context_class = (SPEventContextClass *) klass; - pencil_parent_class = (SPDrawContextClass*)g_type_class_peek_parent(klass); - object_class->dispose = sp_pencil_context_dispose; event_context_class->setup = sp_pencil_context_setup; @@ -147,8 +120,8 @@ sp_pencil_context_setup(SPEventContext *ec) ec->enableSelectionCue(); } - if (((SPEventContextClass *) pencil_parent_class)->setup) { - ((SPEventContextClass *) pencil_parent_class)->setup(ec); + if (((SPEventContextClass *) sp_pencil_context_parent_class)->setup) { + ((SPEventContextClass *) sp_pencil_context_parent_class)->setup(ec); } SPPencilContext *const pc = SP_PENCIL_CONTEXT(ec); @@ -160,7 +133,7 @@ sp_pencil_context_setup(SPEventContext *ec) static void sp_pencil_context_dispose(GObject *object) { - G_OBJECT_CLASS(pencil_parent_class)->dispose(object); + G_OBJECT_CLASS(sp_pencil_context_parent_class)->dispose(object); } /** Snaps new node relative to the previous node. */ @@ -218,7 +191,7 @@ sp_pencil_context_root_handler(SPEventContext *const ec, GdkEvent *event) if (!ret) { gint (*const parent_root_handler)(SPEventContext *, GdkEvent *) - = ((SPEventContextClass *) pencil_parent_class)->root_handler; + = ((SPEventContextClass *) sp_pencil_context_parent_class)->root_handler; if (parent_root_handler) { ret = parent_root_handler(ec, event); } diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index c7dce3850..e3a44d8bb 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -38,10 +38,6 @@ using std::pair; #include "display/nr-filter.h" /* Filter base class */ - -static void sp_filter_class_init(SPFilterClass *klass); -static void sp_filter_init(SPFilter *filter); - static void sp_filter_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_filter_release(SPObject *object); static void sp_filter_set(SPObject *object, unsigned int key, gchar const *value); @@ -55,37 +51,13 @@ static Inkscape::XML::Node *sp_filter_write(SPObject *object, Inkscape::XML::Doc static void filter_ref_changed(SPObject *old_ref, SPObject *ref, SPFilter *filter); static void filter_ref_modified(SPObject *href, guint flags, SPFilter *filter); -static SPObjectClass *filter_parent_class; - -GType -sp_filter_get_type() -{ - static GType filter_type = 0; - - if (!filter_type) { - GTypeInfo filter_info = { - sizeof(SPFilterClass), - NULL, NULL, - (GClassInitFunc) sp_filter_class_init, - NULL, NULL, - sizeof(SPFilter), - 16, - (GInstanceInitFunc) sp_filter_init, - NULL, /* value_table */ - }; - filter_type = g_type_register_static(SP_TYPE_OBJECT, "SPFilter", &filter_info, (GTypeFlags)0); - } - return filter_type; -} +G_DEFINE_TYPE(SPFilter, sp_filter, SP_TYPE_OBJECT); static void sp_filter_class_init(SPFilterClass *klass) { - SPObjectClass *sp_object_class = (SPObjectClass *)klass; - filter_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); - sp_object_class->build = sp_filter_build; sp_object_class->release = sp_filter_release; sp_object_class->write = sp_filter_write; @@ -141,8 +113,8 @@ sp_filter_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *rep object->readAttr( "filterRes" ); object->readAttr( "xlink:href" ); - if (((SPObjectClass *) filter_parent_class)->build) { - ((SPObjectClass *) filter_parent_class)->build(object, document, repr); + if (((SPObjectClass *) sp_filter_parent_class)->build) { + ((SPObjectClass *) sp_filter_parent_class)->build(object, document, repr); } //is this necessary? @@ -174,8 +146,8 @@ static void sp_filter_release(SPObject *object) filter->modified_connection.~connection(); delete filter->_image_name; - if (((SPObjectClass *) filter_parent_class)->release) - ((SPObjectClass *) filter_parent_class)->release(object); + if (((SPObjectClass *) sp_filter_parent_class)->release) + ((SPObjectClass *) sp_filter_parent_class)->release(object); } /** @@ -249,8 +221,8 @@ sp_filter_set(SPObject *object, unsigned int key, gchar const *value) break; default: // See if any parents need this value. - if (((SPObjectClass *) filter_parent_class)->set) { - ((SPObjectClass *) filter_parent_class)->set(object, key, value); + if (((SPObjectClass *) sp_filter_parent_class)->set) { + ((SPObjectClass *) sp_filter_parent_class)->set(object, key, value); } break; } @@ -271,8 +243,8 @@ sp_filter_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) filter_parent_class)->update) { - ((SPObjectClass *) filter_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_filter_parent_class)->update) { + ((SPObjectClass *) sp_filter_parent_class)->update(object, ctx, flags); } } @@ -367,8 +339,8 @@ sp_filter_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::N g_free(uri_string); } - if (((SPObjectClass *) filter_parent_class)->write) { - ((SPObjectClass *) filter_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_filter_parent_class)->write) { + ((SPObjectClass *) sp_filter_parent_class)->write(object, doc, repr, flags); } return repr; @@ -407,8 +379,8 @@ sp_filter_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XM { //SPFilter *f = SP_FILTER(object); - if (((SPObjectClass *) filter_parent_class)->child_added) - (* ((SPObjectClass *) filter_parent_class)->child_added)(object, child, ref); + if (((SPObjectClass *) sp_filter_parent_class)->child_added) + (* ((SPObjectClass *) sp_filter_parent_class)->child_added)(object, child, ref); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } @@ -421,8 +393,8 @@ sp_filter_remove_child(SPObject *object, Inkscape::XML::Node *child) { // SPFilter *f = SP_FILTER(object); - if (((SPObjectClass *) filter_parent_class)->remove_child) - (* ((SPObjectClass *) filter_parent_class)->remove_child)(object, child); + if (((SPObjectClass *) sp_filter_parent_class)->remove_child) + (* ((SPObjectClass *) sp_filter_parent_class)->remove_child)(object, child); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 3b8999eda..e8629ff70 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -39,9 +39,6 @@ #include <algorithm> /* LPEItem base class */ - -static void sp_lpe_item_class_init(SPLPEItemClass *klass); -static void sp_lpe_item_init(SPLPEItem *lpe_item); static void sp_lpe_item_finalize(GObject *object); static void sp_lpe_item_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); @@ -64,34 +61,12 @@ typedef std::list<std::string> HRefList; static std::string patheffectlist_write_svg(PathEffectList const & list); static std::string hreflist_write_svg(HRefList const & list); -static SPItemClass *parent_class; - -GType -sp_lpe_item_get_type() -{ - static GType lpe_item_type = 0; - - if (!lpe_item_type) { - GTypeInfo lpe_item_info = { - sizeof(SPLPEItemClass), - NULL, NULL, - (GClassInitFunc) sp_lpe_item_class_init, - NULL, NULL, - sizeof(SPLPEItem), - 16, - (GInstanceInitFunc) sp_lpe_item_init, - NULL, /* value_table */ - }; - lpe_item_type = g_type_register_static(SP_TYPE_ITEM, "SPLPEItem", &lpe_item_info, (GTypeFlags)0); - } - return lpe_item_type; -} +G_DEFINE_TYPE(SPLPEItem, sp_lpe_item, SP_TYPE_ITEM); static void sp_lpe_item_class_init(SPLPEItemClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS(klass); SPObjectClass *sp_object_class = SP_OBJECT_CLASS(klass); - parent_class = SP_ITEM_CLASS(g_type_class_peek_parent(klass)); gobject_class->finalize = sp_lpe_item_finalize; sp_object_class->build = sp_lpe_item_build; @@ -119,8 +94,8 @@ sp_lpe_item_init(SPLPEItem *lpeitem) static void sp_lpe_item_finalize(GObject *object) { - if (((GObjectClass *) (parent_class))->finalize) { - (* ((GObjectClass *) (parent_class))->finalize)(object); + if (((GObjectClass *) (sp_lpe_item_parent_class))->finalize) { + (* ((GObjectClass *) (sp_lpe_item_parent_class))->finalize)(object); } } @@ -133,8 +108,8 @@ static void sp_lpe_item_build(SPObject *object, SPDocument *document, Inkscape:: { object->readAttr( "inkscape:path-effect" ); - if ((SP_OBJECT_CLASS(parent_class))->build) { - (SP_OBJECT_CLASS(parent_class))->build(object, document, repr); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->build) { + (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->build(object, document, repr); } } @@ -165,8 +140,8 @@ static void sp_lpe_item_release(SPObject *object) delete lpeitem->path_effect_list; lpeitem->path_effect_list = NULL; - if ((SP_OBJECT_CLASS(parent_class))->release) - (SP_OBJECT_CLASS(parent_class))->release(object); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->release) + (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->release(object); } /** @@ -234,8 +209,8 @@ static void sp_lpe_item_set(SPObject *object, unsigned int key, gchar const *val } break; default: - if ((SP_OBJECT_CLASS(parent_class))->set) { - (SP_OBJECT_CLASS(parent_class))->set(object, key, value); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->set) { + (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->set(object, key, value); } break; } @@ -247,8 +222,8 @@ static void sp_lpe_item_set(SPObject *object, unsigned int key, gchar const *val static void sp_lpe_item_update(SPObject *object, SPCtx *ctx, guint flags) { - if ((SP_OBJECT_CLASS(parent_class))->update) { - (SP_OBJECT_CLASS(parent_class))->update(object, ctx, flags); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->update) { + (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->update(object, ctx, flags); } // update the helperpaths of all LPEs applied to the item @@ -264,8 +239,8 @@ static void sp_lpe_item_modified (SPObject *object, unsigned int flags) sp_lpe_item_update_patheffect(SP_LPE_ITEM(object), true, true); } - if ((SP_OBJECT_CLASS(parent_class))->modified) { - (* (SP_OBJECT_CLASS(parent_class))->modified) (object, flags); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->modified) { + (* (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->modified) (object, flags); } } @@ -285,8 +260,8 @@ static Inkscape::XML::Node * sp_lpe_item_write(SPObject *object, Inkscape::XML:: } } - if ((SP_OBJECT_CLASS(parent_class))->write) { - (SP_OBJECT_CLASS(parent_class))->write(object, xml_doc, repr, flags); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->write) { + (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->write(object, xml_doc, repr, flags); } return repr; @@ -666,8 +641,8 @@ void sp_lpe_item_edit_next_param_oncanvas(SPLPEItem *lpeitem, SPDesktop *dt) static void sp_lpe_item_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref) { - if ((SP_OBJECT_CLASS(parent_class))->child_added) - (* (SP_OBJECT_CLASS(parent_class))->child_added) (object, child, ref); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->child_added) + (* (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->child_added) (object, child, ref); if (SP_IS_LPE_ITEM(object) && sp_lpe_item_has_path_effect_recursive(SP_LPE_ITEM(object))) { SPObject *ochild = object->get_child_by_repr(child); @@ -686,8 +661,8 @@ static void sp_lpe_item_remove_child(SPObject * object, Inkscape::XML::Node * ch } } - if ((SP_OBJECT_CLASS(parent_class))->remove_child) - (* (SP_OBJECT_CLASS(parent_class))->remove_child) (object, child); + if ((SP_OBJECT_CLASS(sp_lpe_item_parent_class))->remove_child) + (* (SP_OBJECT_CLASS(sp_lpe_item_parent_class))->remove_child) (object, child); } static std::string patheffectlist_write_svg(PathEffectList const & list) diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index 785a626f8..4243c9811 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -34,9 +34,6 @@ struct SPMaskView { Geom::OptRect bbox; }; -static void sp_mask_class_init (SPMaskClass *klass); -static void sp_mask_init (SPMask *mask); - static void sp_mask_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_mask_release (SPObject * object); static void sp_mask_set (SPObject *object, unsigned int key, const gchar *value); @@ -48,33 +45,11 @@ static Inkscape::XML::Node *sp_mask_write (SPObject *object, Inkscape::XML::Docu SPMaskView *sp_mask_view_new_prepend (SPMaskView *list, unsigned int key, Inkscape::DrawingItem *arenaitem); SPMaskView *sp_mask_view_list_remove (SPMaskView *list, SPMaskView *view); -static SPObjectGroupClass *parent_class; - -GType -sp_mask_get_type (void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof (SPMaskClass), - NULL, NULL, - (GClassInitFunc) sp_mask_class_init, - NULL, NULL, - sizeof (SPMask), - 16, - (GInstanceInitFunc) sp_mask_init, - NULL, /* value_table */ - }; - type = g_type_register_static (SP_TYPE_OBJECTGROUP, "SPMask", &info, (GTypeFlags)0); - } - return type; -} +G_DEFINE_TYPE(SPMask, sp_mask, SP_TYPE_OBJECTGROUP); static void sp_mask_class_init (SPMaskClass *klass) { - parent_class = SP_OBJECTGROUP_CLASS(g_type_class_ref(SP_TYPE_OBJECTGROUP)); - SPObjectClass *sp_object_class = (SPObjectClass *) klass; sp_object_class->build = sp_mask_build; sp_object_class->release = sp_mask_release; @@ -100,8 +75,8 @@ sp_mask_init (SPMask *mask) static void sp_mask_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) parent_class)->build) { - ((SPObjectClass *) parent_class)->build (object, document, repr); + if (((SPObjectClass *) sp_mask_parent_class)->build) { + ((SPObjectClass *) sp_mask_parent_class)->build (object, document, repr); } object->readAttr( "maskUnits" ); @@ -124,8 +99,8 @@ static void sp_mask_release (SPObject * object) cp->display = sp_mask_view_list_remove (cp->display, cp->display); } - if (((SPObjectClass *) (parent_class))->release) { - ((SPObjectClass *) parent_class)->release (object); + if (((SPObjectClass *) (sp_mask_parent_class))->release) { + ((SPObjectClass *) sp_mask_parent_class)->release (object); } } @@ -162,8 +137,8 @@ sp_mask_set (SPObject *object, unsigned int key, const gchar *value) object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); break; default: - if (((SPObjectClass *) parent_class)->set) - ((SPObjectClass *) parent_class)->set (object, key, value); + if (((SPObjectClass *) sp_mask_parent_class)->set) + ((SPObjectClass *) sp_mask_parent_class)->set (object, key, value); break; } } @@ -172,7 +147,7 @@ static void sp_mask_child_added (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref) { /* Invoke SPObjectGroup implementation */ - ((SPObjectClass *) (parent_class))->child_added (object, child, ref); + ((SPObjectClass *) (sp_mask_parent_class))->child_added (object, child, ref); /* Show new object */ SPObject *ochild = object->document->getObjectByRepr(child); @@ -258,8 +233,8 @@ sp_mask_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML repr = xml_doc->createElement("svg:mask"); } - if (((SPObjectClass *) (parent_class))->write) - ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr, flags); + if (((SPObjectClass *) (sp_mask_parent_class))->write) + ((SPObjectClass *) (sp_mask_parent_class))->write (object, xml_doc, repr, flags); return repr; } diff --git a/src/sp-metadata.cpp b/src/sp-metadata.cpp index 831bb5a70..9978d0a3a 100644 --- a/src/sp-metadata.cpp +++ b/src/sp-metadata.cpp @@ -33,46 +33,19 @@ /* Metadata base class */ -static void sp_metadata_class_init (SPMetadataClass *klass); -static void sp_metadata_init (SPMetadata *metadata); - static void sp_metadata_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr); static void sp_metadata_release (SPObject *object); static void sp_metadata_set (SPObject *object, unsigned int key, const gchar *value); static void sp_metadata_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_metadata_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPObjectClass *metadata_parent_class; - -GType -sp_metadata_get_type (void) -{ - static GType metadata_type = 0; - - if (!metadata_type) { - GTypeInfo metadata_info = { - sizeof (SPMetadataClass), - NULL, NULL, - (GClassInitFunc) sp_metadata_class_init, - NULL, NULL, - sizeof (SPMetadata), - 16, - (GInstanceInitFunc) sp_metadata_init, - NULL, /* value_table */ - }; - metadata_type = g_type_register_static (SP_TYPE_OBJECT, "SPMetadata", &metadata_info, (GTypeFlags)0); - } - return metadata_type; -} +G_DEFINE_TYPE(SPMetadata, sp_metadata, SP_TYPE_OBJECT); static void sp_metadata_class_init (SPMetadataClass *klass) { - //GObjectClass *gobject_class = (GObjectClass *)klass; SPObjectClass *sp_object_class = (SPObjectClass *)klass; - metadata_parent_class = (SPObjectClass*)g_type_class_peek_parent (klass); - sp_object_class->build = sp_metadata_build; sp_object_class->release = sp_metadata_release; sp_object_class->write = sp_metadata_write; @@ -123,8 +96,8 @@ static void sp_metadata_build(SPObject *object, SPDocument *document, Inkscape:: } } - if (((SPObjectClass *) metadata_parent_class)->build) - ((SPObjectClass *) metadata_parent_class)->build (object, document, repr); + if (((SPObjectClass *) sp_metadata_parent_class)->build) + ((SPObjectClass *) sp_metadata_parent_class)->build (object, document, repr); } /** @@ -136,8 +109,8 @@ static void sp_metadata_release(SPObject *object) // handle ourself - if (((SPObjectClass *) metadata_parent_class)->release) - ((SPObjectClass *) metadata_parent_class)->release (object); + if (((SPObjectClass *) sp_metadata_parent_class)->release) + ((SPObjectClass *) sp_metadata_parent_class)->release (object); } /** @@ -150,8 +123,8 @@ static void sp_metadata_set(SPObject *object, unsigned int key, const gchar *val SP_METADATA(object); // ensures the object is of the proper type. // see if any parents need this value - if (reinterpret_cast<SPObjectClass *>(metadata_parent_class)->set) { - reinterpret_cast<SPObjectClass *>(metadata_parent_class)->set(object, key, value); + if (reinterpret_cast<SPObjectClass *>(sp_metadata_parent_class)->set) { + reinterpret_cast<SPObjectClass *>(sp_metadata_parent_class)->set(object, key, value); } } @@ -170,8 +143,8 @@ static void sp_metadata_update(SPObject *object, SPCtx *ctx, guint flags) } - if (((SPObjectClass *) metadata_parent_class)->update) - ((SPObjectClass *) metadata_parent_class)->update(object, ctx, flags); + if (((SPObjectClass *) sp_metadata_parent_class)->update) + ((SPObjectClass *) sp_metadata_parent_class)->update(object, ctx, flags); } /** @@ -190,8 +163,8 @@ static Inkscape::XML::Node *sp_metadata_write(SPObject *object, Inkscape::XML::D } } - if (((SPObjectClass *) metadata_parent_class)->write) { - ((SPObjectClass *) metadata_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_metadata_parent_class)->write) { + ((SPObjectClass *) sp_metadata_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index f18199e96..754a75e87 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -40,10 +40,6 @@ /* * Pattern */ - -static void sp_pattern_class_init (SPPatternClass *klass); -static void sp_pattern_init (SPPattern *gr); - static void sp_pattern_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_pattern_release (SPObject *object); static void sp_pattern_set (SPObject *object, unsigned int key, const gchar *value); @@ -55,29 +51,7 @@ static void pattern_ref_modified (SPObject *ref, guint flags, SPPattern *pattern static cairo_pattern_t *sp_pattern_create_pattern(SPPaintServer *ps, cairo_t *ct, Geom::OptRect const &bbox, double opacity); -static SPPaintServerClass * pattern_parent_class; - -GType -sp_pattern_get_type (void) -{ - static GType pattern_type = 0; - if (!pattern_type) { - GTypeInfo pattern_info = { - sizeof (SPPatternClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) sp_pattern_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (SPPattern), - 16, /* n_preallocs */ - (GInstanceInitFunc) sp_pattern_init, - NULL, /* value_table */ - }; - pattern_type = g_type_register_static (SP_TYPE_PAINT_SERVER, "SPPattern", &pattern_info, (GTypeFlags)0); - } - return pattern_type; -} +G_DEFINE_TYPE(SPPattern, sp_pattern, SP_TYPE_PAINT_SERVER); static void sp_pattern_class_init (SPPatternClass *klass) @@ -88,8 +62,6 @@ sp_pattern_class_init (SPPatternClass *klass) sp_object_class = (SPObjectClass *) klass; ps_class = (SPPaintServerClass *) klass; - pattern_parent_class = (SPPaintServerClass*)g_type_class_ref (SP_TYPE_PAINT_SERVER); - sp_object_class->build = sp_pattern_build; sp_object_class->release = sp_pattern_release; sp_object_class->set = sp_pattern_set; @@ -129,8 +101,8 @@ sp_pattern_init (SPPattern *pat) static void sp_pattern_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) pattern_parent_class)->build) - (* ((SPObjectClass *) pattern_parent_class)->build) (object, document, repr); + if (((SPObjectClass *) sp_pattern_parent_class)->build) + (* ((SPObjectClass *) sp_pattern_parent_class)->build) (object, document, repr); object->readAttr( "patternUnits" ); object->readAttr( "patternContentUnits" ); @@ -164,8 +136,8 @@ static void sp_pattern_release(SPObject *object) pat->modified_connection.~connection(); - if (((SPObjectClass *) pattern_parent_class)->release) { - ((SPObjectClass *) pattern_parent_class)->release (object); + if (((SPObjectClass *) sp_pattern_parent_class)->release) { + ((SPObjectClass *) sp_pattern_parent_class)->release (object); } } @@ -280,8 +252,8 @@ sp_pattern_set (SPObject *object, unsigned int key, const gchar *value) } break; default: - if (((SPObjectClass *) pattern_parent_class)->set) - ((SPObjectClass *) pattern_parent_class)->set (object, key, value); + if (((SPObjectClass *) sp_pattern_parent_class)->set) + ((SPObjectClass *) sp_pattern_parent_class)->set (object, key, value); break; } } diff --git a/src/sp-title.cpp b/src/sp-title.cpp index ddeccede2..489a6f448 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -16,38 +16,14 @@ #include "sp-title.h" #include "xml/repr.h" -static void sp_title_class_init(SPTitleClass *klass); -static void sp_title_init(SPTitle *rect); static Inkscape::XML::Node *sp_title_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static SPObjectClass *title_parent_class; - -GType -sp_title_get_type (void) -{ - static GType title_type = 0; - - if (!title_type) { - GTypeInfo title_info = { - sizeof (SPTitleClass), - NULL, NULL, - (GClassInitFunc) sp_title_class_init, - NULL, NULL, - sizeof (SPTitle), - 16, - (GInstanceInitFunc) sp_title_init, - NULL, /* value_table */ - }; - title_type = g_type_register_static (SP_TYPE_OBJECT, "SPTitle", &title_info, (GTypeFlags)0); - } - return title_type; -} +G_DEFINE_TYPE(SPTitle, sp_title, SP_TYPE_OBJECT); static void sp_title_class_init(SPTitleClass *klass) { SPObjectClass *sp_object_class = (SPObjectClass *) klass; - title_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); sp_object_class->write = sp_title_write; } @@ -66,8 +42,8 @@ static Inkscape::XML::Node *sp_title_write(SPObject *object, Inkscape::XML::Docu repr = object->getRepr()->duplicate(doc); } - if (((SPObjectClass *) title_parent_class)->write) { - ((SPObjectClass *) title_parent_class)->write(object, doc, repr, flags); + if (((SPObjectClass *) sp_title_parent_class)->write) { + ((SPObjectClass *) sp_title_parent_class)->write(object, doc, repr, flags); } return repr; diff --git a/src/ui/tool/node-tool.cpp b/src/ui/tool/node-tool.cpp index 7b6502ec3..e743e0efc 100644 --- a/src/ui/tool/node-tool.cpp +++ b/src/ui/tool/node-tool.cpp @@ -107,8 +107,6 @@ using Inkscape::ControlManager; namespace { SPCanvasGroup *create_control_group(SPDesktop *d); -void ink_node_tool_class_init(InkNodeToolClass *klass); -void ink_node_tool_init(InkNodeTool *node_context); void ink_node_tool_dispose(GObject *object); void ink_node_tool_setup(SPEventContext *ec); @@ -126,39 +124,10 @@ void handleControlUiStyleChange(InkNodeTool *nt); } // anonymous namespace -GType ink_node_tool_get_type() -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(InkNodeToolClass), - NULL, NULL, - (GClassInitFunc) ink_node_tool_class_init, - NULL, NULL, - sizeof(InkNodeTool), - 4, - (GInstanceInitFunc) ink_node_tool_init, - NULL, /* value_table */ - }; - type = g_type_register_static(SP_TYPE_EVENT_CONTEXT, "InkNodeTool", &info, (GTypeFlags)0); - } - return type; -} - -namespace { - -SPCanvasGroup *create_control_group(SPDesktop *d) -{ - return reinterpret_cast<SPCanvasGroup*>(sp_canvas_item_new( - sp_desktop_controls(d), SP_TYPE_CANVAS_GROUP, NULL)); -} - -void destroy_group(SPCanvasGroup *g) -{ - sp_canvas_item_destroy(SP_CANVAS_ITEM(g)); -} +G_DEFINE_TYPE(InkNodeTool, ink_node_tool, SP_TYPE_EVENT_CONTEXT); -void ink_node_tool_class_init(InkNodeToolClass *klass) +static void +ink_node_tool_class_init(InkNodeToolClass *klass) { GObjectClass *object_class = (GObjectClass *) klass; SPEventContextClass *event_context_class = (SPEventContextClass *) klass; @@ -171,7 +140,8 @@ void ink_node_tool_class_init(InkNodeToolClass *klass) event_context_class->item_handler = ink_node_tool_item_handler; } -void ink_node_tool_init(InkNodeTool *nt) +static void +ink_node_tool_init(InkNodeTool *nt) { SPEventContext *event_context = SP_EVENT_CONTEXT(nt); @@ -191,6 +161,19 @@ void ink_node_tool_init(InkNodeTool *nt) new (&nt->_shape_editors) ShapeEditors(); } +namespace { + +SPCanvasGroup *create_control_group(SPDesktop *d) +{ + return reinterpret_cast<SPCanvasGroup*>(sp_canvas_item_new( + sp_desktop_controls(d), SP_TYPE_CANVAS_GROUP, NULL)); +} + +void destroy_group(SPCanvasGroup *g) +{ + sp_canvas_item_destroy(SP_CANVAS_ITEM(g)); +} + void ink_node_tool_dispose(GObject *object) { InkNodeTool *nt = INK_NODE_TOOL(object); @@ -228,15 +211,15 @@ void ink_node_tool_dispose(GObject *object) delete nt->_node_message_context; } - G_OBJECT_CLASS(g_type_class_peek(g_type_parent(INK_TYPE_NODE_TOOL)))->dispose(object); + G_OBJECT_CLASS(ink_node_tool_parent_class)->dispose(object); } void ink_node_tool_setup(SPEventContext *ec) { InkNodeTool *nt = INK_NODE_TOOL(ec); - SPEventContextClass *parent = (SPEventContextClass *) g_type_class_peek(g_type_parent(INK_TYPE_NODE_TOOL)); - if (parent->setup) parent->setup(ec); + if (SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->setup) + SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->setup(ec); nt->_node_message_context = new Inkscape::MessageContext((ec->desktop)->messageStack()); @@ -372,10 +355,8 @@ void ink_node_tool_set(SPEventContext *ec, Inkscape::Preferences::Entry *value) nt->edit_masks = value->getBool(); ink_node_tool_selection_changed(nt, nt->desktop->selection); } else { - SPEventContextClass *parent_class = - (SPEventContextClass *) g_type_class_peek(g_type_parent(INK_TYPE_NODE_TOOL)); - if (parent_class->set) - parent_class->set(ec, value); + if (SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->set) + SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->set(ec, value); } } @@ -556,9 +537,9 @@ gint ink_node_tool_root_handler(SPEventContext *event_context, GdkEvent *event) default: break; } - SPEventContextClass *parent_class = (SPEventContextClass *) g_type_class_peek(g_type_parent(INK_TYPE_NODE_TOOL)); - if (parent_class->root_handler) - return parent_class->root_handler(event_context, event); + if (SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->root_handler) + return SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->root_handler(event_context, event); + return FALSE; } @@ -622,10 +603,9 @@ void ink_node_tool_update_tip(InkNodeTool *nt, GdkEvent *event) gint ink_node_tool_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event) { - SPEventContextClass *parent_class = - (SPEventContextClass *) g_type_class_peek(g_type_parent(INK_TYPE_NODE_TOOL)); - if (parent_class->item_handler) - return parent_class->item_handler(event_context, item, event); + if (SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->item_handler) + return SP_EVENT_CONTEXT_CLASS(ink_node_tool_parent_class)->item_handler(event_context, item, event); + return FALSE; } diff --git a/src/widgets/button.cpp b/src/widgets/button.cpp index d7be6c9f0..467f0d70e 100644 --- a/src/widgets/button.cpp +++ b/src/widgets/button.cpp @@ -25,8 +25,6 @@ #include "button.h" -static void sp_button_class_init (SPButtonClass *klass); -static void sp_button_init (SPButton *button); static void sp_button_dispose(GObject *object); #if GTK_CHECK_VERSION(3,0,0) @@ -50,28 +48,7 @@ static void sp_button_set_doubleclick_action (SPButton *button, SPAction *action static void sp_button_action_set_active (SPButton *button, bool active); static void sp_button_set_composed_tooltip (GtkWidget *widget, SPAction *action); -static GtkToggleButtonClass *parent_class; - -GType sp_button_get_type(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPButtonClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)sp_button_class_init, - 0, // class_finalize - 0, // class_data - sizeof(SPButton), - 0, // n_preallocs - (GInstanceInitFunc)sp_button_init, - 0 // value_table - }; - type = g_type_register_static(GTK_TYPE_TOGGLE_BUTTON, "SPButton", &info, static_cast<GTypeFlags>(0)); - } - return type; -} +G_DEFINE_TYPE(SPButton, sp_button, GTK_TYPE_TOGGLE_BUTTON); static void sp_button_class_init (SPButtonClass *klass) @@ -80,8 +57,6 @@ sp_button_class_init (SPButtonClass *klass) GtkWidgetClass *widget_class=GTK_WIDGET_CLASS(klass); GtkButtonClass *button_class=GTK_BUTTON_CLASS(klass); - parent_class = GTK_TOGGLE_BUTTON_CLASS(g_type_class_peek_parent(klass)); - object_class->dispose = sp_button_dispose; #if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = sp_button_get_preferred_width; @@ -120,10 +95,10 @@ static void sp_button_dispose(GObject *object) sp_button_set_doubleclick_action (button, NULL); } - button->c_set_active.~connection(); - button->c_set_sensitive.~connection(); + button->c_set_active.~connection(); + button->c_set_sensitive.~connection(); - (G_OBJECT_CLASS(parent_class))->dispose(object); + (G_OBJECT_CLASS(sp_button_parent_class))->dispose(object); } @@ -185,7 +160,7 @@ sp_button_clicked (GtkButton *button) SPButton *sp_button=SP_BUTTON (button); if (sp_button->type == SP_BUTTON_TYPE_TOGGLE) { - (GTK_BUTTON_CLASS(parent_class))->clicked (button); + (GTK_BUTTON_CLASS(sp_button_parent_class))->clicked (button); } } @@ -340,3 +315,13 @@ sp_button_new_from_data( Inkscape::IconSize size, return button; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/icon.cpp b/src/widgets/icon.cpp index 7866989b1..8470e93db 100644 --- a/src/widgets/icon.cpp +++ b/src/widgets/icon.cpp @@ -41,9 +41,6 @@ #include "icon.h" struct IconImpl { - static void classInit(SPIconClass *klass); - static void init(SPIcon *icon); - static GtkWidget *newFull( Inkscape::IconSize lsize, gchar const *name ); static void dispose(GObject *object); @@ -104,12 +101,10 @@ struct IconImpl { private: static const std::string magicNumber; - static GtkWidgetClass *parent_class; static std::map<Glib::ustring, Glib::ustring> legacyNames; }; const std::string IconImpl::magicNumber = "1.0"; -GtkWidgetClass *IconImpl::parent_class = 0; std::map<Glib::ustring, Glib::ustring> IconImpl::legacyNames; @@ -141,34 +136,14 @@ public: static std::map<Glib::ustring, std::vector<IconCacheItem> > iconSetCache; static std::set<Glib::ustring> internalNames; -GType SPIcon::getType() -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPIconClass), - NULL, - NULL, - reinterpret_cast<GClassInitFunc>(IconImpl::classInit), - NULL, - NULL, - sizeof(SPIcon), - 0, - reinterpret_cast<GInstanceInitFunc>(IconImpl::init), - NULL - }; - type = g_type_register_static(GTK_TYPE_WIDGET, "SPIcon", &info, (GTypeFlags)0); - } - return type; -} +G_DEFINE_TYPE(SPIcon, sp_icon, GTK_TYPE_WIDGET); -void IconImpl::classInit(SPIconClass *klass) +static void +sp_icon_class_init(SPIconClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - parent_class = GTK_WIDGET_CLASS(g_type_class_peek_parent(klass)); - object_class->dispose = IconImpl::dispose; #if GTK_CHECK_VERSION(3,0,0) @@ -184,7 +159,8 @@ void IconImpl::classInit(SPIconClass *klass) widget_class->style_set = IconImpl::styleSet; } -void IconImpl::init(SPIcon *icon) +static void +sp_icon_init(SPIcon *icon) { gtk_widget_set_has_window (GTK_WIDGET (icon), FALSE); icon->lsize = Inkscape::ICON_SIZE_BUTTON; @@ -202,7 +178,7 @@ void IconImpl::dispose(GObject *object) icon->name = 0; } - (G_OBJECT_CLASS(parent_class))->dispose(object); + (G_OBJECT_CLASS(sp_icon_parent_class))->dispose(object); } void IconImpl::reset( SPIcon *icon ) @@ -375,8 +351,8 @@ GdkPixbuf* IconImpl::renderup( gchar const* name, Inkscape::IconSize lsize, unsi void IconImpl::screenChanged( GtkWidget *widget, GdkScreen *previous_screen ) { - if ( GTK_WIDGET_CLASS( parent_class )->screen_changed ) { - GTK_WIDGET_CLASS( parent_class )->screen_changed( widget, previous_screen ); + if ( GTK_WIDGET_CLASS( sp_icon_parent_class )->screen_changed ) { + GTK_WIDGET_CLASS( sp_icon_parent_class )->screen_changed( widget, previous_screen ); } SPIcon *icon = SP_ICON(widget); themeChanged(icon); @@ -384,8 +360,8 @@ void IconImpl::screenChanged( GtkWidget *widget, GdkScreen *previous_screen ) void IconImpl::styleSet( GtkWidget *widget, GtkStyle *previous_style ) { - if ( GTK_WIDGET_CLASS( parent_class )->style_set ) { - GTK_WIDGET_CLASS( parent_class )->style_set( widget, previous_style ); + if ( GTK_WIDGET_CLASS( sp_icon_parent_class )->style_set ) { + GTK_WIDGET_CLASS( sp_icon_parent_class )->style_set( widget, previous_style ); } SPIcon *icon = SP_ICON(widget); themeChanged(icon); diff --git a/src/widgets/icon.h b/src/widgets/icon.h index 3f6aa2455..6bce2e330 100644 --- a/src/widgets/icon.h +++ b/src/widgets/icon.h @@ -17,7 +17,7 @@ #include <gtkmm/widget.h> #include "icon-size.h" -#define SP_TYPE_ICON SPIcon::getType() +#define SP_TYPE_ICON sp_icon_get_type() #define SP_ICON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_ICON, SPIcon)) #define SP_IS_ICON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_ICON)) @@ -29,6 +29,8 @@ struct SPIconClass { GtkWidgetClass parent_class; }; +GType sp_icon_get_type() G_GNUC_CONST; + struct SPIcon { GtkWidget widget; @@ -38,8 +40,6 @@ struct SPIcon { GdkPixbuf *pb; - static GType getType(void); - friend class SPIconImpl; }; |
