#endif /* G_ENABLE_DEBUG */
};
+struct _GtkWidgetClassPrivate
+{
+ int dummy;
+};
+
enum {
DESTROY,
SHOW,
};
/* --- prototypes --- */
+static void gtk_widget_base_class_init (gpointer g_class);
static void gtk_widget_class_init (GtkWidgetClass *klass);
static void gtk_widget_base_class_finalize (GtkWidgetClass *klass);
static void gtk_widget_init (GtkWidget *widget);
const GTypeInfo widget_info =
{
sizeof (GtkWidgetClass),
- NULL, /* base_init */
+ gtk_widget_base_class_init,
(GBaseFinalizeFunc) gtk_widget_base_class_finalize,
(GClassInitFunc) gtk_widget_class_init,
NULL, /* class_finalize */
return widget_type;
}
+static void
+gtk_widget_base_class_init (gpointer g_class)
+{
+ GtkWidgetClass *klass = g_class;
+
+ if (GTK_IS_WIDGET_CLASS (g_type_class_peek_parent (klass)))
+ klass->priv = g_slice_dup (GtkWidgetClassPrivate,
+ GTK_WIDGET_CLASS (g_type_class_peek_parent (klass))->priv);
+ else
+ klass->priv = g_slice_new0 (GtkWidgetClassPrivate);
+}
+
static void
child_property_notify_dispatcher (GObject *object,
guint n_pspecs,
g_param_spec_unref (pspec);
}
g_list_free (list);
+
+ g_slice_free (GtkWidgetClassPrivate, klass->priv);
}
static void
/* forward declaration to avoid excessive includes (and concurrent includes)
*/
-typedef struct _GtkRequisition GtkRequisition;
-typedef struct _GtkSelectionData GtkSelectionData;
-typedef struct _GtkWidgetPrivate GtkWidgetPrivate;
-typedef struct _GtkWidgetClass GtkWidgetClass;
-typedef struct _GtkWidgetAuxInfo GtkWidgetAuxInfo;
-typedef struct _GtkClipboard GtkClipboard;
-typedef struct _GtkTooltip GtkTooltip;
-typedef struct _GtkWindow GtkWindow;
+typedef struct _GtkRequisition GtkRequisition;
+typedef struct _GtkSelectionData GtkSelectionData;
+typedef struct _GtkWidgetPrivate GtkWidgetPrivate;
+typedef struct _GtkWidgetClass GtkWidgetClass;
+typedef struct _GtkWidgetClassPrivate GtkWidgetClassPrivate;
+typedef struct _GtkWidgetAuxInfo GtkWidgetAuxInfo;
+typedef struct _GtkClipboard GtkClipboard;
+typedef struct _GtkTooltip GtkTooltip;
+typedef struct _GtkWindow GtkWindow;
/**
/*< private >*/
+ GtkWidgetClassPrivate *priv;
+
/* Padding for future expansion */
- void (*_gtk_reserved1) (void);
void (*_gtk_reserved2) (void);
void (*_gtk_reserved3) (void);
void (*_gtk_reserved4) (void);