[longomatch] New Drawing Tool with specific tool for in-frame analysis
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [longomatch] New Drawing Tool with specific tool for in-frame analysis
- Date: Fri, 2 Oct 2009 14:35:23 +0000 (UTC)
commit 73be2fcb051643fe3b6b4b0f42f1ef1be91af0da
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Fri Oct 2 15:14:45 2009 +0200
New Drawing Tool with specific tool for in-frame analysis
CesarPlayer/Gui/PlayerBin.cs | 25 +-
CesarPlayer/Handlers/Handlers.cs | 1 +
CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 215 ++++++-----
CesarPlayer/gtk-gui/gui.stetic | 25 +-
CesarPlayer/gtk-gui/objects.xml | 9 +-
LongoMatch.mds | 2 +-
LongoMatch/Gui/Component/DrawingToolBox.cs | 79 +++-
LongoMatch/Gui/Component/DrawingWidget.cs | 363 ++++++++++++++++
LongoMatch/Gui/Dialog/DrawingTool.cs | 103 +++++
LongoMatch/Handlers/DrawingManager.cs | 3 +-
LongoMatch/Handlers/EventsManager.cs | 12 +-
LongoMatch/Handlers/Handlers.cs | 4 +
LongoMatch/LongoMatch.mdp | 4 +
LongoMatch/Makefile.am | 4 +
.../LongoMatch.Gui.Component.DrawingToolBox.cs | 359 +++++++++++++----
.../LongoMatch.Gui.Component.DrawingWidget.cs | 51 +++
.../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 119 ++++++
LongoMatch/gtk-gui/gui.stetic | 436 +++++++++++++++++++-
LongoMatch/gtk-gui/objects.xml | 14 +-
Translations/es.po | 82 +++--
Translations/fr.po | 77 +++--
Translations/messages.po | 79 +++--
22 files changed, 1762 insertions(+), 304 deletions(-)
---
diff --git a/CesarPlayer/Gui/PlayerBin.cs b/CesarPlayer/Gui/PlayerBin.cs
index cfd64e9..1328818 100644
--- a/CesarPlayer/Gui/PlayerBin.cs
+++ b/CesarPlayer/Gui/PlayerBin.cs
@@ -40,6 +40,7 @@ namespace LongoMatch.Gui
public event ErrorHandler Error;
public event NextButtonClickedHandler Next;
public event PrevButtonClickedHandler Prev;
+ public event DrawFrameHandler DrawFrame;
private const int THUMBNAIL_WIDTH = 50;
private TickHandler tickHandler;
@@ -106,12 +107,17 @@ namespace LongoMatch.Gui
}
}
- public Pixbuf CurrentFrame{
+ public Pixbuf CurrentMiniatureFrame{
get{
Pixbuf pixbuf = player.GetCurrentFrame(50,50);
- if (pixbuf != null)
- return pixbuf;
- else return null;
+ return pixbuf;
+ }
+ }
+
+ public Pixbuf CurrentFrame{
+ get{
+ Pixbuf pixbuf = player.GetCurrentFrame();
+ return pixbuf;
}
}
@@ -487,6 +493,15 @@ namespace LongoMatch.Gui
else
Pause();
}
-#endregion
+
+ protected virtual void OnDrawButtonClicked (object sender, System.EventArgs e)
+ {
+ if (DrawFrame != null)
+ DrawFrame(CurrentFrame);
+ }
+
+
+#endregion
}
+
}
diff --git a/CesarPlayer/Handlers/Handlers.cs b/CesarPlayer/Handlers/Handlers.cs
index 1f5066e..972c0e9 100644
--- a/CesarPlayer/Handlers/Handlers.cs
+++ b/CesarPlayer/Handlers/Handlers.cs
@@ -32,6 +32,7 @@ namespace LongoMatch.Video.Handlers
public delegate void PrevButtonClickedHandler ();
public delegate void ProgressHandler (float progress);
public delegate void FramesProgressHandler (int actual, int total,Pixbuf frame);
+ public delegate void DrawFrameHandler (Pixbuf frame);
diff --git a/CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs b/CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs
index b5a818b..7dd32e8 100644
--- a/CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs
+++ b/CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs
@@ -25,6 +25,8 @@ namespace LongoMatch.Gui {
private Gtk.Button closebutton;
+ private Gtk.Button drawbutton;
+
private Gtk.Button playbutton;
private Gtk.Button pausebutton;
@@ -98,120 +100,144 @@ namespace LongoMatch.Gui {
w10.Expand = false;
w10.Fill = false;
// Container child buttonsbox.Gtk.Box+BoxChild
- this.playbutton = new Gtk.Button();
- this.playbutton.CanFocus = true;
- this.playbutton.Name = "playbutton";
- this.playbutton.UseUnderline = true;
- this.playbutton.Relief = ((Gtk.ReliefStyle)(2));
- // Container child playbutton.Gtk.Container+ContainerChild
+ this.drawbutton = new Gtk.Button();
+ this.drawbutton.CanFocus = true;
+ this.drawbutton.Name = "drawbutton";
+ this.drawbutton.UseUnderline = true;
+ // Container child drawbutton.Gtk.Container+ContainerChild
Gtk.Alignment w11 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
- // Container child GtkAlignment.Gtk.Container+ContainerChild
+ // Container child GtkAlignment1.Gtk.Container+ContainerChild
Gtk.HBox w12 = new Gtk.HBox();
w12.Spacing = 2;
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox1.Gtk.Container+ContainerChild
Gtk.Image w13 = new Gtk.Image();
- w13.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-play", Gtk.IconSize.Button, 20);
+ w13.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-select-color", Gtk.IconSize.Menu, 16);
w12.Add(w13);
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox1.Gtk.Container+ContainerChild
Gtk.Label w15 = new Gtk.Label();
w12.Add(w15);
w11.Add(w12);
- this.playbutton.Add(w11);
- this.buttonsbox.Add(this.playbutton);
- Gtk.Box.BoxChild w19 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.playbutton]));
+ this.drawbutton.Add(w11);
+ this.buttonsbox.Add(this.drawbutton);
+ Gtk.Box.BoxChild w19 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.drawbutton]));
w19.Position = 1;
w19.Expand = false;
w19.Fill = false;
// Container child buttonsbox.Gtk.Box+BoxChild
- this.pausebutton = new Gtk.Button();
- this.pausebutton.CanFocus = true;
- this.pausebutton.Name = "pausebutton";
- this.pausebutton.UseUnderline = true;
- this.pausebutton.Relief = ((Gtk.ReliefStyle)(2));
- // Container child pausebutton.Gtk.Container+ContainerChild
+ this.playbutton = new Gtk.Button();
+ this.playbutton.CanFocus = true;
+ this.playbutton.Name = "playbutton";
+ this.playbutton.UseUnderline = true;
+ this.playbutton.Relief = ((Gtk.ReliefStyle)(2));
+ // Container child playbutton.Gtk.Container+ContainerChild
Gtk.Alignment w20 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
- // Container child GtkAlignment.Gtk.Container+ContainerChild
+ // Container child GtkAlignment2.Gtk.Container+ContainerChild
Gtk.HBox w21 = new Gtk.HBox();
w21.Spacing = 2;
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox2.Gtk.Container+ContainerChild
Gtk.Image w22 = new Gtk.Image();
- w22.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-pause", Gtk.IconSize.Button, 20);
+ w22.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-play", Gtk.IconSize.Button, 20);
w21.Add(w22);
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox2.Gtk.Container+ContainerChild
Gtk.Label w24 = new Gtk.Label();
w21.Add(w24);
w20.Add(w21);
- this.pausebutton.Add(w20);
- this.buttonsbox.Add(this.pausebutton);
- Gtk.Box.BoxChild w28 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.pausebutton]));
+ this.playbutton.Add(w20);
+ this.buttonsbox.Add(this.playbutton);
+ Gtk.Box.BoxChild w28 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.playbutton]));
w28.Position = 2;
w28.Expand = false;
w28.Fill = false;
// Container child buttonsbox.Gtk.Box+BoxChild
- this.prevbutton = new Gtk.Button();
- this.prevbutton.CanFocus = true;
- this.prevbutton.Name = "prevbutton";
- this.prevbutton.UseUnderline = true;
- this.prevbutton.Relief = ((Gtk.ReliefStyle)(2));
- // Container child prevbutton.Gtk.Container+ContainerChild
+ this.pausebutton = new Gtk.Button();
+ this.pausebutton.CanFocus = true;
+ this.pausebutton.Name = "pausebutton";
+ this.pausebutton.UseUnderline = true;
+ this.pausebutton.Relief = ((Gtk.ReliefStyle)(2));
+ // Container child pausebutton.Gtk.Container+ContainerChild
Gtk.Alignment w29 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
- // Container child GtkAlignment.Gtk.Container+ContainerChild
+ // Container child GtkAlignment3.Gtk.Container+ContainerChild
Gtk.HBox w30 = new Gtk.HBox();
w30.Spacing = 2;
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox3.Gtk.Container+ContainerChild
Gtk.Image w31 = new Gtk.Image();
- w31.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-previous", Gtk.IconSize.Button, 20);
+ w31.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-pause", Gtk.IconSize.Button, 20);
w30.Add(w31);
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox3.Gtk.Container+ContainerChild
Gtk.Label w33 = new Gtk.Label();
w30.Add(w33);
w29.Add(w30);
- this.prevbutton.Add(w29);
- this.buttonsbox.Add(this.prevbutton);
- Gtk.Box.BoxChild w37 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.prevbutton]));
+ this.pausebutton.Add(w29);
+ this.buttonsbox.Add(this.pausebutton);
+ Gtk.Box.BoxChild w37 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.pausebutton]));
w37.Position = 3;
w37.Expand = false;
w37.Fill = false;
// Container child buttonsbox.Gtk.Box+BoxChild
- this.nextbutton = new Gtk.Button();
- this.nextbutton.Sensitive = false;
- this.nextbutton.CanFocus = true;
- this.nextbutton.Name = "nextbutton";
- this.nextbutton.UseUnderline = true;
- this.nextbutton.Relief = ((Gtk.ReliefStyle)(2));
- // Container child nextbutton.Gtk.Container+ContainerChild
+ this.prevbutton = new Gtk.Button();
+ this.prevbutton.CanFocus = true;
+ this.prevbutton.Name = "prevbutton";
+ this.prevbutton.UseUnderline = true;
+ this.prevbutton.Relief = ((Gtk.ReliefStyle)(2));
+ // Container child prevbutton.Gtk.Container+ContainerChild
Gtk.Alignment w38 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
- // Container child GtkAlignment.Gtk.Container+ContainerChild
+ // Container child GtkAlignment4.Gtk.Container+ContainerChild
Gtk.HBox w39 = new Gtk.HBox();
w39.Spacing = 2;
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox4.Gtk.Container+ContainerChild
Gtk.Image w40 = new Gtk.Image();
- w40.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-next", Gtk.IconSize.Button, 20);
+ w40.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-previous", Gtk.IconSize.Button, 20);
w39.Add(w40);
- // Container child GtkHBox.Gtk.Container+ContainerChild
+ // Container child GtkHBox4.Gtk.Container+ContainerChild
Gtk.Label w42 = new Gtk.Label();
w39.Add(w42);
w38.Add(w39);
- this.nextbutton.Add(w38);
- this.buttonsbox.Add(this.nextbutton);
- Gtk.Box.BoxChild w46 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.nextbutton]));
+ this.prevbutton.Add(w38);
+ this.buttonsbox.Add(this.prevbutton);
+ Gtk.Box.BoxChild w46 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.prevbutton]));
w46.Position = 4;
w46.Expand = false;
w46.Fill = false;
+ // Container child buttonsbox.Gtk.Box+BoxChild
+ this.nextbutton = new Gtk.Button();
+ this.nextbutton.Sensitive = false;
+ this.nextbutton.CanFocus = true;
+ this.nextbutton.Name = "nextbutton";
+ this.nextbutton.UseUnderline = true;
+ this.nextbutton.Relief = ((Gtk.ReliefStyle)(2));
+ // Container child nextbutton.Gtk.Container+ContainerChild
+ Gtk.Alignment w47 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
+ // Container child GtkAlignment5.Gtk.Container+ContainerChild
+ Gtk.HBox w48 = new Gtk.HBox();
+ w48.Spacing = 2;
+ // Container child GtkHBox5.Gtk.Container+ContainerChild
+ Gtk.Image w49 = new Gtk.Image();
+ w49.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-next", Gtk.IconSize.Button, 20);
+ w48.Add(w49);
+ // Container child GtkHBox5.Gtk.Container+ContainerChild
+ Gtk.Label w51 = new Gtk.Label();
+ w48.Add(w51);
+ w47.Add(w48);
+ this.nextbutton.Add(w47);
+ this.buttonsbox.Add(this.nextbutton);
+ Gtk.Box.BoxChild w55 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.nextbutton]));
+ w55.Position = 5;
+ w55.Expand = false;
+ w55.Fill = false;
this.controlsbox.Add(this.buttonsbox);
- Gtk.Box.BoxChild w47 = ((Gtk.Box.BoxChild)(this.controlsbox[this.buttonsbox]));
- w47.Position = 0;
- w47.Expand = false;
- w47.Fill = false;
+ Gtk.Box.BoxChild w56 = ((Gtk.Box.BoxChild)(this.controlsbox[this.buttonsbox]));
+ w56.Position = 0;
+ w56.Expand = false;
+ w56.Fill = false;
// Container child controlsbox.Gtk.Box+BoxChild
this.tlabel = new Gtk.Label();
this.tlabel.Name = "tlabel";
this.tlabel.LabelProp = Mono.Unix.Catalog.GetString("Time:");
this.controlsbox.Add(this.tlabel);
- Gtk.Box.BoxChild w48 = ((Gtk.Box.BoxChild)(this.controlsbox[this.tlabel]));
- w48.Position = 1;
- w48.Expand = false;
- w48.Fill = false;
+ Gtk.Box.BoxChild w57 = ((Gtk.Box.BoxChild)(this.controlsbox[this.tlabel]));
+ w57.Position = 1;
+ w57.Expand = false;
+ w57.Fill = false;
// Container child controlsbox.Gtk.Box+BoxChild
this.timescale = new Gtk.HScale(null);
this.timescale.CanFocus = true;
@@ -224,15 +250,15 @@ namespace LongoMatch.Gui {
this.timescale.Digits = 0;
this.timescale.ValuePos = ((Gtk.PositionType)(2));
this.controlsbox.Add(this.timescale);
- Gtk.Box.BoxChild w49 = ((Gtk.Box.BoxChild)(this.controlsbox[this.timescale]));
- w49.Position = 2;
+ Gtk.Box.BoxChild w58 = ((Gtk.Box.BoxChild)(this.controlsbox[this.timescale]));
+ w58.Position = 2;
// Container child controlsbox.Gtk.Box+BoxChild
this.timelabel = new Gtk.Label();
this.timelabel.Name = "timelabel";
this.controlsbox.Add(this.timelabel);
- Gtk.Box.BoxChild w50 = ((Gtk.Box.BoxChild)(this.controlsbox[this.timelabel]));
- w50.Position = 3;
- w50.Expand = false;
+ Gtk.Box.BoxChild w59 = ((Gtk.Box.BoxChild)(this.controlsbox[this.timelabel]));
+ w59.Position = 3;
+ w59.Expand = false;
// Container child controlsbox.Gtk.Box+BoxChild
this.volumebutton = new Gtk.Button();
this.volumebutton.CanFocus = true;
@@ -240,31 +266,31 @@ namespace LongoMatch.Gui {
this.volumebutton.UseUnderline = true;
this.volumebutton.Relief = ((Gtk.ReliefStyle)(2));
// Container child volumebutton.Gtk.Container+ContainerChild
- Gtk.Alignment w51 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
- // Container child GtkAlignment.Gtk.Container+ContainerChild
- Gtk.HBox w52 = new Gtk.HBox();
- w52.Spacing = 2;
- // Container child GtkHBox.Gtk.Container+ContainerChild
- Gtk.Image w53 = new Gtk.Image();
- w53.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_volume", Gtk.IconSize.Button, 20);
- w52.Add(w53);
- // Container child GtkHBox.Gtk.Container+ContainerChild
- Gtk.Label w55 = new Gtk.Label();
- w52.Add(w55);
- w51.Add(w52);
- this.volumebutton.Add(w51);
+ Gtk.Alignment w60 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
+ // Container child GtkAlignment6.Gtk.Container+ContainerChild
+ Gtk.HBox w61 = new Gtk.HBox();
+ w61.Spacing = 2;
+ // Container child GtkHBox6.Gtk.Container+ContainerChild
+ Gtk.Image w62 = new Gtk.Image();
+ w62.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_volume", Gtk.IconSize.Button, 20);
+ w61.Add(w62);
+ // Container child GtkHBox6.Gtk.Container+ContainerChild
+ Gtk.Label w64 = new Gtk.Label();
+ w61.Add(w64);
+ w60.Add(w61);
+ this.volumebutton.Add(w60);
this.controlsbox.Add(this.volumebutton);
- Gtk.Box.BoxChild w59 = ((Gtk.Box.BoxChild)(this.controlsbox[this.volumebutton]));
- w59.Position = 4;
- w59.Expand = false;
- w59.Fill = false;
+ Gtk.Box.BoxChild w68 = ((Gtk.Box.BoxChild)(this.controlsbox[this.volumebutton]));
+ w68.Position = 4;
+ w68.Expand = false;
+ w68.Fill = false;
this.vbox2.Add(this.controlsbox);
- Gtk.Box.BoxChild w60 = ((Gtk.Box.BoxChild)(this.vbox2[this.controlsbox]));
- w60.Position = 1;
- w60.Expand = false;
+ Gtk.Box.BoxChild w69 = ((Gtk.Box.BoxChild)(this.vbox2[this.controlsbox]));
+ w69.Position = 1;
+ w69.Expand = false;
this.mainbox.Add(this.vbox2);
- Gtk.Box.BoxChild w61 = ((Gtk.Box.BoxChild)(this.mainbox[this.vbox2]));
- w61.Position = 0;
+ Gtk.Box.BoxChild w70 = ((Gtk.Box.BoxChild)(this.mainbox[this.vbox2]));
+ w70.Position = 0;
// Container child mainbox.Gtk.Box+BoxChild
this.vbox3 = new Gtk.VBox();
this.vbox3.Name = "vbox3";
@@ -287,13 +313,13 @@ namespace LongoMatch.Gui {
this.vscale1.Digits = 0;
this.vscale1.ValuePos = ((Gtk.PositionType)(3));
this.vbox3.Add(this.vscale1);
- Gtk.Box.BoxChild w62 = ((Gtk.Box.BoxChild)(this.vbox3[this.vscale1]));
- w62.Position = 0;
+ Gtk.Box.BoxChild w71 = ((Gtk.Box.BoxChild)(this.vbox3[this.vscale1]));
+ w71.Position = 0;
this.mainbox.Add(this.vbox3);
- Gtk.Box.BoxChild w63 = ((Gtk.Box.BoxChild)(this.mainbox[this.vbox3]));
- w63.Position = 1;
- w63.Expand = false;
- w63.Fill = false;
+ Gtk.Box.BoxChild w72 = ((Gtk.Box.BoxChild)(this.mainbox[this.vbox3]));
+ w72.Position = 1;
+ w72.Expand = false;
+ w72.Fill = false;
this.Add(this.mainbox);
if ((this.Child != null)) {
this.Child.ShowAll();
@@ -304,6 +330,7 @@ namespace LongoMatch.Gui {
this.controlsbox.Hide();
this.Show();
this.closebutton.Clicked += new System.EventHandler(this.OnClosebuttonClicked);
+ this.drawbutton.Clicked += new System.EventHandler(this.OnDrawButtonClicked);
this.playbutton.Clicked += new System.EventHandler(this.OnPlaybuttonClicked);
this.pausebutton.Clicked += new System.EventHandler(this.OnPausebuttonClicked);
this.prevbutton.Clicked += new System.EventHandler(this.OnPrevbuttonClicked);
diff --git a/CesarPlayer/gtk-gui/gui.stetic b/CesarPlayer/gtk-gui/gui.stetic
index a4c826e..911a7c8 100644
--- a/CesarPlayer/gtk-gui/gui.stetic
+++ b/CesarPlayer/gtk-gui/gui.stetic
@@ -123,6 +123,23 @@
</packing>
</child>
<child>
+ <widget class="Gtk.Button" id="drawbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Type">TextAndIcon</property>
+ <property name="Icon">stock:gtk-select-color Menu</property>
+ <property name="Label" translatable="yes" />
+ <property name="UseUnderline">True</property>
+ <signal name="Clicked" handler="OnDrawButtonClicked" />
+ </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.Button" id="playbutton">
<property name="MemberName" />
<property name="CanFocus">True</property>
@@ -134,7 +151,7 @@
<signal name="Clicked" handler="OnPlaybuttonClicked" />
</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>
@@ -152,7 +169,7 @@
<signal name="Clicked" handler="OnPausebuttonClicked" />
</widget>
<packing>
- <property name="Position">2</property>
+ <property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@@ -171,7 +188,7 @@
<signal name="Clicked" handler="OnPrevbuttonClicked" />
</widget>
<packing>
- <property name="Position">3</property>
+ <property name="Position">4</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@@ -191,7 +208,7 @@
<signal name="Clicked" handler="OnNextbuttonClicked" />
</widget>
<packing>
- <property name="Position">4</property>
+ <property name="Position">5</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
diff --git a/CesarPlayer/gtk-gui/objects.xml b/CesarPlayer/gtk-gui/objects.xml
index 2c177b0..90b3bef 100644
--- a/CesarPlayer/gtk-gui/objects.xml
+++ b/CesarPlayer/gtk-gui/objects.xml
@@ -1,4 +1,8 @@
<objects attr-sync="on">
+ <object type="LongoMatch.Gui.CapturerBin" palette-category="CesarPlayer" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
<object type="LongoMatch.Gui.PlayerBin" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
<itemgroups>
<itemgroup label="PlayerBin Properties">
@@ -13,11 +17,8 @@
<signal name="Error" />
<signal name="Next" />
<signal name="Prev" />
+ <signal name="DrawFrame" />
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.CapturerBin" palette-category="CesarPlayer" allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
</objects>
\ No newline at end of file
diff --git a/LongoMatch.mds b/LongoMatch.mds
index c56d9d4..9796776 100644
--- a/LongoMatch.mds
+++ b/LongoMatch.mds
@@ -2,11 +2,11 @@
<Policies>
<StandardHeader inheritsSet="GPLv2License" />
<TextStylePolicy FileWidth="120" TabWidth="4" TabsToSpaces="False" NoTabsAfterNonTabs="False" RemoveTrailingWhitespace="False" EolMarker="Native" />
- <VersionControlPolicy inheritsSet="Mono" />
<DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="FileFormatDefault" />
<ChangeLogPolicy UpdateMode="None" inheritsSet="Mono">
<MessageStyle LineAlign="0" />
</ChangeLogPolicy>
+ <VersionControlPolicy inheritsSet="Mono" />
</Policies>
<Configurations active="Release">
<Configuration name="Debug" ctype="CombineConfiguration">
diff --git a/LongoMatch/Gui/Component/DrawingToolBox.cs b/LongoMatch/Gui/Component/DrawingToolBox.cs
index 1da2877..b694415 100644
--- a/LongoMatch/Gui/Component/DrawingToolBox.cs
+++ b/LongoMatch/Gui/Component/DrawingToolBox.cs
@@ -24,15 +24,16 @@ using LongoMatch.Handlers;
namespace LongoMatch.Gui.Component
{
-
- [System.ComponentModel.ToolboxItem(true)]
+ [System.ComponentModel.ToolboxItem(true)]
public partial class DrawingToolBox : Gtk.Bin
{
public event LineWidthChangedHandler LineWidthChanged;
+ public event DrawToolChangedHandler DrawToolChanged;
public event ColorChangedHandler ColorChanged;
public event VisibilityChangedHandler VisibilityChanged;
public event ClearDrawingHandler ClearDrawing;
+ public event TransparencyChangedHandler TransparencyChanged;
Gdk.Color normalColor;
Gdk.Color activeColor;
@@ -46,6 +47,8 @@ namespace LongoMatch.Gui.Component
SetButtonColor(gbutton,"green");
SetButtonColor(blbutton,"blue");
SetButtonColor(ybutton,"yellow");
+ penbutton.Active = true;
+ rbutton.Active = true;
}
public bool DrawingVisibility{
@@ -54,6 +57,17 @@ namespace LongoMatch.Gui.Component
VisibilityChanged(value);
}
}
+
+ public bool ToolsVisible{
+ set{
+ toolstable.Visible=value;
+ toolslabel.Visible= value;
+ }
+ }
+
+ public bool InfoVisible{
+ set{label1.Visible=value;}
+ }
private void SetButtonColor(Button button, string color){
@@ -73,18 +87,10 @@ namespace LongoMatch.Gui.Component
button.ModifyBg(StateType.Normal,normalColor);
button.ModifyBg(StateType.Active,activeColor);
button.ModifyBg(StateType.Selected,activeColor);
- button.ModifyBg(StateType.Prelight,normalColor);
-
-
- }
-
- protected virtual void OnClearbuttonClicked (object sender, System.EventArgs e)
- {
- if (ClearDrawing != null)
- ClearDrawing();
+ button.ModifyBg(StateType.Prelight,normalColor);
}
- protected virtual void OnCombobox1Changed (object sender, System.EventArgs e)
+ protected virtual void OnCombobox1Changed(object sender, System.EventArgs e)
{
int lineWidth;
if (LineWidthChanged != null){
@@ -99,6 +105,53 @@ namespace LongoMatch.Gui.Component
if (ColorChanged != null && button.Active)
ColorChanged(button.Style.Background(StateType.Normal));
}
-
+
+ protected virtual void OnCirclebuttonToggled (object sender, System.EventArgs e)
+ {
+ if (DrawToolChanged != null && (sender as RadioButton).Active)
+ DrawToolChanged(DrawTool.CIRCLE);
+ }
+
+ protected virtual void OnRectanglebuttonToggled (object sender, System.EventArgs e)
+ {
+ if (DrawToolChanged != null && (sender as RadioButton).Active)
+ DrawToolChanged(DrawTool.RECTANGLE);
+ }
+
+ protected virtual void OnLinebuttonToggled (object sender, System.EventArgs e)
+ {
+ if (DrawToolChanged != null && (sender as RadioButton).Active)
+ DrawToolChanged(DrawTool.LINE);
+ }
+
+ protected virtual void OnCrossbuttonToggled (object sender, System.EventArgs e)
+ {
+ if (DrawToolChanged != null && (sender as RadioButton).Active)
+ DrawToolChanged(DrawTool.CROSS);
+ }
+
+ protected virtual void OnEraserbuttonToggled (object sender, System.EventArgs e)
+ {
+ if (DrawToolChanged != null && (sender as RadioButton).Active)
+ DrawToolChanged(DrawTool.ERASER);
+ }
+
+ protected virtual void OnPenbuttonToggled (object sender, System.EventArgs e)
+ {
+ if (DrawToolChanged != null && (sender as RadioButton).Active)
+ DrawToolChanged(DrawTool.PEN);
+ }
+
+ protected virtual void OnClearbuttonClicked (object sender, System.EventArgs e)
+ {
+ if (ClearDrawing != null)
+ ClearDrawing();
+ }
+
+ protected virtual void OnSpinbutton1Changed (object sender, System.EventArgs e)
+ {
+ if (TransparencyChanged != null)
+ TransparencyChanged(spinbutton1.Value/100);
+ }
}
}
diff --git a/LongoMatch/Gui/Component/DrawingWidget.cs b/LongoMatch/Gui/Component/DrawingWidget.cs
new file mode 100644
index 0000000..9c653b8
--- /dev/null
+++ b/LongoMatch/Gui/Component/DrawingWidget.cs
@@ -0,0 +1,363 @@
+//
+// Copyright (C) 2007-2009 Andoni Morales Alastruey
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+
+using System;
+using Gdk;
+using Gtk;
+using Cairo;
+
+
+namespace LongoMatch.Gui.Component
+{
+ public enum DrawTool{
+ PEN,
+ LINE,
+ CIRCLE,
+ RECTANGLE,
+ CROSS,
+ ERASER
+ }
+
+ [System.ComponentModel.ToolboxItem(true)]
+ public partial class DrawingWidget : Gtk.Bin
+ {
+ private Surface source;
+ private Surface drawings;
+
+ private Cairo.Color lineColor;
+ private int lineWidth;
+ private double transparency;
+ private DrawTool selectedTool;
+
+ private Cairo.PointD initialPoint,finalPoint;
+
+ private int sourceWidth,sourceHeight;
+
+ private bool loaded;
+ private bool visible;
+ private bool preview;
+
+
+ //Offset values to keep image in center
+ private int xOffset;
+ private int yOffset;
+
+ //Mouse motion
+ private double lastx=0;
+ private double lasty=0;
+
+ private const double ARROW_DEGREES = 0.5;
+ private const int ARROW_LENGHT = 15;
+
+ public DrawingWidget()
+ {
+ this.Build();
+ lineColor = new Cairo.Color(Double.MaxValue,0,0);
+ lineWidth = 6;
+ Transparency=0.8;
+ selectedTool = DrawTool.PEN;
+ loaded = false;
+ visible = true;
+ preview=false;
+ }
+
+ public Pixbuf SourceImage{
+ set{
+ sourceWidth = value.Width;
+ sourceHeight = value.Height;
+ source = new ImageSurface(Format.RGB24,sourceWidth,sourceHeight);
+ drawings = new ImageSurface (Format.ARGB32,sourceWidth,sourceHeight);
+ using (Context sourceCR = new Context(source)){
+ CairoHelper.SetSourcePixbuf(sourceCR,value,0,0);
+ sourceCR.Paint();
+ }
+ drawingarea.WidthRequest=sourceWidth;
+ drawingarea.HeightRequest=sourceHeight;
+ if (GdkWindow != null)
+ GdkWindow.Resize(sourceWidth,sourceHeight);
+ value.Dispose();
+ loaded = true;
+ }
+ }
+
+ public int LineWidth{
+ set{lineWidth = value;}
+ }
+
+ public double Transparency{
+ set{
+ if (value >=0 && value <=1){
+ transparency = value;
+ drawingarea.QueueDraw();
+ }
+ }
+ }
+
+ public Gdk.Color LineColor{
+ set{lineColor = new Cairo.Color(value.Red,value.Green,value.Blue);}
+ }
+
+ public DrawTool DrawTool{
+ set{
+ this.selectedTool = value;
+ switch (selectedTool){
+ case DrawTool.LINE:
+ drawingarea.GdkWindow.Cursor = new Cursor(CursorType.DraftSmall);
+ break;
+ case DrawTool.RECTANGLE:
+ drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Dotbox);
+ break;
+ case DrawTool.CIRCLE:
+ drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Circle);
+ break;
+ case DrawTool.CROSS:
+ drawingarea.GdkWindow.Cursor = new Cursor(CursorType.XCursor);
+ break;
+ case DrawTool.ERASER:
+ drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Target);
+ break;
+ case DrawTool.PEN:
+ drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Pencil);
+ break;
+ default:
+ drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Arrow);
+ break;
+ }
+ }
+ get{return selectedTool;}
+ }
+
+ public bool DrawingsVisible{
+ set{visible = value;}
+ }
+
+ public void ClearDrawing(){
+ drawings.Destroy();
+ drawings = new ImageSurface (Format.ARGB32,sourceWidth,sourceHeight);
+ QueueDraw();
+ }
+
+ public void SaveAll(string filename){
+ Save(filename,true,true);
+ }
+
+
+ private void Save(string filename,bool bSource,bool bDrawings){
+ Surface pngSurface = new ImageSurface (Format.ARGB32,sourceWidth,sourceHeight);
+ using (Context c = new Context(pngSurface)){
+ if (bSource){
+ c.SetSourceSurface(source,xOffset,yOffset);
+ c.Paint();
+ }
+ if (bDrawings){
+ c.SetSourceSurface(drawings,xOffset,yOffset);
+ c.PaintWithAlpha(transparency);
+ }
+ }
+ pngSurface.WriteToPng(filename);
+ }
+
+ private void SetContextProperties(Context c){
+ c.LineCap = LineCap.Round;
+ c.LineJoin = LineJoin.Round;
+ if (selectedTool != DrawTool.ERASER){
+ c.Color = lineColor;
+ c.LineWidth = lineWidth;
+ c.Operator = Operator.Over;
+ }else{
+ c.Color = new Cairo.Color(0,0,0,0);
+ c.LineWidth = lineWidth*2;
+ c.Operator = Operator.Source;
+ }
+ }
+
+ private void DrawLine(Context c, double x1, double y1, double x2, double y2){
+ SetContextProperties(c);
+ c.MoveTo(x1-xOffset,y1-yOffset);
+ c.LineTo(x2-xOffset,y2-yOffset);
+ c.Stroke();
+ c.Fill();
+ }
+
+ private void DrawArrow(Context c, double x1, double y1, double x2, double y2){
+ double vx1,vy1,vx2,vy2;
+ double angle = Math.Atan2(y2 - y1, x2 - x1) + Math.PI;
+
+ vx1 = x2 + (ARROW_LENGHT + lineWidth) * Math.Cos(angle - ARROW_DEGREES);
+ vy1 = y2 + (ARROW_LENGHT + lineWidth) * Math.Sin(angle - ARROW_DEGREES);
+ vx2 = x2 + (ARROW_LENGHT + lineWidth) * Math.Cos(angle + ARROW_DEGREES);
+ vy2 = y2 + (ARROW_LENGHT + lineWidth) * Math.Sin(angle + ARROW_DEGREES);
+
+ c.MoveTo(x2-xOffset,y2-yOffset);
+ c.LineTo(vx1-xOffset,vy1-yOffset);
+ c.MoveTo(x2-xOffset,y2-yOffset);
+ c.LineTo(vx2-xOffset,vy2-yOffset);
+ c.Stroke();
+ c.Fill();
+ }
+
+ private void DrawRectangle(Context c, double x1, double y1, double x2, double y2){
+ SetContextProperties(c);
+ c.Rectangle(x1-xOffset,y1-yOffset,x2-x1,y2-y1);
+ c.Stroke();
+ c.Fill();
+ }
+
+ private void DrawCross(Context c, double x1, double y1, double x2, double y2){
+ DrawLine(c, x1, y1, x2, y2);
+ DrawLine(c, x2, y1, x1, y2);
+ }
+
+ private void DrawCircle(Context c, double x1, double y1, double x2, double y2){
+ double xc,yc,radius,angle1,angle2;
+
+ xc=x1+(x2-x1)/2 - xOffset;
+ yc=y1+(y2-y1)/2 - yOffset;
+ radius = Math.Sqrt(Math.Pow((x2-x1),2)+
+ Math.Pow((y2-y1),2));
+ radius /=2;
+ angle1 = 0.0 * (Math.PI/180);
+ angle2 = 360.0 * (Math.PI/180);
+
+ SetContextProperties(c);
+ c.Arc(xc,yc,radius,angle1,angle2);
+
+ c.Stroke();
+ c.Fill();
+ }
+
+ protected virtual void OnDrawingareaExposeEvent (object o, Gtk.ExposeEventArgs args)
+ {
+ if (!loaded)
+ return;
+ drawingarea.GdkWindow.Clear();
+
+ using (Context c = CairoHelper.Create(drawingarea.GdkWindow)){
+ c.SetSourceSurface(source,xOffset,yOffset);
+ c.Paint();
+ if (visible){
+ c.SetSourceSurface(drawings,xOffset,yOffset);
+ c.PaintWithAlpha(transparency);
+ }
+
+ //Preview
+ if (preview){
+ switch (selectedTool){
+ case DrawTool.LINE:
+ DrawLine(c,initialPoint.X+xOffset,initialPoint.Y+yOffset,finalPoint.X+xOffset,finalPoint.Y+yOffset);
+ DrawArrow(c,initialPoint.X+xOffset,initialPoint.Y+yOffset,finalPoint.X+xOffset,finalPoint.Y+yOffset);
+ break;
+ case DrawTool.RECTANGLE:
+ DrawRectangle(c,initialPoint.X+xOffset,initialPoint.Y+yOffset,finalPoint.X+xOffset,finalPoint.Y+yOffset);
+ break;
+ case DrawTool.CIRCLE:
+ DrawCircle(c,initialPoint.X+xOffset,initialPoint.Y+yOffset,finalPoint.X+xOffset,finalPoint.Y+yOffset);
+ break;
+ case DrawTool.CROSS:
+ DrawCross(c,initialPoint.X+xOffset,initialPoint.Y+yOffset,finalPoint.X+xOffset,finalPoint.Y+yOffset);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
+
+ protected virtual void OnDrawingareaButtonPressEvent (object o, Gtk.ButtonPressEventArgs args)
+ {
+ preview = true;
+ initialPoint = new Cairo.PointD(args.Event.X,args.Event.Y);
+
+ if (selectedTool == DrawTool.PEN || selectedTool == DrawTool.ERASER ){
+ lastx = args.Event.X;
+ lasty = args.Event.Y;
+
+ if (args.Event.Button == 1){
+ using (Context c = new Context(drawings)){
+ DrawLine(c,args.Event.X,args.Event.Y,args.Event.X,args.Event.Y);
+ }
+ }
+ }
+ }
+
+ protected virtual void OnDrawingareaButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args)
+ {
+ preview = false;
+ finalPoint = new Cairo.PointD(args.Event.X,args.Event.Y);
+ using (Context c = new Context(drawings)){
+ switch (selectedTool){
+ case DrawTool.LINE:
+ DrawLine(c,initialPoint.X,initialPoint.Y,finalPoint.X,finalPoint.Y);
+ DrawArrow(c,initialPoint.X,initialPoint.Y,finalPoint.X,finalPoint.Y);
+ break;
+ case DrawTool.RECTANGLE:
+ DrawRectangle(c,initialPoint.X,initialPoint.Y,finalPoint.X,finalPoint.Y);
+ break;
+ case DrawTool.CIRCLE:
+ DrawCircle(c,initialPoint.X,initialPoint.Y,finalPoint.X,finalPoint.Y);
+ break;
+ case DrawTool.CROSS:
+ DrawCross(c,initialPoint.X,initialPoint.Y,finalPoint.X,finalPoint.Y);
+ break;
+ default: //ERASER and PEN
+ lastx=0;
+ lasty=0;
+ break;
+ }
+ }
+ QueueDraw();
+ }
+
+ protected virtual void OnDrawingareaMotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args)
+ {
+ finalPoint = new Cairo.PointD(args.Event.X,args.Event.Y);
+
+ if (selectedTool == DrawTool.PEN || selectedTool == DrawTool.ERASER){
+ using (Context c = new Context(drawings)){
+ DrawLine (c,lastx,lasty,args.Event.X,args.Event.Y);
+ }
+ lastx = args.Event.X;
+ lasty = args.Event.Y;
+ }
+ QueueDraw();
+ }
+
+ protected virtual void OnDrawingareaSizeAllocated (object o, Gtk.SizeAllocatedArgs args)
+ {
+ // Center the source in the drawing area if its size
+ // is smaller than the drawing area one
+ if (args.Allocation.Width > sourceWidth)
+ xOffset = (Allocation.Width - sourceWidth) / 2;
+ else
+ xOffset = 0;
+
+ if (args.Allocation.Height > sourceHeight)
+ yOffset = (Allocation.Height -sourceHeight) / 2;
+ else
+ yOffset = 0;
+ }
+
+ protected virtual void OnDrawingareaConfigureEvent (object o, Gtk.ConfigureEventArgs args)
+ {
+ // We can't set the cursor until the Gdk.Window exists
+ DrawTool = selectedTool;
+ if (loaded)
+ GdkWindow.Resize(sourceWidth,sourceHeight);
+ }
+ }
+}
diff --git a/LongoMatch/Gui/Dialog/DrawingTool.cs b/LongoMatch/Gui/Dialog/DrawingTool.cs
new file mode 100644
index 0000000..5480279
--- /dev/null
+++ b/LongoMatch/Gui/Dialog/DrawingTool.cs
@@ -0,0 +1,103 @@
+//
+// Copyright (C) 2007-2009 Andoni Morales Alastruey
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+
+using System;
+using Gdk;
+using Gtk;
+using Mono.Unix;
+using LongoMatch.Gui.Component;
+
+namespace LongoMatch.Gui.Dialog
+{
+
+
+ public partial class DrawingTool : Gtk.Dialog
+ {
+
+ public DrawingTool()
+ {
+ this.Build();
+ drawingtoolbox1.DrawToolChanged += OnDrawingtoolbox1DrawToolChanged;
+ drawingtoolbox1.TransparencyChanged += OnDrawingtoolbox1TransparencyChanged;
+ drawingtoolbox1.ToolsVisible = true;
+ drawingtoolbox1.InfoVisible = false;
+ }
+
+ public Pixbuf Image{
+ set{
+ drawingwidget1.SourceImage = value;
+ }
+ }
+
+ protected virtual void OnDrawingtoolbox1LineWidthChanged (int width)
+ {
+ drawingwidget1.LineWidth = width;
+ }
+
+ protected virtual void OnDrawingtoolbox1ColorChanged (Gdk.Color color)
+ {
+ drawingwidget1.LineColor = color;
+ }
+
+ protected virtual void OnDrawingtoolbox1VisibilityChanged (bool visible)
+ {
+ drawingwidget1.DrawingsVisible = visible;
+ }
+
+ protected virtual void OnDrawingtoolbox1ClearDrawing ()
+ {
+ drawingwidget1.ClearDrawing();
+ }
+
+ protected virtual void OnDrawingtoolbox1DrawToolChanged (DrawTool tool)
+ {
+ drawingwidget1.DrawTool = tool;
+ }
+
+ protected virtual void OnDrawingtoolbox1TransparencyChanged (double transparency)
+ {
+ drawingwidget1.Transparency = transparency;
+ }
+
+ protected virtual void OnSavebuttonClicked (object sender, System.EventArgs e)
+ {
+ string filename;
+ FileChooserDialog fChooser;
+ FileFilter filter = new FileFilter();
+ filter.Name = "PNG Images";
+ filter.AddPattern("*.png");
+
+ fChooser = new FileChooserDialog(Catalog.GetString("Save File as..."),
+ (Gtk.Window)this.Toplevel,
+ FileChooserAction.Save,
+ "gtk-cancel",ResponseType.Cancel,
+ "gtk-save",ResponseType.Accept);
+ fChooser.SetCurrentFolder(MainClass.SnapshotsDir());
+ fChooser.Filter = filter;
+ fChooser.DoOverwriteConfirmation = true;
+
+ if (fChooser.Run() == (int)ResponseType.Accept){
+ filename = fChooser.Filename;
+ if (System.IO.Path.GetExtension(filename) != "png")
+ filename += ".png";
+ drawingwidget1.SaveAll(filename);
+ }
+ fChooser.Destroy();
+ }
+ }
+}
diff --git a/LongoMatch/Handlers/DrawingManager.cs b/LongoMatch/Handlers/DrawingManager.cs
index 7de9311..7f95cc7 100644
--- a/LongoMatch/Handlers/DrawingManager.cs
+++ b/LongoMatch/Handlers/DrawingManager.cs
@@ -40,7 +40,8 @@ namespace LongoMatch.Handlers
toolBox.ColorChanged += new ColorChangedHandler(OnColorChanged);
toolBox.LineWidthChanged += new LineWidthChangedHandler(OnLineWidthChanged);
toolBox.VisibilityChanged += new VisibilityChangedHandler(OnVisibilityChanged);
- toolBox.ClearDrawing += new ClearDrawingHandler(OnClearDrawing);
+ toolBox.ClearDrawing += new ClearDrawingHandler(OnClearDrawing);
+ toolBox.ToolsVisible=false;
}
public void OnKeyPressEvent (object o, Gtk.KeyPressEventArgs args)
diff --git a/LongoMatch/Handlers/EventsManager.cs b/LongoMatch/Handlers/EventsManager.cs
index de8d31f..6f48eb7 100644
--- a/LongoMatch/Handlers/EventsManager.cs
+++ b/LongoMatch/Handlers/EventsManager.cs
@@ -118,6 +118,7 @@ namespace LongoMatch
player.Next += OnNext;
player.Tick += OnTick;
player.SegmentClosedEvent += OnSegmentClosedEvent;
+ player.DrawFrame += OnDrawFrame;
}
private void ProcessNewMarkEvent(int section,Time pos){
@@ -135,7 +136,7 @@ namespace LongoMatch
length = new Time((int)player.StreamLength);
Time fStop = (stop > length) ? length: stop;
- Pixbuf miniature = player.CurrentFrame;
+ Pixbuf miniature = player.CurrentMiniatureFrame;
MediaTimeNode tn = openedProject.AddTimeNode(section,fStart, fStop,miniature);
treewidget.AddPlay(tn,section);
timeline.QueueDraw();
@@ -320,6 +321,15 @@ namespace LongoMatch
plNode.Rate = player.Rate;
}
+ protected virtual void OnDrawFrame (Pixbuf pixbuf){
+ DrawingTool dialog = new DrawingTool();
+ dialog.TransientFor = (Gtk.Window)player.Toplevel;
+ dialog.Image = pixbuf;
+ dialog.Run();
+ dialog.Destroy();
+ pixbuf.Dispose();
+ }
+
protected virtual void OnPlayersTagged (MediaTimeNode tNode, Team team){
PlayersSelectionDialog dialog = new PlayersSelectionDialog();
if (team == Team.LOCAL){
diff --git a/LongoMatch/Handlers/Handlers.cs b/LongoMatch/Handlers/Handlers.cs
index fbce12c..f418265 100644
--- a/LongoMatch/Handlers/Handlers.cs
+++ b/LongoMatch/Handlers/Handlers.cs
@@ -51,6 +51,8 @@ namespace LongoMatch.Handlers
public delegate void ApplyCurrentRateHandler (PlayListTimeNode plNode);
//Drawing events
+ //Draw tool changed
+ public delegate void DrawToolChangedHandler (LongoMatch.Gui.Component.DrawTool drawTool);
//Paint color changed
public delegate void ColorChangedHandler (Gdk.Color color);
//Paint line width changed
@@ -59,6 +61,8 @@ namespace LongoMatch.Handlers
public delegate void VisibilityChangedHandler (bool visible);
//Clear drawings
public delegate void ClearDrawingHandler ();
+ //Transparency value changed
+ public delegate void TransparencyChangedHandler(double transparency);
//The position of the stream has changed
diff --git a/LongoMatch/LongoMatch.mdp b/LongoMatch/LongoMatch.mdp
index 99188c4..f84406d 100644
--- a/LongoMatch/LongoMatch.mdp
+++ b/LongoMatch/LongoMatch.mdp
@@ -155,6 +155,10 @@
<File name="gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs" subtype="Code" buildaction="Compile" />
<File name="gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs" subtype="Code" buildaction="Compile" />
<File name="Gui/Dialog/TeamTemplateEditor.cs" subtype="Code" buildaction="Compile" />
+ <File name="gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs" subtype="Code" buildaction="Compile" />
+ <File name="Gui/Component/DrawingWidget.cs" subtype="Code" buildaction="Compile" />
+ <File name="Gui/Dialog/DrawingTool.cs" subtype="Code" buildaction="Compile" />
+ <File name="gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
diff --git a/LongoMatch/Makefile.am b/LongoMatch/Makefile.am
index 2de599e..0871955 100644
--- a/LongoMatch/Makefile.am
+++ b/LongoMatch/Makefile.am
@@ -100,6 +100,7 @@ FILES = \
gtk-gui/generated.cs \
gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs \
gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs \
+ gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs \
gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs \
gtk-gui/LongoMatch.Gui.Component.NotesWidget.cs \
gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs \
@@ -112,6 +113,7 @@ FILES = \
gtk-gui/LongoMatch.Gui.Component.TeamTemplateWidget.cs \
gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs \
gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs \
+ gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs \
gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs \
gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs \
gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs \
@@ -134,6 +136,7 @@ FILES = \
gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs \
Gui/Component/ButtonsWidget.cs \
Gui/Component/CategoryProperties.cs \
+ Gui/Component/DrawingWidget.cs \
Gui/Component/DrawingToolBox.cs \
Gui/Component/NotesWidget.cs \
Gui/Component/PlayerProperties.cs \
@@ -148,6 +151,7 @@ FILES = \
Gui/Component/TimeLineWidget.cs \
Gui/Component/TimeReferenceWidget.cs \
Gui/Component/TimeScale.cs \
+ Gui/Dialog/DrawingTool.cs \
Gui/Dialog/EditCategoryDialog.cs \
Gui/Dialog/EditPlayerDialog.cs \
Gui/Dialog/EntryDialog.cs \
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs
index 2d65892..f808629 100644
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs
@@ -15,9 +15,45 @@ namespace LongoMatch.Gui.Component {
private Gtk.VBox vbox2;
+ private Gtk.Label toolslabel;
+
+ private Gtk.Table toolstable;
+
+ private Gtk.RadioButton circlebutton;
+
+ private Gtk.Image image79;
+
+ private Gtk.RadioButton crossbutton;
+
+ private Gtk.Image image83;
+
+ private Gtk.RadioButton eraserbutton;
+
+ private Gtk.Image image81;
+
+ private Gtk.RadioButton linebutton;
+
+ private Gtk.Image image82;
+
+ private Gtk.RadioButton penbutton;
+
+ private Gtk.Image image80;
+
+ private Gtk.RadioButton rectanglebutton;
+
+ private Gtk.Image image84;
+
+ private Gtk.Label label3;
+
private Gtk.ComboBox combobox1;
- private Gtk.Table table1;
+ private Gtk.Label transparencylabel;
+
+ private Gtk.SpinButton spinbutton1;
+
+ private Gtk.Label colorslabel;
+
+ private Gtk.Table colorstable;
private Gtk.RadioButton bbutton;
@@ -45,6 +81,147 @@ namespace LongoMatch.Gui.Component {
this.vbox2.Name = "vbox2";
this.vbox2.Spacing = 6;
// Container child vbox2.Gtk.Box+BoxChild
+ this.toolslabel = new Gtk.Label();
+ this.toolslabel.Name = "toolslabel";
+ this.toolslabel.Xalign = 0F;
+ this.toolslabel.LabelProp = Mono.Unix.Catalog.GetString("<b>Tools</b>");
+ this.toolslabel.UseMarkup = true;
+ this.vbox2.Add(this.toolslabel);
+ Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.vbox2[this.toolslabel]));
+ w1.Position = 0;
+ w1.Expand = false;
+ w1.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.toolstable = new Gtk.Table(((uint)(3)), ((uint)(2)), false);
+ this.toolstable.Name = "toolstable";
+ this.toolstable.RowSpacing = ((uint)(6));
+ this.toolstable.ColumnSpacing = ((uint)(6));
+ // Container child toolstable.Gtk.Table+TableChild
+ this.circlebutton = new Gtk.RadioButton("");
+ this.circlebutton.CanFocus = true;
+ this.circlebutton.Name = "circlebutton";
+ this.circlebutton.DrawIndicator = false;
+ this.circlebutton.UseUnderline = true;
+ this.circlebutton.Group = new GLib.SList(System.IntPtr.Zero);
+ this.circlebutton.Remove(this.circlebutton.Child);
+ // Container child circlebutton.Gtk.Container+ContainerChild
+ this.image79 = new Gtk.Image();
+ this.image79.Name = "image79";
+ this.image79.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-circle-unfilled", Gtk.IconSize.Menu, 16);
+ this.circlebutton.Add(this.image79);
+ this.toolstable.Add(this.circlebutton);
+ Gtk.Table.TableChild w3 = ((Gtk.Table.TableChild)(this.toolstable[this.circlebutton]));
+ w3.TopAttach = ((uint)(2));
+ w3.BottomAttach = ((uint)(3));
+ w3.LeftAttach = ((uint)(1));
+ w3.RightAttach = ((uint)(2));
+ w3.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child toolstable.Gtk.Table+TableChild
+ this.crossbutton = new Gtk.RadioButton("");
+ this.crossbutton.CanFocus = true;
+ this.crossbutton.Name = "crossbutton";
+ this.crossbutton.DrawIndicator = false;
+ this.crossbutton.UseUnderline = true;
+ this.crossbutton.Group = this.circlebutton.Group;
+ this.crossbutton.Remove(this.crossbutton.Child);
+ // Container child crossbutton.Gtk.Container+ContainerChild
+ this.image83 = new Gtk.Image();
+ this.image83.Name = "image83";
+ this.image83.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-line-45", Gtk.IconSize.Menu, 16);
+ this.crossbutton.Add(this.image83);
+ this.toolstable.Add(this.crossbutton);
+ Gtk.Table.TableChild w5 = ((Gtk.Table.TableChild)(this.toolstable[this.crossbutton]));
+ w5.TopAttach = ((uint)(1));
+ w5.BottomAttach = ((uint)(2));
+ w5.LeftAttach = ((uint)(1));
+ w5.RightAttach = ((uint)(2));
+ w5.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child toolstable.Gtk.Table+TableChild
+ this.eraserbutton = new Gtk.RadioButton("");
+ this.eraserbutton.CanFocus = true;
+ this.eraserbutton.Name = "eraserbutton";
+ this.eraserbutton.DrawIndicator = false;
+ this.eraserbutton.UseUnderline = true;
+ this.eraserbutton.Group = this.circlebutton.Group;
+ this.eraserbutton.Remove(this.eraserbutton.Child);
+ // Container child eraserbutton.Gtk.Container+ContainerChild
+ this.image81 = new Gtk.Image();
+ this.image81.Name = "image81";
+ this.image81.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-delete", Gtk.IconSize.Menu, 16);
+ this.eraserbutton.Add(this.image81);
+ this.toolstable.Add(this.eraserbutton);
+ Gtk.Table.TableChild w7 = ((Gtk.Table.TableChild)(this.toolstable[this.eraserbutton]));
+ w7.LeftAttach = ((uint)(1));
+ w7.RightAttach = ((uint)(2));
+ w7.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child toolstable.Gtk.Table+TableChild
+ this.linebutton = new Gtk.RadioButton("");
+ this.linebutton.CanFocus = true;
+ this.linebutton.Name = "linebutton";
+ this.linebutton.DrawIndicator = false;
+ this.linebutton.UseUnderline = true;
+ this.linebutton.Group = this.circlebutton.Group;
+ this.linebutton.Remove(this.linebutton.Child);
+ // Container child linebutton.Gtk.Container+ContainerChild
+ this.image82 = new Gtk.Image();
+ this.image82.Name = "image82";
+ this.image82.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-line-ends-with-arrow", Gtk.IconSize.Menu, 16);
+ this.linebutton.Add(this.image82);
+ this.toolstable.Add(this.linebutton);
+ Gtk.Table.TableChild w9 = ((Gtk.Table.TableChild)(this.toolstable[this.linebutton]));
+ w9.TopAttach = ((uint)(1));
+ w9.BottomAttach = ((uint)(2));
+ w9.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child toolstable.Gtk.Table+TableChild
+ this.penbutton = new Gtk.RadioButton("");
+ this.penbutton.CanFocus = true;
+ this.penbutton.Name = "penbutton";
+ this.penbutton.DrawIndicator = false;
+ this.penbutton.UseUnderline = true;
+ this.penbutton.Group = this.circlebutton.Group;
+ this.penbutton.Remove(this.penbutton.Child);
+ // Container child penbutton.Gtk.Container+ContainerChild
+ this.image80 = new Gtk.Image();
+ this.image80.Name = "image80";
+ this.image80.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-freeform-line", Gtk.IconSize.Menu, 16);
+ this.penbutton.Add(this.image80);
+ this.toolstable.Add(this.penbutton);
+ Gtk.Table.TableChild w11 = ((Gtk.Table.TableChild)(this.toolstable[this.penbutton]));
+ w11.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child toolstable.Gtk.Table+TableChild
+ this.rectanglebutton = new Gtk.RadioButton("");
+ this.rectanglebutton.CanFocus = true;
+ this.rectanglebutton.Name = "rectanglebutton";
+ this.rectanglebutton.DrawIndicator = false;
+ this.rectanglebutton.UseUnderline = true;
+ this.rectanglebutton.Group = this.circlebutton.Group;
+ this.rectanglebutton.Remove(this.rectanglebutton.Child);
+ // Container child rectanglebutton.Gtk.Container+ContainerChild
+ this.image84 = new Gtk.Image();
+ this.image84.Name = "image84";
+ this.image84.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-rectangle-unfilled", Gtk.IconSize.Menu, 16);
+ this.rectanglebutton.Add(this.image84);
+ this.toolstable.Add(this.rectanglebutton);
+ Gtk.Table.TableChild w13 = ((Gtk.Table.TableChild)(this.toolstable[this.rectanglebutton]));
+ w13.TopAttach = ((uint)(2));
+ w13.BottomAttach = ((uint)(3));
+ w13.YOptions = ((Gtk.AttachOptions)(4));
+ this.vbox2.Add(this.toolstable);
+ Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.vbox2[this.toolstable]));
+ w14.Position = 1;
+ w14.Expand = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.label3 = new Gtk.Label();
+ this.label3.Name = "label3";
+ this.label3.Xalign = 0F;
+ this.label3.LabelProp = Mono.Unix.Catalog.GetString("<b>Width</b>");
+ this.label3.UseMarkup = true;
+ this.vbox2.Add(this.label3);
+ Gtk.Box.BoxChild w15 = ((Gtk.Box.BoxChild)(this.vbox2[this.label3]));
+ w15.Position = 2;
+ w15.Expand = false;
+ w15.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
this.combobox1 = Gtk.ComboBox.NewText();
this.combobox1.AppendText(Mono.Unix.Catalog.GetString("2 px"));
this.combobox1.AppendText(Mono.Unix.Catalog.GetString("4 px"));
@@ -54,134 +231,176 @@ namespace LongoMatch.Gui.Component {
this.combobox1.Name = "combobox1";
this.combobox1.Active = 2;
this.vbox2.Add(this.combobox1);
- Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.vbox2[this.combobox1]));
- w1.Position = 0;
- w1.Expand = false;
- w1.Fill = false;
+ Gtk.Box.BoxChild w16 = ((Gtk.Box.BoxChild)(this.vbox2[this.combobox1]));
+ w16.Position = 3;
+ w16.Expand = false;
+ w16.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.transparencylabel = new Gtk.Label();
+ this.transparencylabel.Name = "transparencylabel";
+ this.transparencylabel.Xalign = 0F;
+ this.transparencylabel.LabelProp = Mono.Unix.Catalog.GetString("<b>Transparency</b>");
+ this.transparencylabel.UseMarkup = true;
+ this.vbox2.Add(this.transparencylabel);
+ Gtk.Box.BoxChild w17 = ((Gtk.Box.BoxChild)(this.vbox2[this.transparencylabel]));
+ w17.Position = 4;
+ w17.Expand = false;
+ w17.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.spinbutton1 = new Gtk.SpinButton(0, 100, 1);
+ this.spinbutton1.CanFocus = true;
+ this.spinbutton1.Name = "spinbutton1";
+ this.spinbutton1.Adjustment.PageIncrement = 10;
+ this.spinbutton1.ClimbRate = 1;
+ this.spinbutton1.Numeric = true;
+ this.spinbutton1.Value = 80;
+ this.vbox2.Add(this.spinbutton1);
+ Gtk.Box.BoxChild w18 = ((Gtk.Box.BoxChild)(this.vbox2[this.spinbutton1]));
+ w18.Position = 5;
+ w18.Expand = false;
+ w18.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
- this.table1 = new Gtk.Table(((uint)(3)), ((uint)(2)), false);
- this.table1.Name = "table1";
- this.table1.RowSpacing = ((uint)(6));
- this.table1.ColumnSpacing = ((uint)(6));
- // Container child table1.Gtk.Table+TableChild
+ this.colorslabel = new Gtk.Label();
+ this.colorslabel.Name = "colorslabel";
+ this.colorslabel.Xalign = 0F;
+ this.colorslabel.LabelProp = Mono.Unix.Catalog.GetString("<b>Colors</b>");
+ this.colorslabel.UseMarkup = true;
+ this.vbox2.Add(this.colorslabel);
+ Gtk.Box.BoxChild w19 = ((Gtk.Box.BoxChild)(this.vbox2[this.colorslabel]));
+ w19.Position = 6;
+ w19.Expand = false;
+ w19.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.colorstable = new Gtk.Table(((uint)(3)), ((uint)(2)), false);
+ this.colorstable.Name = "colorstable";
+ this.colorstable.RowSpacing = ((uint)(6));
+ this.colorstable.ColumnSpacing = ((uint)(6));
+ // Container child colorstable.Gtk.Table+TableChild
this.bbutton = new Gtk.RadioButton("");
this.bbutton.Name = "bbutton";
this.bbutton.DrawIndicator = false;
this.bbutton.UseUnderline = true;
this.bbutton.FocusOnClick = false;
this.bbutton.Group = new GLib.SList(System.IntPtr.Zero);
- this.table1.Add(this.bbutton);
- Gtk.Table.TableChild w2 = ((Gtk.Table.TableChild)(this.table1[this.bbutton]));
- w2.LeftAttach = ((uint)(1));
- w2.RightAttach = ((uint)(2));
- w2.YOptions = ((Gtk.AttachOptions)(4));
- // Container child table1.Gtk.Table+TableChild
+ this.colorstable.Add(this.bbutton);
+ Gtk.Table.TableChild w20 = ((Gtk.Table.TableChild)(this.colorstable[this.bbutton]));
+ w20.LeftAttach = ((uint)(1));
+ w20.RightAttach = ((uint)(2));
+ w20.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child colorstable.Gtk.Table+TableChild
this.blbutton = new Gtk.RadioButton("");
this.blbutton.Name = "blbutton";
this.blbutton.DrawIndicator = false;
this.blbutton.UseUnderline = true;
this.blbutton.FocusOnClick = false;
this.blbutton.Group = this.bbutton.Group;
- this.table1.Add(this.blbutton);
- Gtk.Table.TableChild w3 = ((Gtk.Table.TableChild)(this.table1[this.blbutton]));
- w3.TopAttach = ((uint)(1));
- w3.BottomAttach = ((uint)(2));
- w3.LeftAttach = ((uint)(1));
- w3.RightAttach = ((uint)(2));
- w3.YOptions = ((Gtk.AttachOptions)(4));
- // Container child table1.Gtk.Table+TableChild
+ this.colorstable.Add(this.blbutton);
+ Gtk.Table.TableChild w21 = ((Gtk.Table.TableChild)(this.colorstable[this.blbutton]));
+ w21.TopAttach = ((uint)(1));
+ w21.BottomAttach = ((uint)(2));
+ w21.LeftAttach = ((uint)(1));
+ w21.RightAttach = ((uint)(2));
+ w21.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child colorstable.Gtk.Table+TableChild
this.gbutton = new Gtk.RadioButton("");
this.gbutton.Name = "gbutton";
this.gbutton.DrawIndicator = false;
this.gbutton.UseUnderline = true;
this.gbutton.FocusOnClick = false;
this.gbutton.Group = this.bbutton.Group;
- this.table1.Add(this.gbutton);
- Gtk.Table.TableChild w4 = ((Gtk.Table.TableChild)(this.table1[this.gbutton]));
- w4.TopAttach = ((uint)(2));
- w4.BottomAttach = ((uint)(3));
- w4.YOptions = ((Gtk.AttachOptions)(4));
- // Container child table1.Gtk.Table+TableChild
+ this.colorstable.Add(this.gbutton);
+ Gtk.Table.TableChild w22 = ((Gtk.Table.TableChild)(this.colorstable[this.gbutton]));
+ w22.TopAttach = ((uint)(2));
+ w22.BottomAttach = ((uint)(3));
+ w22.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child colorstable.Gtk.Table+TableChild
this.rbutton = new Gtk.RadioButton("");
this.rbutton.Name = "rbutton";
this.rbutton.DrawIndicator = false;
this.rbutton.UseUnderline = true;
this.rbutton.FocusOnClick = false;
this.rbutton.Group = this.bbutton.Group;
- this.table1.Add(this.rbutton);
- Gtk.Table.TableChild w5 = ((Gtk.Table.TableChild)(this.table1[this.rbutton]));
- w5.TopAttach = ((uint)(1));
- w5.BottomAttach = ((uint)(2));
- w5.YOptions = ((Gtk.AttachOptions)(4));
- // Container child table1.Gtk.Table+TableChild
+ this.colorstable.Add(this.rbutton);
+ Gtk.Table.TableChild w23 = ((Gtk.Table.TableChild)(this.colorstable[this.rbutton]));
+ w23.TopAttach = ((uint)(1));
+ w23.BottomAttach = ((uint)(2));
+ w23.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child colorstable.Gtk.Table+TableChild
this.wbutton = new Gtk.RadioButton("");
this.wbutton.Name = "wbutton";
this.wbutton.DrawIndicator = false;
this.wbutton.UseUnderline = true;
this.wbutton.FocusOnClick = false;
this.wbutton.Group = this.bbutton.Group;
- this.table1.Add(this.wbutton);
- Gtk.Table.TableChild w6 = ((Gtk.Table.TableChild)(this.table1[this.wbutton]));
- w6.YOptions = ((Gtk.AttachOptions)(4));
- // Container child table1.Gtk.Table+TableChild
+ this.colorstable.Add(this.wbutton);
+ Gtk.Table.TableChild w24 = ((Gtk.Table.TableChild)(this.colorstable[this.wbutton]));
+ w24.YOptions = ((Gtk.AttachOptions)(4));
+ // Container child colorstable.Gtk.Table+TableChild
this.ybutton = new Gtk.RadioButton("");
this.ybutton.Name = "ybutton";
this.ybutton.DrawIndicator = false;
this.ybutton.UseUnderline = true;
this.ybutton.FocusOnClick = false;
this.ybutton.Group = this.bbutton.Group;
- this.table1.Add(this.ybutton);
- Gtk.Table.TableChild w7 = ((Gtk.Table.TableChild)(this.table1[this.ybutton]));
- w7.TopAttach = ((uint)(2));
- w7.BottomAttach = ((uint)(3));
- w7.LeftAttach = ((uint)(1));
- w7.RightAttach = ((uint)(2));
- w7.YOptions = ((Gtk.AttachOptions)(4));
- this.vbox2.Add(this.table1);
- Gtk.Box.BoxChild w8 = ((Gtk.Box.BoxChild)(this.vbox2[this.table1]));
- w8.Position = 1;
- w8.Expand = false;
- w8.Fill = false;
+ this.colorstable.Add(this.ybutton);
+ Gtk.Table.TableChild w25 = ((Gtk.Table.TableChild)(this.colorstable[this.ybutton]));
+ w25.TopAttach = ((uint)(2));
+ w25.BottomAttach = ((uint)(3));
+ w25.LeftAttach = ((uint)(1));
+ w25.RightAttach = ((uint)(2));
+ w25.YOptions = ((Gtk.AttachOptions)(4));
+ this.vbox2.Add(this.colorstable);
+ Gtk.Box.BoxChild w26 = ((Gtk.Box.BoxChild)(this.vbox2[this.colorstable]));
+ w26.Position = 7;
+ w26.Expand = false;
+ w26.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.clearbutton = new Gtk.Button();
this.clearbutton.CanFocus = true;
this.clearbutton.Name = "clearbutton";
this.clearbutton.UseUnderline = true;
// Container child clearbutton.Gtk.Container+ContainerChild
- Gtk.Alignment w9 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
+ Gtk.Alignment w27 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
// Container child GtkAlignment.Gtk.Container+ContainerChild
- Gtk.HBox w10 = new Gtk.HBox();
- w10.Spacing = 2;
+ Gtk.HBox w28 = new Gtk.HBox();
+ w28.Spacing = 2;
// Container child GtkHBox.Gtk.Container+ContainerChild
- Gtk.Image w11 = new Gtk.Image();
- w11.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-clear", Gtk.IconSize.LargeToolbar, 24);
- w10.Add(w11);
+ Gtk.Image w29 = new Gtk.Image();
+ w29.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-clear", Gtk.IconSize.LargeToolbar, 24);
+ w28.Add(w29);
// Container child GtkHBox.Gtk.Container+ContainerChild
- Gtk.Label w13 = new Gtk.Label();
- w10.Add(w13);
- w9.Add(w10);
- this.clearbutton.Add(w9);
+ Gtk.Label w31 = new Gtk.Label();
+ w28.Add(w31);
+ w27.Add(w28);
+ this.clearbutton.Add(w27);
this.vbox2.Add(this.clearbutton);
- Gtk.Box.BoxChild w17 = ((Gtk.Box.BoxChild)(this.vbox2[this.clearbutton]));
- w17.Position = 2;
- w17.Expand = false;
- w17.Fill = false;
+ Gtk.Box.BoxChild w35 = ((Gtk.Box.BoxChild)(this.vbox2[this.clearbutton]));
+ w35.Position = 8;
+ w35.Expand = false;
+ w35.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.label1 = new Gtk.Label();
this.label1.Name = "label1";
this.label1.LabelProp = Mono.Unix.Catalog.GetString("Draw-><b> D</b>\nClear-><b> C</b>\nHide-><b> S</b>\nShow-><b> S</b>\n");
this.label1.UseMarkup = true;
this.vbox2.Add(this.label1);
- Gtk.Box.BoxChild w18 = ((Gtk.Box.BoxChild)(this.vbox2[this.label1]));
- w18.Position = 3;
- w18.Expand = false;
- w18.Fill = false;
+ Gtk.Box.BoxChild w36 = ((Gtk.Box.BoxChild)(this.vbox2[this.label1]));
+ w36.Position = 9;
+ w36.Expand = false;
+ w36.Fill = false;
this.Add(this.vbox2);
if ((this.Child != null)) {
this.Child.ShowAll();
}
this.Hide();
+ this.rectanglebutton.Toggled += new System.EventHandler(this.OnRectanglebuttonToggled);
+ this.penbutton.Toggled += new System.EventHandler(this.OnPenbuttonToggled);
+ this.linebutton.Toggled += new System.EventHandler(this.OnLinebuttonToggled);
+ this.eraserbutton.Toggled += new System.EventHandler(this.OnEraserbuttonToggled);
+ this.crossbutton.Toggled += new System.EventHandler(this.OnCrossbuttonToggled);
+ this.circlebutton.Toggled += new System.EventHandler(this.OnCirclebuttonToggled);
this.combobox1.Changed += new System.EventHandler(this.OnCombobox1Changed);
+ this.spinbutton1.Changed += new System.EventHandler(this.OnSpinbutton1Changed);
this.ybutton.Toggled += new System.EventHandler(this.OnButtonToggled);
this.wbutton.Toggled += new System.EventHandler(this.OnButtonToggled);
this.rbutton.Toggled += new System.EventHandler(this.OnButtonToggled);
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs
new file mode 100644
index 0000000..029008c
--- /dev/null
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs
@@ -0,0 +1,51 @@
+// ------------------------------------------------------------------------------
+// <autogenerated>
+// This code was generated by a tool.
+//
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace LongoMatch.Gui.Component {
+
+
+ public partial class DrawingWidget {
+
+ private Gtk.ScrolledWindow GtkScrolledWindow;
+
+ private Gtk.DrawingArea drawingarea;
+
+ protected virtual void Build() {
+ Stetic.Gui.Initialize(this);
+ // Widget LongoMatch.Gui.Component.DrawingWidget
+ Stetic.BinContainer.Attach(this);
+ this.Name = "LongoMatch.Gui.Component.DrawingWidget";
+ // Container child LongoMatch.Gui.Component.DrawingWidget.Gtk.Container+ContainerChild
+ this.GtkScrolledWindow = new Gtk.ScrolledWindow();
+ this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+ this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1));
+ // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+ Gtk.Viewport w1 = new Gtk.Viewport();
+ w1.ShadowType = ((Gtk.ShadowType)(0));
+ // Container child GtkViewport.Gtk.Container+ContainerChild
+ this.drawingarea = new Gtk.DrawingArea();
+ this.drawingarea.Events = ((Gdk.EventMask)(784));
+ this.drawingarea.Name = "drawingarea";
+ w1.Add(this.drawingarea);
+ this.GtkScrolledWindow.Add(w1);
+ this.Add(this.GtkScrolledWindow);
+ if ((this.Child != null)) {
+ this.Child.ShowAll();
+ }
+ this.Hide();
+ this.drawingarea.ExposeEvent += new Gtk.ExposeEventHandler(this.OnDrawingareaExposeEvent);
+ this.drawingarea.ButtonPressEvent += new Gtk.ButtonPressEventHandler(this.OnDrawingareaButtonPressEvent);
+ this.drawingarea.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(this.OnDrawingareaButtonReleaseEvent);
+ this.drawingarea.MotionNotifyEvent += new Gtk.MotionNotifyEventHandler(this.OnDrawingareaMotionNotifyEvent);
+ this.drawingarea.SizeAllocated += new Gtk.SizeAllocatedHandler(this.OnDrawingareaSizeAllocated);
+ this.drawingarea.ConfigureEvent += new Gtk.ConfigureEventHandler(this.OnDrawingareaConfigureEvent);
+ }
+ }
+}
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs
new file mode 100644
index 0000000..76e58b1
--- /dev/null
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs
@@ -0,0 +1,119 @@
+// ------------------------------------------------------------------------------
+// <autogenerated>
+// This code was generated by a tool.
+//
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace LongoMatch.Gui.Dialog {
+
+
+ public partial class DrawingTool {
+
+ private Gtk.HBox hbox1;
+
+ private Gtk.VBox vbox2;
+
+ private LongoMatch.Gui.Component.DrawingToolBox drawingtoolbox1;
+
+ private Gtk.Button savebutton;
+
+ private LongoMatch.Gui.Component.DrawingWidget drawingwidget1;
+
+ private Gtk.Button button271;
+
+ protected virtual void Build() {
+ Stetic.Gui.Initialize(this);
+ // Widget LongoMatch.Gui.Dialog.DrawingTool
+ this.Name = "LongoMatch.Gui.Dialog.DrawingTool";
+ this.Title = Mono.Unix.Catalog.GetString("Drawing Tool");
+ this.Icon = Gdk.Pixbuf.LoadFromResource("longomatch.png");
+ this.WindowPosition = ((Gtk.WindowPosition)(4));
+ this.Modal = true;
+ this.Gravity = ((Gdk.Gravity)(5));
+ this.SkipPagerHint = true;
+ this.SkipTaskbarHint = true;
+ this.HasSeparator = false;
+ // Internal child LongoMatch.Gui.Dialog.DrawingTool.VBox
+ Gtk.VBox w1 = this.VBox;
+ w1.Name = "dialog1_VBox";
+ w1.BorderWidth = ((uint)(2));
+ // Container child dialog1_VBox.Gtk.Box+BoxChild
+ this.hbox1 = new Gtk.HBox();
+ this.hbox1.Name = "hbox1";
+ this.hbox1.Spacing = 6;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.vbox2 = new Gtk.VBox();
+ this.vbox2.Name = "vbox2";
+ this.vbox2.Spacing = 6;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.drawingtoolbox1 = new LongoMatch.Gui.Component.DrawingToolBox();
+ this.drawingtoolbox1.Events = ((Gdk.EventMask)(256));
+ this.drawingtoolbox1.Name = "drawingtoolbox1";
+ this.vbox2.Add(this.drawingtoolbox1);
+ Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.vbox2[this.drawingtoolbox1]));
+ w2.Position = 0;
+ w2.Expand = false;
+ w2.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.savebutton = new Gtk.Button();
+ this.savebutton.CanFocus = true;
+ this.savebutton.Name = "savebutton";
+ this.savebutton.UseStock = true;
+ this.savebutton.UseUnderline = true;
+ this.savebutton.Label = "gtk-save";
+ this.vbox2.Add(this.savebutton);
+ Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox2[this.savebutton]));
+ w3.PackType = ((Gtk.PackType)(1));
+ w3.Position = 1;
+ w3.Expand = false;
+ w3.Fill = false;
+ this.hbox1.Add(this.vbox2);
+ Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox1[this.vbox2]));
+ w4.Position = 0;
+ w4.Expand = false;
+ w4.Fill = false;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.drawingwidget1 = new LongoMatch.Gui.Component.DrawingWidget();
+ this.drawingwidget1.Events = ((Gdk.EventMask)(256));
+ this.drawingwidget1.Name = "drawingwidget1";
+ this.hbox1.Add(this.drawingwidget1);
+ Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.hbox1[this.drawingwidget1]));
+ w5.Position = 1;
+ w1.Add(this.hbox1);
+ Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(w1[this.hbox1]));
+ w6.Position = 0;
+ // Internal child LongoMatch.Gui.Dialog.DrawingTool.ActionArea
+ Gtk.HButtonBox w7 = this.ActionArea;
+ w7.Name = "dialog1_ActionArea";
+ w7.Spacing = 6;
+ w7.BorderWidth = ((uint)(5));
+ w7.LayoutStyle = ((Gtk.ButtonBoxStyle)(4));
+ // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
+ this.button271 = new Gtk.Button();
+ this.button271.CanFocus = true;
+ this.button271.Name = "button271";
+ this.button271.UseUnderline = true;
+ this.button271.Label = Mono.Unix.Catalog.GetString("button271");
+ this.AddActionWidget(this.button271, 0);
+ Gtk.ButtonBox.ButtonBoxChild w8 = ((Gtk.ButtonBox.ButtonBoxChild)(w7[this.button271]));
+ w8.Expand = false;
+ w8.Fill = false;
+ if ((this.Child != null)) {
+ this.Child.ShowAll();
+ }
+ this.DefaultWidth = 600;
+ this.DefaultHeight = 521;
+ this.button271.Hide();
+ this.Show();
+ this.drawingtoolbox1.LineWidthChanged += new LongoMatch.Handlers.LineWidthChangedHandler(this.OnDrawingtoolbox1LineWidthChanged);
+ this.drawingtoolbox1.ColorChanged += new LongoMatch.Handlers.ColorChangedHandler(this.OnDrawingtoolbox1ColorChanged);
+ this.drawingtoolbox1.VisibilityChanged += new LongoMatch.Handlers.VisibilityChangedHandler(this.OnDrawingtoolbox1VisibilityChanged);
+ this.drawingtoolbox1.ClearDrawing += new LongoMatch.Handlers.ClearDrawingHandler(this.OnDrawingtoolbox1ClearDrawing);
+ this.savebutton.Clicked += new System.EventHandler(this.OnSavebuttonClicked);
+ }
+ }
+}
diff --git a/LongoMatch/gtk-gui/gui.stetic b/LongoMatch/gtk-gui/gui.stetic
index d82fe19..f69ab6c 100644
--- a/LongoMatch/gtk-gui/gui.stetic
+++ b/LongoMatch/gtk-gui/gui.stetic
@@ -4053,7 +4053,7 @@ You can download it using this direct link:</property>
</widget>
</child>
</widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.DrawingToolBox" design-size="67 313">
+ <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.DrawingToolBox" design-size="86 440">
<property name="MemberName" />
<property name="Visible">False</property>
<child>
@@ -4061,6 +4061,230 @@ You can download it using this direct link:</property>
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
+ <widget class="Gtk.Label" id="toolslabel">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes"><b>Tools</b></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.Table" id="toolstable">
+ <property name="MemberName" />
+ <property name="NRows">3</property>
+ <property name="NColumns">2</property>
+ <property name="RowSpacing">6</property>
+ <property name="ColumnSpacing">6</property>
+ <child>
+ <widget class="Gtk.RadioButton" id="circlebutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes" />
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">False</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">tools</property>
+ <signal name="Toggled" handler="OnCirclebuttonToggled" />
+ <child>
+ <widget class="Gtk.Image" id="image79">
+ <property name="MemberName" />
+ <property name="Pixbuf">stock:stock_draw-circle-unfilled Menu</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="TopAttach">2</property>
+ <property name="BottomAttach">3</property>
+ <property name="LeftAttach">1</property>
+ <property name="RightAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">True</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.RadioButton" id="crossbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes" />
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">False</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">tools</property>
+ <signal name="Toggled" handler="OnCrossbuttonToggled" />
+ <child>
+ <widget class="Gtk.Image" id="image83">
+ <property name="MemberName" />
+ <property name="Pixbuf">stock:stock_draw-line-45 Menu</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="TopAttach">1</property>
+ <property name="BottomAttach">2</property>
+ <property name="LeftAttach">1</property>
+ <property name="RightAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">True</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.RadioButton" id="eraserbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes" />
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">False</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">tools</property>
+ <signal name="Toggled" handler="OnEraserbuttonToggled" />
+ <child>
+ <widget class="Gtk.Image" id="image81">
+ <property name="MemberName" />
+ <property name="Pixbuf">stock:gtk-delete Menu</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="LeftAttach">1</property>
+ <property name="RightAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">True</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.RadioButton" id="linebutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes" />
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">False</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">tools</property>
+ <signal name="Toggled" handler="OnLinebuttonToggled" />
+ <child>
+ <widget class="Gtk.Image" id="image82">
+ <property name="MemberName" />
+ <property name="Pixbuf">stock:stock_draw-line-ends-with-arrow Menu</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="TopAttach">1</property>
+ <property name="BottomAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">True</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.RadioButton" id="penbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes" />
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">False</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">tools</property>
+ <signal name="Toggled" handler="OnPenbuttonToggled" />
+ <child>
+ <widget class="Gtk.Image" id="image80">
+ <property name="MemberName" />
+ <property name="Pixbuf">stock:stock_draw-freeform-line Menu</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="AutoSize">True</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">True</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.RadioButton" id="rectanglebutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes" />
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">False</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">tools</property>
+ <signal name="Toggled" handler="OnRectanglebuttonToggled" />
+ <child>
+ <widget class="Gtk.Image" id="image84">
+ <property name="MemberName" />
+ <property name="Pixbuf">stock:stock_draw-rectangle-unfilled Menu</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="TopAttach">2</property>
+ <property name="BottomAttach">3</property>
+ <property name="AutoSize">True</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">True</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">False</property>
+ <property name="Expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label3">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes"><b>Width</b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
<widget class="Gtk.ComboBox" id="combobox1">
<property name="MemberName" />
<property name="IsTextCombo">True</property>
@@ -4073,14 +4297,61 @@ You can download it using this direct link:</property>
<signal name="Changed" handler="OnCombobox1Changed" />
</widget>
<packing>
- <property name="Position">0</property>
+ <property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
- <widget class="Gtk.Table" id="table1">
+ <widget class="Gtk.Label" id="transparencylabel">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes"><b>Transparency</b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="Position">4</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.SpinButton" id="spinbutton1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Upper">100</property>
+ <property name="PageIncrement">10</property>
+ <property name="StepIncrement">1</property>
+ <property name="ClimbRate">1</property>
+ <property name="Numeric">True</property>
+ <property name="Value">80</property>
+ <signal name="Changed" handler="OnSpinbutton1Changed" />
+ </widget>
+ <packing>
+ <property name="Position">5</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="colorslabel">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes"><b>Colors</b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="Position">6</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Table" id="colorstable">
<property name="MemberName" />
<property name="NRows">3</property>
<property name="NColumns">2</property>
@@ -4094,7 +4365,7 @@ You can download it using this direct link:</property>
<property name="HasLabel">True</property>
<property name="UseUnderline">True</property>
<property name="FocusOnClick">False</property>
- <property name="Group">group1</property>
+ <property name="Group">colors</property>
<signal name="Toggled" handler="OnButtonToggled" />
</widget>
<packing>
@@ -4118,7 +4389,7 @@ You can download it using this direct link:</property>
<property name="HasLabel">True</property>
<property name="UseUnderline">True</property>
<property name="FocusOnClick">False</property>
- <property name="Group">group1</property>
+ <property name="Group">colors</property>
<signal name="Toggled" handler="OnButtonToggled" />
</widget>
<packing>
@@ -4144,7 +4415,7 @@ You can download it using this direct link:</property>
<property name="HasLabel">True</property>
<property name="UseUnderline">True</property>
<property name="FocusOnClick">False</property>
- <property name="Group">group1</property>
+ <property name="Group">colors</property>
<signal name="Toggled" handler="OnButtonToggled" />
</widget>
<packing>
@@ -4168,7 +4439,7 @@ You can download it using this direct link:</property>
<property name="HasLabel">True</property>
<property name="UseUnderline">True</property>
<property name="FocusOnClick">False</property>
- <property name="Group">group1</property>
+ <property name="Group">colors</property>
<signal name="Toggled" handler="OnButtonToggled" />
</widget>
<packing>
@@ -4192,7 +4463,7 @@ You can download it using this direct link:</property>
<property name="HasLabel">True</property>
<property name="UseUnderline">True</property>
<property name="FocusOnClick">False</property>
- <property name="Group">group1</property>
+ <property name="Group">colors</property>
<signal name="Toggled" handler="OnButtonToggled" />
</widget>
<packing>
@@ -4214,7 +4485,7 @@ You can download it using this direct link:</property>
<property name="HasLabel">True</property>
<property name="UseUnderline">True</property>
<property name="FocusOnClick">False</property>
- <property name="Group">group1</property>
+ <property name="Group">colors</property>
<signal name="Toggled" handler="OnButtonToggled" />
</widget>
<packing>
@@ -4234,7 +4505,7 @@ You can download it using this direct link:</property>
</child>
</widget>
<packing>
- <property name="Position">1</property>
+ <property name="Position">7</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@@ -4251,7 +4522,7 @@ You can download it using this direct link:</property>
<signal name="Clicked" handler="OnClearbuttonClicked" />
</widget>
<packing>
- <property name="Position">2</property>
+ <property name="Position">8</property>
<property name="AutoSize">False</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@@ -4268,15 +4539,12 @@ Show-><b> S</b>
<property name="UseMarkup">True</property>
</widget>
<packing>
- <property name="Position">3</property>
+ <property name="Position">9</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
- <child>
- <placeholder />
- </child>
</widget>
</child>
</widget>
@@ -4440,4 +4708,142 @@ Show-><b> S</b>
</widget>
</child>
</widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.DrawingWidget" design-size="300 300">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+ <property name="MemberName" />
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.Viewport" id="GtkViewport">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.DrawingArea" id="drawingarea">
+ <property name="MemberName" />
+ <property name="Events">ButtonMotionMask, ButtonPressMask, ButtonReleaseMask</property>
+ <property name="ShowScrollbars">True</property>
+ <signal name="ExposeEvent" handler="OnDrawingareaExposeEvent" />
+ <signal name="ButtonPressEvent" handler="OnDrawingareaButtonPressEvent" />
+ <signal name="ButtonReleaseEvent" handler="OnDrawingareaButtonReleaseEvent" />
+ <signal name="MotionNotifyEvent" handler="OnDrawingareaMotionNotifyEvent" />
+ <signal name="SizeAllocated" handler="OnDrawingareaSizeAllocated" />
+ <signal name="ConfigureEvent" handler="OnDrawingareaConfigureEvent" />
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.DrawingTool" design-size="600 521">
+ <property name="MemberName" />
+ <property name="Title" translatable="yes">Drawing Tool</property>
+ <property name="Icon">resource:longomatch.png</property>
+ <property name="WindowPosition">CenterOnParent</property>
+ <property name="Modal">True</property>
+ <property name="Gravity">Center</property>
+ <property name="SkipPagerHint">True</property>
+ <property name="SkipTaskbarHint">True</property>
+ <property name="Buttons">1</property>
+ <property name="HelpButton">False</property>
+ <property name="HasSeparator">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.VBox" id="vbox2">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="LongoMatch.Gui.Component.DrawingToolBox" id="drawingtoolbox1">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ <signal name="LineWidthChanged" handler="OnDrawingtoolbox1LineWidthChanged" />
+ <signal name="ColorChanged" handler="OnDrawingtoolbox1ColorChanged" />
+ <signal name="VisibilityChanged" handler="OnDrawingtoolbox1VisibilityChanged" />
+ <signal name="ClearDrawing" handler="OnDrawingtoolbox1ClearDrawing" />
+ </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.Button" id="savebutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="UseStock">True</property>
+ <property name="Type">StockItem</property>
+ <property name="StockId">gtk-save</property>
+ <signal name="Clicked" handler="OnSavebuttonClicked" />
+ <property name="label">gtk-save</property>
+ </widget>
+ <packing>
+ <property name="PackType">End</property>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </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="LongoMatch.Gui.Component.DrawingWidget" id="drawingwidget1">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ <child internal-child="ActionArea">
+ <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <property name="BorderWidth">5</property>
+ <property name="Size">1</property>
+ <property name="LayoutStyle">End</property>
+ <child>
+ <widget class="Gtk.Button" id="button271">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <property name="CanFocus">True</property>
+ <property name="Type">TextOnly</property>
+ <property name="Label" translatable="yes">button271</property>
+ <property name="UseUnderline">True</property>
+ <property name="ResponseId">0</property>
+ </widget>
+ <packing>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
</stetic-interface>
\ No newline at end of file
diff --git a/LongoMatch/gtk-gui/objects.xml b/LongoMatch/gtk-gui/objects.xml
index 8365497..138059b 100644
--- a/LongoMatch/gtk-gui/objects.xml
+++ b/LongoMatch/gtk-gui/objects.xml
@@ -15,6 +15,8 @@
<signal name="ColorChanged" />
<signal name="VisibilityChanged" />
<signal name="ClearDrawing" />
+ <signal name="DrawToolChanged" />
+ <signal name="TransparencyChanged" />
</itemgroup>
</signals>
</object>
@@ -201,10 +203,6 @@
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.Popup.TransparentDrawingArea" palette-category="General" allow-children="false" base-type="Gtk.Window">
- <itemgroups />
- <signals />
- </object>
<object type="LongoMatch.Gui.Component.PlaysListTreeWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
<itemgroups />
<signals>
@@ -237,4 +235,12 @@
</itemgroup>
</signals>
</object>
+ <object type="LongoMatch.Gui.Popup.TransparentDrawingArea" palette-category="General" allow-children="false" base-type="Gtk.Window">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.DrawingWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
</objects>
\ No newline at end of file
diff --git a/Translations/es.po b/Translations/es.po
index 6a3458e..62b7230 100644
--- a/Translations/es.po
+++ b/Translations/es.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"X-Generator: MonoDevelop Gettext addin\n"
"Language-Team: \n"
-"PO-Revision-Date: 2009-09-23 01:02:55+0200\n"
-"POT-Creation-Date: 2009-09-23 01:00:48+0200\n"
+"PO-Revision-Date: 2009-10-02 15:07:29+0200\n"
+"POT-Creation-Date: 2009-10-02 15:02:35+0200\n"
"Project-Id-Version: LongoMatch 0.15\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -310,6 +310,7 @@ msgid "_Drawing Tool"
msgstr "Herramienta de _Dibujo"
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:31
msgid "Drawing Tool"
msgstr "Herramienta de Dibujo"
@@ -377,19 +378,19 @@ msgstr "ninguno"
msgid "Not defined"
msgstr "Sin definir"
-#: ../LongoMatch/Handlers/EventsManager.cs:161
+#: ../LongoMatch/Handlers/EventsManager.cs:162
msgid "The video edition has finished successfully."
msgstr "La edición del vÃdeo ha finalizado con éxito"
-#: ../LongoMatch/Handlers/EventsManager.cs:167
+#: ../LongoMatch/Handlers/EventsManager.cs:168
msgid "An error has ocurred in the video editor."
msgstr "A ocurrido un error en el editor de vÃdeo"
-#: ../LongoMatch/Handlers/EventsManager.cs:168
+#: ../LongoMatch/Handlers/EventsManager.cs:169
msgid "Please, retry again."
msgstr "Por favor, vuelva a intentarlo"
-#: ../LongoMatch/Handlers/EventsManager.cs:246
+#: ../LongoMatch/Handlers/EventsManager.cs:247
msgid "Please, close the opened project to play the playlist."
msgstr ""
"Por favor, cierre el actual proyecto para reproducir la lista de reprodución"
@@ -440,29 +441,25 @@ msgstr "Detalles del Jugador"
msgid "This hotkey is already in use."
msgstr "Esta combinación de teclas está actualmente en uso"
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:142
-#: ../LongoMatch/Gui/Component/ProjectListWidget.cs:87
-msgid "MM/dd/yyyy"
-msgstr "dd/MM/yyyy"
-
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:290
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:287
+#: ../LongoMatch/Gui/Dialog/DrawingTool.cs:84
msgid "Save File as..."
msgstr "Guardar Video Como..."
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:301
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:298
msgid "Open file..."
msgstr "Abrir Archivo..."
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:318
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:315
msgid "Analyzing video file:"
msgstr "Analizando archivo de vÃdeo:"
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:386
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:383
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:479
msgid "Local Team Template"
msgstr "Plantilla del equipo local"
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:397
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:395
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:407
msgid "Visitor Team Template"
msgstr "Plantilla del equipo visitante"
@@ -501,27 +498,43 @@ msgstr "Dorsal:"
msgid "Photo:"
msgstr "Foto:"
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:48
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:86
+msgid "<b>Tools</b>"
+msgstr "<b>Herramientas</b> "
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:216
+msgid "<b>Width</b>"
+msgstr "<b>Ancho</b> "
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225
msgid "2 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:49
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:226
msgid "4 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:50
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:227
msgid "6 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:51
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:228
msgid "8 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:52
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:229
msgid "10 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:171
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:241
+msgid "<b>Transparency</b>"
+msgstr "<b>Transparencia</b>"
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:265
+msgid "<b>Colors</b>"
+msgstr "<b>Color</b>"
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:383
msgid ""
"Draw-><b> D</b>\n"
"Clear-><b> C</b>\n"
@@ -631,31 +644,31 @@ msgstr "Selección de equipo"
msgid "Tag player"
msgstr "Asociar jugador"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:74
msgid "A Project is already using this file."
msgstr "Un proyecto está ya usando este archivo."
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:85
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:88
msgid "This Project is actually in use."
msgstr "Este Proyecto está actualmente en uso"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:85
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:88
msgid "Close it first to allow its removal from the database"
msgstr "Ciérrelo primero para permitir borrarlo de la base de datos"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:89
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:92
msgid "Do yo really want to delete:"
msgstr "Quiere suprimir:"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:117
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:121
msgid "The Project has been edited, do you want to save the changes?"
msgstr "El proyecto ha sido editado. Quiere guardar los cambios?"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:126
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:131
msgid "The Project you are trying to load is actually in use."
msgstr "El proyecto que intenta cargar está actualmente en uso."
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:126
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:131
msgid "Close it first to edit it"
msgstr "Ciérrelo para poder editarlo"
@@ -774,7 +787,7 @@ msgstr "Añadir Nueva Jugada"
msgid "Save Video As ..."
msgstr "Guardar Video Como..."
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:101
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:102
msgid "<b>Project Details</b>"
msgstr "<b>Detalles del Proyecto</b>"
@@ -854,7 +867,11 @@ msgstr "Detalles de la Categoria"
msgid "Categories Template"
msgstr "Plantilla de categorÃas:"
-#: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:208
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:99
+msgid "button271"
+msgstr ""
+
+#: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:234
msgid "Time:"
msgstr "Tiempo:"
@@ -863,6 +880,9 @@ msgstr "Tiempo:"
msgid "Invalid video file:"
msgstr "Archivo de video invalido:"
+#~ msgid "MM/dd/yyyy"
+#~ msgstr "dd/MM/yyyy"
+
#, fuzzy
#~ msgid "Project Template"
#~ msgstr "Plantilla de CategorÃas"
diff --git a/Translations/fr.po b/Translations/fr.po
index 04e8122..b011525 100644
--- a/Translations/fr.po
+++ b/Translations/fr.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2009-09-23 01:00:48+0200\n"
+"POT-Creation-Date: 2009-10-02 15:02:35+0200\n"
"PO-Revision-Date: 2009-08-08 01:30:56+0200\n"
"Last-Translator: Andoni Morales Alastruey <ylatuya gmail com>\n"
"Language-Team: \n"
@@ -303,6 +303,7 @@ msgid "_Drawing Tool"
msgstr ""
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:31
msgid "Drawing Tool"
msgstr ""
@@ -370,19 +371,19 @@ msgstr ""
msgid "Not defined"
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:161
+#: ../LongoMatch/Handlers/EventsManager.cs:162
msgid "The video edition has finished successfully."
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:167
+#: ../LongoMatch/Handlers/EventsManager.cs:168
msgid "An error has ocurred in the video editor."
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:168
+#: ../LongoMatch/Handlers/EventsManager.cs:169
msgid "Please, retry again."
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:246
+#: ../LongoMatch/Handlers/EventsManager.cs:247
msgid "Please, close the opened project to play the playlist."
msgstr ""
@@ -432,29 +433,25 @@ msgstr ""
msgid "This hotkey is already in use."
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:142
-#: ../LongoMatch/Gui/Component/ProjectListWidget.cs:87
-msgid "MM/dd/yyyy"
-msgstr ""
-
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:290
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:287
+#: ../LongoMatch/Gui/Dialog/DrawingTool.cs:84
msgid "Save File as..."
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:301
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:298
msgid "Open file..."
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:318
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:315
msgid "Analyzing video file:"
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:386
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:383
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:479
msgid "Local Team Template"
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:397
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:395
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:407
msgid "Visitor Team Template"
msgstr ""
@@ -490,27 +487,43 @@ msgstr ""
msgid "Photo:"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:48
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:86
+msgid "<b>Tools</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:216
+msgid "<b>Width</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225
msgid "2 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:49
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:226
msgid "4 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:50
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:227
msgid "6 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:51
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:228
msgid "8 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:52
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:229
msgid "10 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:171
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:241
+msgid "<b>Transparency</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:265
+msgid "<b>Colors</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:383
msgid ""
"Draw-><b> D</b>\n"
"Clear-><b> C</b>\n"
@@ -616,31 +629,31 @@ msgstr ""
msgid "Tag player"
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:74
msgid "A Project is already using this file."
msgstr "Un Projet use déjà ce fichier"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:85
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:88
msgid "This Project is actually in use."
msgstr "Ce projet est actualment ouvert"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:85
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:88
msgid "Close it first to allow its removal from the database"
msgstr "Fermer le pour le suprimer de la base de données"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:89
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:92
msgid "Do yo really want to delete:"
msgstr "Voulez-vous suprimer:"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:117
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:121
msgid "The Project has been edited, do you want to save the changes?"
msgstr "Le Projet a été édité, voulez-vous le sauvez?"
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:126
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:131
msgid "The Project you are trying to load is actually in use."
msgstr "Le projet que vous essayer de charger est actuellement ouvert."
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:126
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:131
msgid "Close it first to edit it"
msgstr "Fermez-le pour pouvoir l'éditer"
@@ -758,7 +771,7 @@ msgstr ""
msgid "Save Video As ..."
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:101
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:102
msgid "<b>Project Details</b>"
msgstr ""
@@ -838,7 +851,11 @@ msgstr ""
msgid "Categories Template"
msgstr ""
-#: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:208
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:99
+msgid "button271"
+msgstr ""
+
+#: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:234
msgid "Time:"
msgstr ""
diff --git a/Translations/messages.po b/Translations/messages.po
index c763710..7571b15 100644
--- a/Translations/messages.po
+++ b/Translations/messages.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"X-Generator: MonoDevelop Gettext addin\n"
"Language-Team: \n"
-"PO-Revision-Date: 2009-09-23 01:00:49+0200\n"
-"POT-Creation-Date: 2009-09-23 01:00:48+0200\n"
+"PO-Revision-Date: 2009-10-02 15:02:36+0200\n"
+"POT-Creation-Date: 2009-10-02 15:02:35+0200\n"
"Project-Id-Version: \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -303,6 +303,7 @@ msgid "_Drawing Tool"
msgstr ""
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:31
msgid "Drawing Tool"
msgstr ""
@@ -370,19 +371,19 @@ msgstr ""
msgid "Not defined"
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:161
+#: ../LongoMatch/Handlers/EventsManager.cs:162
msgid "The video edition has finished successfully."
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:167
+#: ../LongoMatch/Handlers/EventsManager.cs:168
msgid "An error has ocurred in the video editor."
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:168
+#: ../LongoMatch/Handlers/EventsManager.cs:169
msgid "Please, retry again."
msgstr ""
-#: ../LongoMatch/Handlers/EventsManager.cs:246
+#: ../LongoMatch/Handlers/EventsManager.cs:247
msgid "Please, close the opened project to play the playlist."
msgstr ""
@@ -432,29 +433,25 @@ msgstr ""
msgid "This hotkey is already in use."
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:142
-#: ../LongoMatch/Gui/Component/ProjectListWidget.cs:87
-msgid "MM/dd/yyyy"
-msgstr ""
-
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:290
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:287
+#: ../LongoMatch/Gui/Dialog/DrawingTool.cs:84
msgid "Save File as..."
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:301
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:298
msgid "Open file..."
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:318
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:315
msgid "Analyzing video file:"
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:386
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:383
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:479
msgid "Local Team Template"
msgstr ""
-#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:397
+#: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:395
#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:407
msgid "Visitor Team Template"
msgstr ""
@@ -490,27 +487,43 @@ msgstr ""
msgid "Photo:"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:48
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:86
+msgid "<b>Tools</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:216
+msgid "<b>Width</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225
msgid "2 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:49
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:226
msgid "4 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:50
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:227
msgid "6 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:51
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:228
msgid "8 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:52
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:229
msgid "10 px"
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:171
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:241
+msgid "<b>Transparency</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:265
+msgid "<b>Colors</b>"
+msgstr ""
+
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:383
msgid ""
"Draw-><b> D</b>\n"
"Clear-><b> C</b>\n"
@@ -616,31 +629,31 @@ msgstr ""
msgid "Tag player"
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:74
msgid "A Project is already using this file."
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:85
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:88
msgid "This Project is actually in use."
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:85
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:88
msgid "Close it first to allow its removal from the database"
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:89
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:92
msgid "Do yo really want to delete:"
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:117
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:121
msgid "The Project has been edited, do you want to save the changes?"
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:126
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:131
msgid "The Project you are trying to load is actually in use."
msgstr ""
-#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:126
+#: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:131
msgid "Close it first to edit it"
msgstr ""
@@ -756,7 +769,7 @@ msgstr ""
msgid "Save Video As ..."
msgstr ""
-#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:101
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:102
msgid "<b>Project Details</b>"
msgstr ""
@@ -836,7 +849,11 @@ msgstr ""
msgid "Categories Template"
msgstr ""
-#: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:208
+#: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:99
+msgid "button271"
+msgstr ""
+
+#: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:234
msgid "Time:"
msgstr ""
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]