using System; namespace DMX2 { public partial class GestionCircuits : Gtk.Dialog { Gtk.ListStore ls; public GestionCircuits () { this.Build (); Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn(); Gtk.CellRendererText nameCell = new Gtk.CellRendererText(); nameCol.Title = "Circuit"; nameCol.PackStart(nameCell,true); nameCol.SetCellDataFunc(nameCell, new Gtk.TreeCellDataFunc( new Gtk.TreeCellDataFunc(RenderCircuitName) )); nameCell.Editable =true; nameCell.Edited += OnNameCellEdited; this.listeCircuits.AppendColumn(nameCol); ls = new Gtk.ListStore(typeof (Circuit)); this.listeCircuits.Model = ls; UpdateListeCircuits(); listeCircuits.Selection.Mode = Gtk.SelectionMode.Multiple; } void OnNameCellEdited (object o, Gtk.EditedArgs args) { Gtk.TreeIter iter; ls.GetIter (out iter, new Gtk.TreePath (args.Path)); Circuit c = ls.GetValue(iter,0) as Circuit; c.Name = args.NewText; } private void RenderCircuitName(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { Circuit c = tree_model.GetValue (iter, 0) as Circuit; (cell as Gtk.CellRendererText).Text = c.Name; } protected void UpdateListeCircuits () { ls.Clear(); foreach(Circuit c in Conduite.Courante.Circuits) ls.AppendValues(c); } protected void OnAddActionActivated (object sender, EventArgs e) { Gtk.Dialog dlg = new Gtk.Dialog("Test", this, Gtk.DialogFlags.DestroyWithParent); Gtk.VBox vb = new Gtk.VBox(); var etry = new Gtk.Entry(); dlg.Add(vb); vb.Add(etry); vb.Add(dlg.AddButton("Close",Gtk.ResponseType.Close)); dlg.Run (); dlg.Destroy(); Conduite.Courante.NouveauCircuit(); UpdateListeCircuits(); } protected void OnRemoveActionActivated (object sender, EventArgs e) { throw new System.NotImplementedException (); } protected void OnResp (object o, Gtk.ResponseArgs args) { Hide (); Destroy(); } } }