From b9cee94a37797a16dab0b1b3aa1875e5cb87518f Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Sat, 8 May 2004 02:14:19 +0000 Subject: [PATCH] 2004-05-07 Mike Kestner * gnome/Canvas.custom : PixelsPerUnit prop. * gnome/Gnome.metadata : hide Canvas.SetPixelsPerUnit. * gnome/glue/Makefile.am : get_pixels_per_unit. * gnome/glue/canvas.c : get_pixels_per_unit. * gtk/Container.custom : OnForall virtual method impl. * gtk/glue/Makefile.am : add container.c * gtk/glue/container.c : virtual method glue for forall. * gtk/glue/makefile.win32 : add container.o svn path=/trunk/gtk-sharp/; revision=26962 --- ChangeLog | 11 +++++++++++ gnome/Canvas.custom | 18 ++++++++++++++++++ gnome/Gnome.metadata | 1 + gnome/glue/Makefile.am | 1 + gnome/glue/canvas.c | 16 ++++++++++++++++ gtk/Container.custom | 28 ++++++++++++++++++++++++++++ gtk/glue/Makefile.am | 1 + gtk/glue/container.c | 30 ++++++++++++++++++++++++++++++ gtk/glue/makefile.win32 | 1 + 9 files changed, 107 insertions(+) create mode 100644 gnome/glue/canvas.c create mode 100644 gtk/glue/container.c diff --git a/ChangeLog b/ChangeLog index f7f8cd061..3f9b26986 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2004-05-07 Mike Kestner + + * gnome/Canvas.custom : PixelsPerUnit prop. + * gnome/Gnome.metadata : hide Canvas.SetPixelsPerUnit. + * gnome/glue/Makefile.am : get_pixels_per_unit. + * gnome/glue/canvas.c : get_pixels_per_unit. + * gtk/Container.custom : OnForall virtual method impl. + * gtk/glue/Makefile.am : add container.c + * gtk/glue/container.c : virtual method glue for forall. + * gtk/glue/makefile.win32 : add container.o + 2004-05-07 Todd Berman * gnome/Gnome.metadata: map properties for with_flags DateEdit ctor, diff --git a/gnome/Canvas.custom b/gnome/Canvas.custom index 122ee670d..d51ec63c9 100644 --- a/gnome/Canvas.custom +++ b/gnome/Canvas.custom @@ -2,8 +2,10 @@ // Gnome.Canvas.custom - Gnome Canvas class customizations // // Author: Duncan Mak (duncan@ximian.com) +// Mike Kestner // // Copyright (C) 2003 Duncan Mak +// Copyright (C) 2004 Novell, Inc. // // This code is inserted after the automatically generated code. // @@ -15,3 +17,19 @@ affine = new double [6]; gnome_canvas_w2c_affine(Handle, affine); } + + [DllImport("gnomesharpglue")] + static extern double gnomesharp_canvas_get_pixels_per_unit (IntPtr raw); + + [DllImport("gnomecanvas-2")] + static extern void gnome_canvas_set_pixels_per_unit(IntPtr raw, double pixels_per_unit); + + public double PixelsPerUnit { + get { + return gnomesharp_canvas_get_pixels_per_unit (Handle); + } + set { + gnome_canvas_set_pixels_per_unit (Handle, value); + } + } + diff --git a/gnome/Gnome.metadata b/gnome/Gnome.metadata index a581b8506..cc3dd6128 100644 --- a/gnome/Gnome.metadata +++ b/gnome/Gnome.metadata @@ -29,6 +29,7 @@ out out out + 1 out out out diff --git a/gnome/glue/Makefile.am b/gnome/glue/Makefile.am index c019563e7..f9cafa1e8 100644 --- a/gnome/glue/Makefile.am +++ b/gnome/glue/Makefile.am @@ -9,6 +9,7 @@ endif libgnomesharpglue_la_LDFLAGS = -module -avoid-version libgnomesharpglue_la_SOURCES = \ + canvas.c \ canvasitem.c \ canvaspoints.c \ canvas-proxy.c \ diff --git a/gnome/glue/canvas.c b/gnome/glue/canvas.c new file mode 100644 index 000000000..7b4e7671b --- /dev/null +++ b/gnome/glue/canvas.c @@ -0,0 +1,16 @@ +/* canvas.c : Glue for accessing fields in a GnomeCanvas + * + * Author: Mike Kestner (mkestner@ximian.com) + * + * Copyright (C) 2004 Novell, Inc. + */ + +#include + +gdouble gnomesharp_canvas_get_pixels_per_unit (GnomeCanvas *canvas); + +gdouble +gnomesharp_canvas_get_pixels_per_unit (GnomeCanvas *canvas) +{ + return canvas->pixels_per_unit; +} diff --git a/gtk/Container.custom b/gtk/Container.custom index c7abbddec..9002db024 100644 --- a/gtk/Container.custom +++ b/gtk/Container.custom @@ -49,3 +49,31 @@ public Widget[] FocusChain { } +[DllImport("gtksharpglue")] +static extern void gtksharp_container_base_forall (IntPtr handle, bool include_internals, Gtk.Callback cb, IntPtr data); + +[DllImport("gtksharpglue")] +static extern void gtksharp_container_override_forall (GLib.GType gtype, ForallDelegate cb); + +delegate void ForallDelegate (IntPtr container, bool include_internals, Gtk.Callback cb, IntPtr data); + +static ForallDelegate ForallCallback; + +static void Forall_cb (IntPtr container, bool include_internals, Gtk.Callback cb, IntPtr data) +{ + Container obj = GLib.Object.GetObject (container, false) as Container; + obj.OnForall (include_internals, cb, data); +} + +protected static void OverrideForall (GLib.GType gtype) +{ + if (ForallCallback == null) + ForallCallback = new ForallDelegate (Forall_cb); + gtksharp_container_override_forall (gtype, ForallCallback); +} + +protected virtual void OnForall (bool include_internals, Gtk.Callback cb, IntPtr data) +{ + gtksharp_container_base_forall (Handle, include_internals, cb, data); +} + diff --git a/gtk/glue/Makefile.am b/gtk/glue/Makefile.am index 25cd111c9..47f6a1007 100644 --- a/gtk/glue/Makefile.am +++ b/gtk/glue/Makefile.am @@ -6,6 +6,7 @@ libgtksharpglue_la_SOURCES = \ clipboard.c \ colorseldialog.c \ combo.c \ + container.c \ dialog.c \ fileselection.c \ layout.c \ diff --git a/gtk/glue/container.c b/gtk/glue/container.c new file mode 100644 index 000000000..f92146d23 --- /dev/null +++ b/gtk/glue/container.c @@ -0,0 +1,30 @@ +/* container.c : Glue for GtkContainer + * + * Author: Mike Kestner (mkestner@ximian.com) + * + * Copyright (C) 2004 Novell, Inc. + */ + +#include + +void gtksharp_container_base_forall (GtkContainer *container, gboolean include_internals, GtkCallback cb, gpointer data); + +void +gtksharp_container_base_forall (GtkContainer *container, gboolean include_internals, GtkCallback cb, gpointer data) +{ + GtkContainerClass *parent = g_type_class_peek_parent (G_OBJECT_GET_CLASS (container)); + if (parent->forall) + (*parent->forall) (container, include_internals, cb, data); +} + +void gtksharp_container_override_forall (GType gtype, gpointer cb); + +void +gtksharp_container_override_forall (GType gtype, gpointer cb) +{ + GtkContainerClass *klass = g_type_class_peek (gtype); + if (!klass) + klass = g_type_class_ref (gtype); + ((GtkContainerClass *) klass)->forall = cb; +} + diff --git a/gtk/glue/makefile.win32 b/gtk/glue/makefile.win32 index 65ecd08c3..8ea9b82b9 100755 --- a/gtk/glue/makefile.win32 +++ b/gtk/glue/makefile.win32 @@ -9,6 +9,7 @@ GLUE_OBJS = \ clipboard.o \ colorseldialog.o \ combo.o \ + container.o \ dialog.o \ fileselection.o \ layout.o \