[longomatch] Add positional tagging for half field too



commit 7e24a0631f615667ed9de239b799bb24c43e2652
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Tue Jun 25 21:37:43 2013 +0200

    Add positional tagging for half field too

 LongoMatch.Core/Common/Constants.cs                |    1 +
 LongoMatch.Core/Store/Category.cs                  |   22 ++
 LongoMatch.Core/Store/Play.cs                      |    5 +
 .../Store/Templates/CategoriesTemplate.cs          |    5 +
 .../Gui/Component/CategoriesTemplateEditor.cs      |   41 +++-
 LongoMatch.GUI/Gui/Component/CategoryProperties.cs |   36 +++
 LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs          |   32 ++-
 LongoMatch.GUI/LongoMatch.GUI.mdp                  |    1 +
 LongoMatch.GUI/Makefile.am                         |    1 +
 .../LongoMatch.Gui.Component.CategoryProperties.cs |  304 +++++++++++++-------
 .../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs  |   55 ++--
 LongoMatch.GUI/gtk-gui/gui.stetic                  |  263 +++++++++++++-----
 12 files changed, 571 insertions(+), 195 deletions(-)
---
diff --git a/LongoMatch.Core/Common/Constants.cs b/LongoMatch.Core/Common/Constants.cs
index 01e33bf..a434132 100644
--- a/LongoMatch.Core/Common/Constants.cs
+++ b/LongoMatch.Core/Common/Constants.cs
@@ -101,6 +101,7 @@ Xavier Queralt Mateu (ca)";
                public const string PROJECT_EXT = ".lgm";
                
                public const string FIELD_BACKGROUND = "field_background.svg";
+               public const string HALF_FIELD_BACKGROUND = "half_field_background.svg";
                public const string GOAL_BACKGROUND = "goal_background.svg";
        }
 }
diff --git a/LongoMatch.Core/Store/Category.cs b/LongoMatch.Core/Store/Category.cs
index 1c7255a..419af8c 100644
--- a/LongoMatch.Core/Store/Category.cs
+++ b/LongoMatch.Core/Store/Category.cs
@@ -107,11 +107,21 @@ namespace LongoMatch.Store
                        set;
                }
                
+               public bool TagHalfFieldPosition {
+                       get;
+                       set;
+               }
+               
                public bool FieldPositionIsDistance {
                        get;
                        set;
                }
                
+               public bool HalfFieldPositionIsDistance {
+                       get;
+                       set;
+               }
+               
                /// <summary>
                /// Sort method string used for the UI
                /// </summary>
@@ -162,6 +172,11 @@ namespace LongoMatch.Store
                                TagFieldPosition = true;
                        }
                        try {
+                               TagHalfFieldPosition = info.GetBoolean("taghalffieldpos");
+                       } catch {
+                               TagHalfFieldPosition = false;
+                       }
+                       try {
                                TagGoalPosition = info.GetBoolean("tagfieldgoal");
                        } catch {
                                TagGoalPosition = false;
@@ -171,6 +186,11 @@ namespace LongoMatch.Store
                        } catch {
                                FieldPositionIsDistance = false;
                        }
+                       try {
+                               HalfFieldPositionIsDistance = info.GetBoolean("halffieldposisdist");
+                       } catch {
+                               HalfFieldPositionIsDistance = false;
+                       }
                }
 
                // this method is automatically called during serialization
@@ -188,8 +208,10 @@ namespace LongoMatch.Store
                        info.AddValue("blue", ColorHelper.ByteToShort(Color.B));
                        info.AddValue("sort_method", SortMethod);
                        info.AddValue("tagfieldpos", TagFieldPosition);
+                       info.AddValue("taghalffieldpos", TagHalfFieldPosition);
                        info.AddValue("taggoalpos", TagGoalPosition);
                        info.AddValue("fieldposisdist", FieldPositionIsDistance);
+                       info.AddValue("halffieldposisdist", HalfFieldPositionIsDistance);
                }
                #endregion
                
diff --git a/LongoMatch.Core/Store/Play.cs b/LongoMatch.Core/Store/Play.cs
index fe27e27..c0720fd 100644
--- a/LongoMatch.Core/Store/Play.cs
+++ b/LongoMatch.Core/Store/Play.cs
@@ -191,6 +191,11 @@ namespace LongoMatch.Store
                        get;
                        set;
                }
+
+               public Coordinates HalfFieldPosition {
+                       get;
+                       set;
+               }
                
                public Coordinates GoalPosition {
                        get;
diff --git a/LongoMatch.Core/Store/Templates/CategoriesTemplate.cs 
b/LongoMatch.Core/Store/Templates/CategoriesTemplate.cs
index 8414929..81e4edb 100644
--- a/LongoMatch.Core/Store/Templates/CategoriesTemplate.cs
+++ b/LongoMatch.Core/Store/Templates/CategoriesTemplate.cs
@@ -73,6 +73,11 @@ namespace LongoMatch.Store.Templates
                        set;
                }
                
+               public Image HalfFieldBackgroundImage {
+                       get;
+                       set;
+               }
+               
                public Image GoalBackgroundImage {
                        get;
                        set;
diff --git a/LongoMatch.GUI/Gui/Component/CategoriesTemplateEditor.cs 
b/LongoMatch.GUI/Gui/Component/CategoriesTemplateEditor.cs
index 3ec01a4..7c20582 100644
--- a/LongoMatch.GUI/Gui/Component/CategoriesTemplateEditor.cs
+++ b/LongoMatch.GUI/Gui/Component/CategoriesTemplateEditor.cs
@@ -38,7 +38,7 @@ namespace LongoMatch.Gui.Component
                CategoriesTreeView categoriestreeview;
                List<HotKey> hkList;
                GameUnitsEditor gameUnitsEditor;
-               Gtk.Image fieldImage, goalImage;
+               Gtk.Image fieldImage, halffieldImage, goalImage;
                VBox box;
                
                ITemplatesService ts;
@@ -95,6 +95,14 @@ namespace LongoMatch.Gui.Component
                                        img.Scale();
                                        fieldImage.Pixbuf = img.Value; 
                                }
+                               if (template.HalfFieldBackgroundImage != null) {
+                                       halffieldImage.Pixbuf = template.HalfFieldBackgroundImage.Value;
+                               } else {
+                                       Image img = new Image (
+                                               Gdk.Pixbuf.LoadFromResource 
(Constants.HALF_FIELD_BACKGROUND));
+                                       img.Scale();
+                                       halffieldImage.Pixbuf = img.Value;
+                               }
                                box.Sensitive = true;
                        }
                }
@@ -134,13 +142,16 @@ namespace LongoMatch.Gui.Component
                }
                
                private void AddBackgroundsSelectionWidget () {
-                       Gtk.Frame fframe, gframe;
-                       EventBox febox, gebox;
+                       Gtk.Frame fframe, gframe, hfframe;
+                       EventBox febox, gebox, hfebox;
                        Image img;
                        
                        fframe = new Gtk.Frame("<b>" + Catalog.GetString("Field background") + "</b>");
                        (fframe.LabelWidget as Label).UseMarkup = true;
                        fframe.ShadowType = ShadowType.None;
+                       hfframe = new Gtk.Frame("<b>" + Catalog.GetString("Half field background") + "</b>");
+                       (hfframe.LabelWidget as Label).UseMarkup = true;
+                       hfframe.ShadowType = ShadowType.None;
                        gframe = new Gtk.Frame("<b>" + Catalog.GetString("Goal background") + "</b>");
                        (gframe.LabelWidget as Label).UseMarkup = true;
                        gframe.ShadowType = ShadowType.None;
@@ -153,6 +164,14 @@ namespace LongoMatch.Gui.Component
                        img.Scale();
                        fieldImage.Pixbuf = img.Value; 
                        
+                       hfebox = new EventBox();
+                       hfebox.ButtonPressEvent += OnHalfFieldImageClicked;
+                       halffieldImage = new Gtk.Image();
+                       img = new Image (
+                               Gdk.Pixbuf.LoadFromResource (Constants.HALF_FIELD_BACKGROUND));
+                       img.Scale();
+                       halffieldImage.Pixbuf = img.Value;
+                       
                        gebox = new EventBox();
                        gebox.ButtonPressEvent += OnGoalImageClicked;                   
                        goalImage = new Gtk.Image();
@@ -162,12 +181,15 @@ namespace LongoMatch.Gui.Component
                        goalImage.Pixbuf = img.Value;
                        
                        fframe.Add(febox);
+                       hfframe.Add(hfebox);
                        gframe.Add(gebox);
                        febox.Add(fieldImage);
+                       hfebox.Add(halffieldImage);
                        gebox.Add(goalImage);
                        
                        box = new VBox();
                        box.PackStart (fframe, false, false, 0);
+                       box.PackStart (hfframe, false, false, 0);
                        box.PackStart (gframe, false, false, 0);
                        box.ShowAll();
                        box.Sensitive = false;
@@ -187,6 +209,19 @@ namespace LongoMatch.Gui.Component
                        }
                }
                
+               protected virtual void OnHalfFieldImageClicked (object sender, EventArgs args)
+               {
+                       Pixbuf background;
+                       
+                       background = Helpers.Misc.OpenImage((Gtk.Window)this.Toplevel);
+                       if (background != null) {
+                               Image img = new Image(background);
+                               img.Scale();
+                               Template.HalfFieldBackgroundImage = img;
+                               halffieldImage.Pixbuf = img.Value;
+                       }
+               }
+               
                protected virtual void OnFieldImageClicked (object sender, EventArgs args)
                {
                        Pixbuf background;
diff --git a/LongoMatch.GUI/Gui/Component/CategoryProperties.cs 
b/LongoMatch.GUI/Gui/Component/CategoryProperties.cs
index 6812bd5..ea65303 100644
--- a/LongoMatch.GUI/Gui/Component/CategoryProperties.cs
+++ b/LongoMatch.GUI/Gui/Component/CategoryProperties.cs
@@ -58,6 +58,7 @@ namespace LongoMatch.Gui.Component
                        lagtimebutton.ValueChanged += OnLagTimeChanged;
                        fieldcoordinatestagger.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.FIELD_BACKGROUND);
                        goalcoordinatestagger.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.GOAL_BACKGROUND);
+                       halffieldcoordinatestagger.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.HALF_FIELD_BACKGROUND);
                }
                
                public bool CanChangeHotkey {
@@ -148,6 +149,18 @@ namespace LongoMatch.Gui.Component
                        fieldcoordinatestagger.Coordinates = coords;
                        trajectorycheckbutton.Active = cat.FieldPositionIsDistance;
                        
+                       taghalffieldcheckbutton.Active = cat.TagHalfFieldPosition;
+                       halffieldcoordinatestagger.Visible = cat.TagHalfFieldPosition;
+                       coords = new List<Coordinates>();
+                       c = new Coordinates();
+                       c.Add (new Point (300, 300));
+                       coords.Add (c);
+                       if (cat.FieldPositionIsDistance) {
+                               c.Add (new Point (400, 500));
+                       }
+                       halffieldcoordinatestagger.Coordinates = coords;
+                       trajectoryhalfcheckbutton.Active = cat.HalfFieldPositionIsDistance;
+                       
                        taggoalcheckbutton.Active = cat.TagGoalPosition;
                        coords = new List<Coordinates>();
                        c = new Coordinates();
@@ -281,12 +294,35 @@ namespace LongoMatch.Gui.Component
                        cat.TagGoalPosition = taggoalcheckbutton.Active;
                }
                
+               protected void OnTaghalffieldcheckbuttonClicked (object sender, EventArgs e)
+               {
+                       halffieldcoordinatestagger.Visible = taghalffieldcheckbutton.Active;
+                       cat.TagHalfFieldPosition = taghalffieldcheckbutton.Active;
+               }
+               
                protected void OnTagfieldcheckbuttonClicked (object sender, EventArgs e)
                {
                        fieldcoordinatestagger.Visible = tagfieldcheckbutton.Active;
                        cat.TagFieldPosition = tagfieldcheckbutton.Active;
                }
                
+               protected void OnTrajectoryhalffieldcheckbuttonClicked (object sender, EventArgs e)
+               {
+                       List<Coordinates> coords;
+                       Coordinates c;
+                       
+                       cat.HalfFieldPositionIsDistance = trajectoryhalfcheckbutton.Active;
+                       
+                       coords = new List<Coordinates>();
+                       c = new Coordinates();
+                       c.Add (new Point (300, 300));
+                       coords.Add (c);
+                       if (cat.HalfFieldPositionIsDistance) {
+                               c.Add (new Point (400, 500));
+                       }
+                       halffieldcoordinatestagger.Coordinates = coords;
+               }
+               
                protected void OnTrajectorycheckbuttonClicked (object sender, EventArgs e)
                {
                        List<Coordinates> coords;
diff --git a/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs b/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs
index 721efd3..da950c0 100644
--- a/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs
+++ b/LongoMatch.GUI/Gui/Dialog/TaggerDialog.cs
@@ -72,11 +72,14 @@ namespace LongoMatch.Gui.Dialog
                        
                        if (!play.Category.TagFieldPosition && !play.Category.TagGoalPosition) {
                                poshbox.Visible = false;
-                               (vbox2[hbox] as Gtk.Box.BoxChild).Expand = true;
+                               (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);
                                }
@@ -111,7 +114,30 @@ namespace LongoMatch.Gui.Dialog
                        playersbox.PackStart(widget, true, true, 0);
                }
                
-               public void AddFieldPosTagger (Categories categoriesTemplate, Play play) {
+               void AddHalfFieldPosTagger (Categories categoriesTemplate, Play play) {
+                       List<Coordinates> coords = new List<Coordinates>();
+                       halffieldcoordinatestagger.Visible = true;
+                       if (categoriesTemplate.FieldBackgroundImage != null) {
+                               halffieldcoordinatestagger.Background = 
categoriesTemplate.HalfFieldBackgroundImage.Value;
+                       } else {
+                               fieldcoordinatestagger.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) {
@@ -134,7 +160,7 @@ namespace LongoMatch.Gui.Dialog
                        fieldcoordinatestagger.Visible = true; 
                }
                
-               public void AddGoalPosTagger (Categories categoriesTemplate, Play play) {
+               void AddGoalPosTagger (Categories categoriesTemplate, Play play) {
                        List<Coordinates> coords = new List<Coordinates>();
                        goalcoordinatestagger.Visible = true;
                        if (categoriesTemplate.GoalBackgroundImage != null) {
diff --git a/LongoMatch.GUI/LongoMatch.GUI.mdp b/LongoMatch.GUI/LongoMatch.GUI.mdp
index 4716362..b11618f 100644
--- a/LongoMatch.GUI/LongoMatch.GUI.mdp
+++ b/LongoMatch.GUI/LongoMatch.GUI.mdp
@@ -173,6 +173,7 @@
     <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Dialog.PropertiesEditor.cs" />
     <File subtype="Code" buildaction="Compile" name="Gui/Component/VideoPreferencesPanel.cs" />
     <File subtype="Code" buildaction="Compile" 
name="gtk-gui/LongoMatch.Gui.Component.VideoPreferencesPanel.cs" />
+    <File subtype="Code" buildaction="EmbedAsResource" name="../images/half_field_background.svg" />
   </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 3be5c9a..5b79fcc 100644
--- a/LongoMatch.GUI/Makefile.am
+++ b/LongoMatch.GUI/Makefile.am
@@ -150,6 +150,7 @@ RESOURCES = \
        $(top_srcdir)/images/camera-video.png\
        $(top_srcdir)/images/video.png \
        $(top_srcdir)/images/field_background.svg \
+       $(top_srcdir)/images/half_field_background.svg \
        $(top_srcdir)/images/goal_background.svg \
        gtk-gui/objects.xml \
        gtk-gui/gui.stetic
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs
index 7118008..9c69c2d 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs
@@ -24,14 +24,28 @@ namespace LongoMatch.Gui.Component
                private global::Gtk.Entry nameentry;
                private global::Gtk.ComboBox sortmethodcombobox;
                private global::Gtk.VBox vbox5;
-               private global::Gtk.Table table1;
+               private global::Gtk.HBox hbox1;
+               private global::Gtk.Frame frame5;
+               private global::Gtk.Alignment GtkAlignment7;
+               private global::Gtk.VBox vbox4;
                private global::Gtk.CheckButton tagfieldcheckbutton;
-               private global::Gtk.CheckButton taggoalcheckbutton;
                private global::Gtk.CheckButton trajectorycheckbutton;
+               private global::Gtk.Label GtkLabel9;
+               private global::Gtk.Frame frame6;
+               private global::Gtk.Alignment GtkAlignment8;
+               private global::Gtk.VBox vbox6;
+               private global::Gtk.CheckButton taghalffieldcheckbutton;
+               private global::Gtk.CheckButton trajectoryhalfcheckbutton;
+               private global::Gtk.Label GtkLabel12;
+               private global::Gtk.Frame frame7;
+               private global::Gtk.Alignment GtkAlignment9;
+               private global::Gtk.CheckButton taggoalcheckbutton;
+               private global::Gtk.Label GtkLabel13;
                private global::Gtk.Table table3;
                private global::LongoMatch.Gui.Component.CoordinatesTagger fieldcoordinatestagger;
                private global::LongoMatch.Gui.Component.CoordinatesTagger goalcoordinatestagger;
-               private global::Gtk.Label GtkLabel4;
+               private global::LongoMatch.Gui.Component.CoordinatesTagger halffieldcoordinatestagger;
+               private global::Gtk.Label GtkLabel6;
                private global::Gtk.Frame frame3;
                private global::Gtk.Alignment GtkAlignment3;
                private global::Gtk.VBox vbox1;
@@ -41,13 +55,13 @@ namespace LongoMatch.Gui.Component
                private global::Gtk.Frame frame1;
                private global::Gtk.Alignment GtkAlignment4;
                private global::Gtk.Entry subcatnameentry;
-               private global::Gtk.Label GtkLabel5;
+               private global::Gtk.Label GtkLabel7;
                private global::Gtk.Frame frame2;
                private global::Gtk.Alignment GtkAlignment5;
                private global::Gtk.ComboBox subcatcombobox;
-               private global::Gtk.Label GtkLabel6;
-               private global::Gtk.Button addbutton;
                private global::Gtk.Label GtkLabel8;
+               private global::Gtk.Button addbutton;
+               private global::Gtk.Label GtkLabel11;
                
                protected virtual void Build ()
                {
@@ -260,52 +274,134 @@ namespace LongoMatch.Gui.Component
                        this.vbox5.Name = "vbox5";
                        this.vbox5.Spacing = 6;
                        // Container child vbox5.Gtk.Box+BoxChild
-                       this.table1 = new global::Gtk.Table (((uint)(2)), ((uint)(2)), true);
-                       this.table1.Name = "table1";
-                       this.table1.RowSpacing = ((uint)(6));
-                       this.table1.ColumnSpacing = ((uint)(6));
-                       // Container child table1.Gtk.Table+TableChild
+                       this.hbox1 = new global::Gtk.HBox ();
+                       this.hbox1.Name = "hbox1";
+                       this.hbox1.Spacing = 6;
+                       // Container child hbox1.Gtk.Box+BoxChild
+                       this.frame5 = new global::Gtk.Frame ();
+                       this.frame5.Name = "frame5";
+                       this.frame5.ShadowType = ((global::Gtk.ShadowType)(0));
+                       // Container child frame5.Gtk.Container+ContainerChild
+                       this.GtkAlignment7 = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
+                       this.GtkAlignment7.Name = "GtkAlignment7";
+                       this.GtkAlignment7.LeftPadding = ((uint)(12));
+                       // Container child GtkAlignment7.Gtk.Container+ContainerChild
+                       this.vbox4 = new global::Gtk.VBox ();
+                       this.vbox4.Name = "vbox4";
+                       this.vbox4.Spacing = 6;
+                       // Container child vbox4.Gtk.Box+BoxChild
                        this.tagfieldcheckbutton = new global::Gtk.CheckButton ();
                        this.tagfieldcheckbutton.CanFocus = true;
                        this.tagfieldcheckbutton.Name = "tagfieldcheckbutton";
-                       this.tagfieldcheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Tag field 
position");
+                       this.tagfieldcheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Enable");
                        this.tagfieldcheckbutton.Active = true;
                        this.tagfieldcheckbutton.DrawIndicator = true;
                        this.tagfieldcheckbutton.UseUnderline = true;
-                       this.table1.Add (this.tagfieldcheckbutton);
-                       global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table1 
[this.tagfieldcheckbutton]));
-                       w16.YOptions = ((global::Gtk.AttachOptions)(4));
-                       // Container child table1.Gtk.Table+TableChild
-                       this.taggoalcheckbutton = new global::Gtk.CheckButton ();
-                       this.taggoalcheckbutton.CanFocus = true;
-                       this.taggoalcheckbutton.Name = "taggoalcheckbutton";
-                       this.taggoalcheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Tag goal 
position");
-                       this.taggoalcheckbutton.DrawIndicator = true;
-                       this.taggoalcheckbutton.UseUnderline = true;
-                       this.table1.Add (this.taggoalcheckbutton);
-                       global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1 
[this.taggoalcheckbutton]));
-                       w17.LeftAttach = ((uint)(1));
-                       w17.RightAttach = ((uint)(2));
-                       w17.YOptions = ((global::Gtk.AttachOptions)(4));
-                       // Container child table1.Gtk.Table+TableChild
+                       this.vbox4.Add (this.tagfieldcheckbutton);
+                       global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.tagfieldcheckbutton]));
+                       w16.Position = 0;
+                       w16.Expand = false;
+                       w16.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
                        this.trajectorycheckbutton = new global::Gtk.CheckButton ();
                        this.trajectorycheckbutton.CanFocus = true;
                        this.trajectorycheckbutton.Name = "trajectorycheckbutton";
                        this.trajectorycheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Trajectory");
                        this.trajectorycheckbutton.DrawIndicator = true;
                        this.trajectorycheckbutton.UseUnderline = true;
-                       this.table1.Add (this.trajectorycheckbutton);
-                       global::Gtk.Table.TableChild w18 = ((global::Gtk.Table.TableChild)(this.table1 
[this.trajectorycheckbutton]));
-                       w18.TopAttach = ((uint)(1));
-                       w18.BottomAttach = ((uint)(2));
-                       w18.YOptions = ((global::Gtk.AttachOptions)(4));
-                       this.vbox5.Add (this.table1);
-                       global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.table1]));
-                       w19.Position = 0;
-                       w19.Expand = false;
-                       w19.Fill = false;
+                       this.vbox4.Add (this.trajectorycheckbutton);
+                       global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.trajectorycheckbutton]));
+                       w17.Position = 1;
+                       w17.Expand = false;
+                       w17.Fill = false;
+                       this.GtkAlignment7.Add (this.vbox4);
+                       this.frame5.Add (this.GtkAlignment7);
+                       this.GtkLabel9 = new global::Gtk.Label ();
+                       this.GtkLabel9.Name = "GtkLabel9";
+                       this.GtkLabel9.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Field 
position</b>");
+                       this.GtkLabel9.UseMarkup = true;
+                       this.frame5.LabelWidget = this.GtkLabel9;
+                       this.hbox1.Add (this.frame5);
+                       global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.frame5]));
+                       w20.Position = 0;
+                       // Container child hbox1.Gtk.Box+BoxChild
+                       this.frame6 = new global::Gtk.Frame ();
+                       this.frame6.Name = "frame6";
+                       this.frame6.ShadowType = ((global::Gtk.ShadowType)(0));
+                       // Container child frame6.Gtk.Container+ContainerChild
+                       this.GtkAlignment8 = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
+                       this.GtkAlignment8.Name = "GtkAlignment8";
+                       this.GtkAlignment8.LeftPadding = ((uint)(12));
+                       // Container child GtkAlignment8.Gtk.Container+ContainerChild
+                       this.vbox6 = new global::Gtk.VBox ();
+                       this.vbox6.Name = "vbox6";
+                       this.vbox6.Spacing = 6;
+                       // Container child vbox6.Gtk.Box+BoxChild
+                       this.taghalffieldcheckbutton = new global::Gtk.CheckButton ();
+                       this.taghalffieldcheckbutton.CanFocus = true;
+                       this.taghalffieldcheckbutton.Name = "taghalffieldcheckbutton";
+                       this.taghalffieldcheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Enable");
+                       this.taghalffieldcheckbutton.DrawIndicator = true;
+                       this.taghalffieldcheckbutton.UseUnderline = true;
+                       this.vbox6.Add (this.taghalffieldcheckbutton);
+                       global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox6 
[this.taghalffieldcheckbutton]));
+                       w21.Position = 0;
+                       w21.Expand = false;
+                       w21.Fill = false;
+                       // Container child vbox6.Gtk.Box+BoxChild
+                       this.trajectoryhalfcheckbutton = new global::Gtk.CheckButton ();
+                       this.trajectoryhalfcheckbutton.CanFocus = true;
+                       this.trajectoryhalfcheckbutton.Name = "trajectoryhalfcheckbutton";
+                       this.trajectoryhalfcheckbutton.Label = global::Mono.Unix.Catalog.GetString 
("Trajectory");
+                       this.trajectoryhalfcheckbutton.DrawIndicator = true;
+                       this.trajectoryhalfcheckbutton.UseUnderline = true;
+                       this.vbox6.Add (this.trajectoryhalfcheckbutton);
+                       global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox6 
[this.trajectoryhalfcheckbutton]));
+                       w22.Position = 1;
+                       w22.Expand = false;
+                       w22.Fill = false;
+                       this.GtkAlignment8.Add (this.vbox6);
+                       this.frame6.Add (this.GtkAlignment8);
+                       this.GtkLabel12 = new global::Gtk.Label ();
+                       this.GtkLabel12.Name = "GtkLabel12";
+                       this.GtkLabel12.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Field 
position</b>");
+                       this.GtkLabel12.UseMarkup = true;
+                       this.frame6.LabelWidget = this.GtkLabel12;
+                       this.hbox1.Add (this.frame6);
+                       global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.frame6]));
+                       w25.Position = 1;
+                       // Container child hbox1.Gtk.Box+BoxChild
+                       this.frame7 = new global::Gtk.Frame ();
+                       this.frame7.Name = "frame7";
+                       this.frame7.ShadowType = ((global::Gtk.ShadowType)(0));
+                       // Container child frame7.Gtk.Container+ContainerChild
+                       this.GtkAlignment9 = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
+                       this.GtkAlignment9.Name = "GtkAlignment9";
+                       this.GtkAlignment9.LeftPadding = ((uint)(12));
+                       // Container child GtkAlignment9.Gtk.Container+ContainerChild
+                       this.taggoalcheckbutton = new global::Gtk.CheckButton ();
+                       this.taggoalcheckbutton.CanFocus = true;
+                       this.taggoalcheckbutton.Name = "taggoalcheckbutton";
+                       this.taggoalcheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Tag goal 
position");
+                       this.taggoalcheckbutton.DrawIndicator = true;
+                       this.taggoalcheckbutton.UseUnderline = true;
+                       this.GtkAlignment9.Add (this.taggoalcheckbutton);
+                       this.frame7.Add (this.GtkAlignment9);
+                       this.GtkLabel13 = new global::Gtk.Label ();
+                       this.GtkLabel13.Name = "GtkLabel13";
+                       this.GtkLabel13.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Goal 
Position</b>");
+                       this.GtkLabel13.UseMarkup = true;
+                       this.frame7.LabelWidget = this.GtkLabel13;
+                       this.hbox1.Add (this.frame7);
+                       global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.frame7]));
+                       w28.Position = 2;
+                       this.vbox5.Add (this.hbox1);
+                       global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.hbox1]));
+                       w29.Position = 0;
+                       w29.Expand = false;
+                       w29.Fill = false;
                        // Container child vbox5.Gtk.Box+BoxChild
-                       this.table3 = new global::Gtk.Table (((uint)(1)), ((uint)(2)), true);
+                       this.table3 = new global::Gtk.Table (((uint)(1)), ((uint)(3)), true);
                        this.table3.Name = "table3";
                        this.table3.RowSpacing = ((uint)(6));
                        this.table3.ColumnSpacing = ((uint)(6));
@@ -319,25 +415,33 @@ namespace LongoMatch.Gui.Component
                        this.goalcoordinatestagger.Events = ((global::Gdk.EventMask)(256));
                        this.goalcoordinatestagger.Name = "goalcoordinatestagger";
                        this.table3.Add (this.goalcoordinatestagger);
-                       global::Gtk.Table.TableChild w21 = ((global::Gtk.Table.TableChild)(this.table3 
[this.goalcoordinatestagger]));
-                       w21.LeftAttach = ((uint)(1));
-                       w21.RightAttach = ((uint)(2));
+                       global::Gtk.Table.TableChild w31 = ((global::Gtk.Table.TableChild)(this.table3 
[this.goalcoordinatestagger]));
+                       w31.LeftAttach = ((uint)(2));
+                       w31.RightAttach = ((uint)(3));
+                       // Container child table3.Gtk.Table+TableChild
+                       this.halffieldcoordinatestagger = new 
global::LongoMatch.Gui.Component.CoordinatesTagger ();
+                       this.halffieldcoordinatestagger.Events = ((global::Gdk.EventMask)(256));
+                       this.halffieldcoordinatestagger.Name = "halffieldcoordinatestagger";
+                       this.table3.Add (this.halffieldcoordinatestagger);
+                       global::Gtk.Table.TableChild w32 = ((global::Gtk.Table.TableChild)(this.table3 
[this.halffieldcoordinatestagger]));
+                       w32.LeftAttach = ((uint)(1));
+                       w32.RightAttach = ((uint)(2));
                        this.vbox5.Add (this.table3);
-                       global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.table3]));
-                       w22.Position = 1;
+                       global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.table3]));
+                       w33.Position = 1;
                        this.vbox3.Add (this.vbox5);
-                       global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.vbox5]));
-                       w23.Position = 1;
+                       global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.vbox5]));
+                       w34.Position = 1;
                        this.GtkAlignment1.Add (this.vbox3);
                        this.frame4.Add (this.GtkAlignment1);
-                       this.GtkLabel4 = new global::Gtk.Label ();
-                       this.GtkLabel4.Name = "GtkLabel4";
-                       this.GtkLabel4.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Properties</b>");
-                       this.GtkLabel4.UseMarkup = true;
-                       this.frame4.LabelWidget = this.GtkLabel4;
+                       this.GtkLabel6 = new global::Gtk.Label ();
+                       this.GtkLabel6.Name = "GtkLabel6";
+                       this.GtkLabel6.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Properties</b>");
+                       this.GtkLabel6.UseMarkup = true;
+                       this.frame4.LabelWidget = this.GtkLabel6;
                        this.vbox2.Add (this.frame4);
-                       global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.frame4]));
-                       w26.Position = 0;
+                       global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.frame4]));
+                       w37.Position = 0;
                        // Container child vbox2.Gtk.Box+BoxChild
                        this.frame3 = new global::Gtk.Frame ();
                        this.frame3.Name = "frame3";
@@ -360,8 +464,8 @@ namespace LongoMatch.Gui.Component
                        this.subcategoriestreeview1.Name = "subcategoriestreeview1";
                        this.GtkScrolledWindow.Add (this.subcategoriestreeview1);
                        this.vbox1.Add (this.GtkScrolledWindow);
-                       global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.GtkScrolledWindow]));
-                       w28.Position = 0;
+                       global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.GtkScrolledWindow]));
+                       w39.Position = 0;
                        // Container child vbox1.Gtk.Box+BoxChild
                        this.hbox3 = new global::Gtk.HBox ();
                        this.hbox3.Name = "hbox3";
@@ -382,16 +486,16 @@ namespace LongoMatch.Gui.Component
                        this.subcatnameentry.InvisibleChar = '•';
                        this.GtkAlignment4.Add (this.subcatnameentry);
                        this.frame1.Add (this.GtkAlignment4);
-                       this.GtkLabel5 = new global::Gtk.Label ();
-                       this.GtkLabel5.Name = "GtkLabel5";
-                       this.GtkLabel5.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Subcategory 
name</b>");
-                       this.GtkLabel5.UseMarkup = true;
-                       this.frame1.LabelWidget = this.GtkLabel5;
+                       this.GtkLabel7 = new global::Gtk.Label ();
+                       this.GtkLabel7.Name = "GtkLabel7";
+                       this.GtkLabel7.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Subcategory 
name</b>");
+                       this.GtkLabel7.UseMarkup = true;
+                       this.frame1.LabelWidget = this.GtkLabel7;
                        this.hbox3.Add (this.frame1);
-                       global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.frame1]));
-                       w31.Position = 0;
-                       w31.Expand = false;
-                       w31.Fill = false;
+                       global::Gtk.Box.BoxChild w42 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.frame1]));
+                       w42.Position = 0;
+                       w42.Expand = false;
+                       w42.Fill = false;
                        // Container child hbox3.Gtk.Box+BoxChild
                        this.frame2 = new global::Gtk.Frame ();
                        this.frame2.Name = "frame2";
@@ -405,14 +509,14 @@ namespace LongoMatch.Gui.Component
                        this.subcatcombobox.Name = "subcatcombobox";
                        this.GtkAlignment5.Add (this.subcatcombobox);
                        this.frame2.Add (this.GtkAlignment5);
-                       this.GtkLabel6 = new global::Gtk.Label ();
-                       this.GtkLabel6.Name = "GtkLabel6";
-                       this.GtkLabel6.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Subcategory 
type</b>");
-                       this.GtkLabel6.UseMarkup = true;
-                       this.frame2.LabelWidget = this.GtkLabel6;
+                       this.GtkLabel8 = new global::Gtk.Label ();
+                       this.GtkLabel8.Name = "GtkLabel8";
+                       this.GtkLabel8.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Subcategory 
type</b>");
+                       this.GtkLabel8.UseMarkup = true;
+                       this.frame2.LabelWidget = this.GtkLabel8;
                        this.hbox3.Add (this.frame2);
-                       global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.frame2]));
-                       w34.Position = 1;
+                       global::Gtk.Box.BoxChild w45 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.frame2]));
+                       w45.Position = 1;
                        // Container child hbox3.Gtk.Box+BoxChild
                        this.addbutton = new global::Gtk.Button ();
                        this.addbutton.TooltipMarkup = "Add this subcategory";
@@ -421,41 +525,41 @@ namespace LongoMatch.Gui.Component
                        this.addbutton.Name = "addbutton";
                        this.addbutton.UseUnderline = true;
                        // Container child addbutton.Gtk.Container+ContainerChild
-                       global::Gtk.Alignment w35 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       global::Gtk.Alignment w46 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
                        // Container child GtkAlignment.Gtk.Container+ContainerChild
-                       global::Gtk.HBox w36 = new global::Gtk.HBox ();
-                       w36.Spacing = 2;
+                       global::Gtk.HBox w47 = new global::Gtk.HBox ();
+                       w47.Spacing = 2;
                        // Container child GtkHBox.Gtk.Container+ContainerChild
-                       global::Gtk.Image w37 = new global::Gtk.Image ();
-                       w37.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-add", 
global::Gtk.IconSize.Menu);
-                       w36.Add (w37);
+                       global::Gtk.Image w48 = new global::Gtk.Image ();
+                       w48.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-add", 
global::Gtk.IconSize.Menu);
+                       w47.Add (w48);
                        // Container child GtkHBox.Gtk.Container+ContainerChild
-                       global::Gtk.Label w39 = new global::Gtk.Label ();
-                       w39.LabelProp = global::Mono.Unix.Catalog.GetString ("_Add subcategory");
-                       w39.UseUnderline = true;
-                       w36.Add (w39);
-                       w35.Add (w36);
-                       this.addbutton.Add (w35);
+                       global::Gtk.Label w50 = new global::Gtk.Label ();
+                       w50.LabelProp = global::Mono.Unix.Catalog.GetString ("_Add subcategory");
+                       w50.UseUnderline = true;
+                       w47.Add (w50);
+                       w46.Add (w47);
+                       this.addbutton.Add (w46);
                        this.hbox3.Add (this.addbutton);
-                       global::Gtk.Box.BoxChild w43 = ((global::Gtk.Box.BoxChild)(this.hbox3 
[this.addbutton]));
-                       w43.Position = 2;
-                       w43.Expand = false;
-                       w43.Fill = false;
+                       global::Gtk.Box.BoxChild w54 = ((global::Gtk.Box.BoxChild)(this.hbox3 
[this.addbutton]));
+                       w54.Position = 2;
+                       w54.Expand = false;
+                       w54.Fill = false;
                        this.vbox1.Add (this.hbox3);
-                       global::Gtk.Box.BoxChild w44 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hbox3]));
-                       w44.Position = 1;
-                       w44.Expand = false;
-                       w44.Fill = false;
+                       global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hbox3]));
+                       w55.Position = 1;
+                       w55.Expand = false;
+                       w55.Fill = false;
                        this.GtkAlignment3.Add (this.vbox1);
                        this.frame3.Add (this.GtkAlignment3);
-                       this.GtkLabel8 = new global::Gtk.Label ();
-                       this.GtkLabel8.Name = "GtkLabel8";
-                       this.GtkLabel8.LabelProp = global::Mono.Unix.Catalog.GetString 
("<b>Subcategories</b>");
-                       this.GtkLabel8.UseMarkup = true;
-                       this.frame3.LabelWidget = this.GtkLabel8;
+                       this.GtkLabel11 = new global::Gtk.Label ();
+                       this.GtkLabel11.Name = "GtkLabel11";
+                       this.GtkLabel11.LabelProp = global::Mono.Unix.Catalog.GetString 
("<b>Subcategories</b>");
+                       this.GtkLabel11.UseMarkup = true;
+                       this.frame3.LabelWidget = this.GtkLabel11;
                        this.vbox2.Add (this.frame3);
-                       global::Gtk.Box.BoxChild w47 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.frame3]));
-                       w47.Position = 1;
+                       global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.frame3]));
+                       w58.Position = 1;
                        this.Add (this.vbox2);
                        if ((this.Child != null)) {
                                this.Child.ShowAll ();
@@ -465,9 +569,11 @@ namespace LongoMatch.Gui.Component
                        this.nameentry.Changed += new global::System.EventHandler (this.OnNameentryChanged);
                        this.changebuton.Clicked += new global::System.EventHandler 
(this.OnChangebutonClicked);
                        this.colorbutton1.ColorSet += new global::System.EventHandler 
(this.OnColorbutton1ColorSet);
+                       this.tagfieldcheckbutton.Clicked += new global::System.EventHandler 
(this.OnTagfieldcheckbuttonClicked);
                        this.trajectorycheckbutton.Clicked += new global::System.EventHandler 
(this.OnTrajectorycheckbuttonClicked);
+                       this.taghalffieldcheckbutton.Clicked += new global::System.EventHandler 
(this.OnTaghalffieldcheckbuttonClicked);
+                       this.trajectoryhalfcheckbutton.Clicked += new global::System.EventHandler 
(this.OnTrajectoryhalffieldcheckbuttonClicked);
                        this.taggoalcheckbutton.Clicked += new global::System.EventHandler 
(this.OnTaggoalcheckbuttonClicked);
-                       this.tagfieldcheckbutton.Clicked += new global::System.EventHandler 
(this.OnTagfieldcheckbuttonClicked);
                        this.subcatcombobox.Changed += new global::System.EventHandler 
(this.OnSubcatcomboboxChanged);
                        this.addbutton.Clicked += new global::System.EventHandler (this.OnAddbuttonClicked);
                }
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
index e7e5200..af0eea7 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs
@@ -4,7 +4,7 @@ namespace LongoMatch.Gui.Dialog
 {
        public partial class TaggerDialog
        {
-               private global::Gtk.VBox vbox2;
+               private global::Gtk.VBox mainvbox;
                private global::Gtk.HBox hbox;
                private global::Gtk.Notebook tagsnotebook;
                private global::LongoMatch.Gui.Component.TaggerWidget taggerwidget1;
@@ -14,6 +14,7 @@ namespace LongoMatch.Gui.Dialog
                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::Gtk.Button buttonOk;
                
@@ -30,9 +31,9 @@ namespace LongoMatch.Gui.Dialog
                        w1.Name = "dialog1_VBox";
                        w1.BorderWidth = ((uint)(2));
                        // Container child dialog1_VBox.Gtk.Box+BoxChild
-                       this.vbox2 = new global::Gtk.VBox ();
-                       this.vbox2.Name = "vbox2";
-                       // Container child vbox2.Gtk.Box+BoxChild
+                       this.mainvbox = new global::Gtk.VBox ();
+                       this.mainvbox.Name = "mainvbox";
+                       // Container child mainvbox.Gtk.Box+BoxChild
                        this.hbox = new global::Gtk.HBox ();
                        this.hbox.Name = "hbox";
                        this.hbox.Spacing = 6;
@@ -74,11 +75,11 @@ namespace LongoMatch.Gui.Dialog
                        this.hbox.Add (this.playersnotebook);
                        global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox 
[this.playersnotebook]));
                        w5.Position = 1;
-                       this.vbox2.Add (this.hbox);
-                       global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox]));
+                       this.mainvbox.Add (this.hbox);
+                       global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.mainvbox [this.hbox]));
                        w6.Position = 0;
                        w6.Expand = false;
-                       // Container child vbox2.Gtk.Box+BoxChild
+                       // Container child mainvbox.Gtk.Box+BoxChild
                        this.poshbox = new global::Gtk.HBox ();
                        this.poshbox.Name = "poshbox";
                        // Container child poshbox.Gtk.Box+BoxChild
@@ -89,24 +90,31 @@ namespace LongoMatch.Gui.Dialog
                        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 w8 = ((global::Gtk.Box.BoxChild)(this.poshbox 
[this.goalcoordinatestagger]));
-                       w8.Position = 1;
-                       this.vbox2.Add (this.poshbox);
-                       global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.poshbox]));
-                       w9.Position = 1;
-                       w1.Add (this.vbox2);
-                       global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2]));
-                       w10.Position = 0;
+                       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;
+                       w1.Add (this.mainvbox);
+                       global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(w1 [this.mainvbox]));
+                       w11.Position = 0;
                        // Internal child LongoMatch.Gui.Dialog.TaggerDialog.ActionArea
-                       global::Gtk.HButtonBox w11 = this.ActionArea;
-                       w11.Name = "dialog1_ActionArea";
-                       w11.Spacing = 6;
-                       w11.BorderWidth = ((uint)(5));
-                       w11.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+                       global::Gtk.HButtonBox w12 = this.ActionArea;
+                       w12.Name = "dialog1_ActionArea";
+                       w12.Spacing = 6;
+                       w12.BorderWidth = ((uint)(5));
+                       w12.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
                        // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
                        this.buttonOk = new global::Gtk.Button ();
                        this.buttonOk.CanDefault = true;
@@ -116,15 +124,16 @@ namespace LongoMatch.Gui.Dialog
                        this.buttonOk.UseUnderline = true;
                        this.buttonOk.Label = "gtk-ok";
                        this.AddActionWidget (this.buttonOk, -5);
-                       global::Gtk.ButtonBox.ButtonBoxChild w12 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(w11 [this.buttonOk]));
-                       w12.Expand = false;
-                       w12.Fill = false;
+                       global::Gtk.ButtonBox.ButtonBoxChild w13 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(w12 [this.buttonOk]));
+                       w13.Expand = false;
+                       w13.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/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index ba71e3f..dc63886 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -2411,88 +2411,189 @@ Sort by duration</property>
                         <property name="MemberName" />
                         <property name="Spacing">6</property>
                         <child>
-                          <widget class="Gtk.Table" id="table1">
+                          <widget class="Gtk.HBox" id="hbox1">
                             <property name="MemberName" />
-                            <property name="NRows">2</property>
-                            <property name="NColumns">2</property>
-                            <property name="Homogeneous">True</property>
-                            <property name="RowSpacing">6</property>
-                            <property name="ColumnSpacing">6</property>
-                            <child>
-                              <placeholder />
-                            </child>
+                            <property name="Spacing">6</property>
                             <child>
-                              <widget class="Gtk.CheckButton" id="tagfieldcheckbutton">
+                              <widget class="Gtk.Frame" id="frame5">
                                 <property name="MemberName" />
-                                <property name="CanFocus">True</property>
-                                <property name="Label" translatable="yes">Tag field position</property>
-                                <property name="Active">True</property>
-                                <property name="DrawIndicator">True</property>
-                                <property name="HasLabel">True</property>
-                                <property name="UseUnderline">True</property>
-                                <signal name="Clicked" handler="OnTagfieldcheckbuttonClicked" />
+                                <property name="ShadowType">None</property>
+                                <child>
+                                  <widget class="Gtk.Alignment" id="GtkAlignment7">
+                                    <property name="MemberName" />
+                                    <property name="Xalign">0</property>
+                                    <property name="Yalign">0</property>
+                                    <property name="LeftPadding">12</property>
+                                    <child>
+                                      <widget class="Gtk.VBox" id="vbox4">
+                                        <property name="MemberName" />
+                                        <property name="Spacing">6</property>
+                                        <child>
+                                          <widget class="Gtk.CheckButton" id="tagfieldcheckbutton">
+                                            <property name="MemberName" />
+                                            <property name="CanFocus">True</property>
+                                            <property name="Label" translatable="yes">Enable</property>
+                                            <property name="Active">True</property>
+                                            <property name="DrawIndicator">True</property>
+                                            <property name="HasLabel">True</property>
+                                            <property name="UseUnderline">True</property>
+                                            <signal name="Clicked" handler="OnTagfieldcheckbuttonClicked" />
+                                          </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.CheckButton" id="trajectorycheckbutton">
+                                            <property name="MemberName" />
+                                            <property name="CanFocus">True</property>
+                                            <property name="Label" translatable="yes">Trajectory</property>
+                                            <property name="DrawIndicator">True</property>
+                                            <property name="HasLabel">True</property>
+                                            <property name="UseUnderline">True</property>
+                                            <signal name="Clicked" handler="OnTrajectorycheckbuttonClicked" 
/>
+                                          </widget>
+                                          <packing>
+                                            <property name="Position">1</property>
+                                            <property name="AutoSize">True</property>
+                                            <property name="Expand">False</property>
+                                            <property name="Fill">False</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                </child>
+                                <child>
+                                  <widget class="Gtk.Label" id="GtkLabel9">
+                                    <property name="MemberName" />
+                                    <property name="LabelProp" translatable="yes">&lt;b&gt;Field 
position&lt;/b&gt;</property>
+                                    <property name="UseMarkup">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="type">label_item</property>
+                                  </packing>
+                                </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>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="Gtk.CheckButton" id="taggoalcheckbutton">
+                              <widget class="Gtk.Frame" id="frame6">
                                 <property name="MemberName" />
-                                <property name="CanFocus">True</property>
-                                <property name="Label" translatable="yes">Tag goal position</property>
-                                <property name="DrawIndicator">True</property>
-                                <property name="HasLabel">True</property>
-                                <property name="UseUnderline">True</property>
-                                <signal name="Clicked" handler="OnTaggoalcheckbuttonClicked" />
+                                <property name="ShadowType">None</property>
+                                <child>
+                                  <widget class="Gtk.Alignment" id="GtkAlignment8">
+                                    <property name="MemberName" />
+                                    <property name="Xalign">0</property>
+                                    <property name="Yalign">0</property>
+                                    <property name="LeftPadding">12</property>
+                                    <child>
+                                      <widget class="Gtk.VBox" id="vbox6">
+                                        <property name="MemberName" />
+                                        <property name="Spacing">6</property>
+                                        <child>
+                                          <widget class="Gtk.CheckButton" id="taghalffieldcheckbutton">
+                                            <property name="MemberName" />
+                                            <property name="CanFocus">True</property>
+                                            <property name="Label" translatable="yes">Enable</property>
+                                            <property name="DrawIndicator">True</property>
+                                            <property name="HasLabel">True</property>
+                                            <property name="UseUnderline">True</property>
+                                            <signal name="Clicked" 
handler="OnTaghalffieldcheckbuttonClicked" />
+                                          </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.CheckButton" id="trajectoryhalfcheckbutton">
+                                            <property name="MemberName" />
+                                            <property name="CanFocus">True</property>
+                                            <property name="Label" translatable="yes">Trajectory</property>
+                                            <property name="DrawIndicator">True</property>
+                                            <property name="HasLabel">True</property>
+                                            <property name="UseUnderline">True</property>
+                                            <signal name="Clicked" 
handler="OnTrajectoryhalffieldcheckbuttonClicked" />
+                                          </widget>
+                                          <packing>
+                                            <property name="Position">1</property>
+                                            <property name="AutoSize">True</property>
+                                            <property name="Expand">False</property>
+                                            <property name="Fill">False</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                </child>
+                                <child>
+                                  <widget class="Gtk.Label" id="GtkLabel12">
+                                    <property name="MemberName" />
+                                    <property name="LabelProp" translatable="yes">&lt;b&gt;Field 
position&lt;/b&gt;</property>
+                                    <property name="UseMarkup">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="type">label_item</property>
+                                  </packing>
+                                </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>
+                                <property name="Position">1</property>
+                                <property name="AutoSize">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="Gtk.CheckButton" id="trajectorycheckbutton">
+                              <widget class="Gtk.Frame" id="frame7">
                                 <property name="MemberName" />
-                                <property name="CanFocus">True</property>
-                                <property name="Label" translatable="yes">Trajectory</property>
-                                <property name="DrawIndicator">True</property>
-                                <property name="HasLabel">True</property>
-                                <property name="UseUnderline">True</property>
-                                <signal name="Clicked" handler="OnTrajectorycheckbuttonClicked" />
+                                <property name="ShadowType">None</property>
+                                <child>
+                                  <widget class="Gtk.Alignment" id="GtkAlignment9">
+                                    <property name="MemberName" />
+                                    <property name="Xalign">0</property>
+                                    <property name="Yalign">0</property>
+                                    <property name="LeftPadding">12</property>
+                                    <child>
+                                      <widget class="Gtk.CheckButton" id="taggoalcheckbutton">
+                                        <property name="MemberName" />
+                                        <property name="CanFocus">True</property>
+                                        <property name="Label" translatable="yes">Tag goal 
position</property>
+                                        <property name="DrawIndicator">True</property>
+                                        <property name="HasLabel">True</property>
+                                        <property name="UseUnderline">True</property>
+                                        <signal name="Clicked" handler="OnTaggoalcheckbuttonClicked" />
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                </child>
+                                <child>
+                                  <widget class="Gtk.Label" id="GtkLabel13">
+                                    <property name="MemberName" />
+                                    <property name="LabelProp" translatable="yes">&lt;b&gt;Goal 
Position&lt;/b&gt;</property>
+                                    <property name="UseMarkup">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="type">label_item</property>
+                                  </packing>
+                                </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>
+                                <property name="Position">2</property>
+                                <property name="AutoSize">False</property>
                               </packing>
                             </child>
                           </widget>
                           <packing>
                             <property name="Position">0</property>
-                            <property name="AutoSize">True</property>
+                            <property name="AutoSize">False</property>
                             <property name="Expand">False</property>
                             <property name="Fill">False</property>
                           </packing>
@@ -2500,7 +2601,7 @@ Sort by duration</property>
                         <child>
                           <widget class="Gtk.Table" id="table3">
                             <property name="MemberName" />
-                            <property name="NColumns">2</property>
+                            <property name="NColumns">3</property>
                             <property name="Homogeneous">True</property>
                             <property name="RowSpacing">6</property>
                             <property name="ColumnSpacing">6</property>
@@ -2525,6 +2626,23 @@ Sort by duration</property>
                                 <property name="Events">ButtonPressMask</property>
                               </widget>
                               <packing>
+                                <property name="LeftAttach">2</property>
+                                <property name="RightAttach">3</property>
+                                <property name="AutoSize">True</property>
+                                <property name="XExpand">True</property>
+                                <property name="XFill">True</property>
+                                <property name="XShrink">False</property>
+                                <property name="YExpand">True</property>
+                                <property name="YFill">True</property>
+                                <property name="YShrink">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="LongoMatch.Gui.Component.CoordinatesTagger" 
id="halffieldcoordinatestagger">
+                                <property name="MemberName" />
+                                <property name="Events">ButtonPressMask</property>
+                              </widget>
+                              <packing>
                                 <property name="LeftAttach">1</property>
                                 <property name="RightAttach">2</property>
                                 <property name="AutoSize">True</property>
@@ -2553,7 +2671,7 @@ Sort by duration</property>
               </widget>
             </child>
             <child>
-              <widget class="Gtk.Label" id="GtkLabel4">
+              <widget class="Gtk.Label" id="GtkLabel6">
                 <property name="MemberName" />
                 <property name="LabelProp" translatable="yes">&lt;b&gt;Properties&lt;/b&gt;</property>
                 <property name="UseMarkup">True</property>
@@ -2624,7 +2742,7 @@ Sort by duration</property>
                               </widget>
                             </child>
                             <child>
-                              <widget class="Gtk.Label" id="GtkLabel5">
+                              <widget class="Gtk.Label" id="GtkLabel7">
                                 <property name="MemberName" />
                                 <property name="LabelProp" translatable="yes">&lt;b&gt;Subcategory 
name&lt;/b&gt;</property>
                                 <property name="UseMarkup">True</property>
@@ -2662,7 +2780,7 @@ Sort by duration</property>
                               </widget>
                             </child>
                             <child>
-                              <widget class="Gtk.Label" id="GtkLabel6">
+                              <widget class="Gtk.Label" id="GtkLabel8">
                                 <property name="MemberName" />
                                 <property name="LabelProp" translatable="yes">&lt;b&gt;Subcategory 
type&lt;/b&gt;</property>
                                 <property name="UseMarkup">True</property>
@@ -2709,7 +2827,7 @@ Sort by duration</property>
               </widget>
             </child>
             <child>
-              <widget class="Gtk.Label" id="GtkLabel8">
+              <widget class="Gtk.Label" id="GtkLabel11">
                 <property name="MemberName" />
                 <property name="LabelProp" translatable="yes">&lt;b&gt;Subcategories&lt;/b&gt;</property>
                 <property name="UseMarkup">True</property>
@@ -5421,7 +5539,7 @@ Show-&gt;&lt;b&gt; S&lt;/b&gt;
         <property name="MemberName" />
         <property name="BorderWidth">2</property>
         <child>
-          <widget class="Gtk.VBox" id="vbox2">
+          <widget class="Gtk.VBox" id="mainvbox">
             <property name="MemberName" />
             <child>
               <widget class="Gtk.HBox" id="hbox">
@@ -5510,7 +5628,7 @@ Show-&gt;&lt;b&gt; S&lt;/b&gt;
                   </packing>
                 </child>
                 <child>
-                  <widget class="LongoMatch.Gui.Component.CoordinatesTagger" id="goalcoordinatestagger">
+                  <widget class="LongoMatch.Gui.Component.CoordinatesTagger" id="halffieldcoordinatestagger">
                     <property name="MemberName" />
                     <property name="Visible">False</property>
                     <property name="Events">ButtonPressMask</property>
@@ -5520,6 +5638,17 @@ Show-&gt;&lt;b&gt; S&lt;/b&gt;
                     <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>
               </widget>
               <packing>
                 <property name="Position">1</property>


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