Author: mkestner
Date: 2005-04-01 12:38:51 -0500 (Fri, 01 Apr 2005)
New Revision: 42471

Modified:
   trunk/gtk-sharp/ChangeLog
   trunk/gtk-sharp/gtk/Gtk.metadata
   trunk/gtk-sharp/gtk/TreeModelFilter.custom
Log:

2005-04-01  Mike Kestner  <[EMAIL PROTECTED]>

        * gtk/TreeModelFilter.custom : manually implement SetVisibleFunc and
        SetModifyFunc to handle delegate persistence.
        * gtk/Gtk.metadata : hide methods.


Modified: trunk/gtk-sharp/ChangeLog
===================================================================
--- trunk/gtk-sharp/ChangeLog   2005-04-01 17:29:55 UTC (rev 42470)
+++ trunk/gtk-sharp/ChangeLog   2005-04-01 17:38:51 UTC (rev 42471)
@@ -1,5 +1,11 @@
 2005-04-01  Mike Kestner  <[EMAIL PROTECTED]>
 
+       * gtk/TreeModelFilter.custom : manually implement SetVisibleFunc and
+       SetModifyFunc to handle delegate persistence.
+       * gtk/Gtk.metadata : hide methods.
+
+2005-04-01  Mike Kestner  <[EMAIL PROTECTED]>
+
        * gtk/Clipboard.custom : manually implement SetWithData and
        SetWithOwner to handle delegate persistence.
        * gtk/Gtk.metadata : hide methods.

Modified: trunk/gtk-sharp/gtk/Gtk.metadata
===================================================================
--- trunk/gtk-sharp/gtk/Gtk.metadata    2005-04-01 17:29:55 UTC (rev 42470)
+++ trunk/gtk-sharp/gtk/Gtk.metadata    2005-04-01 17:38:51 UTC (rev 42471)
@@ -341,6 +341,8 @@
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkToolItem']/[EMAIL 
PROTECTED]'SetTooltip']" name="name">TooltipSet</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModelFilter']/[EMAIL 
PROTECTED]'ConvertIterToChildIter']/*/[EMAIL PROTECTED]'child_iter']" 
name="pass_as">out</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModelFilter']/[EMAIL 
PROTECTED]'ConvertChildIterToIter']/*/[EMAIL PROTECTED]'filter_iter']" 
name="pass_as">out</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModelFilter']/[EMAIL 
PROTECTED]'SetVisibleFunc']" name="hidden">1</attr>
+  <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModelFilter']/[EMAIL 
PROTECTED]'SetModifyFunc']" name="hidden">1</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModelSort']/[EMAIL 
PROTECTED]'gtk_tree_model_sort_new_with_model']/*/[EMAIL 
PROTECTED]'child_model']" name="property_name">model</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModelSort']/[EMAIL 
PROTECTED]'ConvertChildIterToIter']/*/[EMAIL PROTECTED]'sort_iter']" 
name="pass_as">out</attr>
   <attr path="/api/namespace/[EMAIL PROTECTED]'GtkTreeModelSort']/[EMAIL 
PROTECTED]'ConvertIterToChildIter']/*/[EMAIL PROTECTED]'child_iter']" 
name="pass_as">out</attr>

Modified: trunk/gtk-sharp/gtk/TreeModelFilter.custom
===================================================================
--- trunk/gtk-sharp/gtk/TreeModelFilter.custom  2005-04-01 17:29:55 UTC (rev 
42470)
+++ trunk/gtk-sharp/gtk/TreeModelFilter.custom  2005-04-01 17:38:51 UTC (rev 
42471)
@@ -57,3 +57,54 @@
                        val.Dispose ();
                        return ret;
                }
+
+               [GLib.CDeclCallback]
+               delegate void DestroyNotify (IntPtr data);
+
+               static void ReleaseCallback (IntPtr data)
+               {
+                       if (data == IntPtr.Zero)
+                               return;
+                       GCHandle gch = (GCHandle) data;
+                       gch.Free ();
+               }
+
+               static DestroyNotify release_callback;
+
+               [DllImport("libgtk-win32-2.0-0.dll")]
+               static extern void gtk_tree_model_filter_set_visible_func 
(IntPtr raw, GtkSharp.TreeModelFilterVisibleFuncNative func, IntPtr data, 
GtkSharp.DestroyNotifyNative destroy);
+
+               [Obsolete ("Replaced by SetVisibleFunc 
(TreeModelFilterVisibleFunc) overload.")]
+               public void SetVisibleFunc (TreeModelFilterVisibleFunc func, 
IntPtr data, Gtk.DestroyNotify destroy) 
+               {
+                       GtkSharp.TreeModelFilterVisibleFuncWrapper func_wrapper 
= new GtkSharp.TreeModelFilterVisibleFuncWrapper (func);
+                       GtkSharp.DestroyNotifyWrapper destroy_wrapper = new 
GtkSharp.DestroyNotifyWrapper (destroy);
+                       gtk_tree_model_filter_set_visible_func (Handle, 
func_wrapper.NativeDelegate, data, destroy_wrapper.NativeDelegate);
+               }
+
+               [DllImport("libgtk-win32-2.0-0.dll")]
+               static extern void gtk_tree_model_filter_set_visible_func 
(IntPtr raw, GtkSharp.TreeModelFilterVisibleFuncNative func, IntPtr data, 
DestroyNotify destroy);
+               public void SetVisibleFunc (TreeModelFilterVisibleFunc func) 
+               {
+                       GtkSharp.TreeModelFilterVisibleFuncWrapper func_wrapper 
= new GtkSharp.TreeModelFilterVisibleFuncWrapper (func);
+                       if (release_callback == null)
+                               release_callback = new DestroyNotify 
(ReleaseCallback);
+                       GCHandle gch = GCHandle.Alloc (func_wrapper);
+                       gtk_tree_model_filter_set_visible_func (Handle, 
func_wrapper.NativeDelegate, (IntPtr) gch, release_callback);
+               }
+
+               [DllImport("libgtk-win32-2.0-0.dll")]
+               static extern void gtk_tree_model_filter_set_modify_func(IntPtr 
raw, int n_columns, IntPtr[] types, GtkSharp.TreeModelFilterModifyFuncNative 
func, IntPtr data, DestroyNotify destroy);
+
+               public void SetModifyFunc (int n_columns, GLib.GType[] types, 
TreeModelFilterModifyFunc func) 
+               {
+                       GtkSharp.TreeModelFilterModifyFuncWrapper func_wrapper 
= new GtkSharp.TreeModelFilterModifyFuncWrapper (func);
+                       if (release_callback == null)
+                               release_callback = new DestroyNotify 
(ReleaseCallback);
+                       IntPtr[] native_types = new IntPtr [types.Length];
+                       for (int i = 0; i < types.Length; i++)
+                               native_types [i] = types [i].Val;
+                       GCHandle gch = GCHandle.Alloc (func_wrapper);
+                       gtk_tree_model_filter_set_modify_func (Handle, 
n_columns, native_types, func_wrapper.NativeDelegate, (IntPtr) gch, 
release_callback);
+               }
+

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to