loupiottes/DMX-2.0/GestionCircuits.cs

78 lines
2 KiB
C#

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();
}
}
}