-static void gtk_myfixed_class_init (GtkMyFixedClass *klass);
-static void gtk_myfixed_init (GtkMyFixed *myfixed);
-static void gtk_myfixed_map (GtkWidget *widget);
-static void gtk_myfixed_unmap (GtkWidget *widget);
-static void gtk_myfixed_realize (GtkWidget *widget);
-static void gtk_myfixed_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void gtk_myfixed_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-static void gtk_myfixed_paint (GtkWidget *widget,
- GdkRectangle *area);
-static void gtk_myfixed_draw (GtkWidget *widget,
- GdkRectangle *area);
-static gint gtk_myfixed_expose (GtkWidget *widget,
- GdkEventExpose *event);
-static void gtk_myfixed_add (GtkContainer *container,
- GtkWidget *widget);
-static void gtk_myfixed_remove (GtkContainer *container,
- GtkWidget *widget);
-static void gtk_myfixed_foreach (GtkContainer *container,
- GtkCallback callback,
- gpointer callback_data);
-
-
-static GtkContainerClass *parent_class = NULL;
-
-
-guint
-gtk_myfixed_get_type ()
+typedef struct _GtkPizzaChild GtkPizzaChild;
+typedef struct _GtkPizzaClass GtkPizzaClass;
+typedef struct _GtkPizzaAdjData GtkPizzaAdjData;
+
+struct _GtkPizzaClass
+{
+ GtkContainerClass parent_class;
+
+ void (*set_scroll_adjustments) (GtkPizza *pizza,
+ GtkAdjustment *hadjustment,
+ GtkAdjustment *vadjustment);
+};
+
+struct _GtkPizzaChild
+{
+ GtkWidget *widget;
+ gint x;
+ gint y;
+};
+
+struct _GtkPizzaAdjData
+{
+ gint dx;
+ gint dy;
+};
+
+static void gtk_pizza_class_init (GtkPizzaClass *klass);
+static void gtk_pizza_init (GtkPizza *pizza);
+
+static void gtk_pizza_realize (GtkWidget *widget);
+static void gtk_pizza_unrealize (GtkWidget *widget);
+
+static void gtk_pizza_map (GtkWidget *widget);
+
+static void gtk_pizza_size_request (GtkWidget *widget,
+ GtkRequisition *requisition);
+static void gtk_pizza_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation);
+static void gtk_pizza_style_set (GtkWidget *widget,
+ GtkStyle *previous_style);
+static void gtk_pizza_add (GtkContainer *container,
+ GtkWidget *widget);
+static void gtk_pizza_remove (GtkContainer *container,
+ GtkWidget *widget);
+static void gtk_pizza_forall (GtkContainer *container,
+ gboolean include_internals,
+ GtkCallback callback,
+ gpointer callback_data);
+
+static void gtk_pizza_allocate_child (GtkPizza *pizza,
+ GtkPizzaChild *child);
+static void gtk_pizza_adjust_allocations_recurse (GtkWidget *widget,
+ gpointer cb_data);
+
+static GtkType gtk_pizza_child_type (GtkContainer *container);
+
+static void gtk_pizza_scroll_set_adjustments (GtkPizza *pizza,
+ GtkAdjustment *hadj,
+ GtkAdjustment *vadj);
+
+static GtkWidgetClass* pizza_parent_class;
+
+GtkType
+gtk_pizza_get_type ()
+{
+ static GtkType pizza_type = 0;
+
+ if (!pizza_type)
+ {
+ const GTypeInfo pizza_info =
+ {
+ sizeof (GtkPizzaClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) gtk_pizza_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GtkPizza),
+ 16, /* n_preallocs */
+ (GInstanceInitFunc) gtk_pizza_init,
+ NULL
+ };
+ pizza_type = g_type_register_static (GTK_TYPE_CONTAINER, "GtkPizza", &pizza_info, (GTypeFlags)0);
+ }
+
+ return pizza_type;
+}
+
+/* Marshaller needed for set_scroll_adjustments signal,
+ generated with GLib-2.4.6 glib-genmarshal */
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+static void
+g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data)