diff --git a/ChangeLog b/ChangeLog index 5d7d7622c..1a5f556a9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,10 @@ +2009-04-14 Christian Hoff + + * gtk/Adjustment.custom: Deglued implementation of SetBounds. + * gtk/glue/Adjustment.c: Kill. + 2009-04-13 Christian Hoff + Add support for virtual methods(vm) to the generator. * parser/gapi2xml.pl: Generate a class_struct element with diff --git a/gtk/Adjustment.custom b/gtk/Adjustment.custom index 615ae2566..9dff1e3be 100644 --- a/gtk/Adjustment.custom +++ b/gtk/Adjustment.custom @@ -37,11 +37,22 @@ public Adjustment (double value, double lower, double upper, double step_increme Raw = gtk_adjustment_new(value, lower, upper, step_increment, page_increment, page_size); } -[DllImport("gtksharpglue-2")] -static extern void gtksharp_gtk_adjustment_set_bounds (IntPtr i, double lower, double upper, double step_increment, double page_increment, double page_size); +[DllImport("libgobject-2.0-0.dll")] +static extern void g_object_freeze_notify (IntPtr inst); + +[DllImport("libgobject-2.0-0.dll")] +static extern void g_object_thaw_notify (IntPtr inst); public void SetBounds (double lower, double upper, double step_increment, double page_increment, double page_size) { - gtksharp_gtk_adjustment_set_bounds (this.Handle, lower, upper, step_increment, page_increment, page_size); -} + // g_object_freeze_notify/g_object_thaw_notify calls are necessary to to avoid multiple emissions of the "changed" signal + g_object_freeze_notify (this.Handle); + Lower = lower; + Upper = upper; + StepIncrement = step_increment; + PageIncrement = page_increment; + PageSize = page_size; + + g_object_thaw_notify (this.Handle); +} diff --git a/gtk/glue/Makefile.am b/gtk/glue/Makefile.am index 29b243695..4157b818e 100644 --- a/gtk/glue/Makefile.am +++ b/gtk/glue/Makefile.am @@ -1,7 +1,6 @@ lib_LTLIBRARIES = libgtksharpglue-2.la libgtksharpglue_2_la_SOURCES = \ - adjustment.c \ cellrenderer.c \ clipboard.c \ container.c \ diff --git a/gtk/glue/adjustment.c b/gtk/glue/adjustment.c deleted file mode 100644 index 742d667e6..000000000 --- a/gtk/glue/adjustment.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Utility wrapper for the GtkAdjustment - * - * Copyright (c) 2002 Miguel de Icaza (miguel@ximian.com) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the Lesser GNU General - * Public License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include - -/* Forward declarations */ -void gtksharp_gtk_adjustment_set_bounds (GtkAdjustment *adj, - gdouble lower, - gdouble upper, - gdouble step_increment, - gdouble page_increment, - gdouble page_size); - -/* */ - -void -gtksharp_gtk_adjustment_set_bounds (GtkAdjustment *adj, - gdouble lower, gdouble upper, - gdouble step_increment, - gdouble page_increment, gdouble page_size) -{ - adj->lower = lower; - adj->upper = upper; - adj->step_increment = step_increment; - adj->page_increment = page_increment; - adj->page_size = page_size; - - gtk_adjustment_changed (adj); -} -