using System; using System.Collections.Generic; namespace DMX2 { public partial class GestionCircuits : Gtk.Dialog { Gtk.ListStore ls; public GestionCircuits (Gtk.Window parent) : base ("Circuits",parent,Gtk.DialogFlags.Modal) { 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(var c in Conduite.Courante.Circuits) ls.AppendValues(c); } protected void OnAddActionActivated (object sender, EventArgs e) { var dlg = new Gtk.Dialog ("Test", this, Gtk.DialogFlags.DestroyWithParent); dlg.VBox.Add (new Gtk.Label ("Nombre de circuits :")); var etry = new Gtk.Entry ("1"); etry.ActivatesDefault=true; dlg.VBox.Add (etry); dlg.AddButton (Gtk.Stock.Close, Gtk.ResponseType.Close ).GrabDefault(); dlg.VBox.ShowAll (); dlg.Run (); int nb; if (int.TryParse (etry.Text, out nb) && nb > 0) { for (int i=0; i GetSelection() { Gtk.TreeIter iter; List selection = new List(); foreach(var row in listeCircuits.Selection.GetSelectedRows()) { ls.GetIter (out iter, row); selection.Add( ls.GetValue(iter,0) as Circuit); } return selection; } protected void OnResp (object o, Gtk.ResponseArgs args) { Hide (); Destroy(); } } }