[longomatch] New Drawing Tool with specific tool for in-frame analysis



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">&lt;b&gt;Tools&lt;/b&gt;</property>
+            <property name="UseMarkup">True</property>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.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">&lt;b&gt;Width&lt;/b&gt;</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">&lt;b&gt;Transparency&lt;/b&gt;</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">&lt;b&gt;Colors&lt;/b&gt;</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-&gt;&lt;b&gt; S&lt;/b&gt;
             <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-&gt;&lt;b&gt; S&lt;/b&gt;
       </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]