-static void gtk_layout_class_init (GtkLayoutClass *class);
-static void gtk_layout_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-static void gtk_layout_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gtk_layout_init (GtkLayout *layout);
-
-static void gtk_layout_finalize (GObject *object);
-static void gtk_layout_realize (GtkWidget *widget);
-static void gtk_layout_unrealize (GtkWidget *widget);
-static void gtk_layout_map (GtkWidget *widget);
-static void gtk_layout_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void gtk_layout_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-static gint gtk_layout_expose (GtkWidget *widget,
- GdkEventExpose *event);
-
-static void gtk_layout_remove (GtkContainer *container,
- GtkWidget *widget);
-static void gtk_layout_forall (GtkContainer *container,
- gboolean include_internals,
- GtkCallback callback,
- gpointer callback_data);
-static void gtk_layout_set_adjustments (GtkLayout *layout,
- GtkAdjustment *hadj,
- GtkAdjustment *vadj);
-
-static void gtk_layout_allocate_child (GtkLayout *layout,
- GtkLayoutChild *child);
-
-
-static void gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
- GtkLayout *layout);
-
-static GtkWidgetClass *parent_class = NULL;
+enum {
+ CHILD_PROP_0,
+ CHILD_PROP_X,
+ CHILD_PROP_Y
+};
+
+static void gtk_layout_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
+static void gtk_layout_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void gtk_layout_finalize (GObject *object);
+static void gtk_layout_realize (GtkWidget *widget);
+static void gtk_layout_unrealize (GtkWidget *widget);
+static void gtk_layout_map (GtkWidget *widget);
+static void gtk_layout_get_preferred_width (GtkWidget *widget,
+ gint *minimum,
+ gint *natural);
+static void gtk_layout_get_preferred_height (GtkWidget *widget,
+ gint *minimum,
+ gint *natural);
+static void gtk_layout_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation);
+static gint gtk_layout_draw (GtkWidget *widget,
+ cairo_t *cr);
+static void gtk_layout_add (GtkContainer *container,
+ GtkWidget *widget);
+static void gtk_layout_remove (GtkContainer *container,
+ GtkWidget *widget);
+static void gtk_layout_forall (GtkContainer *container,
+ gboolean include_internals,
+ GtkCallback callback,
+ gpointer callback_data);
+static void gtk_layout_set_child_property (GtkContainer *container,
+ GtkWidget *child,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void gtk_layout_get_child_property (GtkContainer *container,
+ GtkWidget *child,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec);
+static void gtk_layout_allocate_child (GtkLayout *layout,
+ GtkLayoutChild *child);
+static void gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
+ GtkLayout *layout);
+static void gtk_layout_style_updated (GtkWidget *widget);
+
+static void gtk_layout_set_hadjustment_values (GtkLayout *layout);
+static void gtk_layout_set_vadjustment_values (GtkLayout *layout);
+
+G_DEFINE_TYPE_WITH_CODE (GtkLayout, gtk_layout, GTK_TYPE_CONTAINER,
+ G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL))