Index: Glib/GType.xs
===================================================================
RCS file: /cvsroot/gtk2-perl/gtk2-perl-xs/Glib/GType.xs,v
retrieving revision 1.18
diff -u -r1.18 GType.xs
--- Glib/GType.xs	12 Oct 2003 17:57:09 -0000	1.18
+++ Glib/GType.xs	16 Oct 2003 00:20:46 -0000
@@ -911,8 +911,16 @@
 }
 
 
-static void
-add_signals (GType instance_type, HV * signals)
+=item void gperl_type_add_signals (GType type, HV * signals)
+
+Helper that does the real work of adding signals to a new type in
+Glib::Type->register().  Use this if and only if you know what you
+are doing, which will be customizing the way in which a new GType
+is registered with both Glib and the bindings.
+
+=cut
+void
+gperl_type_add_signals (GType instance_type, HV * signals)
 {
 	GObjectClass *oclass;
 	HE * he;
@@ -996,8 +1004,16 @@
 	g_type_class_unref (oclass);
 }
 
-static void
-add_properties (GType instance_type, AV * properties)
+=item void gperl_type_add_properties (GType type, AV * properties)
+
+Helper that does the real work of adding new properties to a new type in
+Glib::Type->register().  Use this if and only if you know what you
+are doing, which will be customizing the way in which a new GType
+is registered with both Glib and the bindings.
+
+=cut
+void
+gperl_type_add_properties (GType instance_type, AV * properties)
 {
 	GObjectClass *oclass;
         int propid;
@@ -1269,13 +1285,13 @@
 		char * key = SvPV_nolen (ST (i));
 		if (strEQ (key, "signals")) {
                         if (SvROK (ST (i+1)) && SvTYPE (SvRV (ST (i+1))) == SVt_PVHV)
-                                add_signals (new_type, (HV*)SvRV (ST (i+1)));
+                                gperl_type_add_signals (new_type, (HV*)SvRV (ST (i+1)));
                         else
                           	croak ("signals must be a hash of signalname => signalspec pairs");
                 }
 		if (strEQ (key, "properties")) {
                         if (SvROK (ST (i+1)) && SvTYPE (SvRV (ST (i+1))) == SVt_PVAV)
-                                add_properties (new_type, (AV*)SvRV (ST (i+1)));
+                                gperl_type_add_properties (new_type, (AV*)SvRV (ST (i+1)));
                         else
                           	croak ("properties must be an array of GParamSpecs");
                 }
Index: Glib/gperl.h
===================================================================
RCS file: /cvsroot/gtk2-perl/gtk2-perl-xs/Glib/gperl.h,v
retrieving revision 1.25
diff -u -r1.25 gperl.h
--- Glib/gperl.h	12 Oct 2003 17:57:09 -0000	1.25
+++ Glib/gperl.h	16 Oct 2003 00:20:47 -0000
@@ -113,6 +113,12 @@
 SV * newSVGChar (const gchar * str);
 
 
+/* stuff to use if and only if you really know what you are doing.
+ * these do some of the real work behing Glib::Type->register; see
+ * its docs for the formats of the signals hash and properties array. */
+void gperl_type_add_signals (GType type, HV * signals);
+void gperl_type_add_properties (GType type, AV * properties);
+
 
 /*
  * GValues
Index: Gtk2/xs/GtkStyle.xs
===================================================================
RCS file: /cvsroot/gtk2-perl/gtk2-perl-xs/Gtk2/xs/GtkStyle.xs,v
retrieving revision 1.11
diff -u -r1.11 GtkStyle.xs
--- Gtk2/xs/GtkStyle.xs	12 Oct 2003 17:57:30 -0000	1.11
+++ Gtk2/xs/GtkStyle.xs	16 Oct 2003 00:20:49 -0000
@@ -317,7 +317,7 @@
 	GtkStateType state_type
 	GtkShadowType shadow_type
 	GdkRectangle *area
-	GtkWidget *widget
+	GtkWidget_ornull *widget
 	const gchar *detail
 	gint x
 	gint y
Index: Gtk2/xs/GtkWidget.xs
===================================================================
RCS file: /cvsroot/gtk2-perl/gtk2-perl-xs/Gtk2/xs/GtkWidget.xs,v
retrieving revision 1.31
diff -u -r1.31 GtkWidget.xs
--- Gtk2/xs/GtkWidget.xs	12 Oct 2003 17:57:30 -0000	1.31
+++ Gtk2/xs/GtkWidget.xs	16 Oct 2003 00:20:49 -0000
@@ -355,6 +355,15 @@
 
 ## function is only useful for widget implementations
 ##void gtk_widget_get_child_requisition (GtkWidget *widget, GtkRequisition *requisition);
+GtkRequisition_copy*
+gtk_widget_get_child_requisition (GtkWidget * widget)
+    PREINIT:
+	GtkRequisition req;
+    CODE:
+	gtk_widget_get_child_requisition (widget, &req);
+	RETVAL = &req;
+    OUTPUT:
+	RETVAL
 
 void
 gtk_widget_add_accelerator (widget, accel_signal, accel_group, accel_key, accel_mods, flags)
