Changeset 3352

Show
Ignore:
Timestamp:
02/01/08 00:55:14
Author:
pvanhoof
Message:

DotNet? binding improvements

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/bindings/dotnet/ui-gtk/HeaderListModel.custom

    r3351 r3352  
    55                } 
    66 
     7 
     8                [DllImport("libgtk-win32-2.0-0.dll")] 
     9                static extern bool gtk_tree_model_iter_children (IntPtr raw, out Gtk.TreeIter iter, IntPtr parent); 
     10                public bool IterChildren (out Gtk.TreeIter iter)  
     11                { 
     12                        bool raw_ret = gtk_tree_model_iter_children (Handle, out iter, IntPtr.Zero); 
     13                        bool ret = raw_ret; 
     14                        return ret; 
     15                } 
     16 
     17                public int IterNChildren ()  
     18                { 
     19                        int raw_ret = gtk_tree_model_iter_n_children (Handle, IntPtr.Zero); 
     20                        int ret = raw_ret; 
     21                        return ret; 
     22                } 
     23 
     24                [DllImport("libgtk-win32-2.0-0.dll")] 
     25                static extern bool gtk_tree_model_iter_nth_child (IntPtr raw, out Gtk.TreeIter iter, IntPtr parent, int n); 
     26                public bool IterNthChild (out Gtk.TreeIter iter, int n)  
     27                { 
     28                        bool raw_ret = gtk_tree_model_iter_nth_child (Handle, out iter, IntPtr.Zero, n); 
     29                        bool ret = raw_ret; 
     30                        return ret; 
     31                } 
     32 
     33                public void SetValue (Gtk.TreeIter iter, int column, bool value)  
     34                { 
     35                        GLib.Value val = new GLib.Value (value); 
     36                        SetValue (iter, column, val); 
     37                        val.Dispose (); 
     38                } 
     39 
     40                public void SetValue (Gtk.TreeIter iter, int column, double value)  
     41                { 
     42                        GLib.Value val = new GLib.Value (value); 
     43                        SetValue (iter, column, val); 
     44                        val.Dispose (); 
     45                } 
     46 
     47                public void SetValue (Gtk.TreeIter iter, int column, int value)  
     48                { 
     49                        GLib.Value val = new GLib.Value (value); 
     50                        SetValue (iter, column, val); 
     51                        val.Dispose (); 
     52                } 
     53 
     54                public void SetValue (Gtk.TreeIter iter, int column, string value)  
     55                { 
     56                        GLib.Value val = new GLib.Value (value); 
     57                        SetValue (iter, column, val); 
     58                        val.Dispose (); 
     59                } 
     60 
     61                public void SetValue (Gtk.TreeIter iter, int column, float value)  
     62                { 
     63                        GLib.Value val = new GLib.Value (value); 
     64                        SetValue (iter, column, val); 
     65                        val.Dispose (); 
     66                } 
     67 
     68                public void SetValue (Gtk.TreeIter iter, int column, uint value)  
     69                { 
     70                        GLib.Value val = new GLib.Value (value); 
     71                        SetValue (iter, column, val); 
     72                        val.Dispose (); 
     73                } 
     74                 
     75                public void SetValue (Gtk.TreeIter iter, int column, object value)  
     76                { 
     77                        GLib.Value val = new GLib.Value (value); 
     78                        SetValue (iter, column, val); 
     79                        val.Dispose (); 
     80                } 
     81 
     82                public object GetValue(Gtk.TreeIter iter, int column)  
     83                { 
     84                        GLib.Value val = GLib.Value.Empty; 
     85                        GetValue (iter, column, ref val); 
     86                        object ret = val.Val; 
     87                        val.Dispose (); 
     88                        return ret; 
     89                } 
     90 
     91 
     92                [GLib.CDeclCallback] 
     93                delegate void RowsReorderedSignalDelegate (IntPtr arg0, IntPtr arg1, IntPtr arg2, IntPtr arg3, IntPtr gch); 
     94 
     95                static void RowsReorderedSignalCallback (IntPtr arg0, IntPtr arg1, IntPtr arg2, IntPtr arg3, IntPtr gch) 
     96                { 
     97                        Gtk.RowsReorderedArgs args = new Gtk.RowsReorderedArgs (); 
     98                        try { 
     99                                GLib.Signal sig = ((GCHandle) gch).Target as GLib.Signal; 
     100                                if (sig == null) 
     101                                        throw new Exception("Unknown signal GC handle received " + gch); 
     102 
     103                                Gtk.ListStore sender = GLib.Object.GetObject (arg0) as Gtk.ListStore; 
     104                                args.Args = new object[3]; 
     105                                args.Args[0] = arg1 == IntPtr.Zero ? null : (Gtk.TreePath) GLib.Opaque.GetOpaque (arg1, typeof (Gtk.TreePath), false); 
     106                                args.Args[1] = Gtk.TreeIter.New (arg2); 
     107                                int child_cnt = sender.IterNChildren (); 
     108                                int[] new_order = new int [child_cnt]; 
     109                                Marshal.Copy (arg3, new_order, 0, child_cnt); 
     110                                args.Args[2] = new_order; 
     111                                Gtk.RowsReorderedHandler handler = (Gtk.RowsReorderedHandler) sig.Handler; 
     112                                handler (sender, args); 
     113                        } catch (Exception e) { 
     114                                GLib.ExceptionManager.RaiseUnhandledException (e, false); 
     115                        } 
     116                } 
     117 
     118 
     119                [GLib.Signal("rows_reordered")] 
     120                public event Gtk.RowsReorderedHandler RowsReordered { 
     121                        add { 
     122                                GLib.Signal sig = GLib.Signal.Lookup (this, "rows_reordered", new RowsReorderedSignalDelegate(RowsReorderedSignalCallback)); 
     123                                sig.AddDelegate (value); 
     124                        } 
     125                        remove { 
     126                                GLib.Signal sig = GLib.Signal.Lookup (this, "rows_reordered", new RowsReorderedSignalDelegate(RowsReorderedSignalCallback)); 
     127                                sig.RemoveDelegate (value); 
     128                        } 
     129                } 
     130