[longomatch] Start with the new UI redesign



commit 713baa16ae49154f735a8a88a42bd67de867226b
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Tue Feb 11 19:52:37 2014 +0100

    Start with the new UI redesign

 LongoMatch.Core/Common/Constants.cs                |    1 +
 LongoMatch.Core/Handlers/Handlers.cs               |    5 +
 LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs      |   15 +-
 LongoMatch.Core/Interfaces/GUI/IMainController.cs  |    2 +
 .../Interfaces/Multimedia/IMultimediaToolkit.cs    |    4 +
 LongoMatch.Core/LongoMatch.Core.mdp                |    1 +
 LongoMatch.Core/Utils.cs                           |   70 +
 LongoMatch.GUI.Multimedia/Gui/CapturerBin.cs       |    2 +-
 LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs         |    4 +-
 LongoMatch.GUI.Multimedia/Gui/Utils/Remuxer.cs     |    2 +-
 .../LongoMatch.GUI.Multimedia.mdp                  |    1 +
 LongoMatch.GUI.Multimedia/MultimediaToolkit.cs     |   40 +
 LongoMatch.GUI/Gui/Component/BackgroundWidget.cs   |   79 ++
 LongoMatch.GUI/Gui/Component/ProjectListWidget.cs  |  170 ++--
 .../Gui/Component/TeamPlayersSelection.cs          |  126 ++
 LongoMatch.GUI/Gui/GUIToolkit.cs                   |  111 +--
 LongoMatch.GUI/Gui/MainWindow.cs                   |  127 ++-
 LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs        |  346 +++++
 LongoMatch.GUI/Gui/Panel/OpenProjectPanel.cs       |   61 +
 LongoMatch.GUI/Gui/Panel/WelcomePanel.cs           |   44 +
 LongoMatch.GUI/LongoMatch.GUI.mdp                  |   15 +-
 .../LongoMatch.Gui.Component.BackgroundWidget.cs   |   25 +
 .../LongoMatch.Gui.Component.DrawingToolBox.cs     |    1 +
 ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs |    1 +
 .../LongoMatch.Gui.Component.ProjectListWidget.cs  |   10 +-
 .../LongoMatch.Gui.Component.Stats.Plotter.cs      |    1 +
 ...ongoMatch.Gui.Component.TeamPlayersSelection.cs |   76 +
 .../gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs    |    3 +-
 ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs |    1 -
 .../gtk-gui/LongoMatch.Gui.MainWindow.cs           |   28 +-
 .../LongoMatch.Gui.Panel.NewProjectPanel.cs        |  839 ++++++++++++
 .../LongoMatch.Gui.Panel.OpenProjectPanel.cs       |   70 +
 .../gtk-gui/LongoMatch.Gui.Panel.WelcomePanel.cs   |  264 ++++
 LongoMatch.GUI/gtk-gui/generated.cs                |    4 -
 LongoMatch.GUI/gtk-gui/gui.stetic                  | 1441 +++++++++++++++++++-
 LongoMatch.GUI/gtk-gui/objects.xml                 |   31 +
 LongoMatch.Multimedia/LongoMatch.Multimedia.mdp    |    2 +-
 .../{ => Utils}/MultimediaFactory.cs               |    7 +-
 LongoMatch.Services/LongoMatch.Services.mdp        |    2 +
 LongoMatch.Services/Services/ProjectsManager.cs    |   50 +-
 LongoMatch/LongoMatchGtk.mdp                       |    1 +
 LongoMatch/Main.cs                                 |    2 +-
 42 files changed, 3789 insertions(+), 296 deletions(-)
---
diff --git a/LongoMatch.Core/Common/Constants.cs b/LongoMatch.Core/Common/Constants.cs
index 73e32be..ada0bc8 100644
--- a/LongoMatch.Core/Common/Constants.cs
+++ b/LongoMatch.Core/Common/Constants.cs
@@ -100,6 +100,7 @@ Xavier Queralt Mateu (ca)";
                public const string PLAYLIST_EXT = ".lpl";
                public const string PROJECT_EXT = ".lgm";
                
+               public const string BACKGROUND = "background.png";
                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/Handlers/Handlers.cs b/LongoMatch.Core/Handlers/Handlers.cs
index bc79da7..00cc880 100644
--- a/LongoMatch.Core/Handlers/Handlers.cs
+++ b/LongoMatch.Core/Handlers/Handlers.cs
@@ -56,9 +56,11 @@ namespace LongoMatch.Handlers
        public delegate void SaveProjectHandler(Project project, ProjectType projectType);
        public delegate void OpenedProjectChangedHandler(Project project, ProjectType projectType, 
PlaysFilter filter,
                                                         IAnalysisWindow analysisWindow, 
IProjectOptionsController projectOptions);
+       public delegate void OpenProjectIDHandler(Guid project_id);
        public delegate void OpenProjectHandler();
        public delegate void CloseOpenendProjectHandler();
        public delegate void NewProjectHandler();
+       public delegate void OpenNewProjectHandler(Project project, ProjectType projectType, CaptureSettings 
captureSettings);
        public delegate void ImportProjectHandler(string name, string filterName, string filter,
                                                  Func <string, Project> importProjectFunc, bool 
requiresNewFile);
        public delegate void ExportProjectHandler();
@@ -131,6 +133,7 @@ namespace LongoMatch.Handlers
        
        /* A list of projects have been selected */
        public delegate void ProjectsSelectedHandler(List<ProjectDescription> projects);
+       public delegate void ProjectSelectedHandler(ProjectDescription project);
        
        /* Start/Stop/Cancel game units */
        public delegate void GameUnitHandler(GameUnit gameUnit, GameUnitEventType eType);
@@ -155,4 +158,6 @@ namespace LongoMatch.Handlers
        public delegate void AnalysisWidgetsVisibilityHandler (bool visible);
        public delegate void AnalysisModeChangedHandler (VideoAnalysisMode mode);
        public delegate void TagSubcategoriesChangedHandler (bool tagsubcategories);
+       
+       public delegate void BackEventHandle ();
 }
diff --git a/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs b/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
index 4f1f4eb..1853582 100644
--- a/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
+++ b/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
@@ -25,6 +25,7 @@ using LongoMatch.Store;
 using LongoMatch.Store.Templates;
 using Image = LongoMatch.Common.Image;
 using LongoMatch.Stats;
+using LongoMatch.Interfaces.Multimedia;
 
 namespace LongoMatch.Interfaces.GUI
 {
@@ -52,7 +53,7 @@ namespace LongoMatch.Interfaces.GUI
                string SelectFolder(string title, string defaultName, string defaultFolder,
                        string filterName, string[] extensionFilter);
                        
-               IBusyDialog BusyDialog(string message);
+               IBusyDialog BusyDialog(string message, object parent=null);
                        
                List<EditionJob> ConfigureRenderingJob (IPlayList playlist);
                void ExportFrameSeries(Project openenedProject, Play play, string snapshotDir);
@@ -63,16 +64,10 @@ namespace LongoMatch.Interfaces.GUI
                                  out IProjectOptionsController projectOptionsController);
                void CloseProject ();
                                             
-               ProjectDescription SelectProject(List<ProjectDescription> projects);
-               ProjectType SelectNewProjectType();
+               void SelectProject(List<ProjectDescription> projects);
+               
+               void CreateNewProject (ITemplatesService tps, IMultimediaToolkit toolit, Project 
project=null);
                
-               Project NewCaptureProject(IDatabase db, ITemplatesService ts,
-                       List<LongoMatch.Common.Device> devices, out CaptureSettings captureSettings);
-               Project NewURICaptureProject(IDatabase db, ITemplatesService ts,
-                       out CaptureSettings captureSettings);
-               Project NewFakeProject(IDatabase db, ITemplatesService ts);
-               Project NewFileProject(IDatabase db, ITemplatesService ts);
-               Project EditFakeProject(IDatabase db, Project project, ITemplatesService ts);
                void ShowProjectStats(Project project);
                
                void OpenProjectsManager(Project openedProject, IDatabase db, ITemplatesService ts);
diff --git a/LongoMatch.Core/Interfaces/GUI/IMainController.cs 
b/LongoMatch.Core/Interfaces/GUI/IMainController.cs
index 84e8f46..aee3051 100644
--- a/LongoMatch.Core/Interfaces/GUI/IMainController.cs
+++ b/LongoMatch.Core/Interfaces/GUI/IMainController.cs
@@ -25,7 +25,9 @@ namespace LongoMatch.Interfaces.GUI
        {
                /* Projects */
                event NewProjectHandler NewProjectEvent;
+               event OpenNewProjectHandler OpenNewProjectEvent;
                event OpenProjectHandler OpenProjectEvent;
+               event OpenProjectIDHandler OpenProjectIDEvent;
                event ImportProjectHandler ImportProjectEvent;
                event ExportProjectHandler ExportProjectEvent;
                event QuitApplicationHandler QuitApplicationEvent;
diff --git a/LongoMatch.Core/Interfaces/Multimedia/IMultimediaToolkit.cs 
b/LongoMatch.Core/Interfaces/Multimedia/IMultimediaToolkit.cs
index 6849890..953515f 100644
--- a/LongoMatch.Core/Interfaces/Multimedia/IMultimediaToolkit.cs
+++ b/LongoMatch.Core/Interfaces/Multimedia/IMultimediaToolkit.cs
@@ -36,6 +36,10 @@ namespace LongoMatch.Interfaces.Multimedia
                MediaFile DiscoverFile(string path);
                
                List<Device> VideoDevices {get;}
+               
+               bool FileNeedsRemux (MediaFile file);
+               
+               string RemuxFile (MediaFile file, object parent);
        }
 }
 
diff --git a/LongoMatch.Core/LongoMatch.Core.mdp b/LongoMatch.Core/LongoMatch.Core.mdp
index 9ee404a..04cc4b0 100644
--- a/LongoMatch.Core/LongoMatch.Core.mdp
+++ b/LongoMatch.Core/LongoMatch.Core.mdp
@@ -112,6 +112,7 @@
     <File subtype="Code" buildaction="EmbedAsResource" name="../images/field_background.svg" />
     <File subtype="Code" buildaction="EmbedAsResource" name="../images/goal_background.svg" />
     <File subtype="Code" buildaction="EmbedAsResource" name="../images/half_field_background.svg" />
+    <File subtype="Code" buildaction="Compile" name="Utils.cs" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="System, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089" />
diff --git a/LongoMatch.Core/Utils.cs b/LongoMatch.Core/Utils.cs
new file mode 100644
index 0000000..906abbe
--- /dev/null
+++ b/LongoMatch.Core/Utils.cs
@@ -0,0 +1,70 @@
+//
+//  Copyright (C) 2014 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 Mono.Unix;
+using LongoMatch.Interfaces.GUI;
+using LongoMatch.Interfaces.Multimedia;
+using LongoMatch.Store;
+
+namespace LongoMatch.Utils
+{
+       public class Open
+       {
+               public static MediaFile OpenFile (IGUIToolkit gui, IMultimediaToolkit multimedia, object 
parent) {
+                       IBusyDialog busy;
+                       MediaFile mediaFile = null;
+                       string folder, filename;
+                       
+                       
+                       folder = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
+                       filename = gui.OpenFile (Catalog.GetString("Open file"), null, folder, null, null);   
                          
+                       if (filename == null)
+                                       return null;
+                       
+                       try {
+                               busy = gui.BusyDialog (Catalog.GetString("Analyzing video 
file:")+"\n"+filename,
+                                                      parent);
+                               busy.Show ();
+                               mediaFile = multimedia.DiscoverFile (filename);
+                               busy.Destroy ();
+
+                               if(!mediaFile.HasVideo || mediaFile.VideoCodec == "")
+                                       throw new Exception(Catalog.GetString("This file doesn't contain a 
video stream."));
+                               if(mediaFile.HasVideo && mediaFile.Length == 0)
+                                       throw new Exception(Catalog.GetString("This file contains a video 
stream but its length is 0."));
+                               if (multimedia.FileNeedsRemux (mediaFile)) {
+                                       string q = Catalog.GetString("The file you are trying to load is not 
properly supported. " +
+                                                                            "Would you like to convert it 
into a more suitable format?");
+                                       if (gui.QuestionMessage (q, Catalog.GetString ("Convert"), null)) {
+                                               string newFilename = multimedia.RemuxFile (mediaFile, parent 
as Gtk.Window);
+                                               if (newFilename != null)
+                                                       mediaFile = multimedia.DiscoverFile (newFilename);
+                                       }
+                               }
+                       }
+                       catch(Exception ex) {
+                               gui.ErrorMessage (ex.Message, parent as Gtk.Window);
+                               return null;
+                       }
+                       
+                       return mediaFile;
+               }
+
+       }
+}
+
diff --git a/LongoMatch.GUI.Multimedia/Gui/CapturerBin.cs b/LongoMatch.GUI.Multimedia/Gui/CapturerBin.cs
index 9572c43..dd0cb13 100644
--- a/LongoMatch.GUI.Multimedia/Gui/CapturerBin.cs
+++ b/LongoMatch.GUI.Multimedia/Gui/CapturerBin.cs
@@ -63,7 +63,7 @@ namespace LongoMatch.Gui
                                /* Close any previous instance of the capturer */
                                Close();
 
-                               MultimediaFactory factory = new MultimediaFactory();
+                               MultimediaToolkit factory = new MultimediaToolkit();
                                capturer = factory.GetCapturer(value);
                                capturer.EllapsedTime += OnTick;
                                if(value != CapturerType.Fake) {
diff --git a/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs b/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
index 2b06da2..eeae115 100644
--- a/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
+++ b/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
@@ -413,10 +413,10 @@ namespace LongoMatch.Gui
                }
 
                private void PlayerInit() {
-                       MultimediaFactory factory;
+                       MultimediaToolkit factory;
                        Widget playerWidget;
 
-                       factory= new MultimediaFactory();
+                       factory= new MultimediaToolkit();
                        player = factory.GetPlayer(320,280);
 
                        tickHandler = new LongoMatch.Video.Common.TickHandler(OnTick);
diff --git a/LongoMatch.GUI.Multimedia/Gui/Utils/Remuxer.cs b/LongoMatch.GUI.Multimedia/Gui/Utils/Remuxer.cs
index 528c1ff..4350955 100644
--- a/LongoMatch.GUI.Multimedia/Gui/Utils/Remuxer.cs
+++ b/LongoMatch.GUI.Multimedia/Gui/Utils/Remuxer.cs
@@ -61,7 +61,7 @@ namespace LongoMatch.Video.Utils
                                }
 
                        }
-                       this.multimedia = new MultimediaFactory();
+                       this.multimedia = new MultimediaToolkit();
                }
                
                public string Remux(Window parent) {
diff --git a/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp 
b/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp
index a289b13..33dfc11 100644
--- a/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp
+++ b/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp
@@ -29,6 +29,7 @@
     <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.PlayerCapturerBin.cs" />
     <File subtype="Directory" buildaction="Compile" name="Gui/Utils" />
     <File subtype="Code" buildaction="Compile" name="Gui/Utils/Remuxer.cs" />
+    <File subtype="Code" buildaction="Compile" name="MultimediaToolkit.cs" />
   </Contents>
   <MonoDevelop.Autotools.MakefileInfo RelativeMakefileName="Makefile.am" RelativeConfigureInPath="../">
     <BuildFilesVar Name="FILES" />
diff --git a/LongoMatch.GUI.Multimedia/MultimediaToolkit.cs b/LongoMatch.GUI.Multimedia/MultimediaToolkit.cs
new file mode 100644
index 0000000..b01b467
--- /dev/null
+++ b/LongoMatch.GUI.Multimedia/MultimediaToolkit.cs
@@ -0,0 +1,40 @@
+// PlayerMaker.cs
+//
+//  Copyright(C) 2007-2009 Andoni Morales Alastruey
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+//Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+//
+using LongoMatch.Video.Utils;
+using LongoMatch.Interfaces.Multimedia;
+using LongoMatch.Store;
+
+using Remuxer = LongoMatch.Video.Utils;
+
+namespace LongoMatch.Video
+{
+
+       public class MultimediaToolkit:MultimediaFactory, IMultimediaToolkit
+       {
+
+               public MultimediaToolkit () {
+               }
+               
+               public string RemuxFile (MediaFile file, object window) {
+                       LongoMatch.Video.Utils.Remuxer remuxer = new LongoMatch.Video.Utils.Remuxer (file);
+                       return remuxer.Remux (window as Gtk.Window);
+               }
+       }
+}
diff --git a/LongoMatch.GUI/Gui/Component/BackgroundWidget.cs 
b/LongoMatch.GUI/Gui/Component/BackgroundWidget.cs
new file mode 100644
index 0000000..c5bd1e6
--- /dev/null
+++ b/LongoMatch.GUI/Gui/Component/BackgroundWidget.cs
@@ -0,0 +1,79 @@
+//
+//  Copyright (C) 2014 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 Gtk;
+using Gdk;
+
+using Image = LongoMatch.Common.Image;
+
+
+namespace LongoMatch.Gui.Component
+{
+       [System.ComponentModel.ToolboxItem(true)]
+       public partial class BackgroundWidget : Gtk.Bin
+       {
+               public BackgroundWidget ()
+               {
+                       this.Build ();
+                       drawingarea.ExposeEvent += HandleExposeEvent;
+               }
+               
+               public Pixbuf Background {
+                       get;
+                       set;
+               }
+               
+               void HandleExposeEvent (object o, ExposeEventArgs args)
+               {
+                       Pixbuf frame;
+                       int width, height, allocWidth, allocHeight, logoX, logoY;
+                       float ratio;
+                       
+                       if (Background == null)
+                               return;
+
+                       width = Background.Width;
+                       height = Background.Height;
+                       allocWidth = Allocation.Width;
+                       allocHeight = Allocation.Height;
+                       
+                       frame = new Pixbuf  (Colorspace.Rgb, false, 8, this.Allocation.Width,
+                                            this.Allocation.Height);
+                       
+                       ratio = Math.Min ((float) allocWidth / (float) width,
+                                                      (float) allocHeight / (float) height); 
+                                                      
+                       logoX = (int) ((allocWidth / 2) - (width * ratio / 2));
+                       logoY = (int) ((allocHeight / 2) - (height * ratio / 2));
+
+                       /* Scaling to available space */
+                       Background.Composite (frame, 0, 0, allocWidth, allocHeight,
+                                             logoX, logoY, ratio, ratio,
+                                             InterpType.Bilinear, 255);
+                                              
+                       /* Drawing our frame */
+                       frame.RenderToDrawable (drawingarea.GdkWindow, Style.BlackGC, 0, 0,
+                                               args.Event.Area.X, args.Event.Area.Y,
+                                               args.Event.Area.Width, args.Event.Area.Height,
+                                               RgbDither.Normal, args.Event.Area.X, args.Event.Area.Y);
+                       frame.Dispose ();
+                       return;
+               }
+       }
+}
+
diff --git a/LongoMatch.GUI/Gui/Component/ProjectListWidget.cs 
b/LongoMatch.GUI/Gui/Component/ProjectListWidget.cs
index 61d580d..c766a7d 100644
--- a/LongoMatch.GUI/Gui/Component/ProjectListWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/ProjectListWidget.cs
@@ -21,6 +21,7 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Linq;
 using Mono.Unix;
 using Gtk;
 
@@ -39,114 +40,86 @@ namespace LongoMatch.Gui.Component
        [System.ComponentModel.ToolboxItem(true)]
        public partial class ProjectListWidget : Gtk.Bin
        {
-
-               private Gtk.ListStore projectsListStore;
-               private List<ProjectDescription> projectsList;
-               private TreeModelFilter filter;
                public event ProjectsSelectedHandler ProjectsSelected;
-
+               public event ProjectSelectedHandler ProjectSelected;
+               
+               const int COL_DISPLAY_NAME = 0;
+               const int COL_PIXBUF = 1;
+               const int COL_PROJECT_DESCRIPTION = 2;
+               TreeModelFilter filter;
+               List<ProjectDescription> projects;
+               ListStore store;
 
                public ProjectListWidget()
                {
                        this.Build();
-                       projectsListStore = new Gtk.ListStore(typeof(Project));
-
-                       Gtk.TreeViewColumn fileDescriptionColumn = new Gtk.TreeViewColumn();
-                       fileDescriptionColumn.Title = Catalog.GetString("Filename");
-                       Gtk.CellRendererText filenameCell = new Gtk.CellRendererText();
-                       Gtk.CellRendererText filePropertiesCell = new Gtk.CellRendererText();
-                       Gtk.CellRendererPixbuf miniatureCell = new Gtk.CellRendererPixbuf();
-                       fileDescriptionColumn.PackStart(miniatureCell,false);
-                       fileDescriptionColumn.PackStart(filenameCell, true);
-                       fileDescriptionColumn.PackStart(filePropertiesCell, true);
-
-                       fileDescriptionColumn.SetCellDataFunc(filenameCell, new 
Gtk.TreeCellDataFunc(RenderName));
-                       fileDescriptionColumn.SetCellDataFunc(filePropertiesCell, new 
Gtk.TreeCellDataFunc(RenderProperties));
-                       fileDescriptionColumn.SetCellDataFunc(miniatureCell, new 
Gtk.TreeCellDataFunc(RenderPixbuf));
-
-                       treeview.AppendColumn(fileDescriptionColumn);
-                       treeview.EnableGridLines = TreeViewGridLines.Horizontal;
-                       treeview.HeadersVisible = false;
+                       
+                       //GtkGlue.EntrySetIcon (filterEntry, GtkGlue.EntryIconPosition.Secondary, 
"gtk-clear");
+                       store = CreateStore ();
+                       iconview.TextColumn = COL_DISPLAY_NAME;
+                       iconview.PixbufColumn = COL_PIXBUF;
+                       iconview.SelectionChanged += OnSelectionChanged;
+                       iconview.ItemActivated += HandleItemActivated;
+                       iconview.ItemWidth = 200;
                }
 
                public SelectionMode SelectionMode {
                        set {
-                               treeview.Selection.Mode = value;
+                               iconview.SelectionMode = value;
                        }
                }
-
-               public void RemoveProjects(List<ProjectDescription> projects) {
-                       /* FIXME: to delete projects from the treeview we need to remove the filter
-                        * and clear everything, otherwise we have seen several crashes trying
-                        * to render cells with an invalid iter. It's not very performant, but
-                        * it's safe. */
-                       treeview.Model = projectsListStore;
-                       projectsListStore.Clear();
-                       foreach(ProjectDescription project in projects)
-                               projectsList.Remove(project);
-                       Fill(projectsList);
+               
+               public void Fill (List<ProjectDescription> projects)
+               {
+                       this.projects = projects;
+                       store.Clear ();
+                       foreach (ProjectDescription pdesc in projects)
+                       {
+                               store.AppendValues (Describe (pdesc), pdesc.File.Preview.Value, pdesc);
+                       }
                }
 
-               public void Fill(List<ProjectDescription> projects) {
-                       projectsList = projects;
-                       projectsList.Sort();
-                       projectsListStore.Clear();
-                       foreach(ProjectDescription project in projectsList) {
-                               projectsListStore.AppendValues(project);
+               public void RemoveProjects(List<ProjectDescription> projects) {
+                       foreach (ProjectDescription project in projects) {
+                               this.projects.Remove(project);
                        }
-                       filter = new Gtk.TreeModelFilter(projectsListStore, null);
-                       filter.VisibleFunc = new Gtk.TreeModelFilterVisibleFunc(FilterTree);
-                       treeview.Model = filter;
-                       treeview.Selection.Mode = SelectionMode.Multiple;
-                       treeview.Selection.Changed += OnSelectionChanged;
+                       Fill (this.projects);
                }
 
                public void ClearSearch() {
                        filterEntry.Text="";
                }
-
-               private void RenderPixbuf(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel 
model, Gtk.TreeIter iter)
-               {
-                       ProjectDescription project = (ProjectDescription) model.GetValue(iter, 0);
-
-                       (cell as Gtk.CellRendererPixbuf).Pixbuf= project.File.Preview != null ? 
project.File.Preview.Value : null;
+               
+               string Describe (ProjectDescription project) {
+                       string ret;
+                       
+                       ret = project.Title;
+                       ret += String.Format ("\n {0} - {1} ({2}-{3})", project.LocalName,
+                                             project.VisitorName, project.LocalGoals,
+                                             project.VisitorGoals);
+                       ret += "\n" + project.Format;
+                       return ret;
                }
-
-               private void RenderProperties(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel 
model, Gtk.TreeIter iter)
+               
+               ListStore CreateStore ()
                {
-                       string text;
-                       ProjectDescription project = (ProjectDescription) model.GetValue(iter, 0);
-
-                       text = "\n"+"\n"+"\n"+"<b>"+Catalog.GetString("File length")+":</b>  " +
-                              (new Time {MSeconds = (int)project.File.Length}).ToSecondsString();
-                       text = text +"\n"+"<b>"+Catalog.GetString("Video codec")+":</b>  " + 
project.File.VideoCodec;
-                       text = text +"\n"+"<b>"+Catalog.GetString("Audio codec")+":</b>  " + 
project.File.AudioCodec;
-                       text = text +"\n"+"<b>"+Catalog.GetString("Format")+":</b>  " + project.Format;
-
-                       (cell as Gtk.CellRendererText).Markup = text;
+                       store = new ListStore (typeof (string), typeof (Gdk.Pixbuf), typeof 
(ProjectDescription));
+                       store.DefaultSortFunc = SortFunc;
+                       store.SetSortColumnId (COL_DISPLAY_NAME, SortType.Ascending);
+                       filter = new Gtk.TreeModelFilter (store, null);
+                       filter.VisibleFunc = new Gtk.TreeModelFilterVisibleFunc (FilterTree);
+                       iconview.Model = filter;
+                       return store;
                }
 
-               private void RenderName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel 
model, Gtk.TreeIter iter)
+               int SortFunc (TreeModel model, TreeIter a, TreeIter b)
                {
-                       string text;
-                       ProjectDescription project = (ProjectDescription) model.GetValue(iter, 0);
-
-                       text = "<b>"+Catalog.GetString("Title")+":</b>  " + GLib.Markup.EscapeText 
(project.Title);
-                       text = text +"\n"+"<b>"+Catalog.GetString("Local team")+":</b>  " + 
GLib.Markup.EscapeText (project.LocalName);
-                       text = text +"\n"+"<b>"+Catalog.GetString("Visitor team")+":</b>  " + 
GLib.Markup.EscapeText (project.VisitorName);
-                       text = text +"\n"+"<b>"+Catalog.GetString("Season")+":</b>  " + 
GLib.Markup.EscapeText (project.Season);
-                       text = text +"\n"+"<b>"+Catalog.GetString("Competition")+":</b>  " + 
GLib.Markup.EscapeText (project.Competition);
-                       text = text +"\n"+"<b>"+Catalog.GetString("Result")+":</b>  " + 
project.LocalGoals+"-"+ project.VisitorGoals;
-                       if (project.Title == Constants.FAKE_PROJECT) {
-                               text = text +"\n"+"<b>"+Catalog.GetString("Date")+":</b>  " + 
project.LastModified.ToShortDateString() +
-                                       " " + project.LastModified.ToShortTimeString();
-                       } else {
-                               text = text +"\n"+"<b>"+Catalog.GetString("Date")+":</b>  " + 
project.MatchDate.ToShortDateString();
-                       }
-
-                       (cell as Gtk.CellRendererText).Markup = text;
+                       ProjectDescription pa = (ProjectDescription) model.GetValue (a, 
COL_PROJECT_DESCRIPTION);
+                       ProjectDescription pb = (ProjectDescription) model.GetValue (b, 
COL_PROJECT_DESCRIPTION);
+                       
+                       return (int) (pa.LastModified.Ticks - pb.LastModified.Ticks);
                }
-
+               
                protected virtual void OnFilterentryChanged(object sender, System.EventArgs e)
                {
                        filter.Refilter();
@@ -154,7 +127,7 @@ namespace LongoMatch.Gui.Component
 
                private bool FilterTree(Gtk.TreeModel model, Gtk.TreeIter iter)
                {
-                       ProjectDescription project =(ProjectDescription) model.GetValue(iter, 0);
+                       ProjectDescription project =(ProjectDescription) model.GetValue(iter, 
COL_PROJECT_DESCRIPTION);
 
                        if(project == null)
                                return true;
@@ -181,15 +154,30 @@ namespace LongoMatch.Gui.Component
                        List<ProjectDescription> list;
                        TreePath[] pathArray;
 
-                       list = new List<ProjectDescription>();
-                       pathArray = treeview.Selection.GetSelectedRows();
+                       if(ProjectsSelected != null) {
+                               list = new List<ProjectDescription>();
+                               pathArray = iconview.SelectedItems;
+                               
+                               for(int i=0; i< pathArray.Length; i++) {
+                                       iconview.Model.GetIterFromString (out iter, pathArray[i].ToString());
+                                       list.Add ((ProjectDescription) iconview.Model.GetValue (iter, 
COL_PROJECT_DESCRIPTION));
+                               }
+                               ProjectsSelected (list);
+                       }
+               }
 
-                       for(int i=0; i< pathArray.Length; i++) {
-                               treeview.Model.GetIterFromString(out iter, pathArray[i].ToString());
-                               list.Add((ProjectDescription) treeview.Model.GetValue(iter, 0));
+               void HandleItemActivated (object o, ItemActivatedArgs args)
+               {
+                       TreeIter iter;
+                       ProjectDescription pdesc;
+                       
+                       if (ProjectSelected != null) {
+                               iconview.Model.GetIter (out iter, args.Path);
+                               pdesc = iconview.Model.GetValue (iter, COL_PROJECT_DESCRIPTION) as 
ProjectDescription;
+                               if (pdesc != null) {
+                                       ProjectSelected (pdesc);
+                               }
                        }
-                       if(ProjectsSelected != null)
-                               ProjectsSelected(list);
                }
        }
 }
diff --git a/LongoMatch.GUI/Gui/Component/TeamPlayersSelection.cs 
b/LongoMatch.GUI/Gui/Component/TeamPlayersSelection.cs
new file mode 100644
index 0000000..2681b4a
--- /dev/null
+++ b/LongoMatch.GUI/Gui/Component/TeamPlayersSelection.cs
@@ -0,0 +1,126 @@
+//
+//  Copyright (C) 2014 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 Gtk;
+using LongoMatch.Interfaces;
+using LongoMatch.Store.Templates;
+using LongoMatch.Store;
+using Gdk;
+
+namespace LongoMatch.Gui.Component
+{
+       [System.ComponentModel.ToolboxItem(true)]
+       public partial class TeamPlayersSelection : Gtk.Bin
+       {
+       
+               ITeamTemplatesProvider teamsTemplates;
+               TeamTemplate template;
+               ListStore teams, players;
+               
+               enum Columns {
+                       Desc,
+                       Number,
+                       Playing,
+                       Photo,
+                       Player,
+                       NumCols,
+               }
+               
+               public TeamPlayersSelection ()
+               {
+                       CellRendererToggle togglerenderer;
+                       CellRendererText textrenderer;
+                       
+                       this.Build ();
+                       teams = new ListStore (typeof(string));
+                       players = new ListStore (typeof(string), typeof(string), typeof(bool), 
typeof(Pixbuf), typeof(Player));
+                       teamscombobox.Model = teams;
+                       playersiconview.Model = players;
+                       teamscombobox.Changed += HandleChanged;
+                       
+                       togglerenderer = new CellRendererToggle ();
+                       togglerenderer.Radio = false;
+                       togglerenderer.Toggled += HandleToggled;
+                       textrenderer = new CellRendererText ();
+                       playersiconview.PixbufColumn = (int) Columns.Photo;
+                       playersiconview.TooltipColumn = (int) Columns.Desc;
+                       playersiconview.PackEnd (textrenderer, false);
+                       playersiconview.PackEnd (togglerenderer, false);
+                       playersiconview.SetAttributes (togglerenderer, "active", Columns.Playing);
+                       playersiconview.SetAttributes (textrenderer, "text", Columns.Number);
+                       playersiconview.Orientation = Orientation.Horizontal;
+                       playersiconview.SelectionMode = SelectionMode.None;
+               }
+
+               public ITeamTemplatesProvider TemplatesProvider {
+                       set {
+                               teamsTemplates = value;
+                               teams.Clear ();
+                               foreach (string name in teamsTemplates.TemplatesNames) {
+                                       teams.AppendValues (name);
+                               }
+                               teamscombobox.Active = 0;
+                       }
+               }
+               
+               public TeamTemplate Template {
+                       get {
+                               return template;
+                       }
+               }
+               
+               public void Load (string name) {
+                       if (name != null) {
+                               template = teamsTemplates.Load (name);
+                               if (template.Shield != null) {
+                                       shieldimage.Pixbuf = template.Shield.Value;
+                               }
+                               namelabel.Text = template.TeamName;
+                               players.Clear ();
+                               foreach (Player p in template) {
+                                       Pixbuf playerImage;
+                                       
+                                       if (p.Photo != null) {
+                                               playerImage = p.Photo.Value;
+                                       } else {
+                                               playerImage = Stetic.IconLoader.LoadIcon (this, 
"stock_person", IconSize.Dialog);
+                                       }
+                                       players.AppendValues (String.Format("{0} {1}", p.Name, p.Number),
+                                                             p.Number.ToString(), p.Playing, playerImage, p);
+                               }
+                       }
+               }
+               
+               void HandleChanged (object sender, EventArgs e)
+               {
+                       Load (teamscombobox.ActiveText);
+               }
+               
+               void HandleToggled (object o, ToggledArgs args)
+               {
+                       Player player;
+                       TreeIter iter;
+                       
+                       playersiconview.Model.GetIterFromString (out iter, args.Path);
+                       player = playersiconview.Model.GetValue (iter, (int) Columns.Player) as Player;
+                       player.Playing = !(o as CellRendererToggle).Active;
+                       playersiconview.Model.SetValue (iter, (int) Columns.Playing, player.Playing);
+               }
+       }
+}
+
diff --git a/LongoMatch.GUI/Gui/GUIToolkit.cs b/LongoMatch.GUI/Gui/GUIToolkit.cs
index 3574b8a..75af3e8 100644
--- a/LongoMatch.GUI/Gui/GUIToolkit.cs
+++ b/LongoMatch.GUI/Gui/GUIToolkit.cs
@@ -34,6 +34,8 @@ using LongoMatch.Store.Templates;
 using LongoMatch.Video.Utils;
 using LongoMatch.Gui.Helpers;
 using LongoMatch.Stats;
+using LongoMatch.Gui.Panel;
+using LongoMatch.Interfaces.Multimedia;
 
 namespace LongoMatch.Gui
 {
@@ -131,6 +133,7 @@ namespace LongoMatch.Gui
                        List<EditionJob> jobs = new List<EditionJob>();
                        int response;
                        
+                       Log.Information ("Configure rendering job");
                        if (playlist.Count == 0) {
                                WarningMessage(Catalog.GetString("The playlist you want to render is 
empty."));
                                return null;
@@ -178,7 +181,7 @@ namespace LongoMatch.Gui
                        string seriesName;
                        string outDir;
 
-
+                       Log.Information ("Export frame series");
                        sd= new SnapshotsDialog();
                        sd.TransientFor= mainWindow as Gtk.Window;
                        sd.Play = play.Name;
@@ -202,6 +205,7 @@ namespace LongoMatch.Gui
                
                public void TagPlay (Play play, Categories categories, TeamTemplate local, TeamTemplate 
visitor, bool showAllTags) {
                        TaggerDialog tg = new TaggerDialog(play, categories, local, visitor, showAllTags);
+                       Log.Information ("Tag play");
                        tg.TransientFor = mainWindow as Gtk.Window;
                        tg.Run();
                        tg.Destroy();
@@ -210,6 +214,7 @@ namespace LongoMatch.Gui
                public void DrawingTool (Image image, Play play, int stopTime) {
                        DrawingTool dialog = new DrawingTool();
 
+                       Log.Information ("Drawing tool");
                        dialog.Image = image.Value;
                        if (play != null)
                                dialog.SetPlay(play, stopTime);
@@ -219,22 +224,16 @@ namespace LongoMatch.Gui
                        dialog.Destroy();       
                }
                
-               public ProjectDescription SelectProject(List<ProjectDescription> projects) {
-                       ProjectDescription project = null;
-                       OpenProjectDialog opd = new OpenProjectDialog();
-                       
-                       opd.Fill(projects);     
-                       opd.TransientFor = mainWindow as Gtk.Window;
-                       if(opd.Run() == (int)ResponseType.Ok)
-                               project = opd.SelectedProject;
-                       opd.Destroy();
-                       return project;
+               public void SelectProject(List<ProjectDescription> projects) {
+                       Log.Information ("Select project");
+                       mainWindow.SelectProject (projects);
                }
                
                public void OpenCategoriesTemplatesManager(ITemplatesService ts)
                {
                        var tManager = new TemplatesManager<Categories, Category> 
(ts.CategoriesTemplateProvider,
                                                                                   new 
CategoriesTemplateEditorWidget(ts));
+                       Log.Information ("Open sports templates manager");
                        tManager.TransientFor = mainWindow as Gtk.Window;
                        tManager.Show();
                }
@@ -243,6 +242,7 @@ namespace LongoMatch.Gui
                {
                        var tManager = new TemplatesManager<TeamTemplate, Player> (teamProvider,
                                                                                   new 
TeamTemplateEditorWidget(teamProvider));
+                       Log.Information ("Open teams templates manager");
                        tManager.TransientFor = mainWindow as Gtk.Window;
                        tManager.Show();
                }
@@ -250,6 +250,7 @@ namespace LongoMatch.Gui
                public void OpenProjectsManager(Project openedProject, IDatabase db, ITemplatesService ts)
                {
                        Gui.Dialog.ProjectsManager pm = new Gui.Dialog.ProjectsManager(openedProject, db, ts);
+                       Log.Information ("Open projects manager");
                        pm.TransientFor = mainWindow as Gtk.Window;
                        pm.Show();
                }
@@ -257,6 +258,7 @@ namespace LongoMatch.Gui
                public void OpenPreferencesEditor()
                {
                        PropertiesEditor pe = new PropertiesEditor();
+                       Log.Information ("Open preferences");
                        pe.TransientFor = mainWindow as Gtk.Window;
                        pe.Run();
                        pe.Destroy();
@@ -265,6 +267,7 @@ namespace LongoMatch.Gui
                public void OpenDatabasesManager(IDataBaseManager manager)
                {
                        DatabasesManager dm = new DatabasesManager (manager);
+                       Log.Information ("Open db manager");
                        dm.TransientFor = mainWindow as Gtk.Window;
                        dm.Run();
                        dm.Destroy();
@@ -272,93 +275,31 @@ namespace LongoMatch.Gui
                
                public void ManageJobs(IRenderingJobsManager manager) {
                        RenderingJobsDialog dialog = new RenderingJobsDialog(manager);
+                       Log.Information ("Manage jobs");
                        dialog.TransientFor = mainWindow as Gtk.Window;
                        dialog.Run();
                        dialog.Destroy();
                }
                
-               public ProjectType SelectNewProjectType () {
-                       ProjectSelectionDialog psd;
-                       int response;
-
-                       psd = new ProjectSelectionDialog();
-                       psd.TransientFor = mainWindow as Gtk.Window;;
-                       response = psd.Run();
-                       psd.Destroy();
-                       if(response != (int)ResponseType.Ok)
-                               return ProjectType.None;
-                       return psd.ProjectType;
-               }
-               
-               public Project NewCaptureProject(IDatabase db, ITemplatesService ts,
-                       List<LongoMatch.Common.Device> devices, out CaptureSettings captureSettings)
-               {
-                       return NewProject(db, null, ProjectType.CaptureProject, ts, devices, out 
captureSettings);
-               }
-               
-               public Project NewURICaptureProject(IDatabase db, ITemplatesService ts,
-                                                   out CaptureSettings captureSettings)
-               {
-                       return NewProject(db, null, ProjectType.URICaptureProject, ts, null, out 
captureSettings);
-               }
-               
-               public Project NewFakeProject(IDatabase db, ITemplatesService ts) {
-                       CaptureSettings captureSettings = new CaptureSettings();
-                       return NewProject(db, null, ProjectType.FakeCaptureProject, ts, null, out 
captureSettings);
-               }
-               
-               public Project NewFileProject(IDatabase db, ITemplatesService ts) {
-                       CaptureSettings captureSettings = new CaptureSettings();
-                       return NewProject(db, null, ProjectType.FileProject, ts, null, out captureSettings);
-               }
-               
-               public Project EditFakeProject(IDatabase db, Project project, ITemplatesService ts) {
-                       CaptureSettings captureSettings = new CaptureSettings();
-                       return NewProject(db, project, ProjectType.EditProject, ts, null, out 
captureSettings);
-               }
-               
-               public IBusyDialog BusyDialog(string message) {
+               public IBusyDialog BusyDialog(string message, object parent=null) {
                        BusyDialog dialog;
 
                        dialog = new BusyDialog();
-                       dialog.TransientFor = mainWindow as Gtk.Window;
+                       if (parent != null) {
+                               dialog.TransientFor = (parent as Widget).Toplevel as Gtk.Window;
+                       } else {
+                               dialog.TransientFor = mainWindow as Gtk.Window;
+                       }
                        dialog.Message = message; 
                        return dialog;
                }
                
-               Project NewProject(IDatabase db, Project project, ProjectType type,
-                       ITemplatesService tps, List<LongoMatch.Common.Device> devices, out CaptureSettings 
captureSettings)
-               {
-                       NewProjectDialog npd = new NewProjectDialog();
-                       
-                       npd.TransientFor = mainWindow as Gtk.Window;
-                       npd.Use = type;
-                       npd.TemplatesService = tps;
-                       npd.Project = project;
-                       if(type == ProjectType.CaptureProject)
-                               npd.Devices = devices;
-                       int response = npd.Run();
-                       while(true) {
-                               if(response != (int)ResponseType.Ok) {
-                                       project = null;
-                                       break;
-                               } else if(npd.Project == null) {
-                                       InfoMessage(Catalog.GetString("Please, select a video file."));
-                                       response=npd.Run();
-                               } else {
-                                       project = npd.Project;
-                                       break;
-                               }
-                       }       
-                       if (type == ProjectType.CaptureProject || type == ProjectType.URICaptureProject)
-                               captureSettings = npd.CaptureSettings;
-                       else
-                               captureSettings = new CaptureSettings();
-                       npd.Destroy();
-                       return project;
+               public void CreateNewProject(ITemplatesService tps, IMultimediaToolkit toolkit, Project 
project=null) {
+                       mainWindow.CreateNewProject (tps, toolkit, project);
                }
                
                public void ShowProjectStats (Project project) {
+                       Log.Information ("Show project stats");
                        StatsViewer dialog = new StatsViewer ();
                        dialog.LoadStats (project);
                        dialog.TransientFor = mainWindow as Gtk.Window;
@@ -368,6 +309,7 @@ namespace LongoMatch.Gui
                }
                
                public string RemuxFile (string inputFile, string outputFile, VideoMuxerType muxer) {
+                       Log.Information ("Remux file");
                        Remuxer remuxer = new Remuxer (PreviewMediaFile.DiscoverFile(inputFile),
                                                       outputFile, muxer);
                        return remuxer.Remux (mainWindow as Gtk.Window);
@@ -378,16 +320,19 @@ namespace LongoMatch.Gui
                                             out IAnalysisWindow analysisWindow,
                                             out IProjectOptionsController projectOptionsController)
                {
+                       Log.Information ("Open project");
                        analysisWindow = mainWindow.SetProject (project, projectType, props, filter);
                        projectOptionsController = mainWindow;
                }
                
                public void CloseProject ()
                {
+                       Log.Information ("Close project");
                        mainWindow.CloseProject ();
                }
                
                public void Quit () {
+                       Log.Information ("Quit application");
                        Gtk.Application.Quit ();
                }
        }
diff --git a/LongoMatch.GUI/Gui/MainWindow.cs b/LongoMatch.GUI/Gui/MainWindow.cs
index f275f8e..05f5542 100644
--- a/LongoMatch.GUI/Gui/MainWindow.cs
+++ b/LongoMatch.GUI/Gui/MainWindow.cs
@@ -36,6 +36,8 @@ using LongoMatch.Store.Templates;
 using LongoMatch.Video.Common;
 using LongoMatch.Gui.Component;
 using LongoMatch.Gui.Helpers;
+using LongoMatch.Gui.Panel;
+using LongoMatch.Interfaces.Multimedia;
 
 
 namespace LongoMatch.Gui
@@ -46,7 +48,9 @@ namespace LongoMatch.Gui
        {
                /* IMainController */
                public event NewProjectHandler NewProjectEvent;
+               public event OpenNewProjectHandler OpenNewProjectEvent;
                public event OpenProjectHandler OpenProjectEvent;
+               public event OpenProjectIDHandler OpenProjectIDEvent;
                public event ImportProjectHandler ImportProjectEvent;
                public event ExportProjectHandler ExportProjectEvent;
                public event QuitApplicationHandler QuitApplicationEvent;
@@ -82,6 +86,8 @@ namespace LongoMatch.Gui
                        
                        this.Build();
                        this.guiToolKit = guiToolkit;
+                       welcomepanel1.Bind (this);
+                       
                        Title = Constants.SOFTWARE_NAME;
                        TagSubcategoriesAction.Active = !Config.FastTagging;
                        projectType = ProjectType.None;
@@ -112,6 +118,21 @@ namespace LongoMatch.Gui
                        }
                }
                
+               public void SetPanel (Widget panel) {
+                       if (panel == null) {
+                               ResetGUI ();
+                       } else {
+                               foreach (Widget widget in centralbox.AllChildren) {
+                                       if (widget != welcomepanel1) {
+                                               centralbox.Remove (widget);
+                                       }
+                               }
+                               panel.Show();
+                               centralbox.PackStart (panel, true, true, 0);
+                               welcomepanel1.Hide ();
+                       }
+               }
+               
                public void AddExportEntry (string name, string shortName, Action<Project, IGUIToolkit> 
exportAction) {
                        MenuItem parent = (MenuItem) 
this.UIManager.GetWidget("/menubar1/ToolsAction/ExportProjectAction1");
                        
@@ -144,8 +165,7 @@ namespace LongoMatch.Gui
                        }
                        MakeActionsSensitive(true, projectType);
                        analysisWindow.SetProject (project, projectType, props, filter);
-                       (analysisWindow as Gtk.Widget).Show();
-                       centralbox.PackStart (analysisWindow as Gtk.Widget, true, true, 0);
+                       SetPanel (analysisWindow as Widget);
                        return analysisWindow;
                }
                
@@ -156,6 +176,21 @@ namespace LongoMatch.Gui
                        ResetGUI ();
                }
                
+               public void SelectProject (List<ProjectDescription> projects) {
+                       OpenProjectPanel panel  = new OpenProjectPanel ();
+                       panel.Projects = projects;
+                       panel.BackEvent += ResetGUI;
+                       panel.OpenProjectEvent += EmitOpenProjectID;
+                       SetPanel (panel);
+               }
+               
+               public void CreateNewProject (ITemplatesService tps, IMultimediaToolkit mtoolkit, Project 
project) {
+                       NewProjectPanel panel = new NewProjectPanel (tps, guiToolKit, mtoolkit, project);
+                       panel.CancelEvent += ResetGUI;
+                       panel.OpenNewProjectEvent += EmitOpenNewProject;
+                       SetPanel (panel);
+               }
+
                #endregion
                
                #region Private Methods
@@ -188,6 +223,12 @@ namespace LongoMatch.Gui
                private void ResetGUI() {
                        Title = Constants.SOFTWARE_NAME;
                        MakeActionsSensitive(false, projectType);
+                       foreach (Widget widget in centralbox.AllChildren) {
+                               if (widget != welcomepanel1) {
+                                       centralbox.Remove (widget);
+                               }
+                       }
+                       welcomepanel1.Show ();
                }
 
                private void MakeActionsSensitive(bool sensitive, ProjectType projectType) {
@@ -223,14 +264,12 @@ namespace LongoMatch.Gui
                #region File
                protected virtual void OnNewActivated(object sender, System.EventArgs e)
                {
-                       if (NewProjectEvent != null)
-                               NewProjectEvent();
+                       EmitNewProject();
                }
 
                protected virtual void OnOpenActivated(object sender, System.EventArgs e)
                {
-                       if(OpenProjectEvent != null)
-                               OpenProjectEvent();
+                       EmitOpenProject();
                }
                #endregion
                
@@ -335,59 +374,83 @@ namespace LongoMatch.Gui
 
                #region Events
                
-               private void EmitEditPreferences ()
+               public void EmitNewProject () {
+                       if (NewProjectEvent != null)
+                               NewProjectEvent();
+               }
+               
+               public void EmitOpenProject () {
+                       if(OpenProjectEvent != null)
+                               OpenProjectEvent();
+               }
+                               
+               public void EmitEditPreferences ()
                {
                        if (EditPreferencesEvent != null)
                                EditPreferencesEvent();
                }
                
-               private void EmitSaveProject() {
+               public void EmitManageJobs() {
+                       if(ManageJobsEvent != null)
+                               ManageJobsEvent();
+               }
+               
+               public void EmitManageTeams() {
+                       if(ManageTeamsEvent != null)
+                               ManageTeamsEvent();
+               }
+               
+               public void EmitManageProjects()
+               {
+                       if (ManageProjectsEvent != null)
+                               ManageProjectsEvent();
+               }
+               
+               public void EmitManageDatabases()
+               {
+                       if (ManageDatabasesEvent != null)
+                               ManageDatabasesEvent();
+               }
+               
+               public void EmitManageCategories() {
+                       if(ManageCategoriesEvent != null)
+                               ManageCategoriesEvent();
+               }
+               
+               void EmitSaveProject() {
                        if (SaveProjectEvent != null)
                                SaveProjectEvent(openedProject, projectType);
                }
                
-               private void EmitCloseOpenedProject() {
+               void EmitCloseOpenedProject() {
                        if (CloseOpenedProjectEvent != null)
                                CloseOpenedProjectEvent ();
                }
                
-               private void EmitImportProject(string name, string filterName, string filter,
+               void EmitImportProject(string name, string filterName, string filter,
                                               Func<string, Project> func, bool requiresNewFile) {
                        if (ImportProjectEvent != null)
                                ImportProjectEvent(name, filterName, filter, func, requiresNewFile);
                }
                
-               private void EmitExportProject() {
+               void EmitExportProject() {
                        if(ExportProjectEvent != null)
                                ExportProjectEvent();
                }
                
-               private void EmitManageJobs() {
-                       if(ManageJobsEvent != null)
-                               ManageJobsEvent();
-               }
-               
-               private void EmitManageTeams() {
-                       if(ManageTeamsEvent != null)
-                               ManageTeamsEvent();
-               }
-               
-               private void EmitManageCategories() {
-                       if(ManageCategoriesEvent != null)
-                               ManageCategoriesEvent();
+               void EmitOpenProjectID (Guid projectID ) {
+                       if (OpenProjectIDEvent != null) {
+                               OpenProjectIDEvent (projectID);
+                       }
                }
                
-               private void EmitManageProjects()
+               void EmitOpenNewProject (Project project, ProjectType projectType, CaptureSettings 
captureSettings)
                {
-                       if (ManageProjectsEvent != null)
-                               ManageProjectsEvent();
+                       if (OpenNewProjectEvent != null) {
+                               OpenNewProjectEvent (project, projectType, captureSettings);
+                       }
                }
                
-               private void EmitManageDatabases()
-               {
-                       if (ManageDatabasesEvent != null)
-                               ManageDatabasesEvent();
-               }
                #endregion
        }
 }
diff --git a/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs b/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
new file mode 100644
index 0000000..e27c074
--- /dev/null
+++ b/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
@@ -0,0 +1,346 @@
+//
+//  Copyright (C) 2014 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.Handlers;
+using LongoMatch.Interfaces;
+using LongoMatch.Interfaces.Multimedia;
+using LongoMatch.Store;
+using LongoMatch.Common;
+using LongoMatch.Store.Templates;
+using LongoMatch.Multimedia.Utils;
+using Misc = LongoMatch.Gui.Helpers.Misc;
+using Mono.Unix;
+using LongoMatch.Gui.Popup;
+using LongoMatch.Gui.Dialog;
+using LongoMatch.Gui.Helpers;
+using LongoMatch.Video.Utils;
+using LongoMatch.Utils;
+using LongoMatch.Interfaces.GUI;
+
+using Device = LongoMatch.Common.Device;
+
+namespace LongoMatch.Gui.Panel
+{
+       [System.ComponentModel.ToolboxItem(true)]
+       public partial class NewProjectPanel : Gtk.Bin
+       {
+               public event BackEventHandle CancelEvent;
+               public event OpenNewProjectHandler OpenNewProjectEvent;
+               
+               const int PROJECT_TYPE = 0;
+               const int PROJECT_DETAILS = 1;
+               
+               Project project;
+               ProjectType projectType;
+               ITemplatesService tps;
+               List<Device> videoDevices;
+               ListStore videoStandardList, encProfileList, qualList;
+               CalendarPopup cp;
+               Win32CalendarDialog win32CP;
+               MediaFile mediaFile;
+               IMultimediaToolkit mtoolkit;
+               IGUIToolkit gtoolkit;
+               Color red;
+               
+               public NewProjectPanel (ITemplatesService tps, IGUIToolkit gtoolkit,
+                                       IMultimediaToolkit mtoolkit, Project project)
+               {
+                       this.Build ();
+                       this.tps = tps;
+                       this.mtoolkit = mtoolkit;
+                       this.gtoolkit = gtoolkit;
+                       notebook1.ShowTabs = false;
+                       notebook1.ShowBorder = false;
+                       backgroundwidget.Background = Gdk.Pixbuf.LoadFromResource 
(Constants.BACKGROUND).RotateSimple (Gdk.PixbufRotation.Counterclockwise);
+                       backgroundwidget.WidthRequest = 200;
+                       nextbutton.Clicked += HandleNextClicked;
+                       backbutton.Clicked += HandleBackClicked;
+                       if (project == null) {
+                               notebook1.Page = 0;
+                               this.project = new Project {Description = new ProjectDescription ()};
+                               this.project.Description.MatchDate = DateTime.Now;
+                       } else {
+                               notebook1.Page = 1;
+                               this.project = project;
+                       }
+                       localteamplayersselection.TemplatesProvider = tps.TeamTemplateProvider;
+                       awayteamplayersselection.TemplatesProvider = tps.TeamTemplateProvider;
+                       ConnectSignals ();
+                       FillProjectDetails ();
+                       FillCategories ();
+                       FillFormats ();
+                       FillDevices (mtoolkit.VideoDevices);
+                       Color.Parse ("red", ref red);
+                       outputfilelabel.ModifyFg (StateType.Normal, red);
+                       Color.Parse ("red", ref red);
+                       urilabel.ModifyFg (StateType.Normal, red);
+                       Color.Parse ("red", ref red);
+                       filelabel.ModifyFg (StateType.Normal, red);
+               }
+               
+               void ConnectSignals () {
+                       if(Environment.OSVersion.Platform != PlatformID.Win32NT) {
+                               cp = new CalendarPopup();
+                               cp.Hide();
+                               cp.DateSelectedEvent += (selectedDate) => {
+                                       dateEntry.Text = selectedDate.ToShortDateString();};
+                       }
+                       
+                       calendarbutton.Clicked += HandleCalendarbuttonClicked; 
+                       openbutton.Clicked += HandleOpenbuttonClicked;
+                       savebutton.Clicked += HandleSavebuttonClicked;
+                       urientry.Changed += HandleEntryChanged;
+                       fileEntry.Changed += HandleEntryChanged;
+                       outfileEntry.Changed += HandleEntryChanged;
+                       createbutton.Clicked += HandleCreateProject;
+               }
+
+               void FillProjectDetails () {
+                       seasonentry.Text = project.Description.Season;
+                       competitionentry.Text = project.Description.Competition;
+                       dateEntry.Text = project.Description.MatchDate.ToShortDateString();
+                       localSpinButton.Value = project.Description.LocalGoals;
+                       visitorSpinButton.Value = project.Description.VisitorGoals;
+               }
+               
+               void FillCategories() {
+                       int i=0;
+                       int index = 0;
+
+                       foreach(string template in tps.CategoriesTemplateProvider.TemplatesNames) {
+                               tagscombobox.AppendText(template);
+                               if(template == "default")
+                                       index = i;
+                               i++;
+                       }
+                       tagscombobox.Active = index;
+               }
+               
+               void SetProjectType ()
+               {
+                       bool filemode = false, urimode = false, capturemode = false;
+                       
+                       if (fromfileradiobutton.Active) {
+                               projectType = ProjectType.FileProject;
+                               filemode = true;
+                       } else if (liveradiobutton.Active) {
+                               projectType = ProjectType.CaptureProject;
+                               capturemode = true;
+                       } else if (fakeliveradiobutton.Active) {
+                               projectType = ProjectType.FakeCaptureProject;
+                       } else if (uriliveradiobutton.Active) {
+                               projectType = ProjectType.URICaptureProject;
+                               urimode = true;
+                       }
+                       filetable.Visible = filemode;
+                       outputfiletable.Visible = capturemode || urimode;
+                       capturetable.Visible = capturemode || urimode;
+                       urientry.Visible = urimode;
+                       urilabel.Visible = urimode;
+                       device.Visible = capturemode;
+                       devicecombobox.Visible = capturemode;
+               }
+               
+               void FillFormats() {
+                       videoStandardList = Misc.FillImageFormat (imagecombobox, Config.CaptureVideoStandard);
+                       encProfileList = Misc.FillEncodingFormat (encodingcombobox, 
Config.CaptureEncodingProfile);
+                       qualList = Misc.FillQuality (qualitycombobox, Config.CaptureEncodingQuality);
+               }
+               
+               public void FillDevices(List<Device> devices) {
+                       videoDevices = devices;
+
+                       foreach(Device device in devices) {
+                               string deviceElement, deviceName;
+
+                               if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
+                                       deviceElement = Catalog.GetString("DirectShow source");
+                               } else {
+                                       if(device.DeviceType == CaptureSourceType.DV)
+                                               deviceElement = Catalog.GetString(Catalog.GetString("DV 
source"));
+                                       else if (device.DeviceType == CaptureSourceType.System) {
+                                               deviceElement = Catalog.GetString(Catalog.GetString("System 
source"));
+                                       } else {
+                                               deviceElement = Catalog.GetString(Catalog.GetString("GConf 
source"));
+                                       }
+                               }
+                               deviceName = (device.ID == "") ? Catalog.GetString("Unknown"): device.ID;
+                               devicecombobox.AppendText(deviceName + " ("+deviceElement+")");
+                               devicecombobox.Active = 0;
+                       }
+               }
+
+               void HandleCalendarbuttonClicked(object sender, System.EventArgs e)
+               {
+                       if(Environment.OSVersion.Platform == PlatformID.Win32NT) {
+                               win32CP = new Win32CalendarDialog();
+                               win32CP.TransientFor = (Gtk.Window)this.Toplevel;
+                               win32CP.Run();
+                               dateEntry.Text = win32CP.getSelectedDate().ToShortDateString();
+                               win32CP.Destroy();
+                       }
+                       else {
+                               cp.TransientFor=(Gtk.Window)this.Toplevel;
+                               cp.Show();
+                       }
+               }
+
+               void HandleSavebuttonClicked(object sender, System.EventArgs e)
+               {
+                       string filename;
+                               
+                       filename = FileChooserHelper.SaveFile (this, Catalog.GetString("Output file"),
+                                                              "Capture.mp4", Config.VideosDir, "MP4",
+                                                              new string[] {"*.mp4"});
+                       if (filename != null) {
+                               outfileEntry.Text = System.IO.Path.ChangeExtension(filename, "mp4");
+                       }
+               }
+
+               void HandleOpenbuttonClicked(object sender, System.EventArgs e)
+               {
+                       mediaFile = Open.OpenFile (gtoolkit, mtoolkit, this);
+                       if (mediaFile != null) {
+                               fileEntry.Text = mediaFile.FilePath;
+                       }
+               }
+               
+               void HandleEntryChanged (object sender, EventArgs e)
+               {
+                       if (fileEntry.Text != "") {
+                               filelabel.ModifyFg (StateType.Normal);
+                       } else {
+                               filelabel.ModifyFg (StateType.Normal, red);
+                       }
+                       if (urientry.Text != "") {
+                               urilabel.ModifyFg (StateType.Normal);
+                       } else {
+                               urilabel.ModifyFg (StateType.Normal, red);
+                       }
+                       if (outfileEntry.Text != "") {
+                               outputfilelabel.ModifyFg (StateType.Normal);
+                       } else {
+                               outputfilelabel.ModifyFg (StateType.Normal, red);
+                       }
+                       QueueDraw ();
+               }
+
+               void HandleCreateProject (object sender, EventArgs e)
+               {
+                       CaptureSettings captureSettings;
+                       EncodingSettings encSettings;
+                       TreeIter iter;
+                       Project p;
+                       
+                       if (projectType == ProjectType.FileProject) {
+                               if (fileEntry.Text == "") {
+                                       gtoolkit.WarningMessage (Catalog.GetString ("No input video file"));
+                                       return;
+                               }
+                       }
+                       if (projectType == ProjectType.CaptureProject ||
+                           projectType == ProjectType.URICaptureProject) {
+                               if (outfileEntry.Text == "") {
+                                       gtoolkit.WarningMessage (Catalog.GetString ("No output video file"));
+                                       return;
+                               }
+                       }
+                       if (projectType == ProjectType.URICaptureProject) {
+                               if (urientry.Text == "") {
+                                       gtoolkit.WarningMessage (Catalog.GetString ("No input URI"));
+                                       return;
+                               }
+                       }
+                       p = new Project ();
+                       p.Categories = tps.CategoriesTemplateProvider.Load(tagscombobox.ActiveText);
+                       p.LocalTeamTemplate = localteamplayersselection.Template;
+                       p.VisitorTeamTemplate = awayteamplayersselection.Template;
+                       p.Description = new ProjectDescription ();
+                       p.Description.Competition = competitionentry.Text;
+                       p.Description.File = mediaFile;
+                       p.Description.LocalGoals = (int) localSpinButton.Value;
+                       p.Description.VisitorGoals = (int) visitorSpinButton.Value;
+                       p.Description.MatchDate = DateTime.Parse (dateEntry.Text);
+                       p.Description.Season = seasonentry.Text;
+                       p.Description.LocalName = p.LocalTeamTemplate.TeamName;
+                       p.Description.VisitorName = p.VisitorTeamTemplate.TeamName;
+                       
+                       encSettings = new EncodingSettings();
+                       captureSettings = new CaptureSettings();
+                               
+                       encSettings.OutputFile = fileEntry.Text;
+                       if (projectType == ProjectType.CaptureProject) {
+                               captureSettings.CaptureSourceType = 
videoDevices[devicecombobox.Active].DeviceType;
+                               captureSettings.DeviceID = videoDevices[devicecombobox.Active].ID;
+                       } else if (projectType == ProjectType.URICaptureProject) {
+                               captureSettings.CaptureSourceType = CaptureSourceType.URI;
+                               captureSettings.DeviceID = urientry.Text;
+                       }
+                               
+                       /* Get quality info */
+                       qualitycombobox.GetActiveIter(out iter);
+                       encSettings.EncodingQuality = (EncodingQuality) qualList.GetValue(iter, 1);
+                       
+                       /* Get size info */
+                       imagecombobox.GetActiveIter(out iter);
+                       encSettings.VideoStandard = (VideoStandard) videoStandardList.GetValue(iter, 1);
+                       
+                       /* Get encoding profile info */
+                       encodingcombobox.GetActiveIter(out iter);
+                       encSettings.EncodingProfile = (EncodingProfile) encProfileList.GetValue(iter, 1);
+                       
+                       encSettings.Framerate_n = Config.FPS_N;
+                       encSettings.Framerate_d = Config.FPS_D;
+                       
+                       captureSettings.EncodingSettings = encSettings;
+                               
+                       if (OpenNewProjectEvent != null) {
+                               OpenNewProjectEvent (p, projectType, captureSettings);
+                       }
+               }
+
+               void HandleBackClicked (object sender, EventArgs e)
+               {
+                       if (notebook1.Page == PROJECT_TYPE) {
+                               if (CancelEvent != null) {
+                                       CancelEvent ();
+                               }
+                       } else {
+                               notebook1.Page --;
+                               nextbutton.Visible = true;
+                               createbutton.Visible = false;
+                       }
+               }
+
+               void HandleNextClicked (object sender, EventArgs e)
+               {
+                       if (notebook1.Page == PROJECT_TYPE) {
+                               SetProjectType ();      
+                       }
+                       notebook1.Page ++;
+                       if (notebook1.Page == PROJECT_DETAILS) {
+                               nextbutton.Visible = false;
+                               createbutton.Visible = true;
+                       }
+               }
+       }
+}
+
diff --git a/LongoMatch.GUI/Gui/Panel/OpenProjectPanel.cs b/LongoMatch.GUI/Gui/Panel/OpenProjectPanel.cs
new file mode 100644
index 0000000..c96483f
--- /dev/null
+++ b/LongoMatch.GUI/Gui/Panel/OpenProjectPanel.cs
@@ -0,0 +1,61 @@
+//
+//  Copyright (C) 2014 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 LongoMatch.Handlers;
+using LongoMatch.Gui;
+using LongoMatch.Store;
+
+namespace LongoMatch.Gui.Panel
+{
+       [System.ComponentModel.ToolboxItem(true)]
+       public partial class OpenProjectPanel : Gtk.Bin
+       {
+               public event OpenProjectIDHandler OpenProjectEvent;
+               public event BackEventHandle BackEvent;
+
+               public OpenProjectPanel ()
+               {
+                       this.Build ();
+                       
+                       projectlistwidget.ProjectSelected += HandleProjectSelected;
+                       projectlistwidget.SelectionMode = SelectionMode.Single;
+                       backbutton.Clicked += HandleClicked;
+               }
+
+               public List<ProjectDescription> Projects{
+                       set {
+                               projectlistwidget.Fill (value);
+                       }
+               }
+               
+               void HandleClicked (object sender, EventArgs e)
+               {
+                       if (BackEvent != null)
+                               BackEvent ();
+               }
+
+               void HandleProjectSelected (ProjectDescription project)
+               {
+                       if (OpenProjectEvent != null)
+                               OpenProjectEvent (project.UUID);
+               }
+       }
+}
+
diff --git a/LongoMatch.GUI/Gui/Panel/WelcomePanel.cs b/LongoMatch.GUI/Gui/Panel/WelcomePanel.cs
new file mode 100644
index 0000000..756d2b8
--- /dev/null
+++ b/LongoMatch.GUI/Gui/Panel/WelcomePanel.cs
@@ -0,0 +1,44 @@
+//
+//  Copyright (C) 2014 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 LongoMatch.Handlers;
+using LongoMatch.Common;
+
+namespace LongoMatch.Gui.Panel
+{
+       [System.ComponentModel.ToolboxItem(true)]
+       public partial class WelcomePanel : Gtk.Bin
+       {
+               public WelcomePanel ()
+               {
+                       this.Build ();
+                       backgroundwidget.Background = Gdk.Pixbuf.LoadFromResource (Constants.BACKGROUND);
+               }
+               
+               public void Bind (MainWindow window)
+               {
+                       openbutton.Clicked += (sender, e) => {window.EmitOpenProject ();};
+                       newbutton.Clicked += (sender, e) => {window.EmitNewProject ();};
+                       teamsbutton.Clicked += (sender, e) => {window.EmitManageTeams ();};
+                       sportsbutton.Clicked += (sender, e) => {window.EmitManageCategories ();};
+                   preferencesbutton.Clicked += (sender, e) => {window.EmitEditPreferences ();};
+                   projectsbutton.Clicked += (sender, e) =>  {window.EmitManageProjects ();};
+               }
+       }
+}
+
diff --git a/LongoMatch.GUI/LongoMatch.GUI.mdp b/LongoMatch.GUI/LongoMatch.GUI.mdp
index a3c4204..ffb40b7 100644
--- a/LongoMatch.GUI/LongoMatch.GUI.mdp
+++ b/LongoMatch.GUI/LongoMatch.GUI.mdp
@@ -202,6 +202,19 @@
     <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Component.ButtonTagger.cs" />
     <File subtype="Code" buildaction="Compile" name="Gui/Component/AnalysisComponent.cs" />
     <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Component.AnalysisComponent.cs" 
/>
+    <File subtype="Code" buildaction="EmbedAsResource" name="../images/background.svg" />
+    <File subtype="Directory" buildaction="Compile" name="Gui/Panel" />
+    <File subtype="Code" buildaction="Compile" name="Gui/Panel/WelcomePanel.cs" />
+    <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Panel.WelcomePanel.cs" />
+    <File subtype="Code" buildaction="Compile" name="Gui/Component/BackgroundWidget.cs" />
+    <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Component.BackgroundWidget.cs" />
+    <File subtype="Code" buildaction="EmbedAsResource" name="../images/background.png" />
+    <File subtype="Code" buildaction="Compile" name="Gui/Panel/OpenProjectPanel.cs" />
+    <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Panel.OpenProjectPanel.cs" />
+    <File subtype="Code" buildaction="Compile" name="Gui/Panel/NewProjectPanel.cs" />
+    <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Panel.NewProjectPanel.cs" />
+    <File subtype="Code" buildaction="Compile" name="Gui/Component/TeamPlayersSelection.cs" />
+    <File subtype="Code" buildaction="Compile" 
name="gtk-gui/LongoMatch.Gui.Component.TeamPlayersSelection.cs" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="atk-sharp, Version=2.12.0.0, Culture=neutral, 
PublicKeyToken=35e10195dab3c99f" />
@@ -220,4 +233,4 @@
     <ProjectReference type="Project" localcopy="True" refto="OxyPlotMono" />
   </References>
   <LanguageParameters ApplicationIcon="." CodePage="65001" ctype="CSharpProjectParameters" />
-</Project>
+</Project>
\ No newline at end of file
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.BackgroundWidget.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.BackgroundWidget.cs
new file mode 100644
index 0000000..2203834
--- /dev/null
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.BackgroundWidget.cs
@@ -0,0 +1,25 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace LongoMatch.Gui.Component
+{
+       public partial class BackgroundWidget
+       {
+               private global::Gtk.DrawingArea drawingarea;
+               
+               protected virtual void Build ()
+               {
+                       global::Stetic.Gui.Initialize (this);
+                       // Widget LongoMatch.Gui.Component.BackgroundWidget
+                       global::Stetic.BinContainer.Attach (this);
+                       this.Name = "LongoMatch.Gui.Component.BackgroundWidget";
+                       // Container child 
LongoMatch.Gui.Component.BackgroundWidget.Gtk.Container+ContainerChild
+                       this.drawingarea = new global::Gtk.DrawingArea ();
+                       this.drawingarea.Name = "drawingarea";
+                       this.Add (this.drawingarea);
+                       if ((this.Child != null)) {
+                               this.Child.ShowAll ();
+                       }
+                       this.Hide ();
+               }
+       }
+}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs
index 8feb7f2..54bfdc5 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs
@@ -58,6 +58,7 @@ namespace LongoMatch.Gui.Component
                        this.circlebutton = new global::Gtk.RadioButton ("");
                        this.circlebutton.CanFocus = true;
                        this.circlebutton.Name = "circlebutton";
+                       this.circlebutton.Active = true;
                        this.circlebutton.DrawIndicator = false;
                        this.circlebutton.UseUnderline = true;
                        this.circlebutton.Group = new global::GLib.SList (global::System.IntPtr.Zero);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs
index 13d2ffd..4a7872c 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs
@@ -431,6 +431,7 @@ namespace LongoMatch.Gui.Component
                        this.expander1 = new global::Gtk.Expander (null);
                        this.expander1.CanFocus = true;
                        this.expander1.Name = "expander1";
+                       this.expander1.Expanded = true;
                        // Container child expander1.Gtk.Container+ContainerChild
                        this.table2 = new global::Gtk.Table (((uint)(4)), ((uint)(2)), false);
                        this.table2.Name = "table2";
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs
index 15c5b86..1a26b07 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs
@@ -9,7 +9,7 @@ namespace LongoMatch.Gui.Component
                private global::Gtk.Label filterlabel;
                private global::Gtk.Entry filterEntry;
                private global::Gtk.ScrolledWindow scrolledwindow2;
-               private global::Gtk.TreeView treeview;
+               private global::Gtk.IconView iconview;
                
                protected virtual void Build ()
                {
@@ -53,10 +53,10 @@ namespace LongoMatch.Gui.Component
                        this.scrolledwindow2.CanFocus = true;
                        this.scrolledwindow2.Name = "scrolledwindow2";
                        // Container child scrolledwindow2.Gtk.Container+ContainerChild
-                       this.treeview = new global::Gtk.TreeView ();
-                       this.treeview.CanFocus = true;
-                       this.treeview.Name = "treeview";
-                       this.scrolledwindow2.Add (this.treeview);
+                       this.iconview = new global::Gtk.IconView ();
+                       this.iconview.CanFocus = true;
+                       this.iconview.Name = "iconview";
+                       this.scrolledwindow2.Add (this.iconview);
                        this.vbox2.Add (this.scrolledwindow2);
                        global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2 
[this.scrolledwindow2]));
                        w5.Position = 1;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
index ad9cc26..9d59a08 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
@@ -31,6 +31,7 @@ namespace LongoMatch.Gui.Component.Stats
                        this.historadiobutton = new global::Gtk.RadioButton 
(global::Mono.Unix.Catalog.GetString ("Histogram"));
                        this.historadiobutton.CanFocus = true;
                        this.historadiobutton.Name = "historadiobutton";
+                       this.historadiobutton.Active = true;
                        this.historadiobutton.DrawIndicator = true;
                        this.historadiobutton.UseUnderline = true;
                        this.historadiobutton.Group = new global::GLib.SList (global::System.IntPtr.Zero);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.TeamPlayersSelection.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.TeamPlayersSelection.cs
new file mode 100644
index 0000000..2c22e2b
--- /dev/null
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.TeamPlayersSelection.cs
@@ -0,0 +1,76 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace LongoMatch.Gui.Component
+{
+       public partial class TeamPlayersSelection
+       {
+               private global::Gtk.VBox vbox4;
+               private global::Gtk.HBox hbox4;
+               private global::Gtk.Image shieldimage;
+               private global::Gtk.Label namelabel;
+               private global::Gtk.ComboBox teamscombobox;
+               private global::Gtk.ScrolledWindow GtkScrolledWindow;
+               private global::Gtk.IconView playersiconview;
+               
+               protected virtual void Build ()
+               {
+                       global::Stetic.Gui.Initialize (this);
+                       // Widget LongoMatch.Gui.Component.TeamPlayersSelection
+                       global::Stetic.BinContainer.Attach (this);
+                       this.Name = "LongoMatch.Gui.Component.TeamPlayersSelection";
+                       // Container child 
LongoMatch.Gui.Component.TeamPlayersSelection.Gtk.Container+ContainerChild
+                       this.vbox4 = new global::Gtk.VBox ();
+                       this.vbox4.Name = "vbox4";
+                       this.vbox4.Spacing = 6;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.hbox4 = new global::Gtk.HBox ();
+                       this.hbox4.Name = "hbox4";
+                       this.hbox4.Spacing = 6;
+                       // Container child hbox4.Gtk.Box+BoxChild
+                       this.shieldimage = new global::Gtk.Image ();
+                       this.shieldimage.Name = "shieldimage";
+                       this.shieldimage.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("logo.svg");
+                       this.hbox4.Add (this.shieldimage);
+                       global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox4 
[this.shieldimage]));
+                       w1.Position = 0;
+                       w1.Fill = false;
+                       // Container child hbox4.Gtk.Box+BoxChild
+                       this.namelabel = new global::Gtk.Label ();
+                       this.namelabel.Name = "namelabel";
+                       this.hbox4.Add (this.namelabel);
+                       global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox4 
[this.namelabel]));
+                       w2.Position = 1;
+                       // Container child hbox4.Gtk.Box+BoxChild
+                       this.teamscombobox = global::Gtk.ComboBox.NewText ();
+                       this.teamscombobox.Name = "teamscombobox";
+                       this.hbox4.Add (this.teamscombobox);
+                       global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox4 
[this.teamscombobox]));
+                       w3.Position = 2;
+                       w3.Expand = false;
+                       w3.Fill = false;
+                       this.vbox4.Add (this.hbox4);
+                       global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.hbox4]));
+                       w4.Position = 0;
+                       w4.Expand = false;
+                       w4.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.GtkScrolledWindow = new global::Gtk.ScrolledWindow ();
+                       this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+                       this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
+                       // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+                       this.playersiconview = new global::Gtk.IconView ();
+                       this.playersiconview.CanFocus = true;
+                       this.playersiconview.Name = "playersiconview";
+                       this.playersiconview.SelectionMode = ((global::Gtk.SelectionMode)(0));
+                       this.GtkScrolledWindow.Add (this.playersiconview);
+                       this.vbox4.Add (this.GtkScrolledWindow);
+                       global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.GtkScrolledWindow]));
+                       w6.Position = 1;
+                       this.Add (this.vbox4);
+                       if ((this.Child != null)) {
+                               this.Child.ShowAll ();
+                       }
+                       this.Hide ();
+               }
+       }
+}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs
index 8e8beff..fac81de 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs
@@ -15,7 +15,8 @@ namespace LongoMatch.Gui.Dialog
                        this.Name = "LongoMatch.Gui.Dialog.BusyDialog";
                        this.Title = "";
                        this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", 
global::Gtk.IconSize.Menu);
-                       this.WindowPosition = ((global::Gtk.WindowPosition)(4));
+                       this.TypeHint = ((global::Gdk.WindowTypeHint)(1));
+                       this.WindowPosition = ((global::Gtk.WindowPosition)(1));
                        this.Modal = true;
                        this.Resizable = false;
                        this.AllowGrow = false;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
index 47ae7d8..46a1e31 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
@@ -48,7 +48,6 @@ namespace LongoMatch.Gui.Dialog
                        this.fromfileradiobutton = new global::Gtk.RadioButton 
(global::Mono.Unix.Catalog.GetString ("New project using a video file"));
                        this.fromfileradiobutton.CanFocus = true;
                        this.fromfileradiobutton.Name = "fromfileradiobutton";
-                       this.fromfileradiobutton.Active = true;
                        this.fromfileradiobutton.DrawIndicator = true;
                        this.fromfileradiobutton.UseUnderline = true;
                        this.fromfileradiobutton.FocusOnClick = false;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
index e8b7286..da25c3a 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@ -43,6 +43,7 @@ namespace LongoMatch.Gui
                private global::Gtk.VBox menubox;
                private global::Gtk.MenuBar menubar1;
                private global::Gtk.HBox centralbox;
+               private global::LongoMatch.Gui.Panel.WelcomePanel welcomepanel1;
                private global::Gtk.Statusbar statusbar1;
                private global::LongoMatch.Gui.Component.RenderingStateBar renderingstatebar1;
                
@@ -202,9 +203,16 @@ namespace LongoMatch.Gui
                        this.centralbox = new global::Gtk.HBox ();
                        this.centralbox.Name = "centralbox";
                        this.centralbox.Spacing = 6;
+                       // Container child centralbox.Gtk.Box+BoxChild
+                       this.welcomepanel1 = new global::LongoMatch.Gui.Panel.WelcomePanel ();
+                       this.welcomepanel1.Events = ((global::Gdk.EventMask)(256));
+                       this.welcomepanel1.Name = "welcomepanel1";
+                       this.centralbox.Add (this.welcomepanel1);
+                       global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.centralbox 
[this.welcomepanel1]));
+                       w4.Position = 0;
                        this.vbox1.Add (this.centralbox);
-                       global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.centralbox]));
-                       w4.Position = 1;
+                       global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.centralbox]));
+                       w5.Position = 1;
                        // Container child vbox1.Gtk.Box+BoxChild
                        this.statusbar1 = new global::Gtk.Statusbar ();
                        this.statusbar1.Name = "statusbar1";
@@ -215,21 +223,21 @@ namespace LongoMatch.Gui
                        this.renderingstatebar1.Name = "renderingstatebar1";
                        this.renderingstatebar1.Fraction = 0;
                        this.statusbar1.Add (this.renderingstatebar1);
-                       global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.statusbar1 
[this.renderingstatebar1]));
-                       w5.Position = 2;
-                       w5.Expand = false;
-                       w5.Fill = false;
-                       this.vbox1.Add (this.statusbar1);
-                       global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.statusbar1]));
+                       global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.statusbar1 
[this.renderingstatebar1]));
                        w6.Position = 2;
                        w6.Expand = false;
                        w6.Fill = false;
+                       this.vbox1.Add (this.statusbar1);
+                       global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.statusbar1]));
+                       w7.Position = 2;
+                       w7.Expand = false;
+                       w7.Fill = false;
                        this.Add (this.vbox1);
                        if ((this.Child != null)) {
                                this.Child.ShowAll ();
                        }
-                       this.DefaultWidth = 1503;
-                       this.DefaultHeight = 686;
+                       this.DefaultWidth = 938;
+                       this.DefaultHeight = 604;
                        this.renderingstatebar1.Hide ();
                        this.Show ();
                        this.NewPojectAction.Activated += new global::System.EventHandler 
(this.OnNewActivated);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.NewProjectPanel.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.NewProjectPanel.cs
new file mode 100644
index 0000000..59deb26
--- /dev/null
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.NewProjectPanel.cs
@@ -0,0 +1,839 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace LongoMatch.Gui.Panel
+{
+       public partial class NewProjectPanel
+       {
+               private global::Gtk.VBox vbox2;
+               private global::Gtk.HBox hbox3;
+               private global::LongoMatch.Gui.Component.BackgroundWidget backgroundwidget;
+               private global::Gtk.Notebook notebook1;
+               private global::Gtk.VBox vbox3;
+               private global::Gtk.Label label6;
+               private global::Gtk.HSeparator hseparator1;
+               private global::Gtk.HBox hbox1;
+               private global::Gtk.RadioButton fromfileradiobutton;
+               private global::Gtk.Image image61;
+               private global::Gtk.HBox hbox2;
+               private global::Gtk.RadioButton liveradiobutton;
+               private global::Gtk.Image image63;
+               private global::Gtk.HBox hbox4;
+               private global::Gtk.RadioButton fakeliveradiobutton;
+               private global::Gtk.Image image62;
+               private global::Gtk.HBox ipcamerabox;
+               private global::Gtk.RadioButton uriliveradiobutton;
+               private global::Gtk.Image image64;
+               private global::Gtk.Label label1;
+               private global::Gtk.VBox vbox4;
+               private global::Gtk.Label label4;
+               private global::Gtk.HSeparator hseparator2;
+               private global::Gtk.Table table1;
+               private global::Gtk.Entry competitionentry;
+               private global::Gtk.Label Competitionlabel;
+               private global::Gtk.HBox hbox5;
+               private global::Gtk.Entry dateEntry;
+               private global::Gtk.Button calendarbutton;
+               private global::Gtk.HBox hbox9;
+               private global::Gtk.SpinButton localSpinButton;
+               private global::Gtk.Label label2;
+               private global::Gtk.SpinButton visitorSpinButton;
+               private global::Gtk.Label label11;
+               private global::Gtk.Label label5;
+               private global::Gtk.Label label9;
+               private global::Gtk.Entry seasonentry;
+               private global::Gtk.Label seasonlabel;
+               private global::Gtk.ComboBox tagscombobox;
+               private global::Gtk.HSeparator hseparator3;
+               private global::Gtk.Table filetable;
+               private global::Gtk.HBox filehbox;
+               private global::Gtk.Entry fileEntry;
+               private global::Gtk.Button openbutton;
+               private global::Gtk.Label filelabel;
+               private global::Gtk.Table outputfiletable;
+               private global::Gtk.HBox outputfilehbox1;
+               private global::Gtk.Entry outfileEntry;
+               private global::Gtk.Button savebutton;
+               private global::Gtk.Label outputfilelabel;
+               private global::Gtk.Table capturetable;
+               private global::Gtk.ComboBox encodingcombobox;
+               private global::Gtk.HBox hbox6;
+               private global::Gtk.Label device;
+               private global::Gtk.Label urilabel;
+               private global::Gtk.HBox hbox7;
+               private global::Gtk.ComboBox devicecombobox;
+               private global::Gtk.Entry urientry;
+               private global::Gtk.ComboBox imagecombobox;
+               private global::Gtk.ComboBox qualitycombobox;
+               private global::Gtk.Label qualitylabel;
+               private global::Gtk.Label sizelabel;
+               private global::Gtk.Label videoformatlabel;
+               private global::Gtk.HBox hbox8;
+               private global::Gtk.Frame frame1;
+               private global::Gtk.Alignment GtkAlignment6;
+               private global::LongoMatch.Gui.Component.TeamPlayersSelection localteamplayersselection;
+               private global::Gtk.Label GtkLabel10;
+               private global::Gtk.Frame frame2;
+               private global::Gtk.Alignment GtkAlignment7;
+               private global::LongoMatch.Gui.Component.TeamPlayersSelection awayteamplayersselection;
+               private global::Gtk.Label GtkLabel11;
+               private global::Gtk.Label label3;
+               private global::Gtk.HButtonBox hbuttonbox2;
+               private global::Gtk.Button backbutton;
+               private global::Gtk.Button nextbutton;
+               private global::Gtk.Button createbutton;
+               
+               protected virtual void Build ()
+               {
+                       global::Stetic.Gui.Initialize (this);
+                       // Widget LongoMatch.Gui.Panel.NewProjectPanel
+                       global::Stetic.BinContainer.Attach (this);
+                       this.Name = "LongoMatch.Gui.Panel.NewProjectPanel";
+                       // Container child LongoMatch.Gui.Panel.NewProjectPanel.Gtk.Container+ContainerChild
+                       this.vbox2 = new global::Gtk.VBox ();
+                       this.vbox2.Name = "vbox2";
+                       this.vbox2.Spacing = 6;
+                       // Container child vbox2.Gtk.Box+BoxChild
+                       this.hbox3 = new global::Gtk.HBox ();
+                       this.hbox3.Name = "hbox3";
+                       this.hbox3.Spacing = 6;
+                       // Container child hbox3.Gtk.Box+BoxChild
+                       this.backgroundwidget = new global::LongoMatch.Gui.Component.BackgroundWidget ();
+                       this.backgroundwidget.Events = ((global::Gdk.EventMask)(256));
+                       this.backgroundwidget.Name = "backgroundwidget";
+                       this.hbox3.Add (this.backgroundwidget);
+                       global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox3 
[this.backgroundwidget]));
+                       w1.Position = 0;
+                       w1.Expand = false;
+                       // Container child hbox3.Gtk.Box+BoxChild
+                       this.notebook1 = new global::Gtk.Notebook ();
+                       this.notebook1.CanFocus = true;
+                       this.notebook1.Name = "notebook1";
+                       this.notebook1.CurrentPage = 1;
+                       this.notebook1.ShowBorder = false;
+                       this.notebook1.Scrollable = true;
+                       // Container child notebook1.Gtk.Notebook+NotebookChild
+                       this.vbox3 = new global::Gtk.VBox ();
+                       this.vbox3.Name = "vbox3";
+                       this.vbox3.Spacing = 6;
+                       // Container child vbox3.Gtk.Box+BoxChild
+                       this.label6 = new global::Gtk.Label ();
+                       this.label6.Name = "label6";
+                       this.label6.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Select new project 
type</b>");
+                       this.label6.UseMarkup = true;
+                       this.label6.Justify = ((global::Gtk.Justification)(2));
+                       this.vbox3.Add (this.label6);
+                       global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.label6]));
+                       w2.Position = 0;
+                       w2.Expand = false;
+                       w2.Fill = false;
+                       w2.Padding = ((uint)(30));
+                       // Container child vbox3.Gtk.Box+BoxChild
+                       this.hseparator1 = new global::Gtk.HSeparator ();
+                       this.hseparator1.Name = "hseparator1";
+                       this.vbox3.Add (this.hseparator1);
+                       global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox3 
[this.hseparator1]));
+                       w3.Position = 1;
+                       w3.Expand = false;
+                       w3.Fill = false;
+                       // Container child vbox3.Gtk.Box+BoxChild
+                       this.hbox1 = new global::Gtk.HBox ();
+                       this.hbox1.Name = "hbox1";
+                       this.hbox1.Spacing = 6;
+                       // Container child hbox1.Gtk.Box+BoxChild
+                       this.fromfileradiobutton = new global::Gtk.RadioButton 
(global::Mono.Unix.Catalog.GetString ("New project using a video file"));
+                       this.fromfileradiobutton.CanFocus = true;
+                       this.fromfileradiobutton.Name = "fromfileradiobutton";
+                       this.fromfileradiobutton.DrawIndicator = true;
+                       this.fromfileradiobutton.UseUnderline = true;
+                       this.fromfileradiobutton.FocusOnClick = false;
+                       this.fromfileradiobutton.Group = new global::GLib.SList (global::System.IntPtr.Zero);
+                       this.hbox1.Add (this.fromfileradiobutton);
+                       global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox1 
[this.fromfileradiobutton]));
+                       w4.Position = 0;
+                       // Container child hbox1.Gtk.Box+BoxChild
+                       this.image61 = new global::Gtk.Image ();
+                       this.image61.Name = "image61";
+                       this.image61.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("video.png");
+                       this.hbox1.Add (this.image61);
+                       global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.image61]));
+                       w5.Position = 1;
+                       this.vbox3.Add (this.hbox1);
+                       global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.hbox1]));
+                       w6.Position = 2;
+                       // Container child vbox3.Gtk.Box+BoxChild
+                       this.hbox2 = new global::Gtk.HBox ();
+                       this.hbox2.Name = "hbox2";
+                       this.hbox2.Spacing = 6;
+                       // Container child hbox2.Gtk.Box+BoxChild
+                       this.liveradiobutton = new global::Gtk.RadioButton 
(global::Mono.Unix.Catalog.GetString ("Live project using a capture device"));
+                       this.liveradiobutton.CanFocus = true;
+                       this.liveradiobutton.Name = "liveradiobutton";
+                       this.liveradiobutton.DrawIndicator = true;
+                       this.liveradiobutton.UseUnderline = true;
+                       this.liveradiobutton.Group = this.fromfileradiobutton.Group;
+                       this.hbox2.Add (this.liveradiobutton);
+                       global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2 
[this.liveradiobutton]));
+                       w7.Position = 0;
+                       // Container child hbox2.Gtk.Box+BoxChild
+                       this.image63 = new global::Gtk.Image ();
+                       this.image63.Name = "image63";
+                       this.image63.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("camera-video.png");
+                       this.hbox2.Add (this.image63);
+                       global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.image63]));
+                       w8.Position = 1;
+                       this.vbox3.Add (this.hbox2);
+                       global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.hbox2]));
+                       w9.Position = 3;
+                       // Container child vbox3.Gtk.Box+BoxChild
+                       this.hbox4 = new global::Gtk.HBox ();
+                       this.hbox4.Name = "hbox4";
+                       this.hbox4.Spacing = 6;
+                       // Container child hbox4.Gtk.Box+BoxChild
+                       this.fakeliveradiobutton = new global::Gtk.RadioButton 
(global::Mono.Unix.Catalog.GetString ("Live project using a fake capture device"));
+                       this.fakeliveradiobutton.CanFocus = true;
+                       this.fakeliveradiobutton.Name = "fakeliveradiobutton";
+                       this.fakeliveradiobutton.DrawIndicator = true;
+                       this.fakeliveradiobutton.UseUnderline = true;
+                       this.fakeliveradiobutton.Group = this.fromfileradiobutton.Group;
+                       this.hbox4.Add (this.fakeliveradiobutton);
+                       global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox4 
[this.fakeliveradiobutton]));
+                       w10.Position = 0;
+                       // Container child hbox4.Gtk.Box+BoxChild
+                       this.image62 = new global::Gtk.Image ();
+                       this.image62.Name = "image62";
+                       this.image62.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("camera-video.png");
+                       this.hbox4.Add (this.image62);
+                       global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox4 
[this.image62]));
+                       w11.Position = 1;
+                       this.vbox3.Add (this.hbox4);
+                       global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.hbox4]));
+                       w12.Position = 4;
+                       // Container child vbox3.Gtk.Box+BoxChild
+                       this.ipcamerabox = new global::Gtk.HBox ();
+                       this.ipcamerabox.Name = "ipcamerabox";
+                       this.ipcamerabox.Spacing = 6;
+                       // Container child ipcamerabox.Gtk.Box+BoxChild
+                       this.uriliveradiobutton = new global::Gtk.RadioButton 
(global::Mono.Unix.Catalog.GetString ("Live project using an IP camera"));
+                       this.uriliveradiobutton.CanFocus = true;
+                       this.uriliveradiobutton.Name = "uriliveradiobutton";
+                       this.uriliveradiobutton.DrawIndicator = true;
+                       this.uriliveradiobutton.UseUnderline = true;
+                       this.uriliveradiobutton.Group = this.fromfileradiobutton.Group;
+                       this.ipcamerabox.Add (this.uriliveradiobutton);
+                       global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.ipcamerabox 
[this.uriliveradiobutton]));
+                       w13.Position = 0;
+                       // Container child ipcamerabox.Gtk.Box+BoxChild
+                       this.image64 = new global::Gtk.Image ();
+                       this.image64.Name = "image64";
+                       this.image64.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("camera-video.png");
+                       this.ipcamerabox.Add (this.image64);
+                       global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.ipcamerabox 
[this.image64]));
+                       w14.Position = 1;
+                       this.vbox3.Add (this.ipcamerabox);
+                       global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox3 
[this.ipcamerabox]));
+                       w15.Position = 5;
+                       this.notebook1.Add (this.vbox3);
+                       // Notebook tab
+                       this.label1 = new global::Gtk.Label ();
+                       this.label1.Name = "label1";
+                       this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("page1");
+                       this.notebook1.SetTabLabel (this.vbox3, this.label1);
+                       this.label1.ShowAll ();
+                       // Container child notebook1.Gtk.Notebook+NotebookChild
+                       this.vbox4 = new global::Gtk.VBox ();
+                       this.vbox4.Name = "vbox4";
+                       this.vbox4.Spacing = 6;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.label4 = new global::Gtk.Label ();
+                       this.label4.Name = "label4";
+                       this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Project 
properties</b>");
+                       this.label4.UseMarkup = true;
+                       this.label4.Justify = ((global::Gtk.Justification)(2));
+                       this.vbox4.Add (this.label4);
+                       global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.label4]));
+                       w17.Position = 0;
+                       w17.Expand = false;
+                       w17.Padding = ((uint)(20));
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.hseparator2 = new global::Gtk.HSeparator ();
+                       this.hseparator2.Name = "hseparator2";
+                       this.vbox4.Add (this.hseparator2);
+                       global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.hseparator2]));
+                       w18.Position = 1;
+                       w18.Expand = false;
+                       w18.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(4)), true);
+                       this.table1.Name = "table1";
+                       this.table1.RowSpacing = ((uint)(6));
+                       this.table1.ColumnSpacing = ((uint)(6));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.competitionentry = new global::Gtk.Entry ();
+                       this.competitionentry.CanFocus = true;
+                       this.competitionentry.Name = "competitionentry";
+                       this.competitionentry.IsEditable = true;
+                       this.competitionentry.InvisibleChar = '●';
+                       this.table1.Add (this.competitionentry);
+                       global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table1 
[this.competitionentry]));
+                       w19.LeftAttach = ((uint)(3));
+                       w19.RightAttach = ((uint)(4));
+                       w19.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.Competitionlabel = new global::Gtk.Label ();
+                       this.Competitionlabel.Name = "Competitionlabel";
+                       this.Competitionlabel.LabelProp = global::Mono.Unix.Catalog.GetString 
("Competition:");
+                       this.table1.Add (this.Competitionlabel);
+                       global::Gtk.Table.TableChild w20 = ((global::Gtk.Table.TableChild)(this.table1 
[this.Competitionlabel]));
+                       w20.LeftAttach = ((uint)(2));
+                       w20.RightAttach = ((uint)(3));
+                       w20.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w20.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.hbox5 = new global::Gtk.HBox ();
+                       this.hbox5.Name = "hbox5";
+                       // Container child hbox5.Gtk.Box+BoxChild
+                       this.dateEntry = new global::Gtk.Entry ();
+                       this.dateEntry.CanFocus = true;
+                       this.dateEntry.Name = "dateEntry";
+                       this.dateEntry.IsEditable = false;
+                       this.dateEntry.InvisibleChar = '●';
+                       this.hbox5.Add (this.dateEntry);
+                       global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.hbox5 
[this.dateEntry]));
+                       w21.Position = 0;
+                       // Container child hbox5.Gtk.Box+BoxChild
+                       this.calendarbutton = new global::Gtk.Button ();
+                       this.calendarbutton.CanFocus = true;
+                       this.calendarbutton.Name = "calendarbutton";
+                       this.calendarbutton.UseUnderline = true;
+                       // Container child calendarbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w22 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w23 = new global::Gtk.HBox ();
+                       w23.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w24 = new global::Gtk.Image ();
+                       w24.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "stock_calendar", 
global::Gtk.IconSize.Button);
+                       w23.Add (w24);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w26 = new global::Gtk.Label ();
+                       w26.LabelProp = global::Mono.Unix.Catalog.GetString ("_Calendar");
+                       w26.UseUnderline = true;
+                       w23.Add (w26);
+                       w22.Add (w23);
+                       this.calendarbutton.Add (w22);
+                       this.hbox5.Add (this.calendarbutton);
+                       global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.hbox5 
[this.calendarbutton]));
+                       w30.Position = 1;
+                       w30.Expand = false;
+                       w30.Fill = false;
+                       this.table1.Add (this.hbox5);
+                       global::Gtk.Table.TableChild w31 = ((global::Gtk.Table.TableChild)(this.table1 
[this.hbox5]));
+                       w31.TopAttach = ((uint)(1));
+                       w31.BottomAttach = ((uint)(2));
+                       w31.LeftAttach = ((uint)(3));
+                       w31.RightAttach = ((uint)(4));
+                       w31.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.hbox9 = new global::Gtk.HBox ();
+                       this.hbox9.Name = "hbox9";
+                       this.hbox9.Spacing = 6;
+                       // Container child hbox9.Gtk.Box+BoxChild
+                       this.localSpinButton = new global::Gtk.SpinButton (0, 1000, 1);
+                       this.localSpinButton.CanFocus = true;
+                       this.localSpinButton.Name = "localSpinButton";
+                       this.localSpinButton.Adjustment.PageIncrement = 10;
+                       this.localSpinButton.ClimbRate = 1;
+                       this.localSpinButton.Numeric = true;
+                       this.hbox9.Add (this.localSpinButton);
+                       global::Gtk.Box.BoxChild w32 = ((global::Gtk.Box.BoxChild)(this.hbox9 
[this.localSpinButton]));
+                       w32.Position = 0;
+                       w32.Fill = false;
+                       // Container child hbox9.Gtk.Box+BoxChild
+                       this.label2 = new global::Gtk.Label ();
+                       this.label2.Name = "label2";
+                       this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("-");
+                       this.hbox9.Add (this.label2);
+                       global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.hbox9 [this.label2]));
+                       w33.Position = 1;
+                       w33.Expand = false;
+                       w33.Fill = false;
+                       // Container child hbox9.Gtk.Box+BoxChild
+                       this.visitorSpinButton = new global::Gtk.SpinButton (0, 1000, 1);
+                       this.visitorSpinButton.CanFocus = true;
+                       this.visitorSpinButton.Name = "visitorSpinButton";
+                       this.visitorSpinButton.Adjustment.PageIncrement = 10;
+                       this.visitorSpinButton.ClimbRate = 1;
+                       this.visitorSpinButton.Numeric = true;
+                       this.hbox9.Add (this.visitorSpinButton);
+                       global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.hbox9 
[this.visitorSpinButton]));
+                       w34.Position = 2;
+                       w34.Fill = false;
+                       this.table1.Add (this.hbox9);
+                       global::Gtk.Table.TableChild w35 = ((global::Gtk.Table.TableChild)(this.table1 
[this.hbox9]));
+                       w35.TopAttach = ((uint)(1));
+                       w35.BottomAttach = ((uint)(2));
+                       w35.LeftAttach = ((uint)(1));
+                       w35.RightAttach = ((uint)(2));
+                       w35.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w35.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.label11 = new global::Gtk.Label ();
+                       this.label11.Name = "label11";
+                       this.label11.LabelProp = global::Mono.Unix.Catalog.GetString ("Score:");
+                       this.table1.Add (this.label11);
+                       global::Gtk.Table.TableChild w36 = ((global::Gtk.Table.TableChild)(this.table1 
[this.label11]));
+                       w36.TopAttach = ((uint)(1));
+                       w36.BottomAttach = ((uint)(2));
+                       w36.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w36.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.label5 = new global::Gtk.Label ();
+                       this.label5.Name = "label5";
+                       this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("Date:");
+                       this.table1.Add (this.label5);
+                       global::Gtk.Table.TableChild w37 = ((global::Gtk.Table.TableChild)(this.table1 
[this.label5]));
+                       w37.TopAttach = ((uint)(1));
+                       w37.BottomAttach = ((uint)(2));
+                       w37.LeftAttach = ((uint)(2));
+                       w37.RightAttach = ((uint)(3));
+                       w37.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w37.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.label9 = new global::Gtk.Label ();
+                       this.label9.Name = "label9";
+                       this.label9.LabelProp = global::Mono.Unix.Catalog.GetString ("Analisys Template:");
+                       this.table1.Add (this.label9);
+                       global::Gtk.Table.TableChild w38 = ((global::Gtk.Table.TableChild)(this.table1 
[this.label9]));
+                       w38.TopAttach = ((uint)(2));
+                       w38.BottomAttach = ((uint)(3));
+                       w38.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w38.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.seasonentry = new global::Gtk.Entry ();
+                       this.seasonentry.CanFocus = true;
+                       this.seasonentry.Name = "seasonentry";
+                       this.seasonentry.IsEditable = true;
+                       this.seasonentry.InvisibleChar = '●';
+                       this.table1.Add (this.seasonentry);
+                       global::Gtk.Table.TableChild w39 = ((global::Gtk.Table.TableChild)(this.table1 
[this.seasonentry]));
+                       w39.LeftAttach = ((uint)(1));
+                       w39.RightAttach = ((uint)(2));
+                       w39.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w39.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.seasonlabel = new global::Gtk.Label ();
+                       this.seasonlabel.Name = "seasonlabel";
+                       this.seasonlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Season:");
+                       this.table1.Add (this.seasonlabel);
+                       global::Gtk.Table.TableChild w40 = ((global::Gtk.Table.TableChild)(this.table1 
[this.seasonlabel]));
+                       w40.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w40.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child table1.Gtk.Table+TableChild
+                       this.tagscombobox = global::Gtk.ComboBox.NewText ();
+                       this.tagscombobox.Name = "tagscombobox";
+                       this.table1.Add (this.tagscombobox);
+                       global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table1 
[this.tagscombobox]));
+                       w41.TopAttach = ((uint)(2));
+                       w41.BottomAttach = ((uint)(3));
+                       w41.LeftAttach = ((uint)(1));
+                       w41.RightAttach = ((uint)(2));
+                       w41.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w41.YOptions = ((global::Gtk.AttachOptions)(4));
+                       this.vbox4.Add (this.table1);
+                       global::Gtk.Box.BoxChild w42 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.table1]));
+                       w42.Position = 2;
+                       w42.Expand = false;
+                       w42.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.hseparator3 = new global::Gtk.HSeparator ();
+                       this.hseparator3.Name = "hseparator3";
+                       this.vbox4.Add (this.hseparator3);
+                       global::Gtk.Box.BoxChild w43 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.hseparator3]));
+                       w43.Position = 3;
+                       w43.Expand = false;
+                       w43.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.filetable = new global::Gtk.Table (((uint)(1)), ((uint)(4)), true);
+                       this.filetable.Name = "filetable";
+                       this.filetable.RowSpacing = ((uint)(6));
+                       this.filetable.ColumnSpacing = ((uint)(6));
+                       // Container child filetable.Gtk.Table+TableChild
+                       this.filehbox = new global::Gtk.HBox ();
+                       this.filehbox.Name = "filehbox";
+                       this.filehbox.Spacing = 6;
+                       // Container child filehbox.Gtk.Box+BoxChild
+                       this.fileEntry = new global::Gtk.Entry ();
+                       this.fileEntry.CanFocus = true;
+                       this.fileEntry.Name = "fileEntry";
+                       this.fileEntry.IsEditable = false;
+                       this.fileEntry.HasFrame = false;
+                       this.fileEntry.InvisibleChar = '●';
+                       this.filehbox.Add (this.fileEntry);
+                       global::Gtk.Box.BoxChild w44 = ((global::Gtk.Box.BoxChild)(this.filehbox 
[this.fileEntry]));
+                       w44.Position = 0;
+                       // Container child filehbox.Gtk.Box+BoxChild
+                       this.openbutton = new global::Gtk.Button ();
+                       this.openbutton.CanFocus = true;
+                       this.openbutton.Name = "openbutton";
+                       this.openbutton.UseStock = true;
+                       this.openbutton.UseUnderline = true;
+                       this.openbutton.Label = "gtk-open";
+                       this.filehbox.Add (this.openbutton);
+                       global::Gtk.Box.BoxChild w45 = ((global::Gtk.Box.BoxChild)(this.filehbox 
[this.openbutton]));
+                       w45.Position = 1;
+                       w45.Expand = false;
+                       this.filetable.Add (this.filehbox);
+                       global::Gtk.Table.TableChild w46 = ((global::Gtk.Table.TableChild)(this.filetable 
[this.filehbox]));
+                       w46.LeftAttach = ((uint)(1));
+                       w46.RightAttach = ((uint)(2));
+                       w46.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child filetable.Gtk.Table+TableChild
+                       this.filelabel = new global::Gtk.Label ();
+                       this.filelabel.Name = "filelabel";
+                       this.filelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("File:");
+                       this.filetable.Add (this.filelabel);
+                       global::Gtk.Table.TableChild w47 = ((global::Gtk.Table.TableChild)(this.filetable 
[this.filelabel]));
+                       w47.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w47.YOptions = ((global::Gtk.AttachOptions)(4));
+                       this.vbox4.Add (this.filetable);
+                       global::Gtk.Box.BoxChild w48 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.filetable]));
+                       w48.Position = 4;
+                       w48.Expand = false;
+                       w48.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.outputfiletable = new global::Gtk.Table (((uint)(1)), ((uint)(4)), true);
+                       this.outputfiletable.Name = "outputfiletable";
+                       this.outputfiletable.RowSpacing = ((uint)(6));
+                       this.outputfiletable.ColumnSpacing = ((uint)(6));
+                       // Container child outputfiletable.Gtk.Table+TableChild
+                       this.outputfilehbox1 = new global::Gtk.HBox ();
+                       this.outputfilehbox1.Name = "outputfilehbox1";
+                       this.outputfilehbox1.Spacing = 6;
+                       // Container child outputfilehbox1.Gtk.Box+BoxChild
+                       this.outfileEntry = new global::Gtk.Entry ();
+                       this.outfileEntry.CanFocus = true;
+                       this.outfileEntry.Name = "outfileEntry";
+                       this.outfileEntry.IsEditable = false;
+                       this.outfileEntry.HasFrame = false;
+                       this.outfileEntry.InvisibleChar = '●';
+                       this.outputfilehbox1.Add (this.outfileEntry);
+                       global::Gtk.Box.BoxChild w49 = ((global::Gtk.Box.BoxChild)(this.outputfilehbox1 
[this.outfileEntry]));
+                       w49.Position = 0;
+                       // Container child outputfilehbox1.Gtk.Box+BoxChild
+                       this.savebutton = new global::Gtk.Button ();
+                       this.savebutton.CanFocus = true;
+                       this.savebutton.Name = "savebutton";
+                       this.savebutton.UseStock = true;
+                       this.savebutton.UseUnderline = true;
+                       this.savebutton.Label = "gtk-save-as";
+                       this.outputfilehbox1.Add (this.savebutton);
+                       global::Gtk.Box.BoxChild w50 = ((global::Gtk.Box.BoxChild)(this.outputfilehbox1 
[this.savebutton]));
+                       w50.Position = 1;
+                       w50.Expand = false;
+                       this.outputfiletable.Add (this.outputfilehbox1);
+                       global::Gtk.Table.TableChild w51 = 
((global::Gtk.Table.TableChild)(this.outputfiletable [this.outputfilehbox1]));
+                       w51.LeftAttach = ((uint)(1));
+                       w51.RightAttach = ((uint)(2));
+                       w51.YOptions = ((global::Gtk.AttachOptions)(0));
+                       // Container child outputfiletable.Gtk.Table+TableChild
+                       this.outputfilelabel = new global::Gtk.Label ();
+                       this.outputfilelabel.Name = "outputfilelabel";
+                       this.outputfilelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Output file:");
+                       this.outputfiletable.Add (this.outputfilelabel);
+                       global::Gtk.Table.TableChild w52 = 
((global::Gtk.Table.TableChild)(this.outputfiletable [this.outputfilelabel]));
+                       w52.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w52.YOptions = ((global::Gtk.AttachOptions)(4));
+                       this.vbox4.Add (this.outputfiletable);
+                       global::Gtk.Box.BoxChild w53 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.outputfiletable]));
+                       w53.Position = 5;
+                       w53.Expand = false;
+                       w53.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.capturetable = new global::Gtk.Table (((uint)(2)), ((uint)(4)), true);
+                       this.capturetable.Name = "capturetable";
+                       this.capturetable.RowSpacing = ((uint)(6));
+                       this.capturetable.ColumnSpacing = ((uint)(6));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.encodingcombobox = global::Gtk.ComboBox.NewText ();
+                       this.encodingcombobox.Name = "encodingcombobox";
+                       this.capturetable.Add (this.encodingcombobox);
+                       global::Gtk.Table.TableChild w54 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.encodingcombobox]));
+                       w54.LeftAttach = ((uint)(3));
+                       w54.RightAttach = ((uint)(4));
+                       w54.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w54.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.hbox6 = new global::Gtk.HBox ();
+                       this.hbox6.Name = "hbox6";
+                       this.hbox6.Spacing = 6;
+                       // Container child hbox6.Gtk.Box+BoxChild
+                       this.device = new global::Gtk.Label ();
+                       this.device.Name = "device";
+                       this.device.LabelProp = global::Mono.Unix.Catalog.GetString ("Device:");
+                       this.hbox6.Add (this.device);
+                       global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.hbox6 [this.device]));
+                       w55.Position = 0;
+                       // Container child hbox6.Gtk.Box+BoxChild
+                       this.urilabel = new global::Gtk.Label ();
+                       this.urilabel.Name = "urilabel";
+                       this.urilabel.LabelProp = global::Mono.Unix.Catalog.GetString ("URL:");
+                       this.hbox6.Add (this.urilabel);
+                       global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.hbox6 
[this.urilabel]));
+                       w56.Position = 1;
+                       this.capturetable.Add (this.hbox6);
+                       global::Gtk.Table.TableChild w57 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.hbox6]));
+                       w57.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w57.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.hbox7 = new global::Gtk.HBox ();
+                       this.hbox7.Name = "hbox7";
+                       this.hbox7.Spacing = 6;
+                       // Container child hbox7.Gtk.Box+BoxChild
+                       this.devicecombobox = global::Gtk.ComboBox.NewText ();
+                       this.devicecombobox.Name = "devicecombobox";
+                       this.hbox7.Add (this.devicecombobox);
+                       global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.hbox7 
[this.devicecombobox]));
+                       w58.Position = 0;
+                       // Container child hbox7.Gtk.Box+BoxChild
+                       this.urientry = new global::Gtk.Entry ();
+                       this.urientry.CanFocus = true;
+                       this.urientry.Name = "urientry";
+                       this.urientry.IsEditable = true;
+                       this.urientry.InvisibleChar = '•';
+                       this.hbox7.Add (this.urientry);
+                       global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.hbox7 
[this.urientry]));
+                       w59.Position = 1;
+                       this.capturetable.Add (this.hbox7);
+                       global::Gtk.Table.TableChild w60 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.hbox7]));
+                       w60.LeftAttach = ((uint)(1));
+                       w60.RightAttach = ((uint)(2));
+                       w60.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w60.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.imagecombobox = global::Gtk.ComboBox.NewText ();
+                       this.imagecombobox.Name = "imagecombobox";
+                       this.capturetable.Add (this.imagecombobox);
+                       global::Gtk.Table.TableChild w61 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.imagecombobox]));
+                       w61.TopAttach = ((uint)(1));
+                       w61.BottomAttach = ((uint)(2));
+                       w61.LeftAttach = ((uint)(1));
+                       w61.RightAttach = ((uint)(2));
+                       w61.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w61.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.qualitycombobox = global::Gtk.ComboBox.NewText ();
+                       this.qualitycombobox.Name = "qualitycombobox";
+                       this.capturetable.Add (this.qualitycombobox);
+                       global::Gtk.Table.TableChild w62 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.qualitycombobox]));
+                       w62.TopAttach = ((uint)(1));
+                       w62.BottomAttach = ((uint)(2));
+                       w62.LeftAttach = ((uint)(3));
+                       w62.RightAttach = ((uint)(4));
+                       w62.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w62.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.qualitylabel = new global::Gtk.Label ();
+                       this.qualitylabel.Name = "qualitylabel";
+                       this.qualitylabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Quality:");
+                       this.capturetable.Add (this.qualitylabel);
+                       global::Gtk.Table.TableChild w63 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.qualitylabel]));
+                       w63.TopAttach = ((uint)(1));
+                       w63.BottomAttach = ((uint)(2));
+                       w63.LeftAttach = ((uint)(2));
+                       w63.RightAttach = ((uint)(3));
+                       w63.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w63.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.sizelabel = new global::Gtk.Label ();
+                       this.sizelabel.Name = "sizelabel";
+                       this.sizelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Image format:");
+                       this.capturetable.Add (this.sizelabel);
+                       global::Gtk.Table.TableChild w64 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.sizelabel]));
+                       w64.TopAttach = ((uint)(1));
+                       w64.BottomAttach = ((uint)(2));
+                       w64.YOptions = ((global::Gtk.AttachOptions)(4));
+                       // Container child capturetable.Gtk.Table+TableChild
+                       this.videoformatlabel = new global::Gtk.Label ();
+                       this.videoformatlabel.Name = "videoformatlabel";
+                       this.videoformatlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Encoding 
format:");
+                       this.capturetable.Add (this.videoformatlabel);
+                       global::Gtk.Table.TableChild w65 = ((global::Gtk.Table.TableChild)(this.capturetable 
[this.videoformatlabel]));
+                       w65.LeftAttach = ((uint)(2));
+                       w65.RightAttach = ((uint)(3));
+                       w65.XOptions = ((global::Gtk.AttachOptions)(4));
+                       w65.YOptions = ((global::Gtk.AttachOptions)(4));
+                       this.vbox4.Add (this.capturetable);
+                       global::Gtk.Box.BoxChild w66 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.capturetable]));
+                       w66.Position = 6;
+                       w66.Expand = false;
+                       w66.Fill = false;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.hbox8 = new global::Gtk.HBox ();
+                       this.hbox8.Name = "hbox8";
+                       this.hbox8.Homogeneous = true;
+                       this.hbox8.Spacing = 6;
+                       // Container child hbox8.Gtk.Box+BoxChild
+                       this.frame1 = new global::Gtk.Frame ();
+                       this.frame1.Name = "frame1";
+                       this.frame1.ShadowType = ((global::Gtk.ShadowType)(0));
+                       // Container child frame1.Gtk.Container+ContainerChild
+                       this.GtkAlignment6 = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
+                       this.GtkAlignment6.Name = "GtkAlignment6";
+                       this.GtkAlignment6.LeftPadding = ((uint)(12));
+                       // Container child GtkAlignment6.Gtk.Container+ContainerChild
+                       this.localteamplayersselection = new 
global::LongoMatch.Gui.Component.TeamPlayersSelection ();
+                       this.localteamplayersselection.Events = ((global::Gdk.EventMask)(256));
+                       this.localteamplayersselection.Name = "localteamplayersselection";
+                       this.GtkAlignment6.Add (this.localteamplayersselection);
+                       this.frame1.Add (this.GtkAlignment6);
+                       this.GtkLabel10 = new global::Gtk.Label ();
+                       this.GtkLabel10.Name = "GtkLabel10";
+                       this.GtkLabel10.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Home team</b>");
+                       this.GtkLabel10.UseMarkup = true;
+                       this.frame1.LabelWidget = this.GtkLabel10;
+                       this.hbox8.Add (this.frame1);
+                       global::Gtk.Box.BoxChild w69 = ((global::Gtk.Box.BoxChild)(this.hbox8 [this.frame1]));
+                       w69.Position = 0;
+                       // Container child hbox8.Gtk.Box+BoxChild
+                       this.frame2 = new global::Gtk.Frame ();
+                       this.frame2.Name = "frame2";
+                       this.frame2.ShadowType = ((global::Gtk.ShadowType)(0));
+                       // Container child frame2.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.awayteamplayersselection = new 
global::LongoMatch.Gui.Component.TeamPlayersSelection ();
+                       this.awayteamplayersselection.Events = ((global::Gdk.EventMask)(256));
+                       this.awayteamplayersselection.Name = "awayteamplayersselection";
+                       this.GtkAlignment7.Add (this.awayteamplayersselection);
+                       this.frame2.Add (this.GtkAlignment7);
+                       this.GtkLabel11 = new global::Gtk.Label ();
+                       this.GtkLabel11.Name = "GtkLabel11";
+                       this.GtkLabel11.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Away team</b>");
+                       this.GtkLabel11.UseMarkup = true;
+                       this.frame2.LabelWidget = this.GtkLabel11;
+                       this.hbox8.Add (this.frame2);
+                       global::Gtk.Box.BoxChild w72 = ((global::Gtk.Box.BoxChild)(this.hbox8 [this.frame2]));
+                       w72.Position = 1;
+                       this.vbox4.Add (this.hbox8);
+                       global::Gtk.Box.BoxChild w73 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.hbox8]));
+                       w73.Position = 7;
+                       this.notebook1.Add (this.vbox4);
+                       global::Gtk.Notebook.NotebookChild w74 = 
((global::Gtk.Notebook.NotebookChild)(this.notebook1 [this.vbox4]));
+                       w74.Position = 1;
+                       w74.TabFill = false;
+                       w74.MenuLabel = "";
+                       // Notebook tab
+                       this.label3 = new global::Gtk.Label ();
+                       this.label3.Name = "label3";
+                       this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("page2");
+                       this.notebook1.SetTabLabel (this.vbox4, this.label3);
+                       this.label3.ShowAll ();
+                       this.hbox3.Add (this.notebook1);
+                       global::Gtk.Box.BoxChild w75 = ((global::Gtk.Box.BoxChild)(this.hbox3 
[this.notebook1]));
+                       w75.Position = 1;
+                       this.vbox2.Add (this.hbox3);
+                       global::Gtk.Box.BoxChild w76 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox3]));
+                       w76.Position = 0;
+                       // Container child vbox2.Gtk.Box+BoxChild
+                       this.hbuttonbox2 = new global::Gtk.HButtonBox ();
+                       this.hbuttonbox2.Name = "hbuttonbox2";
+                       this.hbuttonbox2.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(1));
+                       // Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
+                       this.backbutton = new global::Gtk.Button ();
+                       this.backbutton.CanFocus = true;
+                       this.backbutton.Name = "backbutton";
+                       this.backbutton.UseUnderline = true;
+                       // Container child backbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w77 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w78 = new global::Gtk.HBox ();
+                       w78.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w79 = new global::Gtk.Image ();
+                       w79.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-go-back", 
global::Gtk.IconSize.Dialog);
+                       w78.Add (w79);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w81 = new global::Gtk.Label ();
+                       w81.LabelProp = global::Mono.Unix.Catalog.GetString ("_Back");
+                       w81.UseUnderline = true;
+                       w78.Add (w81);
+                       w77.Add (w78);
+                       this.backbutton.Add (w77);
+                       this.hbuttonbox2.Add (this.backbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w85 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.backbutton]));
+                       w85.Expand = false;
+                       w85.Fill = false;
+                       // Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
+                       this.nextbutton = new global::Gtk.Button ();
+                       this.nextbutton.CanFocus = true;
+                       this.nextbutton.Name = "nextbutton";
+                       this.nextbutton.UseUnderline = true;
+                       // Container child nextbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w86 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w87 = new global::Gtk.HBox ();
+                       w87.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w88 = new global::Gtk.Image ();
+                       w88.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-go-forward", 
global::Gtk.IconSize.Dialog);
+                       w87.Add (w88);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w90 = new global::Gtk.Label ();
+                       w90.LabelProp = global::Mono.Unix.Catalog.GetString ("_Next");
+                       w90.UseUnderline = true;
+                       w87.Add (w90);
+                       w86.Add (w87);
+                       this.nextbutton.Add (w86);
+                       this.hbuttonbox2.Add (this.nextbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w94 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.nextbutton]));
+                       w94.Position = 1;
+                       w94.Expand = false;
+                       w94.Fill = false;
+                       // Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
+                       this.createbutton = new global::Gtk.Button ();
+                       this.createbutton.CanFocus = true;
+                       this.createbutton.Name = "createbutton";
+                       this.createbutton.UseUnderline = true;
+                       // Container child createbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w95 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w96 = new global::Gtk.HBox ();
+                       w96.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w97 = new global::Gtk.Image ();
+                       w97.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-new", 
global::Gtk.IconSize.Dialog);
+                       w96.Add (w97);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w99 = new global::Gtk.Label ();
+                       w99.LabelProp = global::Mono.Unix.Catalog.GetString ("Create project");
+                       w99.UseUnderline = true;
+                       w96.Add (w99);
+                       w95.Add (w96);
+                       this.createbutton.Add (w95);
+                       this.hbuttonbox2.Add (this.createbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w103 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.createbutton]));
+                       w103.Position = 2;
+                       w103.Expand = false;
+                       w103.Fill = false;
+                       this.vbox2.Add (this.hbuttonbox2);
+                       global::Gtk.Box.BoxChild w104 = ((global::Gtk.Box.BoxChild)(this.vbox2 
[this.hbuttonbox2]));
+                       w104.Position = 1;
+                       w104.Expand = false;
+                       this.Add (this.vbox2);
+                       if ((this.Child != null)) {
+                               this.Child.ShowAll ();
+                       }
+                       this.filetable.Hide ();
+                       this.outputfiletable.Hide ();
+                       this.device.Hide ();
+                       this.urilabel.Hide ();
+                       this.devicecombobox.Hide ();
+                       this.urientry.Hide ();
+                       this.capturetable.Hide ();
+                       this.createbutton.Hide ();
+                       this.Hide ();
+               }
+       }
+}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.OpenProjectPanel.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.OpenProjectPanel.cs
new file mode 100644
index 0000000..0b459df
--- /dev/null
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.OpenProjectPanel.cs
@@ -0,0 +1,70 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace LongoMatch.Gui.Panel
+{
+       public partial class OpenProjectPanel
+       {
+               private global::Gtk.VBox vbox4;
+               private global::LongoMatch.Gui.Component.ProjectListWidget projectlistwidget;
+               private global::Gtk.HButtonBox hbuttonbox;
+               private global::Gtk.Button backbutton;
+               
+               protected virtual void Build ()
+               {
+                       global::Stetic.Gui.Initialize (this);
+                       // Widget LongoMatch.Gui.Panel.OpenProjectPanel
+                       global::Stetic.BinContainer.Attach (this);
+                       this.Name = "LongoMatch.Gui.Panel.OpenProjectPanel";
+                       // Container child LongoMatch.Gui.Panel.OpenProjectPanel.Gtk.Container+ContainerChild
+                       this.vbox4 = new global::Gtk.VBox ();
+                       this.vbox4.Name = "vbox4";
+                       this.vbox4.Spacing = 6;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.projectlistwidget = new global::LongoMatch.Gui.Component.ProjectListWidget ();
+                       this.projectlistwidget.Events = ((global::Gdk.EventMask)(256));
+                       this.projectlistwidget.Name = "projectlistwidget";
+                       this.vbox4.Add (this.projectlistwidget);
+                       global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.projectlistwidget]));
+                       w1.Position = 0;
+                       // Container child vbox4.Gtk.Box+BoxChild
+                       this.hbuttonbox = new global::Gtk.HButtonBox ();
+                       this.hbuttonbox.Name = "hbuttonbox";
+                       this.hbuttonbox.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(3));
+                       // Container child hbuttonbox.Gtk.ButtonBox+ButtonBoxChild
+                       this.backbutton = new global::Gtk.Button ();
+                       this.backbutton.CanFocus = true;
+                       this.backbutton.Name = "backbutton";
+                       this.backbutton.UseUnderline = true;
+                       // Container child backbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w2 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w3 = new global::Gtk.HBox ();
+                       w3.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w4 = new global::Gtk.Image ();
+                       w4.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-go-back", 
global::Gtk.IconSize.Dialog);
+                       w3.Add (w4);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w6 = new global::Gtk.Label ();
+                       w6.LabelProp = global::Mono.Unix.Catalog.GetString ("Back");
+                       w6.UseUnderline = true;
+                       w3.Add (w6);
+                       w2.Add (w3);
+                       this.backbutton.Add (w2);
+                       this.hbuttonbox.Add (this.backbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w10 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox [this.backbutton]));
+                       w10.Expand = false;
+                       w10.Fill = false;
+                       this.vbox4.Add (this.hbuttonbox);
+                       global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox4 
[this.hbuttonbox]));
+                       w11.Position = 1;
+                       w11.Expand = false;
+                       w11.Fill = false;
+                       this.Add (this.vbox4);
+                       if ((this.Child != null)) {
+                               this.Child.ShowAll ();
+                       }
+                       this.Hide ();
+               }
+       }
+}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.WelcomePanel.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.WelcomePanel.cs
new file mode 100644
index 0000000..4419a43
--- /dev/null
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.WelcomePanel.cs
@@ -0,0 +1,264 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace LongoMatch.Gui.Panel
+{
+       public partial class WelcomePanel
+       {
+               private global::Gtk.VBox vbox1;
+               private global::LongoMatch.Gui.Component.BackgroundWidget backgroundwidget;
+               private global::Gtk.Label label1;
+               private global::Gtk.HButtonBox hbuttonbox1;
+               private global::Gtk.Button newbutton;
+               private global::Gtk.Button openbutton;
+               private global::Gtk.Button importbutton;
+               private global::Gtk.Label label2;
+               private global::Gtk.HButtonBox hbuttonbox2;
+               private global::Gtk.Button preferencesbutton;
+               private global::Gtk.Button projectsbutton;
+               private global::Gtk.Button sportsbutton;
+               private global::Gtk.Button teamsbutton;
+               
+               protected virtual void Build ()
+               {
+                       global::Stetic.Gui.Initialize (this);
+                       // Widget LongoMatch.Gui.Panel.WelcomePanel
+                       global::Stetic.BinContainer.Attach (this);
+                       this.Name = "LongoMatch.Gui.Panel.WelcomePanel";
+                       // Container child LongoMatch.Gui.Panel.WelcomePanel.Gtk.Container+ContainerChild
+                       this.vbox1 = new global::Gtk.VBox ();
+                       this.vbox1.Name = "vbox1";
+                       this.vbox1.Spacing = 6;
+                       // Container child vbox1.Gtk.Box+BoxChild
+                       this.backgroundwidget = new global::LongoMatch.Gui.Component.BackgroundWidget ();
+                       this.backgroundwidget.Events = ((global::Gdk.EventMask)(256));
+                       this.backgroundwidget.Name = "backgroundwidget";
+                       this.vbox1.Add (this.backgroundwidget);
+                       global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.backgroundwidget]));
+                       w1.Position = 0;
+                       // Container child vbox1.Gtk.Box+BoxChild
+                       this.label1 = new global::Gtk.Label ();
+                       this.label1.Name = "label1";
+                       this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Projects</b>");
+                       this.label1.UseMarkup = true;
+                       this.label1.Justify = ((global::Gtk.Justification)(2));
+                       this.vbox1.Add (this.label1);
+                       global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.label1]));
+                       w2.Position = 1;
+                       w2.Expand = false;
+                       w2.Fill = false;
+                       // Container child vbox1.Gtk.Box+BoxChild
+                       this.hbuttonbox1 = new global::Gtk.HButtonBox ();
+                       this.hbuttonbox1.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(1));
+                       // Container child hbuttonbox1.Gtk.ButtonBox+ButtonBoxChild
+                       this.newbutton = new global::Gtk.Button ();
+                       this.newbutton.CanFocus = true;
+                       this.newbutton.Name = "newbutton";
+                       this.newbutton.UseUnderline = true;
+                       // Container child newbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w3 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w4 = new global::Gtk.HBox ();
+                       w4.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w5 = new global::Gtk.Image ();
+                       w5.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-new", 
global::Gtk.IconSize.Dialog);
+                       w4.Add (w5);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w7 = new global::Gtk.Label ();
+                       w7.LabelProp = global::Mono.Unix.Catalog.GetString ("New Project");
+                       w7.UseUnderline = true;
+                       w4.Add (w7);
+                       w3.Add (w4);
+                       this.newbutton.Add (w3);
+                       this.hbuttonbox1.Add (this.newbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w11 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox1 [this.newbutton]));
+                       w11.Expand = false;
+                       w11.Fill = false;
+                       // Container child hbuttonbox1.Gtk.ButtonBox+ButtonBoxChild
+                       this.openbutton = new global::Gtk.Button ();
+                       this.openbutton.CanFocus = true;
+                       this.openbutton.Name = "openbutton";
+                       this.openbutton.UseUnderline = true;
+                       // Container child openbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w12 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w13 = new global::Gtk.HBox ();
+                       w13.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w14 = new global::Gtk.Image ();
+                       w14.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-open", 
global::Gtk.IconSize.Dialog);
+                       w13.Add (w14);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w16 = new global::Gtk.Label ();
+                       w16.LabelProp = global::Mono.Unix.Catalog.GetString ("Open Project");
+                       w16.UseUnderline = true;
+                       w13.Add (w16);
+                       w12.Add (w13);
+                       this.openbutton.Add (w12);
+                       this.hbuttonbox1.Add (this.openbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w20 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox1 [this.openbutton]));
+                       w20.Position = 1;
+                       w20.Expand = false;
+                       w20.Fill = false;
+                       // Container child hbuttonbox1.Gtk.ButtonBox+ButtonBoxChild
+                       this.importbutton = new global::Gtk.Button ();
+                       this.importbutton.CanFocus = true;
+                       this.importbutton.Name = "importbutton";
+                       this.importbutton.UseUnderline = true;
+                       // Container child importbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w21 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w22 = new global::Gtk.HBox ();
+                       w22.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w23 = new global::Gtk.Image ();
+                       w23.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-jump-to", 
global::Gtk.IconSize.Dialog);
+                       w22.Add (w23);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w25 = new global::Gtk.Label ();
+                       w25.LabelProp = global::Mono.Unix.Catalog.GetString ("Import Project");
+                       w25.UseUnderline = true;
+                       w22.Add (w25);
+                       w21.Add (w22);
+                       this.importbutton.Add (w21);
+                       this.hbuttonbox1.Add (this.importbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w29 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox1 [this.importbutton]));
+                       w29.Position = 2;
+                       w29.Expand = false;
+                       w29.Fill = false;
+                       this.vbox1.Add (this.hbuttonbox1);
+                       global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.hbuttonbox1]));
+                       w30.Position = 2;
+                       w30.Expand = false;
+                       w30.Fill = false;
+                       // Container child vbox1.Gtk.Box+BoxChild
+                       this.label2 = new global::Gtk.Label ();
+                       this.label2.Name = "label2";
+                       this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Tools</b>");
+                       this.label2.UseMarkup = true;
+                       this.label2.Justify = ((global::Gtk.Justification)(2));
+                       this.vbox1.Add (this.label2);
+                       global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.label2]));
+                       w31.Position = 3;
+                       w31.Expand = false;
+                       w31.Fill = false;
+                       // Container child vbox1.Gtk.Box+BoxChild
+                       this.hbuttonbox2 = new global::Gtk.HButtonBox ();
+                       this.hbuttonbox2.Name = "hbuttonbox2";
+                       this.hbuttonbox2.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(1));
+                       // Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
+                       this.preferencesbutton = new global::Gtk.Button ();
+                       this.preferencesbutton.CanFocus = true;
+                       this.preferencesbutton.Name = "preferencesbutton";
+                       this.preferencesbutton.UseUnderline = true;
+                       // Container child preferencesbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w32 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w33 = new global::Gtk.HBox ();
+                       w33.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w34 = new global::Gtk.Image ();
+                       w34.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-preferences", 
global::Gtk.IconSize.Dialog);
+                       w33.Add (w34);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w36 = new global::Gtk.Label ();
+                       w36.LabelProp = global::Mono.Unix.Catalog.GetString ("Preferences");
+                       w36.UseUnderline = true;
+                       w33.Add (w36);
+                       w32.Add (w33);
+                       this.preferencesbutton.Add (w32);
+                       this.hbuttonbox2.Add (this.preferencesbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w40 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.preferencesbutton]));
+                       w40.Expand = false;
+                       w40.Fill = false;
+                       // Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
+                       this.projectsbutton = new global::Gtk.Button ();
+                       this.projectsbutton.CanFocus = true;
+                       this.projectsbutton.Name = "projectsbutton";
+                       this.projectsbutton.UseUnderline = true;
+                       // Container child projectsbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w41 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w42 = new global::Gtk.HBox ();
+                       w42.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w43 = new global::Gtk.Image ();
+                       w43.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-properties", 
global::Gtk.IconSize.Dialog);
+                       w42.Add (w43);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w45 = new global::Gtk.Label ();
+                       w45.LabelProp = global::Mono.Unix.Catalog.GetString ("Projects Manager");
+                       w45.UseUnderline = true;
+                       w42.Add (w45);
+                       w41.Add (w42);
+                       this.projectsbutton.Add (w41);
+                       this.hbuttonbox2.Add (this.projectsbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w49 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.projectsbutton]));
+                       w49.Position = 1;
+                       w49.Expand = false;
+                       w49.Fill = false;
+                       // Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
+                       this.sportsbutton = new global::Gtk.Button ();
+                       this.sportsbutton.CanFocus = true;
+                       this.sportsbutton.Name = "sportsbutton";
+                       this.sportsbutton.UseUnderline = true;
+                       // Container child sportsbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w50 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w51 = new global::Gtk.HBox ();
+                       w51.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w52 = new global::Gtk.Image ();
+                       w52.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-edit", 
global::Gtk.IconSize.Dialog);
+                       w51.Add (w52);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w54 = new global::Gtk.Label ();
+                       w54.LabelProp = global::Mono.Unix.Catalog.GetString ("Sports templates");
+                       w54.UseUnderline = true;
+                       w51.Add (w54);
+                       w50.Add (w51);
+                       this.sportsbutton.Add (w50);
+                       this.hbuttonbox2.Add (this.sportsbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w58 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.sportsbutton]));
+                       w58.Position = 2;
+                       w58.Expand = false;
+                       w58.Fill = false;
+                       // Container child hbuttonbox2.Gtk.ButtonBox+ButtonBoxChild
+                       this.teamsbutton = new global::Gtk.Button ();
+                       this.teamsbutton.CanFocus = true;
+                       this.teamsbutton.Name = "teamsbutton";
+                       this.teamsbutton.UseUnderline = true;
+                       // Container child teamsbutton.Gtk.Container+ContainerChild
+                       global::Gtk.Alignment w59 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
+                       // Container child GtkAlignment.Gtk.Container+ContainerChild
+                       global::Gtk.HBox w60 = new global::Gtk.HBox ();
+                       w60.Spacing = 2;
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Image w61 = new global::Gtk.Image ();
+                       w61.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-edit", 
global::Gtk.IconSize.Dialog);
+                       w60.Add (w61);
+                       // Container child GtkHBox.Gtk.Container+ContainerChild
+                       global::Gtk.Label w63 = new global::Gtk.Label ();
+                       w63.LabelProp = global::Mono.Unix.Catalog.GetString ("Teams templates");
+                       w63.UseUnderline = true;
+                       w60.Add (w63);
+                       w59.Add (w60);
+                       this.teamsbutton.Add (w59);
+                       this.hbuttonbox2.Add (this.teamsbutton);
+                       global::Gtk.ButtonBox.ButtonBoxChild w67 = 
((global::Gtk.ButtonBox.ButtonBoxChild)(this.hbuttonbox2 [this.teamsbutton]));
+                       w67.Position = 3;
+                       w67.Expand = false;
+                       w67.Fill = false;
+                       this.vbox1.Add (this.hbuttonbox2);
+                       global::Gtk.Box.BoxChild w68 = ((global::Gtk.Box.BoxChild)(this.vbox1 
[this.hbuttonbox2]));
+                       w68.Position = 4;
+                       w68.Expand = false;
+                       w68.Fill = false;
+                       this.Add (this.vbox1);
+                       if ((this.Child != null)) {
+                               this.Child.ShowAll ();
+                       }
+                       this.Hide ();
+               }
+       }
+}
diff --git a/LongoMatch.GUI/gtk-gui/generated.cs b/LongoMatch.GUI/gtk-gui/generated.cs
index 2f73e58..d23ef38 100644
--- a/LongoMatch.GUI/gtk-gui/generated.cs
+++ b/LongoMatch.GUI/gtk-gui/generated.cs
@@ -10,10 +10,6 @@ namespace Stetic
                {
                        if ((Stetic.Gui.initialized == false)) {
                                Stetic.Gui.initialized = true;
-                               global::Gtk.IconFactory w1 = new global::Gtk.IconFactory ();
-                               global::Gtk.IconSet w2 = new global::Gtk.IconSet 
(global::Gdk.Pixbuf.LoadFromResource ("logo.svg"));
-                               w1.Add ("longomatch", w2);
-                               w1.AddDefault ();
                        }
                }
        }
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index e4c35fd..2e1b799 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -10,14 +10,7 @@
     <widget-library name="../../bin/LongoMatch.dll" />
     <widget-library name="../../bin/LongoMatch.Gui.dll" internal="true" />
   </import>
-  <icon-factory>
-    <icon-set id="longomatch">
-      <source>
-        <property name="Image">resource:logo.svg</property>
-      </source>
-    </icon-set>
-  </icon-factory>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.ProjectDetailsWidget" design-size="402 334">
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.ProjectDetailsWidget" design-size="402 476">
     <property name="MemberName" />
     <child>
       <widget class="Gtk.VBox" id="vbox2">
@@ -621,6 +614,7 @@
           <widget class="Gtk.Expander" id="expander1">
             <property name="MemberName" />
             <property name="CanFocus">True</property>
+            <property name="Expanded">True</property>
             <child>
               <widget class="Gtk.Table" id="table2">
                 <property name="MemberName" />
@@ -854,8 +848,8 @@
             <property name="MemberName" />
             <property name="CanFocus">True</property>
             <child>
-              <widget class="Gtk.TreeView" id="treeview">
-                <property name="MemberName">treeview</property>
+              <widget class="Gtk.IconView" id="iconview">
+                <property name="MemberName" />
                 <property name="CanFocus">True</property>
               </widget>
             </child>
@@ -1559,7 +1553,7 @@
       </widget>
     </child>
   </widget>
-  <widget class="Gtk.Window" id="LongoMatch.Gui.MainWindow" design-size="1503 686">
+  <widget class="Gtk.Window" id="LongoMatch.Gui.MainWindow" design-size="938 604">
     <action-group name="Default">
       <action id="FileAction">
         <property name="Type">Action</property>
@@ -1878,12 +1872,19 @@
             <property name="MemberName" />
             <property name="Spacing">6</property>
             <child>
-              <placeholder />
+              <widget class="LongoMatch.Gui.Panel.WelcomePanel" id="welcomepanel1">
+                <property name="MemberName" />
+                <property name="Events">ButtonPressMask</property>
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">False</property>
+              </packing>
             </child>
           </widget>
           <packing>
             <property name="Position">1</property>
-            <property name="AutoSize">True</property>
+            <property name="AutoSize">False</property>
           </packing>
         </child>
         <child>
@@ -4680,6 +4681,7 @@ No</property>
                 <property name="MemberName" />
                 <property name="CanFocus">True</property>
                 <property name="Label" translatable="yes" />
+                <property name="Active">True</property>
                 <property name="DrawIndicator">False</property>
                 <property name="HasLabel">False</property>
                 <property name="UseUnderline">True</property>
@@ -5600,7 +5602,6 @@ Show-&gt;&lt;b&gt; S&lt;/b&gt;
                     <property name="MemberName" />
                     <property name="CanFocus">True</property>
                     <property name="Label" translatable="yes">New project using a video file</property>
-                    <property name="Active">True</property>
                     <property name="DrawIndicator">True</property>
                     <property name="HasLabel">True</property>
                     <property name="UseUnderline">True</property>
@@ -5955,7 +5956,8 @@ You can continue with the current capture, cancel it or save your project.
     <property name="MemberName" />
     <property name="Title" translatable="yes" />
     <property name="Icon">stock:longomatch Menu</property>
-    <property name="WindowPosition">CenterOnParent</property>
+    <property name="TypeHint">Dialog</property>
+    <property name="WindowPosition">Center</property>
     <property name="Modal">True</property>
     <property name="Resizable">False</property>
     <property name="AllowGrow">False</property>
@@ -8658,6 +8660,7 @@ Defining &lt;b&gt; Game Units &lt;/b&gt; will help you during the analysis to in
                 <property name="MemberName" />
                 <property name="CanFocus">True</property>
                 <property name="Label" translatable="yes">Histogram</property>
+                <property name="Active">True</property>
                 <property name="DrawIndicator">True</property>
                 <property name="HasLabel">True</property>
                 <property name="UseUnderline">True</property>
@@ -9442,4 +9445,1412 @@ 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.Panel.WelcomePanel" design-size="861 345">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="vbox1">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="LongoMatch.Gui.Component.BackgroundWidget" id="backgroundwidget">
+            <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.Label" id="label1">
+            <property name="MemberName" />
+            <property name="LabelProp" translatable="yes">&lt;b&gt;Projects&lt;/b&gt;</property>
+            <property name="UseMarkup">True</property>
+            <property name="Justify">Center</property>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.HButtonBox" id="hbuttonbox1">
+            <property name="MemberName" />
+            <property name="Size">3</property>
+            <property name="LayoutStyle">Spread</property>
+            <child>
+              <widget class="Gtk.Button" id="newbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-new Dialog</property>
+                <property name="Label" translatable="yes">New Project</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Button" id="openbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-open Dialog</property>
+                <property name="Label" translatable="yes">Open Project</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Button" id="importbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-jump-to Dialog</property>
+                <property name="Label" translatable="yes">Import Project</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Position">2</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">2</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Label" id="label2">
+            <property name="MemberName" />
+            <property name="LabelProp" translatable="yes">&lt;b&gt;Tools&lt;/b&gt;</property>
+            <property name="UseMarkup">True</property>
+            <property name="Justify">Center</property>
+          </widget>
+          <packing>
+            <property name="Position">3</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.HButtonBox" id="hbuttonbox2">
+            <property name="MemberName" />
+            <property name="Size">4</property>
+            <property name="LayoutStyle">Spread</property>
+            <child>
+              <widget class="Gtk.Button" id="preferencesbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-preferences Dialog</property>
+                <property name="Label" translatable="yes">Preferences</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Button" id="projectsbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-properties Dialog</property>
+                <property name="Label" translatable="yes">Projects Manager</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Button" id="sportsbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-edit Dialog</property>
+                <property name="Label" translatable="yes">Sports templates</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Position">2</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Button" id="teamsbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-edit Dialog</property>
+                <property name="Label" translatable="yes">Teams templates</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Position">3</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">4</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.BackgroundWidget" design-size="300 300">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.DrawingArea" id="drawingarea">
+        <property name="MemberName" />
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Panel.OpenProjectPanel" design-size="514 324">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="vbox4">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="LongoMatch.Gui.Component.ProjectListWidget" id="projectlistwidget">
+            <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.HButtonBox" id="hbuttonbox">
+            <property name="MemberName" />
+            <property name="Size">1</property>
+            <property name="LayoutStyle">Start</property>
+            <child>
+              <widget class="Gtk.Button" id="backbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-go-back Dialog</property>
+                <property name="Label" translatable="yes">Back</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">False</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Panel.NewProjectPanel" design-size="1336 647">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="vbox2">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="Gtk.HBox" id="hbox3">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="LongoMatch.Gui.Component.BackgroundWidget" id="backgroundwidget">
+                <property name="MemberName" />
+                <property name="Events">ButtonPressMask</property>
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">False</property>
+                <property name="Expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Notebook" id="notebook1">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="CurrentPage">1</property>
+                <property name="ShowBorder">False</property>
+                <property name="Scrollable">True</property>
+                <child>
+                  <widget class="Gtk.VBox" id="vbox3">
+                    <property name="MemberName" />
+                    <property name="Spacing">6</property>
+                    <child>
+                      <widget class="Gtk.Label" id="label6">
+                        <property name="MemberName" />
+                        <property name="LabelProp" translatable="yes">&lt;b&gt;Select new project 
type&lt;/b&gt;</property>
+                        <property name="UseMarkup">True</property>
+                        <property name="Justify">Center</property>
+                      </widget>
+                      <packing>
+                        <property name="Position">0</property>
+                        <property name="AutoSize">False</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                        <property name="Padding">30</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HSeparator" id="hseparator1">
+                        <property name="MemberName" />
+                      </widget>
+                      <packing>
+                        <property name="Position">1</property>
+                        <property name="AutoSize">True</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HBox" id="hbox1">
+                        <property name="MemberName" />
+                        <property name="Spacing">6</property>
+                        <child>
+                          <widget class="Gtk.RadioButton" id="fromfileradiobutton">
+                            <property name="MemberName" />
+                            <property name="CanFocus">True</property>
+                            <property name="Label" translatable="yes">New project using a video 
file</property>
+                            <property name="DrawIndicator">True</property>
+                            <property name="HasLabel">True</property>
+                            <property name="UseUnderline">True</property>
+                            <property name="FocusOnClick">False</property>
+                            <property name="Group">project</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">0</property>
+                            <property name="AutoSize">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Image" id="image61">
+                            <property name="MemberName" />
+                            <property name="Pixbuf">resource:video.png</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">1</property>
+                            <property name="AutoSize">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">2</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HBox" id="hbox2">
+                        <property name="MemberName" />
+                        <property name="Spacing">6</property>
+                        <child>
+                          <widget class="Gtk.RadioButton" id="liveradiobutton">
+                            <property name="MemberName" />
+                            <property name="CanFocus">True</property>
+                            <property name="Label" translatable="yes">Live project using a capture 
device</property>
+                            <property name="DrawIndicator">True</property>
+                            <property name="HasLabel">True</property>
+                            <property name="UseUnderline">True</property>
+                            <property name="Group">project</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">0</property>
+                            <property name="AutoSize">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Image" id="image63">
+                            <property name="MemberName" />
+                            <property name="Pixbuf">resource:camera-video.png</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">1</property>
+                            <property name="AutoSize">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">3</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HBox" id="hbox4">
+                        <property name="MemberName" />
+                        <property name="Spacing">6</property>
+                        <child>
+                          <widget class="Gtk.RadioButton" id="fakeliveradiobutton">
+                            <property name="MemberName" />
+                            <property name="CanFocus">True</property>
+                            <property name="Label" translatable="yes">Live project using a fake capture 
device</property>
+                            <property name="DrawIndicator">True</property>
+                            <property name="HasLabel">True</property>
+                            <property name="UseUnderline">True</property>
+                            <property name="Group">project</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">0</property>
+                            <property name="AutoSize">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Image" id="image62">
+                            <property name="MemberName" />
+                            <property name="Pixbuf">resource:camera-video.png</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">1</property>
+                            <property name="AutoSize">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">4</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HBox" id="ipcamerabox">
+                        <property name="MemberName" />
+                        <property name="Spacing">6</property>
+                        <child>
+                          <widget class="Gtk.RadioButton" id="uriliveradiobutton">
+                            <property name="MemberName" />
+                            <property name="CanFocus">True</property>
+                            <property name="Label" translatable="yes">Live project using an IP 
camera</property>
+                            <property name="DrawIndicator">True</property>
+                            <property name="HasLabel">True</property>
+                            <property name="UseUnderline">True</property>
+                            <property name="Group">project</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">0</property>
+                            <property name="AutoSize">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Image" id="image64">
+                            <property name="MemberName" />
+                            <property name="Pixbuf">resource:camera-video.png</property>
+                          </widget>
+                          <packing>
+                            <property name="Position">1</property>
+                            <property name="AutoSize">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">5</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="Gtk.Label" id="label1">
+                    <property name="MemberName" />
+                    <property name="LabelProp" translatable="yes">page1</property>
+                  </widget>
+                  <packing>
+                    <property name="type">tab</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.VBox" id="vbox4">
+                    <property name="MemberName" />
+                    <property name="Spacing">6</property>
+                    <child>
+                      <widget class="Gtk.Label" id="label4">
+                        <property name="MemberName" />
+                        <property name="LabelProp" translatable="yes">&lt;b&gt;Project 
properties&lt;/b&gt;</property>
+                        <property name="UseMarkup">True</property>
+                        <property name="Justify">Center</property>
+                      </widget>
+                      <packing>
+                        <property name="Position">0</property>
+                        <property name="AutoSize">False</property>
+                        <property name="Expand">False</property>
+                        <property name="Padding">20</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HSeparator" id="hseparator2">
+                        <property name="MemberName" />
+                      </widget>
+                      <packing>
+                        <property name="Position">1</property>
+                        <property name="AutoSize">True</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.Table" id="table1">
+                        <property name="MemberName" />
+                        <property name="NRows">3</property>
+                        <property name="NColumns">4</property>
+                        <property name="Homogeneous">True</property>
+                        <property name="RowSpacing">6</property>
+                        <property name="ColumnSpacing">6</property>
+                        <child>
+                          <placeholder />
+                        </child>
+                        <child>
+                          <placeholder />
+                        </child>
+                        <child>
+                          <widget class="Gtk.Entry" id="competitionentry">
+                            <property name="MemberName" />
+                            <property name="CanFocus">True</property>
+                            <property name="IsEditable">True</property>
+                            <property name="InvisibleChar">●</property>
+                          </widget>
+                          <packing>
+                            <property name="LeftAttach">3</property>
+                            <property name="RightAttach">4</property>
+                            <property name="AutoSize">True</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">True</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="Competitionlabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Competition:</property>
+                          </widget>
+                          <packing>
+                            <property name="LeftAttach">2</property>
+                            <property name="RightAttach">3</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.HBox" id="hbox5">
+                            <property name="MemberName" />
+                            <child>
+                              <widget class="Gtk.Entry" id="dateEntry">
+                                <property name="MemberName">dateEntry</property>
+                                <property name="CanFocus">True</property>
+                                <property name="IsEditable">False</property>
+                                <property name="InvisibleChar">●</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Button" id="calendarbutton">
+                                <property name="MemberName" />
+                                <property name="CanFocus">True</property>
+                                <property name="Type">TextAndIcon</property>
+                                <property name="Icon">stock:stock_calendar Button</property>
+                                <property name="Label" translatable="yes">_Calendar</property>
+                                <property name="UseUnderline">True</property>
+                              </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>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="LeftAttach">3</property>
+                            <property name="RightAttach">4</property>
+                            <property name="AutoSize">True</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">True</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.HBox" id="hbox9">
+                            <property name="MemberName" />
+                            <property name="Spacing">6</property>
+                            <child>
+                              <widget class="Gtk.SpinButton" id="localSpinButton">
+                                <property name="MemberName">localSpinButton</property>
+                                <property name="CanFocus">True</property>
+                                <property name="Upper">1000</property>
+                                <property name="PageIncrement">10</property>
+                                <property name="StepIncrement">1</property>
+                                <property name="ClimbRate">1</property>
+                                <property name="Numeric">True</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">False</property>
+                                <property name="Fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Label" id="label2">
+                                <property name="MemberName" />
+                                <property name="LabelProp" translatable="yes">-</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">1</property>
+                                <property name="AutoSize">True</property>
+                                <property name="Expand">False</property>
+                                <property name="Fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="Gtk.SpinButton" id="visitorSpinButton">
+                                <property name="MemberName">visitorSpinButton</property>
+                                <property name="CanFocus">True</property>
+                                <property name="Upper">1000</property>
+                                <property name="PageIncrement">10</property>
+                                <property name="StepIncrement">1</property>
+                                <property name="ClimbRate">1</property>
+                                <property name="Numeric">True</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">2</property>
+                                <property name="AutoSize">False</property>
+                                <property name="Fill">False</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="LeftAttach">1</property>
+                            <property name="RightAttach">2</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="label11">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Score:</property>
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="label5">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Date:</property>
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="LeftAttach">2</property>
+                            <property name="RightAttach">3</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="label9">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Analisys Template:</property>
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">2</property>
+                            <property name="BottomAttach">3</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Entry" id="seasonentry">
+                            <property name="MemberName" />
+                            <property name="CanFocus">True</property>
+                            <property name="IsEditable">True</property>
+                            <property name="InvisibleChar">●</property>
+                          </widget>
+                          <packing>
+                            <property name="LeftAttach">1</property>
+                            <property name="RightAttach">2</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="seasonlabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Season:</property>
+                          </widget>
+                          <packing>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.ComboBox" id="tagscombobox">
+                            <property name="MemberName" />
+                            <property name="IsTextCombo">True</property>
+                            <property name="Items" translatable="yes" />
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">2</property>
+                            <property name="BottomAttach">3</property>
+                            <property name="LeftAttach">1</property>
+                            <property name="RightAttach">2</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">2</property>
+                        <property name="AutoSize">True</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HSeparator" id="hseparator3">
+                        <property name="MemberName" />
+                      </widget>
+                      <packing>
+                        <property name="Position">3</property>
+                        <property name="AutoSize">True</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.Table" id="filetable">
+                        <property name="MemberName" />
+                        <property name="Visible">False</property>
+                        <property name="NColumns">4</property>
+                        <property name="Homogeneous">True</property>
+                        <property name="RowSpacing">6</property>
+                        <property name="ColumnSpacing">6</property>
+                        <child>
+                          <placeholder />
+                        </child>
+                        <child>
+                          <placeholder />
+                        </child>
+                        <child>
+                          <widget class="Gtk.HBox" id="filehbox">
+                            <property name="MemberName" />
+                            <property name="Spacing">6</property>
+                            <child>
+                              <widget class="Gtk.Entry" id="fileEntry">
+                                <property name="MemberName" />
+                                <property name="CanFocus">True</property>
+                                <property name="IsEditable">False</property>
+                                <property name="HasFrame">False</property>
+                                <property name="InvisibleChar">●</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Button" id="openbutton">
+                                <property name="MemberName" />
+                                <property name="CanFocus">True</property>
+                                <property name="UseStock">True</property>
+                                <property name="Type">StockItem</property>
+                                <property name="StockId">gtk-open</property>
+                                <property name="label">gtk-open</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">1</property>
+                                <property name="AutoSize">False</property>
+                                <property name="Expand">False</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>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="filelabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">File:</property>
+                          </widget>
+                          <packing>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">4</property>
+                        <property name="AutoSize">False</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.Table" id="outputfiletable">
+                        <property name="MemberName" />
+                        <property name="Visible">False</property>
+                        <property name="NColumns">4</property>
+                        <property name="Homogeneous">True</property>
+                        <property name="RowSpacing">6</property>
+                        <property name="ColumnSpacing">6</property>
+                        <child>
+                          <placeholder />
+                        </child>
+                        <child>
+                          <placeholder />
+                        </child>
+                        <child>
+                          <widget class="Gtk.HBox" id="outputfilehbox1">
+                            <property name="MemberName" />
+                            <property name="Spacing">6</property>
+                            <child>
+                              <widget class="Gtk.Entry" id="outfileEntry">
+                                <property name="MemberName" />
+                                <property name="CanFocus">True</property>
+                                <property name="IsEditable">False</property>
+                                <property name="HasFrame">False</property>
+                                <property name="InvisibleChar">●</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Button" id="savebutton">
+                                <property name="MemberName" />
+                                <property name="CanFocus">True</property>
+                                <property name="UseStock">True</property>
+                                <property name="Type">StockItem</property>
+                                <property name="StockId">gtk-save-as</property>
+                                <property name="label">gtk-save-as</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">1</property>
+                                <property name="AutoSize">False</property>
+                                <property name="Expand">False</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="LeftAttach">1</property>
+                            <property name="RightAttach">2</property>
+                            <property name="AutoSize">False</property>
+                            <property name="YOptions">0</property>
+                            <property name="XExpand">True</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">False</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="outputfilelabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Output file:</property>
+                          </widget>
+                          <packing>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">5</property>
+                        <property name="AutoSize">True</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.Table" id="capturetable">
+                        <property name="MemberName" />
+                        <property name="Visible">False</property>
+                        <property name="NRows">2</property>
+                        <property name="NColumns">4</property>
+                        <property name="Homogeneous">True</property>
+                        <property name="RowSpacing">6</property>
+                        <property name="ColumnSpacing">6</property>
+                        <child>
+                          <widget class="Gtk.ComboBox" id="encodingcombobox">
+                            <property name="MemberName" />
+                            <property name="IsTextCombo">True</property>
+                            <property name="Items" translatable="yes" />
+                          </widget>
+                          <packing>
+                            <property name="LeftAttach">3</property>
+                            <property name="RightAttach">4</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.HBox" id="hbox6">
+                            <property name="MemberName" />
+                            <property name="Spacing">6</property>
+                            <child>
+                              <widget class="Gtk.Label" id="device">
+                                <property name="MemberName" />
+                                <property name="Visible">False</property>
+                                <property name="LabelProp" translatable="yes">Device:</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Label" id="urilabel">
+                                <property name="MemberName" />
+                                <property name="Visible">False</property>
+                                <property name="LabelProp" translatable="yes">URL:</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">1</property>
+                                <property name="AutoSize">False</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="AutoSize">False</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.HBox" id="hbox7">
+                            <property name="MemberName" />
+                            <property name="Spacing">6</property>
+                            <child>
+                              <widget class="Gtk.ComboBox" id="devicecombobox">
+                                <property name="MemberName" />
+                                <property name="Visible">False</property>
+                                <property name="IsTextCombo">True</property>
+                                <property name="Items" translatable="yes" />
+                              </widget>
+                              <packing>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Entry" id="urientry">
+                                <property name="MemberName" />
+                                <property name="Visible">False</property>
+                                <property name="CanFocus">True</property>
+                                <property name="IsEditable">True</property>
+                                <property name="InvisibleChar">•</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">1</property>
+                                <property name="AutoSize">True</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="LeftAttach">1</property>
+                            <property name="RightAttach">2</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.ComboBox" id="imagecombobox">
+                            <property name="MemberName" />
+                            <property name="IsTextCombo">True</property>
+                            <property name="Items" translatable="yes" />
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="LeftAttach">1</property>
+                            <property name="RightAttach">2</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.ComboBox" id="qualitycombobox">
+                            <property name="MemberName" />
+                            <property name="IsTextCombo">True</property>
+                            <property name="Items" translatable="yes" />
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="LeftAttach">3</property>
+                            <property name="RightAttach">4</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="qualitylabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Quality:</property>
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="LeftAttach">2</property>
+                            <property name="RightAttach">3</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="sizelabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Image format:</property>
+                          </widget>
+                          <packing>
+                            <property name="TopAttach">1</property>
+                            <property name="BottomAttach">2</property>
+                            <property name="AutoSize">False</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">True</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="videoformatlabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">Encoding format:</property>
+                          </widget>
+                          <packing>
+                            <property name="LeftAttach">2</property>
+                            <property name="RightAttach">3</property>
+                            <property name="AutoSize">True</property>
+                            <property name="XOptions">Fill</property>
+                            <property name="YOptions">Fill</property>
+                            <property name="XExpand">False</property>
+                            <property name="XFill">True</property>
+                            <property name="XShrink">False</property>
+                            <property name="YExpand">False</property>
+                            <property name="YFill">True</property>
+                            <property name="YShrink">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">6</property>
+                        <property name="AutoSize">True</property>
+                        <property name="Expand">False</property>
+                        <property name="Fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HBox" id="hbox8">
+                        <property name="MemberName" />
+                        <property name="Homogeneous">True</property>
+                        <property name="Spacing">6</property>
+                        <child>
+                          <widget class="Gtk.Frame" id="frame1">
+                            <property name="MemberName" />
+                            <property name="ShadowType">None</property>
+                            <child>
+                              <widget class="Gtk.Alignment" id="GtkAlignment6">
+                                <property name="MemberName" />
+                                <property name="Xalign">0</property>
+                                <property name="Yalign">0</property>
+                                <property name="LeftPadding">12</property>
+                                <child>
+                                  <widget class="LongoMatch.Gui.Component.TeamPlayersSelection" 
id="localteamplayersselection">
+                                    <property name="MemberName" />
+                                    <property name="Events">ButtonPressMask</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Label" id="GtkLabel10">
+                                <property name="MemberName" />
+                                <property name="LabelProp" translatable="yes">&lt;b&gt;Home 
team&lt;/b&gt;</property>
+                                <property name="UseMarkup">True</property>
+                              </widget>
+                              <packing>
+                                <property name="type">label_item</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="Position">0</property>
+                            <property name="AutoSize">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Frame" id="frame2">
+                            <property name="MemberName" />
+                            <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="LongoMatch.Gui.Component.TeamPlayersSelection" 
id="awayteamplayersselection">
+                                    <property name="MemberName" />
+                                    <property name="Events">ButtonPressMask</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="Gtk.Label" id="GtkLabel11">
+                                <property name="MemberName" />
+                                <property name="LabelProp" translatable="yes">&lt;b&gt;Away 
team&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">7</property>
+                        <property name="AutoSize">True</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="TabFill">False</property>
+                    <property name="MenuLabel" translatable="yes" />
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Label" id="label3">
+                    <property name="MemberName" />
+                    <property name="LabelProp" translatable="yes">page2</property>
+                  </widget>
+                  <packing>
+                    <property name="type">tab</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.HButtonBox" id="hbuttonbox2">
+            <property name="MemberName" />
+            <property name="Size">3</property>
+            <property name="LayoutStyle">Spread</property>
+            <child>
+              <widget class="Gtk.Button" id="backbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-go-back Dialog</property>
+                <property name="Label" translatable="yes">_Back</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Button" id="nextbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-go-forward Dialog</property>
+                <property name="Label" translatable="yes">_Next</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Button" id="createbutton">
+                <property name="MemberName" />
+                <property name="Visible">False</property>
+                <property name="CanFocus">True</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-new Dialog</property>
+                <property name="Label" translatable="yes">Create project</property>
+                <property name="UseUnderline">True</property>
+              </widget>
+              <packing>
+                <property name="Position">2</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">False</property>
+            <property name="Expand">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.TeamPlayersSelection" design-size="300 300">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="vbox4">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="Gtk.HBox" id="hbox4">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="Gtk.Image" id="shieldimage">
+                <property name="MemberName" />
+                <property name="Pixbuf">resource:logo.svg</property>
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="namelabel">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.ComboBox" id="teamscombobox">
+                <property name="MemberName" />
+                <property name="IsTextCombo">True</property>
+                <property name="Items" translatable="yes" />
+              </widget>
+              <packing>
+                <property name="Position">2</property>
+                <property name="AutoSize">False</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+            <property name="MemberName" />
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.IconView" id="playersiconview">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="ShowScrollbars">True</property>
+                <property name="SelectionMode">None</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">True</property>
+          </packing>
+        </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 f76d513..c71d4b5 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -115,6 +115,7 @@
     <signals>
       <itemgroup label="ProjectListWidget Signals">
         <signal name="ProjectsSelected" />
+        <signal name="ProjectSelected" />
       </itemgroup>
     </signals>
   </object>
@@ -484,4 +485,34 @@
       </itemgroup>
     </signals>
   </object>
+  <object type="LongoMatch.Gui.Panel.WelcomePanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.BackgroundWidget" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Panel.OpenProjectPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="OpenProjectPanel Signals">
+        <signal name="OpenProjectEvent" />
+        <signal name="BackEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Panel.NewProjectPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="NewProjectPanel Signals">
+        <signal name="CancelEvent" />
+        <signal name="OpenNewProjectEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.TeamPlayersSelection" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
 </objects>
\ No newline at end of file
diff --git a/LongoMatch.Multimedia/LongoMatch.Multimedia.mdp b/LongoMatch.Multimedia/LongoMatch.Multimedia.mdp
index 8a98d9f..bd357a0 100644
--- a/LongoMatch.Multimedia/LongoMatch.Multimedia.mdp
+++ b/LongoMatch.Multimedia/LongoMatch.Multimedia.mdp
@@ -25,7 +25,6 @@
     <File subtype="Code" buildaction="Compile" name="Capturer/FakeCapturer.cs" />
     <File subtype="Code" buildaction="Compile" name="Capturer/GstCameraCapturer.cs" />
     <File subtype="Code" buildaction="Compile" name="Capturer/LiveSourceTimer.cs" />
-    <File subtype="Code" buildaction="Compile" name="MultimediaFactory.cs" />
     <File subtype="Directory" buildaction="Compile" name="Utils" />
     <File subtype="Code" buildaction="Compile" name="Utils/TimeString.cs" />
     <File subtype="Code" buildaction="Compile" name="Utils/FramesCapturer.cs" />
@@ -62,6 +61,7 @@
     <File subtype="Code" buildaction="Compile" name="Converter/ObjectManager.cs" />
     <File subtype="Code" buildaction="Compile" name="Utils/Seeker.cs" />
     <File subtype="Code" buildaction="Compile" name="Remuxer/MpegRemuxer.cs" />
+    <File subtype="Code" buildaction="Compile" name="Utils/MultimediaFactory.cs" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="True" refto="libcesarplayer" />
diff --git a/LongoMatch.Multimedia/MultimediaFactory.cs b/LongoMatch.Multimedia/Utils/MultimediaFactory.cs
similarity index 96%
rename from LongoMatch.Multimedia/MultimediaFactory.cs
rename to LongoMatch.Multimedia/Utils/MultimediaFactory.cs
index 75253a8..f54208b 100644
--- a/LongoMatch.Multimedia/MultimediaFactory.cs
+++ b/LongoMatch.Multimedia/Utils/MultimediaFactory.cs
@@ -38,8 +38,7 @@ using LongoMatch.Video.Common;
 namespace LongoMatch.Video
 {
 
-
-       public class MultimediaFactory: IMultimediaToolkit
+       public class MultimediaFactory
        {
 
                OperatingSystem oS;
@@ -139,6 +138,10 @@ namespace LongoMatch.Video
                        }
                }
                
+               public bool FileNeedsRemux (MediaFile file) {
+                       return GStreamer.FileNeedsRemux (file);
+               }
+               
                [DllImport("libgstreamer-0.10.dll")]
                static extern void gst_init (int argc, string argv);
                public static void InitBackend() {
diff --git a/LongoMatch.Services/LongoMatch.Services.mdp b/LongoMatch.Services/LongoMatch.Services.mdp
index 3e956a6..b7e4e2a 100644
--- a/LongoMatch.Services/LongoMatch.Services.mdp
+++ b/LongoMatch.Services/LongoMatch.Services.mdp
@@ -32,6 +32,8 @@
     <File subtype="Code" buildaction="Compile" name="Services/MigrationsManager.cs" />
     <File subtype="Code" buildaction="Compile" name="Services/ToolsManager.cs" />
     <File subtype="Code" buildaction="Compile" name="Services/FileDB.cs" />
+    <File subtype="Code" buildaction="EmbedAsResource" name="gtk-gui/gui.stetic" />
+    <File subtype="Code" buildaction="Compile" name="gtk-gui/generated.cs" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="System, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089" />
diff --git a/LongoMatch.Services/Services/ProjectsManager.cs b/LongoMatch.Services/Services/ProjectsManager.cs
index 6be741f..cb01f87 100644
--- a/LongoMatch.Services/Services/ProjectsManager.cs
+++ b/LongoMatch.Services/Services/ProjectsManager.cs
@@ -55,6 +55,8 @@ namespace LongoMatch.Services
                public void ConnectSignals() {
                        mainController.NewProjectEvent += NewProject;
                        mainController.OpenProjectEvent += OpenProject;
+                       mainController.OpenProjectIDEvent += OpenProjectID;
+                       mainController.OpenNewProjectEvent += OpenNewProject;
                }
                
                public Project OpenedProject {
@@ -327,55 +329,33 @@ namespace LongoMatch.Services
                }
                
                protected virtual void NewProject() {
-                       Project project;
-                       ProjectType projectType;
-                       CaptureSettings captureSettings = new CaptureSettings();
-
                        Log.Debug("Creating new project");
                        
                        if (!PromptCloseProject ()) {
                                return;
                        }
                        
-                       /* Show the project selection dialog */
-                       projectType = guiToolkit.SelectNewProjectType();
-                       
-                       if(projectType == ProjectType.CaptureProject) {
-                               List<Device> devices = multimediaToolkit.VideoDevices;
-                               if(devices.Count == 0) {
-                                       guiToolkit.ErrorMessage(Catalog.GetString("No capture devices were 
found."));
-                                       return;
-                               }
-                               project = guiToolkit.NewCaptureProject(Core.DB, ts, devices, out 
captureSettings);
-                       } else if (projectType == ProjectType.FakeCaptureProject) {
-                               project = guiToolkit.NewFakeProject(Core.DB, ts);
-                       } else if (projectType == ProjectType.FileProject) {
-                               project = guiToolkit.NewFileProject(Core.DB, ts);
-                               if (project != null)
-                                       Core.DB.AddProject(project);
-                       } else if (projectType == ProjectType.URICaptureProject) {
-                               project = guiToolkit.NewURICaptureProject(Core.DB, ts, out captureSettings);
-                       } else {
-                               project = null;
-                       }
-                       
+                       guiToolkit.CreateNewProject (ts, multimediaToolkit);
+               }
+               
+               protected void OpenNewProject (Project project, ProjectType projectType,
+                                              CaptureSettings captureSettings)
+               {
                        if (project != null)
                                SetProject(project, projectType, captureSettings);
                }
                
                protected void OpenProject() {
-                       Project project = null;
-                       ProjectDescription projectDescription = null;
-                       
                        if (!PromptCloseProject ()) {
                                return;
                        }
+                       guiToolkit.SelectProject(Core.DB.GetAllProjects());
+               }
+               
+               protected void OpenProjectID (Guid projectID) {
+                       Project project = null;
                        
-                       projectDescription = guiToolkit.SelectProject(Core.DB.GetAllProjects());
-                       if (projectDescription == null)
-                               return;
-
-                       project = Core.DB.GetProject(projectDescription.UUID);
+                       project = Core.DB.GetProject(projectID);
 
                        if (project.Description.File.FilePath == Constants.FAKE_PROJECT) {
                                /* If it's a fake live project prompt for a video file and
@@ -387,7 +367,7 @@ namespace LongoMatch.Services
                                        Catalog.GetString("You are opening a live project without any video 
file associated yet.") +
                                        "\n" + Catalog.GetString("Select a video file in the next step."));
                                
-                               project = guiToolkit.EditFakeProject(Core.DB, project, ts);
+                               guiToolkit.CreateNewProject (ts, multimediaToolkit, project);
                                if (project == null)
                                        return;
                                ToolsManager.CreateThumbnails(project, guiToolkit, 
multimediaToolkit.GetFramesCapturer());
diff --git a/LongoMatch/LongoMatchGtk.mdp b/LongoMatch/LongoMatchGtk.mdp
index 469f25c..71066c9 100644
--- a/LongoMatch/LongoMatchGtk.mdp
+++ b/LongoMatch/LongoMatchGtk.mdp
@@ -32,5 +32,6 @@
     <ProjectReference type="Gac" localcopy="True" refto="Mono.Posix, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=0738eb9f132ed756" />
     <ProjectReference type="Project" localcopy="True" refto="LongoMatch.Core" />
     <ProjectReference type="Project" localcopy="True" refto="LongoMatch.Addins" />
+    <ProjectReference type="Project" localcopy="True" refto="LongoMatch.GUI.Multimedia" />
   </References>
 </Project>
\ No newline at end of file
diff --git a/LongoMatch/Main.cs b/LongoMatch/Main.cs
index 7a89d40..1f24889 100644
--- a/LongoMatch/Main.cs
+++ b/LongoMatch/Main.cs
@@ -62,7 +62,7 @@ namespace LongoMatch
                                AddinsManager manager = new AddinsManager(Config.PluginsConfigDir, 
Config.PluginsDir);
                                manager.LoadConfigModifierAddins();
                            GUIToolkit guiToolkit = new GUIToolkit(version);
-                           IMultimediaToolkit multimediaToolkit = new MultimediaFactory();
+                           IMultimediaToolkit multimediaToolkit = new MultimediaToolkit();
                            manager.LoadExportProjectAddins(guiToolkit.MainController);
                            manager.LoadImportProjectAddins(guiToolkit.MainController);
                            try {


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