| | 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 | |
|---|