]> Pileus Git - ~andy/gtk/commitdiff
API: cellrenderer: Add a private struct
authorBenjamin Otte <otte@redhat.com>
Thu, 15 Dec 2011 16:21:11 +0000 (17:21 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 16 Dec 2011 03:53:15 +0000 (04:53 +0100)
gtk/gtkcellrenderer.c
gtk/gtkcellrenderer.h

index 80f267da720183d98b233ea8031c0d7586b74ac9..9fa3d8849e333af07e67c2e271493465563395b1 100644 (file)
@@ -128,6 +128,9 @@ struct _GtkCellRendererPrivate
   GdkRGBA cell_background;
 };
 
+struct _GtkCellRendererClassPrivate
+{
+};
 
 enum {
   PROP_0,
@@ -158,8 +161,6 @@ enum {
 
 static guint  cell_renderer_signals[LAST_SIGNAL] = { 0 };
 
-G_DEFINE_ABSTRACT_TYPE(GtkCellRenderer, gtk_cell_renderer, G_TYPE_INITIALLY_UNOWNED)
-
 static void
 gtk_cell_renderer_init (GtkCellRenderer *cell)
 {
@@ -417,6 +418,43 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class)
   g_type_class_add_private (class, sizeof (GtkCellRendererPrivate));
 }
 
+static void
+gtk_cell_renderer_base_class_init (gpointer g_class)
+{
+  GtkCellRendererClass *klass = g_class;
+
+  klass->priv = G_TYPE_CLASS_GET_PRIVATE (g_class, GTK_TYPE_CELL_RENDERER, GtkCellRendererClassPrivate);
+}
+
+GType
+gtk_cell_renderer_get_type (void)
+{
+  static GType cell_renderer_type = 0;
+
+  if (G_UNLIKELY (cell_renderer_type == 0))
+    {
+      const GTypeInfo cell_renderer_info =
+      {
+       sizeof (GtkCellRendererClass),
+       gtk_cell_renderer_base_class_init,
+        NULL,
+       (GClassInitFunc) gtk_cell_renderer_class_init,
+       NULL,           /* class_finalize */
+       NULL,           /* class_init */
+       sizeof (GtkWidget),
+       0,              /* n_preallocs */
+       (GInstanceInitFunc) gtk_cell_renderer_init,
+       NULL,           /* value_table */
+      };
+      cell_renderer_type = g_type_register_static (G_TYPE_INITIALLY_UNOWNED, "GtkCellRenderer",
+                                                   &cell_renderer_info, G_TYPE_FLAG_ABSTRACT);
+
+      g_type_add_class_private (cell_renderer_type, sizeof (GtkCellRendererClassPrivate));
+    }
+
+  return cell_renderer_type;
+}
+
 static void
 gtk_cell_renderer_get_property (GObject     *object,
                                guint        param_id,
index 1e67c62739cd39e26b699b08037a3c6821b8b9f8..44aa12c763f5e3ee3ccc4cff5b99e7ac136188b3 100644 (file)
@@ -82,6 +82,7 @@ typedef enum
 typedef struct _GtkCellRenderer              GtkCellRenderer;
 typedef struct _GtkCellRendererPrivate       GtkCellRendererPrivate;
 typedef struct _GtkCellRendererClass         GtkCellRendererClass;
+typedef struct _GtkCellRendererClassPrivate  GtkCellRendererClassPrivate;
 
 struct _GtkCellRenderer
 {
@@ -154,8 +155,9 @@ struct _GtkCellRendererClass
                             GtkCellEditable *editable,
                             const gchar     *path);
 
+  GtkCellRendererClassPrivate *priv;
+
   /* Padding for future expansion */
-  void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
   void (*_gtk_reserved3) (void);
   void (*_gtk_reserved4) (void);