[longomatch] Show position tagger with loaded plays



commit 37a7170482d5e7ff03b53d250c68a745cf1ac8d0
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Thu Jul 11 20:42:36 2013 +0200

    Show position tagger with loaded plays

 .../Gui/Component/PlaysCoordinatesTagger.cs        |  145 ++++++++++++++++++++
 LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs          |   77 +----------
 LongoMatch.GUI/Gui/MainWindow.cs                   |   60 ++++++---
 LongoMatch.GUI/LongoMatch.GUI.mdp                  |    2 +
 LongoMatch.GUI/Makefile.am                         |    2 +
 ...oMatch.Gui.Component.GeneralPreferencesPanel.cs |    1 +
 ...oMatch.Gui.Component.LiveAnalysisPreferences.cs |    1 -
 .../LongoMatch.Gui.Component.PlayerProperties.cs   |    1 +
 ...goMatch.Gui.Component.PlaysCoordinatesTagger.cs |   26 ++++
 ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs |    1 +
 .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs   |    1 +
 .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs       |    1 +
 .../LongoMatch.Gui.Dialog.SubCategoryTagsEditor.cs |    1 +
 .../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs  |   60 +++------
 .../gtk-gui/LongoMatch.Gui.MainWindow.cs           |  103 +++++++++-----
 LongoMatch.GUI/gtk-gui/gui.stetic                  |  111 +++++++++------
 LongoMatch.GUI/gtk-gui/objects.xml                 |    4 +
 17 files changed, 377 insertions(+), 220 deletions(-)
---
diff --git a/LongoMatch.GUI/Gui/Component/PlaysCoordinatesTagger.cs 
b/LongoMatch.GUI/Gui/Component/PlaysCoordinatesTagger.cs
new file mode 100644
index 0000000..b094b91
--- /dev/null
+++ b/LongoMatch.GUI/Gui/Component/PlaysCoordinatesTagger.cs
@@ -0,0 +1,145 @@
+//
+//  Copyright (C) 2013 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 System.Collections.Generic;
+using Gtk;
+using Gdk;
+
+using LongoMatch.Store;
+using LongoMatch.Store.Templates;
+using LongoMatch.Common;
+
+using Point = LongoMatch.Common.Point;
+
+namespace LongoMatch.Gui.Component
+{
+       [System.ComponentModel.ToolboxItem(true)]
+       public partial class PlaysCoordinatesTagger : Gtk.Bin
+       {
+               
+               CoordinatesTagger field, hfield, goal;
+               Box box;
+               
+               public PlaysCoordinatesTagger ()
+               {
+                       this.Build ();
+                       SetMode (true);
+               }
+               
+               public void SetMode (bool horizontal) {
+                       if (box != null) {
+                               mainbox.Remove (box);
+                               box.Destroy();
+                       }
+                       if (horizontal) {
+                               box = new HBox ();
+                       } else {
+                               box = new VBox ();
+                       }
+                       field = new CoordinatesTagger ();
+                       hfield = new CoordinatesTagger ();
+                       goal = new CoordinatesTagger ();
+                       box.PackStart (field, true, true, 0);
+                       box.PackStart (hfield, true, true, 0);
+                       box.PackStart (goal, true, true, 0);
+                       mainbox.PackStart (box, true, true, 0);
+                       ShowAll ();
+               }
+               
+               public void LoadPlay (Play play, Categories template, bool horizontal=true) {
+                       field.Visible = hfield.Visible = goal.Visible = false;
+                       
+                       if (play.Category.TagFieldPosition) {
+                               AddFieldPosTagger (play, template);                             
+                       }
+                       if (play.Category.TagHalfFieldPosition) {
+                               AddHalfFieldPosTagger (play, template);
+                       }
+                       if (play.Category.TagGoalPosition) {
+                               AddGoalPosTagger (play, template);
+                       }
+               }
+               
+               void AddFieldPosTagger (Play play, Categories template) {
+                       List<Coordinates> coords = new List<Coordinates>();
+                       
+                       if (template.FieldBackgroundImage != null) {
+                               field.Background = template.FieldBackgroundImage.Value;
+                       } else {
+                               field.Background = Gdk.Pixbuf.LoadFromResource (Constants.FIELD_BACKGROUND);
+                       }
+                       if (play.FieldPosition != null) {
+                               coords.Add (play.FieldPosition);
+                       } else {
+                               Coordinates c = new Coordinates ();
+                               c.Add (new Point(100, 100));
+                               if (play.Category.FieldPositionIsDistance) {
+                                       c.Add (new Point (300, 300));
+                               }
+                               coords.Add (c);
+                               play.FieldPosition = c;
+                       }
+                       field.Coordinates = coords;
+                       field.Visible = true;
+               }
+               
+               void AddHalfFieldPosTagger (Play play, Categories template) {
+                       List<Coordinates> coords = new List<Coordinates>();
+                       
+                       if (template.HalfFieldBackgroundImage != null) {
+                               hfield.Background = template.HalfFieldBackgroundImage.Value;
+                       } else {
+                               hfield.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.HALF_FIELD_BACKGROUND);
+                       }
+                       if (play.HalfFieldPosition != null) {
+                               coords.Add (play.HalfFieldPosition);
+                       } else {
+                               Coordinates c = new Coordinates ();
+                               c.Add (new Point(100, 100));
+                               if (play.Category.HalfFieldPositionIsDistance) {
+                                       c.Add (new Point (300, 300));
+                               }
+                               coords.Add (c);
+                               play.HalfFieldPosition = c;
+                       }
+                       hfield.Coordinates = coords;
+                       hfield.Visible = true;
+               }
+               
+               void AddGoalPosTagger (Play play, Categories template) {
+                       List<Coordinates> coords = new List<Coordinates>();
+                       
+                       if (template.GoalBackgroundImage != null) {
+                               goal.Background = template.GoalBackgroundImage.Value;
+                       } else {
+                               goal.Background = Gdk.Pixbuf.LoadFromResource (Constants.GOAL_BACKGROUND);
+                       }
+                       if (play.GoalPosition != null) {
+                               coords.Add (play.GoalPosition);
+                       } else {
+                               Coordinates c = new Coordinates ();
+                               c.Add (new Point(100, 100));
+                               coords.Add (c);
+                               play.GoalPosition = c;
+                       }
+                       goal.Coordinates = coords; 
+                       goal.Visible = true;
+               }
+       }
+}
+
diff --git a/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs b/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs
index eb827a8..33272f5 100644
--- a/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs
+++ b/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs
@@ -74,18 +74,10 @@ namespace LongoMatch.Gui.Dialog
                        }
                        
                        if (!play.Category.TagFieldPosition && !play.Category.TagGoalPosition) {
-                               poshbox.Visible = false;
+                               coordstagger.Visible = false;
                                (mainvbox[hbox] as Gtk.Box.BoxChild).Expand = true;
                        } else {
-                               if (play.Category.TagFieldPosition) {
-                                       AddFieldPosTagger (categoriesTemplate, play);                         
  
-                               }
-                               if (play.Category.TagHalfFieldPosition) {
-                                       AddHalfFieldPosTagger (categoriesTemplate, play);
-                               }
-                               if (play.Category.TagGoalPosition) {
-                                       AddGoalPosTagger (categoriesTemplate, play);
-                               }
+                               coordstagger.LoadPlay (play, categoriesTemplate);
                        }
                        
                        if (subcategoryAdded || playersnotebook.Visible) {
@@ -121,71 +113,6 @@ namespace LongoMatch.Gui.Dialog
                        playersbox.PackStart(widget, true, true, 0);
                }
                
-               void AddHalfFieldPosTagger (Categories categoriesTemplate, Play play) {
-                       List<Coordinates> coords = new List<Coordinates>();
-                       halffieldcoordinatestagger.Visible = true;
-                       if (categoriesTemplate.HalfFieldBackgroundImage != null) {
-                               halffieldcoordinatestagger.Background = 
categoriesTemplate.HalfFieldBackgroundImage.Value;
-                       } else {
-                               halffieldcoordinatestagger.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.HALF_FIELD_BACKGROUND);
-                       }
-                       if (play.HalfFieldPosition != null) {
-                               coords.Add (play.HalfFieldPosition);
-                       } else {
-                               Coordinates c = new Coordinates ();
-                               c.Add (new Point(100, 100));
-                               if (play.Category.HalfFieldPositionIsDistance) {
-                                       c.Add (new Point (300, 300));
-                               }
-                               coords.Add (c);
-                               play.HalfFieldPosition = c;
-                       }
-                       halffieldcoordinatestagger.Coordinates = coords;
-                       halffieldcoordinatestagger.Visible = true;
-               }
-               
-               void AddFieldPosTagger (Categories categoriesTemplate, Play play) {
-                       List<Coordinates> coords = new List<Coordinates>();
-                       fieldcoordinatestagger.Visible = true;
-                       if (categoriesTemplate.FieldBackgroundImage != null) {
-                               fieldcoordinatestagger.Background = 
categoriesTemplate.FieldBackgroundImage.Value;
-                       } else {
-                               fieldcoordinatestagger.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.FIELD_BACKGROUND);
-                       }
-                       if (play.FieldPosition != null) {
-                               coords.Add (play.FieldPosition);
-                       } else {
-                               Coordinates c = new Coordinates ();
-                               c.Add (new Point(100, 100));
-                               if (play.Category.FieldPositionIsDistance) {
-                                       c.Add (new Point (300, 300));
-                               }
-                               coords.Add (c);
-                               play.FieldPosition = c;
-                       }
-                       fieldcoordinatestagger.Coordinates = coords;
-                       fieldcoordinatestagger.Visible = true; 
-               }
                
-               void AddGoalPosTagger (Categories categoriesTemplate, Play play) {
-                       List<Coordinates> coords = new List<Coordinates>();
-                       goalcoordinatestagger.Visible = true;
-                       if (categoriesTemplate.GoalBackgroundImage != null) {
-                               goalcoordinatestagger.Background = 
categoriesTemplate.GoalBackgroundImage.Value;
-                       } else {
-                               goalcoordinatestagger.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.GOAL_BACKGROUND);
-                       }
-                       if (play.GoalPosition != null) {
-                               coords.Add (play.GoalPosition);
-                       } else {
-                               Coordinates c = new Coordinates ();
-                               c.Add (new Point(100, 100));
-                               coords.Add (c);
-                               play.GoalPosition = c;
-                       }
-                       goalcoordinatestagger.Coordinates = coords; 
-                       goalcoordinatestagger.Visible = true;
-               }
-
        }
 }
diff --git a/LongoMatch.GUI/Gui/MainWindow.cs b/LongoMatch.GUI/Gui/MainWindow.cs
index 9123b67..fc9580e 100644
--- a/LongoMatch.GUI/Gui/MainWindow.cs
+++ b/LongoMatch.GUI/Gui/MainWindow.cs
@@ -151,6 +151,7 @@ namespace LongoMatch.Gui
                                       false);
                        screen = Display.Default.DefaultScreen;
                        this.Resize(screen.Width * 80 / 100, screen.Height * 80 / 100);
+                       postagger.SetMode (false);
                }
 
                #endregion
@@ -163,8 +164,10 @@ namespace LongoMatch.Gui
                }
                
                public void UpdateSelectedPlay (Play play) {
+                       selectedTimeNode = play;
                        timeline.SelectedTimeNode = play;
-                       notes.Visible = true;
+                       postagger.LoadPlay (play, openedProject.Categories, false);
+                       SetTagsBoxVisibility (true);
                        notes.Play= play;
                }
 
@@ -305,6 +308,7 @@ namespace LongoMatch.Gui
                        guTimeline.UnitChanged += EmitUnitChanged;
                        
                        playercapturer.Error += OnMultimediaError;
+                       playercapturer.SegmentClosedEvent += OnSegmentClosedEvent;
                        
                        KeyPressEvent += (o, args) => (EmitKeyPressed(o, (int)args.Event.Key, 
(int)args.Event.State));
                }
@@ -408,6 +412,28 @@ namespace LongoMatch.Gui
                        ShowWidgets();
                }
                
+               void SetPlaylistVisibility (bool visible) {
+                       if (visible) {
+                               righthbox.Visible = true;
+                               playlist.Visible = true;
+                       } else {
+                               playlist.Visible = false;
+                               if (!tagsvbox.Visible)
+                                       righthbox.Visible = false;
+                       }
+               }
+               
+               void SetTagsBoxVisibility (bool visible) {
+                       if (visible) {
+                               righthbox.Visible = true;
+                               tagsvbox.Visible = true;
+                       } else {
+                               tagsvbox.Visible = false;
+                               if (!playlist.Visible)
+                                       righthbox.Visible = false;
+                       }
+               }
+               
                private void CloseCaptureProject() {
                        if(projectType == ProjectType.CaptureProject ||
                           projectType == ProjectType.URICaptureProject) {
@@ -426,9 +452,8 @@ namespace LongoMatch.Gui
                        playercapturer.LogoMode = true;
                        ClearWidgets();
                        HideWidgets();
-                       playlist.Visible = playlistVisible;
-                       rightvbox.Visible = playlistVisible;
-                       notes.Visible = false;
+                       SetPlaylistVisibility (playlistVisible);
+                       SetTagsBoxVisibility (false);
                        selectedTimeNode = null;
                        MakeActionsSensitive(false, projectType);
                        if (detachedPlayer)
@@ -462,7 +487,7 @@ namespace LongoMatch.Gui
 
                private void HideWidgets() {
                        leftbox.Hide();
-                       rightvbox.Hide();
+                       SetTagsBoxVisibility (false);
                        buttonswidget.Hide();
                        timeline.Hide();
                        gameunitstaggerwidget1.Hide();
@@ -568,14 +593,8 @@ namespace LongoMatch.Gui
                protected virtual void OnPlaylistActionToggled(object sender, System.EventArgs e)
                {
                        bool visible = (sender as Gtk.ToggleAction).Active;
-                       playlist.Visible=visible;
+                       SetPlaylistVisibility (visible);
                        playsSelection.PlayListLoaded=visible;
-
-                       if(!visible && !notes.Visible) {
-                               rightvbox.Visible = false;
-                       } else if(visible) {
-                               rightvbox.Visible = true;
-                       }
                }
 
                protected virtual void OnHideAllWidgetsActionToggled(object sender, System.EventArgs e)
@@ -594,10 +613,12 @@ namespace LongoMatch.Gui
                                gameunitstaggerwidget1.Visible = !action.Active && 
(GameUnitsViewAction.Active || 
                                        TaggingViewAction.Active || ManualTaggingViewAction.Active);
                        }
-                       if(action.Active)
-                               rightvbox.Visible = false;
-                       else if(!action.Active && (playlist.Visible || notes.Visible))
-                               rightvbox.Visible = true;
+                       if(action.Active) {
+                               SetTagsBoxVisibility (false);
+                       } else {
+                               if (selectedTimeNode != null)
+                                       SetTagsBoxVisibility (true);
+                       }
                }
 
                protected virtual void OnViewToggled(object sender, System.EventArgs e)
@@ -694,17 +715,16 @@ namespace LongoMatch.Gui
 
                protected virtual void OnTimeNodeSelected(Play play)
                {
-                       rightvbox.Visible=true;
+                       SetTagsBoxVisibility (true);
                        if (PlaySelectedEvent != null)
                                PlaySelectedEvent(play);
                }
 
                protected virtual void OnSegmentClosedEvent()
                {
-                       if(!playlist.Visible)
-                               rightvbox.Visible=false;
+                       SetTagsBoxVisibility (false);
                        timeline.SelectedTimeNode = null;
-                       notes.Visible = false;
+                       selectedTimeNode = null;
                }
                
                protected virtual void OnTick(object o, long currentTime, long streamLength,
diff --git a/LongoMatch.GUI/LongoMatch.GUI.mdp b/LongoMatch.GUI/LongoMatch.GUI.mdp
index 2db1522..e1c8d24 100644
--- a/LongoMatch.GUI/LongoMatch.GUI.mdp
+++ b/LongoMatch.GUI/LongoMatch.GUI.mdp
@@ -176,6 +176,8 @@
     <File subtype="Code" buildaction="EmbedAsResource" name="../images/half_field_background.svg" />
     <File subtype="Code" buildaction="Compile" name="Gui/Component/LiveAnalysisPreferences.cs" />
     <File subtype="Code" buildaction="Compile" 
name="gtk-gui/LongoMatch.Gui.Component.LiveAnalysisPreferences.cs" />
+    <File subtype="Code" buildaction="Compile" name="Gui/Component/PlaysCoordinatesTagger.cs" />
+    <File subtype="Code" buildaction="Compile" 
name="gtk-gui/LongoMatch.Gui.Component.PlaysCoordinatesTagger.cs" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="atk-sharp, Version=2.12.0.0, Culture=neutral, 
PublicKeyToken=35e10195dab3c99f" />
diff --git a/LongoMatch.GUI/Makefile.am b/LongoMatch.GUI/Makefile.am
index 68015d6..4f79e9f 100644
--- a/LongoMatch.GUI/Makefile.am
+++ b/LongoMatch.GUI/Makefile.am
@@ -22,6 +22,7 @@ SOURCES = \
        gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs \
        gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs \
        gtk-gui/LongoMatch.Gui.Component.PlayersTaggerWidget.cs \
+       gtk-gui/LongoMatch.Gui.Component.PlaysCoordinatesTagger.cs \
        gtk-gui/LongoMatch.Gui.Component.PlayersTagger.cs \
        gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs \
        gtk-gui/LongoMatch.Gui.Component.PlaysListTreeWidget.cs \
@@ -79,6 +80,7 @@ SOURCES = \
        Gui/Component/NotesWidget.cs \
        Gui/Component/PlayerProperties.cs \
        Gui/Component/PlayersListTreeWidget.cs \
+       Gui/Component/PlaysCoordinatesTagger.cs \
        Gui/Component/PlaysSelectionWidget.cs \
        Gui/Component/PlayersTaggerWidget.cs \
        Gui/Component/PlayersTagger.cs \
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GeneralPreferencesPanel.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GeneralPreferencesPanel.cs
index 69066f7..8ccf727 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GeneralPreferencesPanel.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GeneralPreferencesPanel.cs
@@ -17,6 +17,7 @@ namespace LongoMatch.Gui.Component
                        this.Name = "LongoMatch.Gui.Component.GeneralPreferencesPanel";
                        // Container child 
LongoMatch.Gui.Component.GeneralPreferencesPanel.Gtk.Container+ContainerChild
                        this.table1 = new global::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
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.LiveAnalysisPreferences.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.LiveAnalysisPreferences.cs
index 77969b0..fa55b9b 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.LiveAnalysisPreferences.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.LiveAnalysisPreferences.cs
@@ -39,7 +39,6 @@ namespace LongoMatch.Gui.Component
                        // Container child hbox1.Gtk.Box+BoxChild
                        this.dirlabel = new global::Gtk.Label ();
                        this.dirlabel.Name = "dirlabel";
-                       this.dirlabel.LabelProp = "";
                        this.dirlabel.Wrap = true;
                        this.dirlabel.Ellipsize = ((global::Pango.EllipsizeMode)(1));
                        this.dirlabel.MaxWidthChars = 20;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs
index c4dff74..0b19161 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs
@@ -36,6 +36,7 @@ namespace LongoMatch.Gui.Component
                        this.Name = "LongoMatch.Gui.Component.PlayerProperties";
                        // Container child 
LongoMatch.Gui.Component.PlayerProperties.Gtk.Container+ContainerChild
                        this.table1 = new global::Gtk.Table (((uint)(9)), ((uint)(2)), false);
+                       this.table1.Name = "table1";
                        this.table1.RowSpacing = ((uint)(6));
                        this.table1.ColumnSpacing = ((uint)(6));
                        // Container child table1.Gtk.Table+TableChild
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysCoordinatesTagger.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysCoordinatesTagger.cs
new file mode 100644
index 0000000..5635884
--- /dev/null
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysCoordinatesTagger.cs
@@ -0,0 +1,26 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace LongoMatch.Gui.Component
+{
+       public partial class PlaysCoordinatesTagger
+       {
+               private global::Gtk.VBox mainbox;
+               
+               protected virtual void Build ()
+               {
+                       global::Stetic.Gui.Initialize (this);
+                       // Widget LongoMatch.Gui.Component.PlaysCoordinatesTagger
+                       global::Stetic.BinContainer.Attach (this);
+                       this.Name = "LongoMatch.Gui.Component.PlaysCoordinatesTagger";
+                       // Container child 
LongoMatch.Gui.Component.PlaysCoordinatesTagger.Gtk.Container+ContainerChild
+                       this.mainbox = new global::Gtk.VBox ();
+                       this.mainbox.Name = "mainbox";
+                       this.mainbox.Spacing = 6;
+                       this.Add (this.mainbox);
+                       if ((this.Child != null)) {
+                               this.Child.ShowAll ();
+                       }
+                       this.Hide ();
+               }
+       }
+}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs
index 7a6d12b..13d2ffd 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs
@@ -63,6 +63,7 @@ namespace LongoMatch.Gui.Component
                        this.vbox2.Spacing = 6;
                        // Container child vbox2.Gtk.Box+BoxChild
                        this.table1 = new global::Gtk.Table (((uint)(9)), ((uint)(2)), false);
+                       this.table1.Name = "table1";
                        this.table1.RowSpacing = ((uint)(6));
                        this.table1.ColumnSpacing = ((uint)(6));
                        // Container child table1.Gtk.Table+TableChild
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs
index c58f354..468d2ab 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs
@@ -33,6 +33,7 @@ namespace LongoMatch.Gui.Dialog
                        w1.BorderWidth = ((uint)(2));
                        // Container child dialog1_VBox.Gtk.Box+BoxChild
                        this.table1 = new global::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
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs
index f05bbd6..2a01d9b 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs
@@ -29,6 +29,7 @@ namespace LongoMatch.Gui.Dialog
                        w1.BorderWidth = ((uint)(2));
                        // Container child dialog1_VBox.Gtk.Box+BoxChild
                        this.table1 = new global::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
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SubCategoryTagsEditor.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SubCategoryTagsEditor.cs
index 8118738..ca70d6f 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SubCategoryTagsEditor.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.SubCategoryTagsEditor.cs
@@ -43,6 +43,7 @@ namespace LongoMatch.Gui.Dialog
                        this.vbox2.Spacing = 6;
                        // Container child vbox2.Gtk.Box+BoxChild
                        this.table1 = new global::Gtk.Table (((uint)(2)), ((uint)(2)), false);
+                       this.table1.Name = "table1";
                        this.table1.RowSpacing = ((uint)(6));
                        this.table1.ColumnSpacing = ((uint)(6));
                        // Container child table1.Gtk.Table+TableChild
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
index af0eea7..f57d5e3 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
@@ -12,10 +12,7 @@ namespace LongoMatch.Gui.Dialog
                private global::Gtk.Notebook playersnotebook;
                private global::Gtk.VBox playersbox;
                private global::Gtk.Label label2;
-               private global::Gtk.HBox poshbox;
-               private global::LongoMatch.Gui.Component.CoordinatesTagger fieldcoordinatestagger;
-               private global::LongoMatch.Gui.Component.CoordinatesTagger halffieldcoordinatestagger;
-               private global::LongoMatch.Gui.Component.CoordinatesTagger goalcoordinatestagger;
+               private global::LongoMatch.Gui.Component.PlaysCoordinatesTagger coordstagger;
                private global::Gtk.Button buttonOk;
                
                protected virtual void Build ()
@@ -80,41 +77,21 @@ namespace LongoMatch.Gui.Dialog
                        w6.Position = 0;
                        w6.Expand = false;
                        // Container child mainvbox.Gtk.Box+BoxChild
-                       this.poshbox = new global::Gtk.HBox ();
-                       this.poshbox.Name = "poshbox";
-                       // Container child poshbox.Gtk.Box+BoxChild
-                       this.fieldcoordinatestagger = new global::LongoMatch.Gui.Component.CoordinatesTagger 
();
-                       this.fieldcoordinatestagger.Events = ((global::Gdk.EventMask)(256));
-                       this.fieldcoordinatestagger.Name = "fieldcoordinatestagger";
-                       this.poshbox.Add (this.fieldcoordinatestagger);
-                       global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.poshbox 
[this.fieldcoordinatestagger]));
-                       w7.Position = 0;
-                       // Container child poshbox.Gtk.Box+BoxChild
-                       this.halffieldcoordinatestagger = new 
global::LongoMatch.Gui.Component.CoordinatesTagger ();
-                       this.halffieldcoordinatestagger.Events = ((global::Gdk.EventMask)(256));
-                       this.halffieldcoordinatestagger.Name = "halffieldcoordinatestagger";
-                       this.poshbox.Add (this.halffieldcoordinatestagger);
-                       global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.poshbox 
[this.halffieldcoordinatestagger]));
-                       w8.Position = 1;
-                       // Container child poshbox.Gtk.Box+BoxChild
-                       this.goalcoordinatestagger = new global::LongoMatch.Gui.Component.CoordinatesTagger 
();
-                       this.goalcoordinatestagger.Events = ((global::Gdk.EventMask)(256));
-                       this.goalcoordinatestagger.Name = "goalcoordinatestagger";
-                       this.poshbox.Add (this.goalcoordinatestagger);
-                       global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.poshbox 
[this.goalcoordinatestagger]));
-                       w9.Position = 2;
-                       this.mainvbox.Add (this.poshbox);
-                       global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.mainvbox 
[this.poshbox]));
-                       w10.Position = 1;
+                       this.coordstagger = new global::LongoMatch.Gui.Component.PlaysCoordinatesTagger ();
+                       this.coordstagger.Events = ((global::Gdk.EventMask)(256));
+                       this.coordstagger.Name = "coordstagger";
+                       this.mainvbox.Add (this.coordstagger);
+                       global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.mainvbox 
[this.coordstagger]));
+                       w7.Position = 1;
                        w1.Add (this.mainvbox);
-                       global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(w1 [this.mainvbox]));
-                       w11.Position = 0;
+                       global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(w1 [this.mainvbox]));
+                       w8.Position = 0;
                        // Internal child LongoMatch.Gui.Dialog.TaggerDialog.ActionArea
-                       global::Gtk.HButtonBox w12 = this.ActionArea;
-                       w12.Name = "dialog1_ActionArea";
-                       w12.Spacing = 6;
-                       w12.BorderWidth = ((uint)(5));
-                       w12.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+                       global::Gtk.HButtonBox w9 = this.ActionArea;
+                       w9.Name = "dialog1_ActionArea";
+                       w9.Spacing = 6;
+                       w9.BorderWidth = ((uint)(5));
+                       w9.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
                        // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
                        this.buttonOk = new global::Gtk.Button ();
                        this.buttonOk.CanDefault = true;
@@ -124,17 +101,14 @@ namespace LongoMatch.Gui.Dialog
                        this.buttonOk.UseUnderline = true;
                        this.buttonOk.Label = "gtk-ok";
                        this.AddActionWidget (this.buttonOk, -5);
-                       global::Gtk.ButtonBox.ButtonBoxChild w13 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(w12 [this.buttonOk]));
-                       w13.Expand = false;
-                       w13.Fill = false;
+                       global::Gtk.ButtonBox.ButtonBoxChild w10 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w9 
[this.buttonOk]));
+                       w10.Expand = false;
+                       w10.Fill = false;
                        if ((this.Child != null)) {
                                this.Child.ShowAll ();
                        }
                        this.DefaultWidth = 644;
                        this.DefaultHeight = 569;
-                       this.fieldcoordinatestagger.Hide ();
-                       this.halffieldcoordinatestagger.Hide ();
-                       this.goalcoordinatestagger.Hide ();
                        this.Show ();
                }
        }
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
index a193b6b..61093a7 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@ -52,8 +52,13 @@ namespace LongoMatch.Gui
                private global::LongoMatch.Gui.PlayerCapturerBin playercapturer;
                private global::LongoMatch.Gui.Component.ButtonsWidget buttonswidget;
                private global::LongoMatch.Gui.Component.GameUnitsTagger gameunitstaggerwidget1;
-               private global::Gtk.VBox rightvbox;
+               private global::Gtk.HBox righthbox;
+               private global::Gtk.VBox tagsvbox;
+               private global::LongoMatch.Gui.Component.PlaysCoordinatesTagger postagger;
+               private global::Gtk.Frame notesframe;
+               private global::Gtk.Alignment GtkAlignment22;
                private global::LongoMatch.Gui.Component.NotesWidget notes;
+               private global::Gtk.Label GtkLabel31;
                private global::LongoMatch.Gui.Component.PlayListWidget playlist;
                private global::Gtk.Statusbar statusbar1;
                private global::LongoMatch.Gui.Component.RenderingStateBar renderingstatebar1;
@@ -140,12 +145,12 @@ namespace LongoMatch.Gui
                        this.ImportProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Import 
Project");
                        w1.Add (this.ImportProjectAction, "<Control>i");
                        this.ManualTaggingViewAction = new global::Gtk.RadioAction 
("ManualTaggingViewAction", global::Mono.Unix.Catalog.GetString ("Manual tagging view"), null, null, 0);
-                       this.ManualTaggingViewAction.Group = this.TaggingViewAction.Group;
+                       this.ManualTaggingViewAction.Group = this.TimelineViewAction.Group;
                        this.ManualTaggingViewAction.Sensitive = false;
                        this.ManualTaggingViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Free 
Capture Mode");
                        w1.Add (this.ManualTaggingViewAction, "<Control>f");
                        this.GameUnitsViewAction = new global::Gtk.RadioAction ("GameUnitsViewAction", 
global::Mono.Unix.Catalog.GetString ("Game units view"), null, null, 0);
-                       this.GameUnitsViewAction.Group = this.TaggingViewAction.Group;
+                       this.GameUnitsViewAction.Group = this.TimelineViewAction.Group;
                        this.GameUnitsViewAction.Sensitive = false;
                        this.GameUnitsViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Game 
units view");
                        w1.Add (this.GameUnitsViewAction, null);
@@ -213,7 +218,7 @@ namespace LongoMatch.Gui
                        this.hpaned = new global::Gtk.HPaned ();
                        this.hpaned.CanFocus = true;
                        this.hpaned.Name = "hpaned";
-                       this.hpaned.Position = 276;
+                       this.hpaned.Position = 243;
                        // Container child hpaned.Gtk.Paned+PanedChild
                        this.leftbox = new global::Gtk.VBox ();
                        this.leftbox.Name = "leftbox";
@@ -284,36 +289,62 @@ namespace LongoMatch.Gui
                        w11.Resize = false;
                        w11.Shrink = false;
                        // Container child hpaned1.Gtk.Paned+PanedChild
-                       this.rightvbox = new global::Gtk.VBox ();
-                       this.rightvbox.WidthRequest = 100;
-                       this.rightvbox.Name = "rightvbox";
-                       this.rightvbox.Spacing = 6;
-                       // Container child rightvbox.Gtk.Box+BoxChild
+                       this.righthbox = new global::Gtk.HBox ();
+                       this.righthbox.Name = "righthbox";
+                       this.righthbox.Spacing = 6;
+                       // Container child righthbox.Gtk.Box+BoxChild
+                       this.tagsvbox = new global::Gtk.VBox ();
+                       this.tagsvbox.WidthRequest = 100;
+                       this.tagsvbox.Name = "tagsvbox";
+                       this.tagsvbox.Spacing = 6;
+                       // Container child tagsvbox.Gtk.Box+BoxChild
+                       this.postagger = new global::LongoMatch.Gui.Component.PlaysCoordinatesTagger ();
+                       this.postagger.Events = ((global::Gdk.EventMask)(256));
+                       this.postagger.Name = "postagger";
+                       this.tagsvbox.Add (this.postagger);
+                       global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.tagsvbox 
[this.postagger]));
+                       w12.Position = 0;
+                       // Container child tagsvbox.Gtk.Box+BoxChild
+                       this.notesframe = new global::Gtk.Frame ();
+                       this.notesframe.Name = "notesframe";
+                       this.notesframe.ShadowType = ((global::Gtk.ShadowType)(0));
+                       // Container child notesframe.Gtk.Container+ContainerChild
+                       this.GtkAlignment22 = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
+                       this.GtkAlignment22.Name = "GtkAlignment22";
+                       this.GtkAlignment22.LeftPadding = ((uint)(12));
+                       // Container child GtkAlignment22.Gtk.Container+ContainerChild
                        this.notes = new global::LongoMatch.Gui.Component.NotesWidget ();
                        this.notes.Events = ((global::Gdk.EventMask)(256));
                        this.notes.Name = "notes";
-                       this.rightvbox.Add (this.notes);
-                       global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.rightvbox 
[this.notes]));
-                       w12.Position = 0;
-                       // Container child rightvbox.Gtk.Box+BoxChild
+                       this.GtkAlignment22.Add (this.notes);
+                       this.notesframe.Add (this.GtkAlignment22);
+                       this.GtkLabel31 = new global::Gtk.Label ();
+                       this.GtkLabel31.Name = "GtkLabel31";
+                       this.GtkLabel31.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Notes</b>");
+                       this.GtkLabel31.UseMarkup = true;
+                       this.notesframe.LabelWidget = this.GtkLabel31;
+                       this.tagsvbox.Add (this.notesframe);
+                       global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.tagsvbox 
[this.notesframe]));
+                       w15.Position = 1;
+                       this.righthbox.Add (this.tagsvbox);
+                       global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.righthbox 
[this.tagsvbox]));
+                       w16.Position = 0;
+                       // Container child righthbox.Gtk.Box+BoxChild
                        this.playlist = new global::LongoMatch.Gui.Component.PlayListWidget ();
                        this.playlist.WidthRequest = 100;
                        this.playlist.Events = ((global::Gdk.EventMask)(256));
                        this.playlist.Name = "playlist";
-                       this.rightvbox.Add (this.playlist);
-                       global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.rightvbox 
[this.playlist]));
-                       w13.Position = 1;
-                       this.hpaned1.Add (this.rightvbox);
-                       global::Gtk.Paned.PanedChild w14 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 
[this.rightvbox]));
-                       w14.Resize = false;
-                       w14.Shrink = false;
+                       this.righthbox.Add (this.playlist);
+                       global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.righthbox 
[this.playlist]));
+                       w17.Position = 1;
+                       this.hpaned1.Add (this.righthbox);
                        this.hpaned.Add (this.hpaned1);
-                       global::Gtk.Paned.PanedChild w15 = ((global::Gtk.Paned.PanedChild)(this.hpaned 
[this.hpaned1]));
-                       w15.Resize = false;
-                       w15.Shrink = false;
+                       global::Gtk.Paned.PanedChild w19 = ((global::Gtk.Paned.PanedChild)(this.hpaned 
[this.hpaned1]));
+                       w19.Resize = false;
+                       w19.Shrink = false;
                        this.vbox1.Add (this.hpaned);
-                       global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned]));
-                       w16.Position = 1;
+                       global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned]));
+                       w20.Position = 1;
                        // Container child vbox1.Gtk.Box+BoxChild
                        this.statusbar1 = new global::Gtk.Statusbar ();
                        this.statusbar1.Name = "statusbar1";
@@ -324,27 +355,27 @@ namespace LongoMatch.Gui
                        this.renderingstatebar1.Name = "renderingstatebar1";
                        this.renderingstatebar1.Fraction = 0;
                        this.statusbar1.Add (this.renderingstatebar1);
-                       global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.statusbar1 
[this.renderingstatebar1]));
-                       w17.Position = 2;
-                       w17.Expand = false;
-                       w17.Fill = false;
+                       global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.statusbar1 
[this.renderingstatebar1]));
+                       w21.Position = 2;
+                       w21.Expand = false;
+                       w21.Fill = false;
                        this.vbox1.Add (this.statusbar1);
-                       global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.statusbar1]));
-                       w18.Position = 2;
-                       w18.Expand = false;
-                       w18.Fill = false;
+                       global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.statusbar1]));
+                       w22.Position = 2;
+                       w22.Expand = false;
+                       w22.Fill = false;
                        this.Add (this.vbox1);
                        if ((this.Child != null)) {
                                this.Child.ShowAll ();
                        }
-                       this.DefaultWidth = 1342;
+                       this.DefaultWidth = 1503;
                        this.DefaultHeight = 686;
                        this.leftbox.Hide ();
                        this.drawingtoolbox1.Hide ();
                        this.buttonswidget.Hide ();
-                       this.notes.Hide ();
+                       this.tagsvbox.Hide ();
                        this.playlist.Hide ();
-                       this.rightvbox.Hide ();
+                       this.righthbox.Hide ();
                        this.renderingstatebar1.Hide ();
                        this.Show ();
                        this.NewPojectAction.Activated += new global::System.EventHandler 
(this.OnNewActivated);
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index 2ffd659..0bd3947 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -1591,7 +1591,7 @@
       </widget>
     </child>
   </widget>
-  <widget class="Gtk.Window" id="LongoMatch.Gui.MainWindow" design-size="1342 686">
+  <widget class="Gtk.Window" id="LongoMatch.Gui.MainWindow" design-size="1503 686">
     <action-group name="Default">
       <action id="FileAction">
         <property name="Type">Action</property>
@@ -1911,7 +1911,7 @@
           <widget class="Gtk.HPaned" id="hpaned">
             <property name="MemberName" />
             <property name="CanFocus">True</property>
-            <property name="Position">276</property>
+            <property name="Position">243</property>
             <child>
               <widget class="Gtk.VBox" id="leftbox">
                 <property name="MemberName" />
@@ -2007,16 +2007,60 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="Gtk.VBox" id="rightvbox">
+                  <widget class="Gtk.HBox" id="righthbox">
                     <property name="MemberName" />
-                    <property name="WidthRequest">100</property>
                     <property name="Visible">False</property>
                     <property name="Spacing">6</property>
                     <child>
-                      <widget class="LongoMatch.Gui.Component.NotesWidget" id="notes">
+                      <widget class="Gtk.VBox" id="tagsvbox">
                         <property name="MemberName" />
+                        <property name="WidthRequest">100</property>
                         <property name="Visible">False</property>
-                        <property name="Events">ButtonPressMask</property>
+                        <property name="Spacing">6</property>
+                        <child>
+                          <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="postagger">
+                            <property name="MemberName" />
+                            <property name="Events">ButtonPressMask</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">0</property>
+                            <property name="AutoSize">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Frame" id="notesframe">
+                            <property name="MemberName" />
+                            <property name="ShadowType">None</property>
+                            <child>
+                              <widget class="Gtk.Alignment" id="GtkAlignment22">
+                                <property name="MemberName" />
+                                <property name="Xalign">0</property>
+                                <property name="Yalign">0</property>
+                                <property name="LeftPadding">12</property>
+                                <child>
+                                  <widget class="LongoMatch.Gui.Component.NotesWidget" id="notes">
+                                    <property name="MemberName" />
+                                    <property name="Events">ButtonPressMask</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Label" id="GtkLabel31">
+                                <property name="MemberName" />
+                                <property name="LabelProp" 
translatable="yes">&lt;b&gt;Notes&lt;/b&gt;</property>
+                                <property name="UseMarkup">True</property>
+                              </widget>
+                              <packing>
+                                <property name="type">label_item</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="Position">1</property>
+                            <property name="AutoSize">False</property>
+                          </packing>
+                        </child>
                       </widget>
                       <packing>
                         <property name="Position">0</property>
@@ -2036,10 +2080,6 @@
                       </packing>
                     </child>
                   </widget>
-                  <packing>
-                    <property name="Resize">False</property>
-                    <property name="Shrink">False</property>
-                  </packing>
                 </child>
               </widget>
               <packing>
@@ -3793,7 +3833,7 @@ new one.</property>
       </widget>
     </child>
   </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.NotesWidget" design-size="300 300">
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.NotesWidget" design-size="300 130">
     <property name="MemberName" />
     <child>
       <widget class="Gtk.VBox" id="vbox2">
@@ -5681,41 +5721,9 @@ Show-&gt;&lt;b&gt; S&lt;/b&gt;
               </packing>
             </child>
             <child>
-              <widget class="Gtk.HBox" id="poshbox">
+              <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="coordstagger">
                 <property name="MemberName" />
-                <child>
-                  <widget class="LongoMatch.Gui.Component.CoordinatesTagger" id="fieldcoordinatestagger">
-                    <property name="MemberName" />
-                    <property name="Visible">False</property>
-                    <property name="Events">ButtonPressMask</property>
-                  </widget>
-                  <packing>
-                    <property name="Position">0</property>
-                    <property name="AutoSize">True</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="LongoMatch.Gui.Component.CoordinatesTagger" id="halffieldcoordinatestagger">
-                    <property name="MemberName" />
-                    <property name="Visible">False</property>
-                    <property name="Events">ButtonPressMask</property>
-                  </widget>
-                  <packing>
-                    <property name="Position">1</property>
-                    <property name="AutoSize">True</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="LongoMatch.Gui.Component.CoordinatesTagger" id="goalcoordinatestagger">
-                    <property name="MemberName" />
-                    <property name="Visible">False</property>
-                    <property name="Events">ButtonPressMask</property>
-                  </widget>
-                  <packing>
-                    <property name="Position">2</property>
-                    <property name="AutoSize">True</property>
-                  </packing>
-                </child>
+                <property name="Events">ButtonPressMask</property>
               </widget>
               <packing>
                 <property name="Position">1</property>
@@ -8641,4 +8649,17 @@ Defining &lt;b&gt; Game Units &lt;/b&gt; will help you during the analysis to in
       </widget>
     </child>
   </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.PlaysCoordinatesTagger" design-size="300 300">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="mainbox">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <placeholder />
+        </child>
+      </widget>
+    </child>
+  </widget>
 </stetic-interface>
\ No newline at end of file
diff --git a/LongoMatch.GUI/gtk-gui/objects.xml b/LongoMatch.GUI/gtk-gui/objects.xml
index 086cbf4..230d257 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -389,4 +389,8 @@
     <itemgroups />
     <signals />
   </object>
+  <object type="LongoMatch.Gui.Component.PlaysCoordinatesTagger" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
 </objects>
\ No newline at end of file



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]