Ajout Gestion circuits pour seq lineaire

This commit is contained in:
tzim 2013-04-15 15:52:13 +00:00
parent 0c92e3f2d0
commit b8b82bc5c6
9 changed files with 676 additions and 29 deletions

View file

@ -33,10 +33,13 @@ namespace DMX2
}
}
public void SupprimeCircuit (Circuit c)
public void SupprimeCircuits (IEnumerable<Circuit> lc)
{
lock (this) {
foreach(var c in lc)
circuits.Remove (c);
foreach(var seq in Sequenceurs)
seq.MajCircuitsSupprimes();
}
}
@ -104,10 +107,13 @@ namespace DMX2
static int maxid=1;
string name;
public const int SNLen= 8;
public Circuit()
{
id=maxid++;
Name = "Circuit n°" + id.ToString();
ShortName = "Cir" + id.ToString();
}
public string Name {
@ -119,6 +125,20 @@ namespace DMX2
}
}
string shortName;
public string ShortName {
get {
return shortName;
}
set {
if (value.Length > SNLen)
shortName = value.Substring(0,SNLen);
else
shortName = value;
}
}
int id;
public int ID {

View file

@ -101,6 +101,8 @@
<Compile Include="SequenceurUI.cs" />
<Compile Include="SeqLinUI.cs" />
<Compile Include="gtk-gui\DMX2.SeqLinUI.cs" />
<Compile Include="SelSeqCircuits.cs" />
<Compile Include="gtk-gui\DMX2.SelSeqCircuits.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Gtk;
namespace DMX2
{
@ -10,14 +11,26 @@ namespace DMX2
{
this.Build ();
Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn();
Gtk.CellRendererText nameCell = new Gtk.CellRendererText();
var nameCol = new Gtk.TreeViewColumn();
var 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);
var snameCol = new Gtk.TreeViewColumn();
var snameCell = new Gtk.CellRendererText();
snameCol.Title = "Nom Court";
snameCol.PackStart(snameCell,true);
snameCol.SetCellDataFunc(snameCell, new Gtk.TreeCellDataFunc( new Gtk.TreeCellDataFunc(RenderCircuitShortName) ));
snameCell.Editable =true;
snameCell.Edited += OnShortNameCellEdited;
this.listeCircuits.AppendColumn(snameCol);
ls = new Gtk.ListStore(typeof (Circuit));
this.listeCircuits.Model = ls;
UpdateListeCircuits();
@ -30,10 +43,25 @@ namespace DMX2
ls.GetIter (out iter, new Gtk.TreePath (args.Path));
Circuit c = ls.GetValue(iter,0) as Circuit;
c.Name = args.NewText;
if(c.Name.Length <= Circuit.SNLen)
c.ShortName = c.Name;
}
private void RenderCircuitName(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) {
void OnShortNameCellEdited (object o, EditedArgs args)
{
Gtk.TreeIter iter;
ls.GetIter (out iter, new Gtk.TreePath (args.Path));
Circuit c = ls.GetValue(iter,0) as Circuit;
c.ShortName = args.NewText;
}
void RenderCircuitShortName (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
Circuit c = tree_model.GetValue (iter, 0) as Circuit;
(cell as Gtk.CellRendererText).Text = c.ShortName;
}
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;
}
@ -69,8 +97,7 @@ namespace DMX2
}
protected void OnRemoveActionActivated (object sender, EventArgs e)
{
foreach (var c in GetSelection())
Conduite.Courante.SupprimeCircuit (c);
Conduite.Courante.SupprimeCircuits (GetSelection());
UpdateListeCircuits();
}

View file

@ -87,7 +87,16 @@ namespace DMX2
protected void OnSeqLinActionActivated (object sender, EventArgs e)
{
SequenceurLineaire s = new SequenceurLineaire();
}
Sequenceur s = new SequenceurLineaire();
Conduite.Courante.AjoutSequenceur(s);
AddSeqUI(s);
}
void AddSeqUI (Sequenceur s)
{
seqUiVbox.Add(s.GetUI());
seqUiVbox.ShowAll();
}
}
}

149
DMX-2.0/SelSeqCircuits.cs Normal file
View file

@ -0,0 +1,149 @@
using System;
using System.Collections.Generic;
namespace DMX2
{
public partial class SelSeqCircuits : Gtk.Dialog
{
Gtk.ListStore lsAll=null;
Gtk.ListStore lsSel=null;
List<Circuit> cursel;
public List<Circuit> GetResultList ()
{
return cursel;
}
public SelSeqCircuits (IEnumerable<Circuit> selection )
{
this.Build ();
cursel = new List<Circuit>(selection);
var allnameCol = new Gtk.TreeViewColumn();
var allNameCell = new Gtk.CellRendererText();
allnameCol.Title = "Circuits";
allnameCol.PackStart(allNameCell,true);
allnameCol.SetCellDataFunc(allNameCell, new Gtk.TreeCellDataFunc( new Gtk.TreeCellDataFunc(RenderCircuitName) ));
this.listeToutCircuits.AppendColumn(allnameCol);
lsAll = new Gtk.ListStore(typeof (Circuit));
this.listeToutCircuits.Model = lsAll;
foreach(var c in Conduite.Courante.Circuits)
lsAll.AppendValues(c);
listeToutCircuits.Selection.Mode = Gtk.SelectionMode.Multiple;
var selNameCol = new Gtk.TreeViewColumn();
var selNameCell = new Gtk.CellRendererText();
selNameCol.Title = "Circuits du Sequenceur";
selNameCol.PackStart(selNameCell,true);
selNameCol.SetCellDataFunc(selNameCell, new Gtk.TreeCellDataFunc( new Gtk.TreeCellDataFunc(RenderCircuitName) ));
this.listeSelCircuits.AppendColumn(selNameCol);
lsSel = new Gtk.ListStore(typeof (Circuit));
this.listeSelCircuits.Model = lsSel;
foreach(var c in cursel)
lsSel.AppendValues(c);
listeSelCircuits.Selection.Mode = Gtk.SelectionMode.Multiple;
}
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;
}
void UpdateCurSel ()
{
lsSel.Clear ();
foreach(var c in cursel)
lsSel.AppendValues(c);
}
protected List<Circuit> GetSelection(Gtk.TreeView liste, Gtk.ListStore ls )
{
Gtk.TreeIter iter; List<Circuit> selection = new List<Circuit>();
foreach(var row in liste.Selection.GetSelectedRows())
{
ls.GetIter (out iter, row);
selection.Add( ls.GetValue(iter,0) as Circuit);
}
return selection;
}
protected void OnAjtButClicked (object sender, EventArgs e)
{
foreach (var c in GetSelection(listeToutCircuits,lsAll)) {
if(!cursel.Contains(c))
cursel.Add(c);
}
UpdateCurSel();
}
protected void OnSupBtClicked (object sender, EventArgs e)
{
foreach (var c in GetSelection(listeSelCircuits,lsSel)) {
cursel.Remove(c);
}
UpdateCurSel();
}
protected void OnSupToutButClicked (object sender, EventArgs e)
{
cursel.Clear();
UpdateCurSel();
}
protected void OnMvHautBtClicked (object sender, EventArgs e)
{
List<Circuit> selrow = GetSelection(listeSelCircuits,lsSel);
foreach (var c in selrow) {
int idx = cursel.IndexOf(c);
if(idx>0)
{
if(!selrow.Contains(cursel[idx-1]))
{
cursel.Remove(c);
cursel.Insert(idx-1,c);
}
}
}
lsSel.Clear();
foreach (var item in cursel) {
var iter = lsSel.AppendValues (item);
if(selrow.Contains(item))
listeSelCircuits.Selection.SelectIter(iter);
}
}
protected void OnMvBasBtClicked (object sender, EventArgs e)
{
List<Circuit> selrow = GetSelection(listeSelCircuits,lsSel);
selrow.Reverse();
foreach (var c in selrow) {
int idx = cursel.IndexOf(c);
if(idx<cursel.Count)
{
if(!selrow.Contains(cursel[idx+1]))
{
cursel.Remove(c);
cursel.Insert(idx+1,c);
}
}
}
lsSel.Clear();
foreach (var item in cursel) {
var iter = lsSel.AppendValues (item);
if(selrow.Contains(item))
listeSelCircuits.Selection.SelectIter(iter);
}
}
}
}

View file

@ -1,21 +1,34 @@
using System;
using Gtk;
namespace DMX2
{
[System.ComponentModel.ToolboxItem(true)]
public partial class SeqLinUI : SequenceurUI
{
public SeqLinUI () : base (null)
public SeqLinUI (SequenceurLineaire s ) : base (s)
{
this.Build ();
titreLabel.Text ="Hello !";
titreLabel.Text = s.Name;
}
#region implemented abstract members of DMX2.SequenceurUI
public override void Update ()
{
throw new System.NotImplementedException ();
}
#endregion
protected void OnCircuitsActionActivated (object sender, EventArgs e)
{
var dlg = new SelSeqCircuits ((Sequenceur as SequenceurLineaire).Circuits);
if ((ResponseType)dlg.Run () == ResponseType.Ok) {
(Sequenceur as SequenceurLineaire).ChangeCircuits(dlg.GetResultList());
}
dlg.Destroy();
}
protected void OnCloseActionActivated (object sender, EventArgs e)
{
Destroy();
}
}
}

View file

@ -7,17 +7,19 @@ namespace DMX2
public abstract class Sequenceur
{
static int idmax;
static int idmax=0;
public Sequenceur (int id)
{
this.id = id;
idmax = Math.Max(id,idmax);
Name = "Sequenceur " + id.ToString();
}
public Sequenceur ()
{
id = idmax++;
id = ++idmax;
Name = "Sequenceur " + id.ToString();
}
int id;
@ -28,6 +30,17 @@ namespace DMX2
}
}
string name;
public string Name {
get {
return name;
}
set {
name = value;
}
}
public abstract SequenceurUI GetUI();
public abstract int EtatCircuit(Circuit c);
@ -37,6 +50,10 @@ namespace DMX2
return null;
}
public virtual void MajCircuitsSupprimes()
{
}
public abstract XmlElement Save();
}

View file

@ -59,6 +59,49 @@ namespace DMX2
}
List<Circuit> circuitsSeq = new List<Circuit>();
public ReadOnlyCollection<Circuit> Circuits {
get {
return circuitsSeq.AsReadOnly();
}
}
public void ChangeCircuits (System.Collections.Generic.List<Circuit> list)
{
foreach (var c in circuitsSeq) {
if(!list.Contains(c))
RetireCircuit(c);
}
foreach(var c in list)
if(!circuitsSeq.Contains(c))
AjouteCircuit(c);
circuitsSeq = list;
}
void AjouteCircuit (Circuit c)
{
valeurscourantes[c]=0;
valeursinitiales[c]=0;
}
private void RetireCircuit(Circuit c)
{
foreach (var ef in effets) {
ef.RetireCircuit(c);
}
circuitsSeq.Remove(c);
valeurscourantes.Remove(c);
valeursinitiales.Remove(c);
}
public override void MajCircuitsSupprimes ()
{
foreach (var c in circuitsSeq.ToArray()) {
if(!Conduite.Courante.Circuits.Contains(c))
RetireCircuit(c);
}
}
List<Effet> effets = new List<Effet>();
public ReadOnlyCollection<Effet> Effets {
@ -135,11 +178,23 @@ namespace DMX2
throw new System.NotImplementedException ();
}
SeqLinUI ui=null;
public override SequenceurUI GetUI ()
{
throw new System.NotImplementedException ();
if (ui == null) {
ui = new SeqLinUI (this);
ui.Destroyed += UiDestroyed;;
}
return ui;
}
void UiDestroyed (object sender, EventArgs e)
{
ui=null;
}
}
}

View file

@ -189,7 +189,7 @@
<property name="MemberName" />
<property name="ShadowType">None</property>
<child>
<widget class="Gtk.VBox" id="vbox3">
<widget class="Gtk.VBox" id="seqUiVbox">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
@ -448,7 +448,7 @@
</widget>
</child>
</widget>
<widget class="Gtk.Bin" id="DMX2.SeqLinUI" design-size="618 270">
<widget class="Gtk.Bin" id="DMX2.SeqLinUI" design-size="618 414">
<action-group name="Default">
<action id="goBackAction">
<property name="Type">Action</property>
@ -500,6 +500,18 @@
<property name="Label" translatable="yes" />
<property name="StockId">gtk-go-down</property>
</action>
<action id="circuitsAction">
<property name="Type">Action</property>
<property name="Label" translatable="yes" />
<property name="StockId">circuits</property>
<signal name="Activated" handler="OnCircuitsActionActivated" />
</action>
<action id="closeAction">
<property name="Type">Action</property>
<property name="Label" translatable="yes" />
<property name="StockId">gtk-close</property>
<signal name="Activated" handler="OnCloseActionActivated" />
</action>
</action-group>
<property name="MemberName" />
<property name="HeightRequest">270</property>
@ -526,16 +538,61 @@
<widget class="Gtk.VBox" id="vbox3">
<property name="MemberName" />
<property name="WidthRequest">121</property>
<property name="Spacing">6</property>
<property name="Spacing">2</property>
<child>
<widget class="Gtk.Label" id="label2">
<widget class="Gtk.Fixed" id="fixed1">
<property name="MemberName" />
<property name="HeightRequest">37</property>
<property name="LabelProp" translatable="yes">label2</property>
<property name="HasWindow">False</property>
<child>
<widget class="Gtk.Entry" id="entry1">
<property name="MemberName" />
<property name="WidthRequest">45</property>
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
</widget>
<packing>
<property name="X">4</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="entry2">
<property name="MemberName" />
<property name="WidthRequest">45</property>
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
</widget>
<packing>
<property name="X">58</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label1">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">&lt;small&gt;Duree&lt;/small&gt;</property>
<property name="UseMarkup">True</property>
</widget>
<packing>
<property name="X">9</property>
<property name="Y">28</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label3">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">&lt;small&gt;Transition&lt;/small&gt;</property>
<property name="UseMarkup">True</property>
</widget>
<packing>
<property name="X">55</property>
<property name="Y">28</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">False</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
@ -575,7 +632,20 @@
<child>
<widget class="Gtk.VBox" id="vbox4">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="label2">
<property name="MemberName" />
<property name="HeightRequest">33</property>
<property name="LabelProp" translatable="yes">&lt;big&gt;0.00&lt;/big&gt;</property>
<property name="UseMarkup">True</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Toolbar" id="toolbar1">
<property name="MemberName" />
@ -590,7 +660,7 @@
</node>
</widget>
<packing>
<property name="Position">0</property>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@ -609,7 +679,7 @@
</node>
</widget>
<packing>
<property name="Position">1</property>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@ -649,6 +719,8 @@
<property name="ButtonStyle">Icons</property>
<property name="IconSize">SmallToolbar</property>
<node name="toolbar3" type="Toolbar">
<node type="Toolitem" action="closeAction" />
<node type="Toolitem" action="circuitsAction" />
<node type="Toolitem" action="goUpAction" />
<node type="Toolitem" action="goDownAction" />
</node>
@ -669,13 +741,84 @@
</packing>
</child>
<child>
<widget class="Gtk.Fixed" id="fixed2">
<widget class="Gtk.Fixed" id="fixed3">
<property name="MemberName" />
<property name="HeightRequest">250</property>
<property name="HasWindow">False</property>
<child>
<widget class="Gtk.VScale" id="vscale5">
<property name="MemberName" />
<property name="WidthRequest">25</property>
<property name="HeightRequest">150</property>
<property name="CanFocus">True</property>
<property name="Inverted">True</property>
<property name="Upper">100</property>
<property name="PageIncrement">10</property>
<property name="StepIncrement">1</property>
<property name="Value">51</property>
<property name="DrawValue">True</property>
<property name="Digits">0</property>
<property name="ValuePos">Top</property>
</widget>
<packing>
<property name="X">15</property>
</packing>
</child>
<child>
<widget class="Gtk.VScale" id="vscale6">
<property name="MemberName" />
<property name="WidthRequest">25</property>
<property name="HeightRequest">150</property>
<property name="CanFocus">True</property>
<property name="Inverted">True</property>
<property name="Upper">100</property>
<property name="PageIncrement">10</property>
<property name="StepIncrement">1</property>
<property name="Value">28</property>
<property name="DrawValue">True</property>
<property name="Digits">0</property>
<property name="ValuePos">Top</property>
</widget>
<packing>
<property name="X">45</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label7">
<property name="MemberName" />
<property name="WidthRequest">50</property>
<property name="HeightRequest">66</property>
<property name="Xalign">1</property>
<property name="Yalign">0</property>
<property name="LabelProp" translatable="yes">&lt;small&gt;Ras. Rouge&lt;/small&gt;</property>
<property name="UseMarkup">True</property>
<property name="Angle">65</property>
</widget>
<packing>
<property name="X">-20</property>
<property name="Y">150</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label8">
<property name="MemberName" />
<property name="WidthRequest">50</property>
<property name="HeightRequest">66</property>
<property name="Xalign">1</property>
<property name="Yalign">0</property>
<property name="LabelProp" translatable="yes">&lt;small&gt;Face J&lt;/small&gt;</property>
<property name="UseMarkup">True</property>
<property name="Angle">65</property>
</widget>
<packing>
<property name="X">10</property>
<property name="Y">150</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">False</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
@ -695,4 +838,216 @@
</widget>
</child>
</widget>
<widget class="Gtk.Dialog" id="DMX2.SelSeqCircuits" design-size="740 587">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="Title" translatable="yes">Selection des Circuits</property>
<property name="TypeHint">Dialog</property>
<property name="WindowPosition">CenterOnParent</property>
<property name="Modal">True</property>
<property name="DestroyWithParent">True</property>
<property name="Gravity">Static</property>
<property name="Buttons">2</property>
<property name="HelpButton">False</property>
<child internal-child="VBox">
<widget class="Gtk.VBox" id="dialog1_VBox">
<property name="MemberName" />
<property name="BorderWidth">2</property>
<child>
<widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
<property name="MemberName" />
<property name="ShadowType">In</property>
<child>
<widget class="Gtk.TreeView" id="listeToutCircuits">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="ShowScrollbars">True</property>
</widget>
</child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.VButtonBox" id="vbuttonbox1">
<property name="MemberName" />
<property name="Size">6</property>
<property name="LayoutStyle">Start</property>
<child>
<widget class="Gtk.Button" id="ajtBut">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-go-forward Menu</property>
<property name="Label" translatable="yes">Ajouter</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnAjtButClicked" />
</widget>
<packing>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="supBt">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-go-back Menu</property>
<property name="Label" translatable="yes">Enlever</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnSupBtClicked" />
</widget>
<packing>
<property name="Position">1</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="supToutBut">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-go-back Menu</property>
<property name="Label" translatable="yes">Tout Enlever</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnSupToutButClicked" />
</widget>
<packing>
<property name="Position">2</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="button90">
<property name="MemberName" />
<property name="Sensitive">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes" />
<property name="UseUnderline">True</property>
<property name="Relief">None</property>
</widget>
<packing>
<property name="Position">3</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="mvHautBt">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-go-up Menu</property>
<property name="Label" translatable="yes">Monter</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnMvHautBtClicked" />
</widget>
<packing>
<property name="Position">4</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="mvBasBt">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-go-down Menu</property>
<property name="Label" translatable="yes">Descendre</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnMvBasBtClicked" />
</widget>
<packing>
<property name="Position">5</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow1">
<property name="MemberName" />
<property name="ShadowType">In</property>
<child>
<widget class="Gtk.TreeView" id="listeSelCircuits">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="ShowScrollbars">True</property>
</widget>
</child>
</widget>
<packing>
<property name="Position">2</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
</child>
<child internal-child="ActionArea">
<widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
<property name="MemberName" />
<property name="Spacing">10</property>
<property name="BorderWidth">5</property>
<property name="Size">2</property>
<property name="LayoutStyle">End</property>
<child>
<widget class="Gtk.Button" id="buttonCancel">
<property name="MemberName" />
<property name="CanDefault">True</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-cancel</property>
<property name="ResponseId">-6</property>
<property name="label">gtk-cancel</property>
</widget>
<packing>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="buttonOk">
<property name="MemberName" />
<property name="CanDefault">True</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-ok</property>
<property name="ResponseId">-5</property>
<property name="label">gtk-ok</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</stetic-interface>