2004-09-23 Mike Kestner <mkestner@ximian.com>

* gtk/Widget.custom : new OnSetScrollAdjustments VM.
	* gtk/glue/widget.c : glue for new VM.

svn path=/trunk/gtk-sharp/; revision=34293
This commit is contained in:
Mike Kestner 2004-09-23 16:50:18 +00:00
parent 3d8b425bcb
commit 3eb398a12f
5 changed files with 128 additions and 20 deletions

View file

@ -1,3 +1,8 @@
2004-09-23 Mike Kestner <mkestner@ximian.com>
* gtk/Widget.custom : new OnSetScrollAdjustments VM.
* gtk/glue/widget.c : glue for new VM.
2004-09-18 Miguel de Icaza <miguel@ximian.com> 2004-09-18 Miguel de Icaza <miguel@ximian.com>
* glib/Source.cs: Add new base class to hold the method to be * glib/Source.cs: Add new base class to hold the method to be
@ -21,6 +26,10 @@
* configure.in : bump version and tag for 1.0.2. * configure.in : bump version and tag for 1.0.2.
2004-09-17 Mike Kestner <mkestner@ximian.com>
* configure.in : bump version and tag for 1.0.2.
2004-09-17 Mike Kestner <mkestner@ximian.com> 2004-09-17 Mike Kestner <mkestner@ximian.com>
* configure.in : use either gtkhtml 3.0 or 3.2 * configure.in : use either gtkhtml 3.0 or 3.2

View file

@ -1,3 +1,7 @@
2004-09-23 Mike Kestner <mkestner@ximian.com>
* en/Gtk/Widget.xml : docs for new OnSetScrollAdjustments VM.
2004-09-20 Shane Landrum <epicene@pobox.com> 2004-09-20 Shane Landrum <epicene@pobox.com>
* en/Gdk/FilterFunc.xml * en/Gdk/FilterFunc.xml

View file

@ -19,11 +19,9 @@
Use <see cref="M:Gtk.Widget.StyleGetProperty" />, <see cref="P:Gtk.Widget.Style" /> or <see cref="M:Gtk.Widget.StyleGetValist" /> to obtain the value of a style property. Use <see cref="M:Gtk.Widget.StyleGetProperty" />, <see cref="P:Gtk.Widget.Style" /> or <see cref="M:Gtk.Widget.StyleGetValist" /> to obtain the value of a style property.
</para> </para>
</remarks> </remarks>
</Docs> </Docs><Base>
<Base>
<BaseTypeName>Gtk.Object</BaseTypeName> <BaseTypeName>Gtk.Object</BaseTypeName>
</Base> </Base><Interfaces>
<Interfaces>
<Interface> <Interface>
<InterfaceName>Atk.Implementor</InterfaceName> <InterfaceName>Atk.Implementor</InterfaceName>
</Interface> </Interface>
@ -36,9 +34,7 @@
<Interface> <Interface>
<InterfaceName>System.IDisposable</InterfaceName> <InterfaceName>System.IDisposable</InterfaceName>
</Interface> </Interface>
</Interfaces> </Interfaces><Attributes /><Members>
<Attributes />
<Members>
<Member MemberName="PushCompositeChild"> <Member MemberName="PushCompositeChild">
<MemberSignature Language="C#" Value="public static void PushCompositeChild ();" /> <MemberSignature Language="C#" Value="public static void PushCompositeChild ();" />
<MemberType>Method</MemberType> <MemberType>Method</MemberType>
@ -3958,5 +3954,20 @@ Widgets are required to honor the size allocation they receive; a size request i
<param name="flag">a <see cref="T:Gtk.WidgetFlags" /> to set</param> <param name="flag">a <see cref="T:Gtk.WidgetFlags" /> to set</param>
<remarks>None</remarks> <remarks>None</remarks>
</Docs> </Docs>
</Member></Members> </Member><Member MemberName="OnSetScrollAdjustments">
</Type> <MemberSignature Language="C#" Value="protected virtual void OnSetScrollAdjustments (Gtk.Adjustment hadj, Gtk.Adjustment vadj);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="hadj" Type="Gtk.Adjustment" />
<Parameter Name="vadj" Type="Gtk.Adjustment" />
</Parameters>
<Docs>
<summary>Virtual method to support scrollable widgets.</summary>
<param name="hadj">a horizontal plane <see cref="T:Gtk.Adjustment" /></param>
<param name="vadj">a vertical plane <see cref="T:Gtk.Adjustment" /></param>
<remarks>Override this method in a subclass to support scrolling of the widget within a viewport smaller than the widget's size.</remarks>
</Docs>
</Member></Members></Type>

View file

@ -164,3 +164,31 @@ public int FocusLineWidth {
return gtksharp_gtk_widget_style_get_int (Handle, "focus-line-width"); return gtksharp_gtk_widget_style_get_int (Handle, "focus-line-width");
} }
} }
[DllImport("gtksharpglue")]
static extern int gtksharp_widget_connect_set_scroll_adjustments_signal (IntPtr gtype, SetScrollAdjustmentsDelegate cb);
delegate void SetScrollAdjustmentsDelegate (IntPtr widget, IntPtr hadj, IntPtr vadj);
static SetScrollAdjustmentsDelegate SetScrollAdjustmentsCallback;
static void SetScrollAdjustments_cb (IntPtr widget, IntPtr hadj, IntPtr vadj)
{
Widget obj = GLib.Object.GetObject (widget, false) as Widget;
Gtk.Adjustment h = GLib.Object.GetObject (hadj, false) as Gtk.Adjustment;
Gtk.Adjustment v = GLib.Object.GetObject (vadj, false) as Gtk.Adjustment;
obj.OnSetScrollAdjustments (h, v);
}
static void ConnectSetScrollAdjustments (GLib.GType gtype)
{
if (SetScrollAdjustmentsCallback == null)
SetScrollAdjustmentsCallback = new SetScrollAdjustmentsDelegate (SetScrollAdjustments_cb);
gtksharp_widget_connect_set_scroll_adjustments_signal (gtype.Val, SetScrollAdjustmentsCallback);
}
[GLib.DefaultSignalHandler (Type=typeof (Gtk.Widget), ConnectionMethod="ConnectSetScrollAdjustments")]
protected virtual void OnSetScrollAdjustments (Gtk.Adjustment hadj, Gtk.Adjustment vadj)
{
}

View file

@ -30,6 +30,8 @@ int gtksharp_gtk_widget_get_state (GtkWidget *widget);
int gtksharp_gtk_widget_get_flags (GtkWidget *widget); int gtksharp_gtk_widget_get_flags (GtkWidget *widget);
void gtksharp_gtk_widget_set_flags (GtkWidget *widget, int flags); void gtksharp_gtk_widget_set_flags (GtkWidget *widget, int flags);
int gtksharp_gtk_widget_style_get_int (GtkWidget *widget, const char *name); int gtksharp_gtk_widget_style_get_int (GtkWidget *widget, const char *name);
void gtksharp_widget_connect_set_scroll_adjustments_signal (GType gtype, gpointer callback);
void _gtksharp_marshal_VOID__OBJECT_OBJECT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
/* */ /* */
GdkRectangle* GdkRectangle*
@ -53,7 +55,7 @@ gtksharp_gtk_widget_get_window (GtkWidget *widget)
void void
gtksharp_gtk_widget_set_window (GtkWidget *widget, GdkWindow *window) gtksharp_gtk_widget_set_window (GtkWidget *widget, GdkWindow *window)
{ {
widget->window = window; widget->window = g_object_ref (window);
} }
int int
@ -81,3 +83,57 @@ gtksharp_gtk_widget_style_get_int (GtkWidget *widget, const char *name)
gtk_widget_style_get (widget, name, &value, NULL); gtk_widget_style_get (widget, name, &value, NULL);
return value; return value;
} }
#include <glib-object.h>
#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
void
_gtksharp_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data)
{
typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1,
gpointer arg_1,
gpointer arg_2,
gpointer data2);
register GMarshalFunc_VOID__OBJECT_OBJECT callback;
register GCClosure *cc = (GCClosure*) closure;
register gpointer data1, data2;
g_return_if_fail (n_param_values == 3);
if (G_CCLOSURE_SWAP_DATA (closure))
{
data1 = closure->data;
data2 = g_value_peek_pointer (param_values + 0);
}
else
{
data1 = g_value_peek_pointer (param_values + 0);
data2 = closure->data;
}
callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
callback (data1,
g_marshal_value_peek_object (param_values + 1),
g_marshal_value_peek_object (param_values + 2),
data2);
}
void
gtksharp_widget_connect_set_scroll_adjustments_signal (GType gtype, gpointer cb)
{
GType parm_types[] = {GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT};
GtkWidgetClass *klass = g_type_class_peek (gtype);
if (!klass)
klass = g_type_class_ref (gtype);
klass->set_scroll_adjustments_signal = g_signal_newv (
"set_scroll_adjustments", gtype, G_SIGNAL_RUN_LAST,
g_cclosure_new (cb, NULL, NULL), NULL, NULL, _gtksharp_marshal_VOID__OBJECT_OBJECT,
G_TYPE_NONE, 2, parm_types);
}