summaryrefslogtreecommitdiffstats
path: root/src/widgets/sp-widget.cpp
diff options
context:
space:
mode:
authorLiam P. White <inkscapebrony@gmail.com>2014-08-30 15:49:40 +0000
committerLiam P. White <inkscapebrony@gmail.com>2014-08-30 15:49:40 +0000
commit18770eebe339cdc673812a48c5e05c7cdcb3a82e (patch)
tree1e3846a72decad64d24100cdbe0a2e0d42f252b8 /src/widgets/sp-widget.cpp
parentUpdate to experimental r13464 (diff)
parentFix paint-selector orientation (diff)
downloadinkscape-18770eebe339cdc673812a48c5e05c7cdcb3a82e.tar.gz
inkscape-18770eebe339cdc673812a48c5e05c7cdcb3a82e.zip
Update to experimental r13527
(bzr r13341.5.15)
Diffstat (limited to 'src/widgets/sp-widget.cpp')
-rw-r--r--src/widgets/sp-widget.cpp72
1 files changed, 22 insertions, 50 deletions
diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp
index 8feb5b994..5ab6b1bb5 100644
--- a/src/widgets/sp-widget.cpp
+++ b/src/widgets/sp-widget.cpp
@@ -37,8 +37,6 @@ public:
SPWidgetImpl(SPWidget &target);
~SPWidgetImpl();
- static void classInit(SPWidgetClass *klass);
- static void init(SPWidget *widget);
static void dispose(GObject *object);
static void show(GtkWidget *widget);
static void hide(GtkWidget *widget);
@@ -69,57 +67,20 @@ public:
void setSelection(Selection *selection);
private:
- static GtkBinClass *parentClass;
- static guint signals[LAST_SIGNAL];
-
SPWidget &_target;
};
-
-GtkBinClass *SPWidgetImpl::parentClass = 0;
-guint SPWidgetImpl::signals[LAST_SIGNAL] = {0};
-
} // namespace Inkscape
-GType SPWidget::getType()
-{
- static GType type = 0;
- if (!type) {
- static GTypeInfo const info = {
- sizeof(SPWidgetClass),
- NULL, NULL,
- reinterpret_cast<GClassInitFunc>(SPWidgetImpl::classInit),
- NULL, NULL,
- sizeof(SPWidget),
- 0,
- reinterpret_cast<GInstanceInitFunc>(SPWidgetImpl::init),
- NULL
- };
- type = g_type_register_static(GTK_TYPE_BIN,
- "SPWidget",
- &info,
- static_cast<GTypeFlags>(0));
- }
- return type;
-}
-
-namespace Inkscape {
+G_DEFINE_TYPE(SPWidget, sp_widget, GTK_TYPE_BIN);
-SPWidgetImpl::SPWidgetImpl(SPWidget &target) :
- _target(target)
-{
-}
-
-SPWidgetImpl::~SPWidgetImpl()
-{
-}
+static guint signals[LAST_SIGNAL] = {0};
-void SPWidgetImpl::classInit(SPWidgetClass *klass)
+static void
+sp_widget_class_init(SPWidgetClass *klass)
{
GObjectClass *object_class = reinterpret_cast<GObjectClass *>(klass);
GtkWidgetClass *widget_class = reinterpret_cast<GtkWidgetClass *>(klass);
- parentClass = reinterpret_cast<GtkBinClass *>(g_type_class_peek_parent(klass));
-
object_class->dispose = SPWidgetImpl::dispose;
signals[CONSTRUCT] = g_signal_new ("construct",
@@ -170,11 +131,22 @@ void SPWidgetImpl::classInit(SPWidgetClass *klass)
widget_class->size_allocate = SPWidgetImpl::sizeAllocate;
}
-void SPWidgetImpl::init(SPWidget *spw)
+static void sp_widget_init(SPWidget *spw)
{
spw->_impl = new SPWidgetImpl(*spw); // ctor invoked after all other init
}
+namespace Inkscape {
+
+SPWidgetImpl::SPWidgetImpl(SPWidget &target) :
+ _target(target)
+{
+}
+
+SPWidgetImpl::~SPWidgetImpl()
+{
+}
+
void SPWidgetImpl::dispose(GObject *object)
{
SPWidget *spw = reinterpret_cast<SPWidget *>(object);
@@ -189,8 +161,8 @@ void SPWidgetImpl::dispose(GObject *object)
delete spw->_impl;
spw->_impl = 0;
- if (reinterpret_cast<GObjectClass *>(parentClass)->dispose) {
- (*reinterpret_cast<GObjectClass *>(parentClass)->dispose)(object);
+ if (G_OBJECT_CLASS(sp_widget_parent_class)->dispose) {
+ G_OBJECT_CLASS(sp_widget_parent_class)->dispose(object);
}
}
@@ -214,8 +186,8 @@ void SPWidgetImpl::show(GtkWidget *widget)
);
}
- if (reinterpret_cast<GtkWidgetClass *>(parentClass)->show) {
- (*reinterpret_cast<GtkWidgetClass *>(parentClass)->show)(widget);
+ if (GTK_WIDGET_CLASS(sp_widget_parent_class)->show) {
+ GTK_WIDGET_CLASS(sp_widget_parent_class)->show(widget);
}
}
@@ -230,8 +202,8 @@ void SPWidgetImpl::hide(GtkWidget *widget)
spw->selSet.disconnect();
}
- if (reinterpret_cast<GtkWidgetClass *>(parentClass)->hide) {
- (*reinterpret_cast<GtkWidgetClass *>(parentClass)->hide)(widget);
+ if (GTK_WIDGET_CLASS(sp_widget_parent_class)->hide) {
+ GTK_WIDGET_CLASS(sp_widget_parent_class)->hide(widget);
}
}