[longomatch] Make the Stats UI a plugin
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Make the Stats UI a plugin
- Date: Tue, 11 Nov 2014 18:00:17 +0000 (UTC)
commit d13a76e47b0f0b773084674a77d56f90cce7bb0e
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Tue Nov 11 18:50:46 2014 +0100
Make the Stats UI a plugin
LongoMatch.Addins/AddinsManager.cs | 11 +
LongoMatch.Addins/ExtensionPoints/IStatsUI.cs | 33 +
LongoMatch.Addins/LongoMatch.Addins.csproj | 4 +
LongoMatch.Addins/Makefile.am | 1 +
LongoMatch.GUI/Gui/GUIToolkit.cs | 6 +-
LongoMatch.GUI/LongoMatch.GUI.csproj | 26 +-
LongoMatch.GUI/Makefile.am | 21 -
LongoMatch.GUI/gtk-gui/gui.stetic | 920 ++------------------
LongoMatch.GUI/gtk-gui/objects.xml | 47 -
.../LongoMatch.Plugins.Stats.csproj | 108 +++
LongoMatch.Plugins.Stats/Makefile.am | 33 +
LongoMatch.Plugins.Stats/MyClass.cs | 29 +
LongoMatch.Plugins.Stats/ProjectStats.cs | 31 +
.../Properties/AssemblyInfo.cs | 39 +
.../Stats/CategoriesViewer.cs | 2 +-
.../Stats/CategoryViewer.cs | 2 +-
.../Stats/GameViewer.cs | 2 +-
.../Stats/PangoTextMeasurer.cs | 2 +-
.../Stats/PlayerCategoriesViewer.cs | 4 +-
.../Stats/PlayerCategoryViewer.cs | 3 +-
.../Stats/PlayerSubcategoryViewer.cs | 8 +-
.../Stats/PlayersViewer.cs | 3 +-
.../Stats/Plotter.cs | 2 +-
LongoMatch.Plugins.Stats/Stats/StatsDialog.cs | 52 ++
.../Stats/SubcategoryViewer.cs | 2 +-
LongoMatch.Plugins.Stats/StatsUIPlugin.cs | 59 ++
.../LongoMatch.Plugins.Stats.CategoriesViewer.cs | 12 +-
.../LongoMatch.Plugins.Stats.CategoryViewer.cs | 8 +-
.../gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs | 8 +-
...goMatch.Plugins.Stats.PlayerCategoriesViewer.cs | 12 +-
...ongoMatch.Plugins.Stats.PlayerCategoryViewer.cs | 10 +-
...oMatch.Plugins.Stats.PlayerSubcategoryViewer.cs | 21 +-
.../LongoMatch.Plugins.Stats.PlayersViewer.cs | 12 +-
.../gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs | 8 +-
.../LongoMatch.Plugins.Stats.StatsDialog.cs | 58 +-
.../LongoMatch.Plugins.Stats.SubCategoryViewer.cs | 12 +-
LongoMatch.Plugins.Stats/gtk-gui/generated.cs | 115 +++
LongoMatch.Plugins.Stats/gtk-gui/gui.stetic | 829 ++++++++++++++++++
LongoMatch.Plugins.Stats/gtk-gui/objects.xml | 329 +++++++
LongoMatch.sln | 6 +
LongoMatch/LongoMatch.csproj | 4 +
Makefile.am | 1 +
build/build.environment.mk | 12 +
configure.ac | 1 +
44 files changed, 1876 insertions(+), 1032 deletions(-)
---
diff --git a/LongoMatch.Addins/AddinsManager.cs b/LongoMatch.Addins/AddinsManager.cs
index 7498fc3..842de8d 100644
--- a/LongoMatch.Addins/AddinsManager.cs
+++ b/LongoMatch.Addins/AddinsManager.cs
@@ -28,6 +28,7 @@ using LongoMatch.Core.Store;
using LongoMatch.Core.Store.Templates;
using Mono.Addins;
using Mono.Addins.Description;
+using LongoMatch.Core.Stats;
[assembly:AddinRoot ("LongoMatch", "1.1")]
namespace LongoMatch.Addins
@@ -161,6 +162,16 @@ namespace LongoMatch.Addins
return plugins;
}
}
+
+ public static bool ShowStats (Project project)
+ {
+ IStatsUI statsUI = AddinManager.GetExtensionObjects<IStatsUI> ().OrderByDescending (p
=> p.Priority).FirstOrDefault ();
+ if (statsUI != null) {
+ statsUI.ShowStats (project);
+ return true;
+ }
+ return false;
+ }
}
}
diff --git a/LongoMatch.Addins/ExtensionPoints/IStatsUI.cs b/LongoMatch.Addins/ExtensionPoints/IStatsUI.cs
new file mode 100644
index 0000000..de936dd
--- /dev/null
+++ b/LongoMatch.Addins/ExtensionPoints/IStatsUI.cs
@@ -0,0 +1,33 @@
+//
+// 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.Addins;
+using LongoMatch.Core.Store;
+
+namespace LongoMatch.Addins.ExtensionPoints
+{
+
+ [TypeExtensionPoint]
+ public interface IStatsUI: ILongoMatchPlugin
+ {
+ void ShowStats (Project project);
+
+ int Priority { get; }
+ }
+}
+
diff --git a/LongoMatch.Addins/LongoMatch.Addins.csproj b/LongoMatch.Addins/LongoMatch.Addins.csproj
index fa9cb93..1696d97 100644
--- a/LongoMatch.Addins/LongoMatch.Addins.csproj
+++ b/LongoMatch.Addins/LongoMatch.Addins.csproj
@@ -7,6 +7,8 @@
<OutputType>Library</OutputType>
<RootNamespace>LongoMatch.Addins</RootNamespace>
<AssemblyName>LongoMatch.Addins</AssemblyName>
+ <ProductVersion>12.0.0</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -35,10 +37,12 @@
<Compile Include="ExtensionPoints\IAnalisysDashboardsProvider.cs" />
<Compile Include="PreferencesAttribute.cs" />
<Compile Include="ConfigurablePlugin.cs" />
+ <Compile Include="ExtensionPoints\IStatsUI.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756">
<SpecificVersion>False</SpecificVersion>
+ <Package>mono-addins</Package>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
diff --git a/LongoMatch.Addins/Makefile.am b/LongoMatch.Addins/Makefile.am
index 885df46..e21cbd1 100644
--- a/LongoMatch.Addins/Makefile.am
+++ b/LongoMatch.Addins/Makefile.am
@@ -12,6 +12,7 @@ SOURCES = AddinsManager.cs \
ExtensionPoints/IImportProject.cs \
ExtensionPoints/ILongoMatchPlugin.cs \
ExtensionPoints/IMultimediaBackend.cs \
+ ExtensionPoints/IStatsUI.cs \
PreferencesAttribute.cs
RESOURCES =
diff --git a/LongoMatch.GUI/Gui/GUIToolkit.cs b/LongoMatch.GUI/Gui/GUIToolkit.cs
index 1516e86..939d260 100644
--- a/LongoMatch.GUI/Gui/GUIToolkit.cs
+++ b/LongoMatch.GUI/Gui/GUIToolkit.cs
@@ -326,11 +326,7 @@ namespace LongoMatch.Gui
public void ShowProjectStats (Project project) {
Log.Information ("Show project stats");
- StatsViewer dialog = new StatsViewer ();
- dialog.LoadStats (project);
- dialog.TransientFor = mainWindow as Gtk.Window;
- dialog.Run();
- dialog.Destroy();
+ Addins.AddinsManager.ShowStats (project);
System.GC.Collect();
}
diff --git a/LongoMatch.GUI/LongoMatch.GUI.csproj b/LongoMatch.GUI/LongoMatch.GUI.csproj
index cdcdccb..1386a6b 100644
--- a/LongoMatch.GUI/LongoMatch.GUI.csproj
+++ b/LongoMatch.GUI/LongoMatch.GUI.csproj
@@ -42,7 +42,6 @@
<Folder Include="Gui\Component\" />
<Folder Include="Gui\TreeView\" />
<Folder Include="..\" />
- <Folder Include="Gui\Component\Stats\" />
<Folder Include="Gui\Panel\" />
<Folder Include="Gui\Menu\" />
</ItemGroup>
@@ -117,29 +116,7 @@
<Compile Include="gtk-gui\LongoMatch.Gui.Component.LiveAnalysisPreferences.cs" />
<Compile Include="Gui\Component\PlaysCoordinatesTagger.cs" />
<Compile Include="gtk-gui\LongoMatch.Gui.Component.PlaysCoordinatesTagger.cs" />
- <Compile Include="Gui\Component\Stats\CategoryViewer.cs" />
- <Compile Include="Gui\Component\Stats\Plotter.cs" />
- <Compile Include="Gui\Component\Stats\PangoTextMeasurer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.Plotter.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.CategoryViewer.cs" />
- <Compile Include="Gui\Component\Stats\SubcategoryViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs" />
- <Compile Include="Gui\Component\Stats\CategoriesViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.CategoriesViewer.cs" />
- <Compile Include="Gui\Dialog\StatsViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Dialog.StatsViewer.cs" />
- <Compile Include="Gui\Component\Stats\GameViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.GameViewer.cs" />
- <Compile Include="Gui\Component\Stats\PlayersViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayersViewer.cs" />
- <Compile Include="Gui\Component\Stats\PlayerCategoriesViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs" />
- <Compile Include="Gui\Component\Stats\PlayerCategoryViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs" />
- <Compile Include="Gui\Component\Stats\PlayerSubcategoryViewer.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs" />
<Compile Include="Gui\Component\AnalysisComponent.cs" />
- <Compile Include="gtk-gui\LongoMatch.Gui.Component.AnalysisComponent.cs" />
<Compile Include="Gui\Panel\WelcomePanel.cs" />
<Compile Include="gtk-gui\LongoMatch.Gui.Panel.WelcomePanel.cs" />
<Compile Include="gtk-gui\LongoMatch.Gui.Component.BackgroundWidget.cs" />
@@ -196,6 +173,7 @@
<Compile Include="gtk-gui\LongoMatch.Gui.Component.PluginsPreferences.cs" />
<Compile Include="Gui\Dialog\CodecsChoiceDialog.cs" />
<Compile Include="gtk-gui\LongoMatch.Gui.Dialog.CodecsChoiceDialog.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Gui.Component.AnalysisComponent.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="gtk-gui\gui.stetic">
@@ -298,4 +276,4 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-</Project>
\ No newline at end of file
+</Project>
diff --git a/LongoMatch.GUI/Makefile.am b/LongoMatch.GUI/Makefile.am
index 2d891fa..b5b1489 100644
--- a/LongoMatch.GUI/Makefile.am
+++ b/LongoMatch.GUI/Makefile.am
@@ -29,16 +29,6 @@ SOURCES = Gui/Cairo.cs \
Gui/Component/ProjectListWidget.cs \
Gui/Component/ProjectPeriods.cs \
Gui/Component/RenderingStateBar.cs \
- Gui/Component/Stats/CategoriesViewer.cs \
- Gui/Component/Stats/CategoryViewer.cs \
- Gui/Component/Stats/GameViewer.cs \
- Gui/Component/Stats/PangoTextMeasurer.cs \
- Gui/Component/Stats/PlayerCategoriesViewer.cs \
- Gui/Component/Stats/PlayerCategoryViewer.cs \
- Gui/Component/Stats/PlayerSubcategoryViewer.cs \
- Gui/Component/Stats/PlayersViewer.cs \
- Gui/Component/Stats/Plotter.cs \
- Gui/Component/Stats/SubcategoryViewer.cs \
Gui/Component/TeamTemplateEditor.cs \
Gui/Component/TeamsComboBox.cs \
Gui/Component/Timeline.cs \
@@ -58,7 +48,6 @@ SOURCES = Gui/Cairo.cs \
Gui/Dialog/PlayEditor.cs \
Gui/Dialog/RenderingJobsDialog.cs \
Gui/Dialog/SnapshotsDialog.cs \
- Gui/Dialog/StatsViewer.cs \
Gui/Dialog/SubstitutionsEditor.cs \
Gui/Dialog/UpdateDialog.cs \
Gui/Dialog/VideoConversionTool.cs \
@@ -94,7 +83,6 @@ SOURCES = Gui/Cairo.cs \
gtk-gui/LongoMatch.Gui.Component.DatePicker.cs \
gtk-gui/LongoMatch.Gui.Component.EventsListWidget.cs \
gtk-gui/LongoMatch.Gui.Component.FakeAnalysisComponent.cs \
- gtk-gui/LongoMatch.Gui.Component.GameViewer.cs \
gtk-gui/LongoMatch.Gui.Component.GeneralPreferencesPanel.cs \
gtk-gui/LongoMatch.Gui.Component.HotkeysConfiguration.cs \
gtk-gui/LongoMatch.Gui.Component.LiveAnalysisPreferences.cs \
@@ -111,14 +99,6 @@ SOURCES = Gui/Cairo.cs \
gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs \
gtk-gui/LongoMatch.Gui.Component.ProjectPeriods.cs \
gtk-gui/LongoMatch.Gui.Component.RenderingStateBar.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs \
- gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs \
gtk-gui/LongoMatch.Gui.Component.TeamTemplateEditor.cs \
gtk-gui/LongoMatch.Gui.Component.Timeline.cs \
gtk-gui/LongoMatch.Gui.Component.VideoPreferencesPanel.cs \
@@ -136,7 +116,6 @@ SOURCES = Gui/Cairo.cs \
gtk-gui/LongoMatch.Gui.Dialog.PlayEditor.cs \
gtk-gui/LongoMatch.Gui.Dialog.RenderingJobsDialog.cs \
gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs \
- gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs \
gtk-gui/LongoMatch.Gui.Dialog.SubstitutionsEditor.cs \
gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs \
gtk-gui/LongoMatch.Gui.Dialog.VideoConversionTool.cs \
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index 5204dc1..b96b07b 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -10,6 +10,88 @@
<widget-library name="../../LongoMatch.Drawing.Cairo/bin/Debug/LongoMatch.Drawing.Cairo.dll" />
<widget-library name="../../bin/LongoMatch.GUI.dll" internal="true" />
</import>
+ <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.AnalysisComponent" design-size="1592 741">
+ <action-group name="Default" />
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.HBox" id="hbox1">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.EventBox" id="lightbackgroundeventbox">
+ <property name="MemberName" />
+ <child>
+ <widget class="Gtk.VPaned" id="centralpane">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Position">263</property>
+ <child>
+ <widget class="Gtk.HPaned" id="uppane">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Position">283</property>
+ <child>
+ <widget class="LongoMatch.Gui.Component.PlaysSelectionWidget" id="playsSelection">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Resize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.HPaned" id="rigthpane">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Position">1219</property>
+ <child>
+ <widget class="Gtk.HBox" id="videowidgetsbox">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="LongoMatch.Gui.PlayerCapturerBin" id="playercapturer">
+ <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="Resize">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Resize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Gui.Component.CodingWidget" id="codingwidget">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ <property name="TagPositions">False</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
<widget class="Gtk.Bin" id="LongoMatch.Gui.Component.ProjectListWidget" design-size="572 300">
<property name="MemberName" />
<child>
@@ -5612,844 +5694,6 @@ You can continue with the current capture, cancel it or save your project.
</widget>
</child>
</widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.CategoryViewer" design-size="720 598">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.Viewport" id="GtkViewport">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.Notebook" id="notebook1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="CurrentPage">1</property>
- <child>
- <widget class="Gtk.VBox" id="vbox1">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.Label" id="nodatalabel">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes">No data available</property>
- <property name="Justify">Center</property>
- </widget>
- <packing>
- <property name="Position">0</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">Statistics</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.VBox" id="vbox2">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.Frame" id="allframe">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.Alignment" id="GtkAlignment2">
- <property name="MemberName" />
- <property name="Xalign">0</property>
- <property name="Yalign">0</property>
- <property name="LeftPadding">12</property>
- <child>
- <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="alltagger">
- <property name="MemberName" />
- <property name="HeightRequest">150</property>
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="Gtk.Label" id="GtkLabel2">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes"><b>All</b></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="homeframe">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.Alignment" id="GtkAlignment">
- <property name="MemberName" />
- <property name="Xalign">0</property>
- <property name="Yalign">0</property>
- <property name="LeftPadding">12</property>
- <child>
- <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger"
id="hometagger">
- <property name="MemberName" />
- <property name="HeightRequest">150</property>
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="Gtk.Label" id="homeLabel">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes"><b>Home</b></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>
- <child>
- <widget class="Gtk.Frame" id="awayframe">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.Alignment" id="GtkAlignment1">
- <property name="MemberName" />
- <property name="Xalign">0</property>
- <property name="Yalign">0</property>
- <property name="LeftPadding">12</property>
- <child>
- <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger"
id="awaytagger">
- <property name="MemberName" />
- <property name="HeightRequest">150</property>
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="Gtk.Label" id="awayLabel">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes"><b>Away</b></property>
- <property name="UseMarkup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">2</property>
- <property name="AutoSize">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">1</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.Label" id="label2">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes">Zonal tagging</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.Plotter" design-size="257 181">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.VBox" id="vbox3">
- <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.RadioButton" id="historadiobutton">
- <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>
- <property name="Group">group1</property>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.RadioButton" id="pieradiobutton">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Label" translatable="yes">Pie chart</property>
- <property name="DrawIndicator">True</property>
- <property name="HasLabel">True</property>
- <property name="UseUnderline">True</property>
- <property name="Group">group1</property>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- <property name="Expand">False</property>
- <property name="Fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.HBox" id="hbox3">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.Image" id="imageall">
- <property name="MemberName" />
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.Image" id="imagehome">
- <property name="MemberName" />
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.Image" id="imageaway">
- <property name="MemberName" />
- </widget>
- <packing>
- <property name="Position">2</property>
- <property name="AutoSize">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.SubCategoryViewer" design-size="461 270">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.Frame" id="frame2">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.Alignment" id="GtkAlignment">
- <property name="MemberName" />
- <property name="Xalign">0</property>
- <property name="Yalign">0</property>
- <property name="LeftPadding">12</property>
- <child>
- <widget class="Gtk.HBox" id="hbox1">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
- <property name="MemberName" />
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.TreeView" id="treeview">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShowScrollbars">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">False</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.Stats.Plotter" id="plotter">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">False</property>
- <property name="Expand">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="Gtk.Label" id="gtkframe">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes"><b></b></property>
- <property name="UseMarkup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.CategoriesViewer" design-size="812 461">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.HPaned" id="hpaned1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Position">185</property>
- <child>
- <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
- <property name="MemberName" />
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.TreeView" id="treeview">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShowScrollbars">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Resize">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.Viewport" id="GtkViewport">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="LongoMatch.Gui.Component.Stats.CategoryViewer" id="categoryviewer1">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.StatsViewer" design-size="1167 619">
- <property name="MemberName" />
- <property name="Title" translatable="yes">Stats</property>
- <property name="Icon">stock:longomatch Menu</property>
- <property name="TypeHint">Utility</property>
- <property name="WindowPosition">CenterAlways</property>
- <property name="Modal">True</property>
- <property name="DestroyWithParent">True</property>
- <property name="Gravity">Center</property>
- <property name="SkipPagerHint">True</property>
- <property name="SkipTaskbarHint">True</property>
- <property name="Buttons">1</property>
- <property name="HelpButton">False</property>
- <child internal-child="VBox">
- <widget class="Gtk.VBox" id="dialog1_VBox">
- <property name="MemberName" />
- <property name="BorderWidth">2</property>
- <child>
- <widget class="Gtk.Notebook" id="notebook1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="CurrentPage">2</property>
- <child>
- <widget class="LongoMatch.Gui.Component.GameViewer" id="gameviewer">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- <child>
- <widget class="Gtk.Label" id="label2">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes">Game stats</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.Stats.CategoriesViewer" id="categoriesviewer">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Position">1</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.Label" id="label4">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes">Categories stats</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.Stats.PlayersViewer" id="playersviewer">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Position">2</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.Label" id="label5">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes">Players stats</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- </child>
- <child internal-child="ActionArea">
- <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
- <property name="MemberName" />
- <property name="Spacing">10</property>
- <property name="BorderWidth">5</property>
- <property name="Size">1</property>
- <property name="LayoutStyle">End</property>
- <child>
- <widget class="Gtk.Button" id="buttonCancel">
- <property name="MemberName" />
- <property name="CanDefault">True</property>
- <property name="CanFocus">True</property>
- <property name="UseStock">True</property>
- <property name="Type">StockItem</property>
- <property name="StockId">gtk-close</property>
- <property name="ResponseId">-7</property>
- <property name="label">gtk-close</property>
- </widget>
- <packing>
- <property name="Expand">False</property>
- <property name="Fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.GameViewer" design-size="649 300">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.VBox" id="mainbox">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.HBox" id="topbox">
- <property name="MemberName" />
- <property name="Homogeneous">True</property>
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.Image" id="homeimage">
- <property name="MemberName" />
- </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.Label" id="homelabel">
- <property name="MemberName" />
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">False</property>
- <property name="Fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.CheckButton" id="subcatscheckbutton">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Label" translatable="yes">Sub categories</property>
- <property name="DrawIndicator">True</property>
- <property name="HasLabel">True</property>
- <property name="UseUnderline">True</property>
- <signal name="Clicked" handler="OnSubcatscheckbuttonClicked" />
- </widget>
- <packing>
- <property name="Position">2</property>
- <property name="AutoSize">False</property>
- <property name="Fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.Label" id="awaylabel">
- <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.Image" id="awayimage">
- <property name="MemberName" />
- </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>
- <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="scrolledwindow1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.Viewport" id="GtkViewport">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.VBox" id="cstatsbox">
- <property name="MemberName" />
- <property name="Spacing">2</property>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.AnalysisComponent" design-size="1592 741">
- <action-group name="Default" />
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.HBox" id="hbox1">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.EventBox" id="lightbackgroundeventbox">
- <property name="MemberName" />
- <child>
- <widget class="Gtk.VPaned" id="centralpane">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Position">263</property>
- <child>
- <widget class="Gtk.HPaned" id="uppane">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Position">283</property>
- <child>
- <widget class="LongoMatch.Gui.Component.PlaysSelectionWidget" id="playsSelection">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Resize">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.HPaned" id="rigthpane">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Position">1219</property>
- <child>
- <widget class="Gtk.HBox" id="videowidgetsbox">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="LongoMatch.Gui.PlayerCapturerBin" id="playercapturer">
- <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="Resize">False</property>
- </packing>
- </child>
- <child>
- <placeholder />
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Resize">False</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.CodingWidget" id="codingwidget">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- <property name="TagPositions">False</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayersViewer" design-size="642 459">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.HPaned" id="hpaned1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Position">123</property>
- <child>
- <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow2">
- <property name="MemberName" />
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.TreeView" id="treeview1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShowScrollbars">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Resize">False</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer" id="categoriesviewer">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer" design-size="866 566">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.HPaned" id="hpaned1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Position">185</property>
- <child>
- <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
- <property name="MemberName" />
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.TreeView" id="treeview">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShowScrollbars">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Resize">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.Viewport" id="GtkViewport">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="LongoMatch.Gui.Component.Stats.PlayerCategoryViewer" id="categoryviewer">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayerCategoryViewer" design-size="787 585">
- <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.PlaysCoordinatesTagger" id="tagger">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- <child>
- <placeholder />
- </child>
- </widget>
- </child>
- </widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer" design-size="383 281">
- <property name="MemberName" />
- <property name="Visible">False</property>
- <child>
- <widget class="Gtk.Frame" id="frame2">
- <property name="MemberName" />
- <property name="ShadowType">None</property>
- <child>
- <widget class="Gtk.Alignment" id="GtkAlignment">
- <property name="MemberName" />
- <property name="Xalign">0</property>
- <property name="Yalign">0</property>
- <property name="LeftPadding">12</property>
- <child>
- <widget class="Gtk.HBox" id="hbox1">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
- <property name="MemberName" />
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.TreeView" id="treeview">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShowScrollbars">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">False</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.Component.Stats.Plotter" id="plotter">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">False</property>
- <property name="Expand">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="Gtk.Label" id="gtkframe">
- <property name="MemberName" />
- <property name="LabelProp" translatable="yes"><b></b></property>
- <property name="UseMarkup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
<widget class="Gtk.Bin" id="LongoMatch.Gui.Panel.WelcomePanel" design-size="910 620">
<property name="MemberName" />
<property name="Visible">False</property>
diff --git a/LongoMatch.GUI/gtk-gui/objects.xml b/LongoMatch.GUI/gtk-gui/objects.xml
index 5e24eab..f486884 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -117,53 +117,6 @@
<itemgroups />
<signals />
</object>
- <object type="LongoMatch.Gui.Component.Stats.CategoryViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups>
- <itemgroup label="CategoryViewer Properties">
- <property name="HomeName" />
- <property name="AwayName" />
- </itemgroup>
- </itemgroups>
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.Stats.Plotter" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
- <itemgroups>
- <itemgroup label="Plotter Properties">
- <property name="ShowTeams" />
- <property name="HomeName" />
- <property name="AwayName" />
- </itemgroup>
- </itemgroups>
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.Stats.SubCategoryViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.Stats.CategoriesViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.GameViewer" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.Stats.PlayersViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.Stats.PlayerCategoryViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
<object type="LongoMatch.Gui.Component.AnalysisComponent" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
<itemgroups />
<signals />
diff --git a/LongoMatch.Plugins.Stats/LongoMatch.Plugins.Stats.csproj
b/LongoMatch.Plugins.Stats/LongoMatch.Plugins.Stats.csproj
new file mode 100644
index 0000000..7d74b71
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/LongoMatch.Plugins.Stats.csproj
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>12.0.0</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{F03D161E-CC4D-4FE6-968A-04F884AB0939}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <RootNamespace>LongoMatch.Plugins.Stats</RootNamespace>
+ <AssemblyName>LongoMatch.Plugins.Stats</AssemblyName>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\bin</OutputPath>
+ <DefineConstants>DEBUG;</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <ConsolePause>false</ConsolePause>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>full</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\bin</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <ConsolePause>false</ConsolePause>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+ <Private>False</Private>
+ <Package>gtk-sharp-2.0</Package>
+ </Reference>
+ <Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+ <Package>gtk-sharp-2.0</Package>
+ </Reference>
+ <Reference Include="Mono.Posix" />
+ <Reference Include="Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756">
+ <Private>False</Private>
+ <Package>mono-addins</Package>
+ </Reference>
+ <Reference Include="Mono.Cairo" />
+ <Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+ <Private>False</Private>
+ <Package>gtk-sharp-2.0</Package>
+ </Reference>
+ <Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+ <Private>False</Private>
+ <Package>gtk-sharp-2.0</Package>
+ </Reference>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <ItemGroup>
+ <Compile Include="gtk-gui\generated.cs" />
+ <Compile Include="Stats\CategoriesViewer.cs" />
+ <Compile Include="Stats\CategoryViewer.cs" />
+ <Compile Include="Stats\GameViewer.cs" />
+ <Compile Include="Stats\PangoTextMeasurer.cs" />
+ <Compile Include="Stats\PlayerCategoriesViewer.cs" />
+ <Compile Include="Stats\PlayerCategoryViewer.cs" />
+ <Compile Include="Stats\PlayerSubcategoryViewer.cs" />
+ <Compile Include="Stats\PlayersViewer.cs" />
+ <Compile Include="Stats\Plotter.cs" />
+ <Compile Include="Stats\SubcategoryViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.SubCategoryViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.CategoriesViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.CategoryViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayersViewer.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.Plotter.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.StatsDialog.cs" />
+ <Compile Include="Stats\StatsDialog.cs" />
+ <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.GameViewer.cs" />
+ <Compile Include="StatsUIPlugin.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="gtk-gui\gui.stetic">
+ <LogicalName>gui.stetic</LogicalName>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\LongoMatch.Addins\LongoMatch.Addins.csproj">
+ <Project>{709CCDA6-CA95-4CBD-A986-B96EE0418905}</Project>
+ <Name>LongoMatch.Addins</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\LongoMatch.Core\LongoMatch.Core.csproj">
+ <Project>{B70912B2-7ED5-450E-97BD-45A3D45A0358}</Project>
+ <Name>LongoMatch.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\oxyplot\OxyPlotMono\OxyPlotMono.csproj">
+ <Project>{2CE0AF61-3E7D-43A8-ADD2-DAA38DFD5173}</Project>
+ <Name>OxyPlotMono</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\LongoMatch.GUI\LongoMatch.GUI.csproj">
+ <Project>{6B9682AF-0F14-456F-A674-8BABFE852BFC}</Project>
+ <Name>LongoMatch.GUI</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\LongoMatch.GUI.Helpers\LongoMatch.GUI.Helpers.csproj">
+ <Project>{E75E30DC-C1CF-4683-9A36-65B91EF10095}</Project>
+ <Name>LongoMatch.GUI.Helpers</Name>
+ </ProjectReference>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/LongoMatch.Plugins.Stats/Makefile.am b/LongoMatch.Plugins.Stats/Makefile.am
new file mode 100644
index 0000000..e2fdec4
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/Makefile.am
@@ -0,0 +1,33 @@
+
+ASSEMBLY = LongoMatch.Plugins.Stats
+TARGET = library
+
+LINK = $(REF_DEP_LONGOMATCH_STATS)
+
+SOURCES = Stats/CategoriesViewer.cs \
+ Stats/CategoryViewer.cs \
+ Stats/GameViewer.cs \
+ Stats/PangoTextMeasurer.cs \
+ Stats/PlayerCategoriesViewer.cs \
+ Stats/PlayerCategoryViewer.cs \
+ Stats/PlayerSubcategoryViewer.cs \
+ Stats/PlayersViewer.cs \
+ Stats/Plotter.cs \
+ Stats/StatsDialog.cs \
+ Stats/SubcategoryViewer.cs \
+ StatsUIPlugin.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs \
+ gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs \
+ gtk-gui/generated.cs
+
+RESOURCES = gtk-gui/gui.stetic
+
+include $(top_srcdir)/build/build.mk
diff --git a/LongoMatch.Plugins.Stats/MyClass.cs b/LongoMatch.Plugins.Stats/MyClass.cs
new file mode 100644
index 0000000..43e6822
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/MyClass.cs
@@ -0,0 +1,29 @@
+//
+// 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;
+
+namespace LongoMatch.Plugins.Stats
+{
+ public class MyClass
+ {
+ public MyClass ()
+ {
+ }
+ }
+}
+
diff --git a/LongoMatch.Plugins.Stats/ProjectStats.cs b/LongoMatch.Plugins.Stats/ProjectStats.cs
new file mode 100644
index 0000000..3b1f023
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/ProjectStats.cs
@@ -0,0 +1,31 @@
+//
+// 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;
+
+namespace LongoMatch.Plugins.Stats
+{
+ [System.ComponentModel.ToolboxItem(true)]
+ public partial class ProjectStats : Gtk.Bin
+ {
+ public ProjectStats ()
+ {
+ this.Build ();
+ }
+ }
+}
+
diff --git a/LongoMatch.Plugins.Stats/Properties/AssemblyInfo.cs
b/LongoMatch.Plugins.Stats/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..3efc79e
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/Properties/AssemblyInfo.cs
@@ -0,0 +1,39 @@
+//
+// 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.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+[assembly: AssemblyTitle ("LongoMatch.Plugins.Stats")]
+[assembly: AssemblyDescription ("")]
+[assembly: AssemblyConfiguration ("")]
+[assembly: AssemblyCompany ("")]
+[assembly: AssemblyProduct ("")]
+[assembly: AssemblyCopyright ("Andoni Morales Alastruey")]
+[assembly: AssemblyTrademark ("")]
+[assembly: AssemblyCulture ("")]
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+[assembly: AssemblyVersion ("1.0.*")]
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
+
diff --git a/LongoMatch.GUI/Gui/Component/Stats/CategoriesViewer.cs
b/LongoMatch.Plugins.Stats/Stats/CategoriesViewer.cs
similarity index 98%
rename from LongoMatch.GUI/Gui/Component/Stats/CategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/CategoriesViewer.cs
index 7c9c2c7..6a60af1 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/CategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/CategoriesViewer.cs
@@ -22,7 +22,7 @@ using LongoMatch.Core.Stats;
using LongoMatch.Core.Store;
using LongoMatch.Core.Common;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class CategoriesViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/CategoryViewer.cs
b/LongoMatch.Plugins.Stats/Stats/CategoryViewer.cs
similarity index 98%
rename from LongoMatch.GUI/Gui/Component/Stats/CategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/CategoryViewer.cs
index b5b71e3..d1f6b6c 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/CategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/CategoryViewer.cs
@@ -23,7 +23,7 @@ using LongoMatch.Core.Common;
using Image = LongoMatch.Core.Common.Image;
using LongoMatch.Core.Store;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class CategoryViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/GameViewer.cs b/LongoMatch.Plugins.Stats/Stats/GameViewer.cs
similarity index 99%
rename from LongoMatch.GUI/Gui/Component/Stats/GameViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/GameViewer.cs
index 31e3f6b..e5163df 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/GameViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/GameViewer.cs
@@ -27,7 +27,7 @@ using LongoMatch.Core.Common;
using LongoMatch.Core.Stats;
using LongoMatch.Core.Store;
-namespace LongoMatch.Gui.Component
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class GameViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PangoTextMeasurer.cs
b/LongoMatch.Plugins.Stats/Stats/PangoTextMeasurer.cs
similarity index 97%
rename from LongoMatch.GUI/Gui/Component/Stats/PangoTextMeasurer.cs
rename to LongoMatch.Plugins.Stats/Stats/PangoTextMeasurer.cs
index 9ab9986..d8c5c72 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PangoTextMeasurer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PangoTextMeasurer.cs
@@ -19,7 +19,7 @@ using System;
using Pango;
using OxyPlot;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public class PangoTextMeasurer: ITextMeasurer
{
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoriesViewer.cs
b/LongoMatch.Plugins.Stats/Stats/PlayerCategoriesViewer.cs
similarity index 96%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayerCategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayerCategoriesViewer.cs
index e775bc7..00b4cfe 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayerCategoriesViewer.cs
@@ -20,13 +20,12 @@ using Gtk;
using LongoMatch.Core.Stats;
using LongoMatch.Core.Store;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class PlayerCategoriesViewer : Gtk.Bin
{
ListStore store;
- Project project;
ProjectStats pstats;
public PlayerCategoriesViewer ()
@@ -44,7 +43,6 @@ namespace LongoMatch.Gui.Component.Stats
public void LoadStats (ProjectStats pstats, Project project) {
categoryviewer.LoadBackgrounds (project);
this.pstats = pstats;
- this.project = project;
ReloadStats (project.LocalTeamTemplate.List[0]);
}
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoryViewer.cs
b/LongoMatch.Plugins.Stats/Stats/PlayerCategoryViewer.cs
similarity index 96%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayerCategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayerCategoryViewer.cs
index 910b56a..1bcb6e0 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayerCategoryViewer.cs
@@ -23,8 +23,9 @@ using LongoMatch.Core.Common;
using LongoMatch.Core.Stats;
using Image = LongoMatch.Core.Common.Image;
using LongoMatch.Core.Store;
+using LongoMatch.Gui.Component;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class PlayerCategoryViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayerSubcategoryViewer.cs
b/LongoMatch.Plugins.Stats/Stats/PlayerSubcategoryViewer.cs
similarity index 92%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayerSubcategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayerSubcategoryViewer.cs
index 8baa549..74437f8 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayerSubcategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayerSubcategoryViewer.cs
@@ -22,7 +22,7 @@ using Mono.Unix;
using LongoMatch.Core.Stats;
using LongoMatch.Core.Common;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class PlayerSubcategoryViewer : Gtk.Bin
@@ -34,8 +34,8 @@ namespace LongoMatch.Gui.Component.Stats
this.Build ();
treeview.AppendColumn (Catalog.GetString ("Name"), new Gtk.CellRendererText (),
"text", 0);
treeview.AppendColumn (Catalog.GetString("Count"), new Gtk.CellRendererText (),
"text", 1);
- plotter.ShowTeams = false;
- plotter.WidthRequest = 500;
+ plotter1.ShowTeams = false;
+ plotter1.WidthRequest = 500;
}
public void LoadStats (SubCategoryStat stats) {
@@ -43,7 +43,7 @@ namespace LongoMatch.Gui.Component.Stats
treeview.Model = store;
gtkframe.Markup = String.Format("<b> {0} </b>", stats.Name);
- plotter.LoadHistogram (stats);
+ plotter1.LoadHistogram (stats);
foreach (PercentualStat st in stats.OptionStats) {
store.AppendValues (st.Name, st.TotalCount.ToString());
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayersViewer.cs
b/LongoMatch.Plugins.Stats/Stats/PlayersViewer.cs
similarity index 97%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayersViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayersViewer.cs
index 2b99ebd..6a8eab8 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayersViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayersViewer.cs
@@ -24,14 +24,13 @@ using LongoMatch.Core.Store.Templates;
using LongoMatch.Core.Stats;
using LongoMatch.Core.Common;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class PlayersViewer : Gtk.Bin
{
TreeStore store;
ProjectStats pstats;
- EventsFilter filter;
Player current;
public PlayersViewer ()
diff --git a/LongoMatch.GUI/Gui/Component/Stats/Plotter.cs b/LongoMatch.Plugins.Stats/Stats/Plotter.cs
similarity index 99%
rename from LongoMatch.GUI/Gui/Component/Stats/Plotter.cs
rename to LongoMatch.Plugins.Stats/Stats/Plotter.cs
index feb73e1..bc5d1c7 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/Plotter.cs
+++ b/LongoMatch.Plugins.Stats/Stats/Plotter.cs
@@ -29,7 +29,7 @@ using LongoMatch.Core.Common;
using Mono.Unix;
using Gtk;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class Plotter : Gtk.Bin
diff --git a/LongoMatch.Plugins.Stats/Stats/StatsDialog.cs b/LongoMatch.Plugins.Stats/Stats/StatsDialog.cs
new file mode 100644
index 0000000..3c97df6
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/Stats/StatsDialog.cs
@@ -0,0 +1,52 @@
+//
+// 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.Core.Store;
+using LongoMatch.Core.Stats;
+
+namespace LongoMatch.Plugins.Stats
+{
+ public partial class StatsDialog : Gtk.Dialog
+ {
+ ProjectStats stats;
+
+ public StatsDialog ()
+ {
+ this.Build ();
+ }
+
+ protected override void OnDestroyed ()
+ {
+ base.OnDestroyed ();
+ if (stats != null)
+ stats.Dispose ();
+ }
+
+ public void LoadStats (Project project)
+ {
+ if (stats != null)
+ stats.Dispose ();
+ stats = new ProjectStats (project);
+ categoriesviewer.LoadStats (stats, project);
+ gameviewer.LoadProject (project, stats);
+ /* Player stats are filtered */
+ playersviewer.LoadProject (project, new ProjectStats (project));
+ }
+ }
+}
+
diff --git a/LongoMatch.GUI/Gui/Component/Stats/SubcategoryViewer.cs
b/LongoMatch.Plugins.Stats/Stats/SubcategoryViewer.cs
similarity index 98%
rename from LongoMatch.GUI/Gui/Component/Stats/SubcategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/SubcategoryViewer.cs
index a6e8285..cd53003 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/SubcategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/SubcategoryViewer.cs
@@ -22,7 +22,7 @@ using Mono.Unix;
using LongoMatch.Core.Stats;
using LongoMatch.Core.Common;
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
[System.ComponentModel.ToolboxItem(true)]
public partial class SubCategoryViewer : Gtk.Bin
diff --git a/LongoMatch.Plugins.Stats/StatsUIPlugin.cs b/LongoMatch.Plugins.Stats/StatsUIPlugin.cs
new file mode 100644
index 0000000..319b335
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/StatsUIPlugin.cs
@@ -0,0 +1,59 @@
+//
+// 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 Mono.Addins;
+using LongoMatch.Addins.ExtensionPoints;
+using LongoMatch.Core.Store;
+using Mono.Unix;
+
+[assembly:Addin]
+[assembly:AddinAuthor ("LongoMatch Project")]
+[assembly:AddinName ("Stats")]
+[assembly:AddinDescription ("Statistics plugin")]
+[assembly:AddinDependency ("LongoMatch", "1.1")]
+namespace LongoMatch.Plugins.Stats
+{
+ [Extension]
+ public class StatsUIPlugin: IStatsUI
+ {
+ public void ShowStats (Project project)
+ {
+ StatsDialog statsui = new StatsDialog ();
+ statsui.LoadStats (project);
+ statsui.Run ();
+ statsui.Destroy ();
+ }
+
+ public int Priority {
+ get {
+ return 0;
+ }
+ }
+
+ public string Name {
+ get {
+ return Catalog.GetString ("Game statistics");
+ }
+ }
+
+ public string Description {
+ get {
+ return Catalog.GetString ("Show the game statistics");
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs
similarity index 82%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs
index 7e1b863..d4a8763 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class CategoriesViewer
{
@@ -8,15 +8,15 @@ namespace LongoMatch.Gui.Component.Stats
private global::Gtk.ScrolledWindow GtkScrolledWindow;
private global::Gtk.TreeView treeview;
private global::Gtk.ScrolledWindow scrolledwindow3;
- private global::LongoMatch.Gui.Component.Stats.CategoryViewer categoryviewer1;
+ private global::LongoMatch.Plugins.Stats.CategoryViewer categoryviewer1;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.CategoriesViewer
+ // Widget LongoMatch.Plugins.Stats.CategoriesViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.CategoriesViewer";
- // Container child
LongoMatch.Gui.Component.Stats.CategoriesViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.CategoriesViewer";
+ // Container child
LongoMatch.Plugins.Stats.CategoriesViewer.Gtk.Container+ContainerChild
this.hpaned1 = new global::Gtk.HPaned ();
this.hpaned1.CanFocus = true;
this.hpaned1.Name = "hpaned1";
@@ -42,7 +42,7 @@ namespace LongoMatch.Gui.Component.Stats
global::Gtk.Viewport w3 = new global::Gtk.Viewport ();
w3.ShadowType = ((global::Gtk.ShadowType)(0));
// Container child GtkViewport.Gtk.Container+ContainerChild
- this.categoryviewer1 = new global::LongoMatch.Gui.Component.Stats.CategoryViewer ();
+ this.categoryviewer1 = new global::LongoMatch.Plugins.Stats.CategoryViewer ();
this.categoryviewer1.Events = ((global::Gdk.EventMask)(256));
this.categoryviewer1.Name = "categoryviewer1";
w3.Add (this.categoryviewer1);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs
similarity index 96%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs
index 423d552..608da23 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class CategoryViewer
{
@@ -27,10 +27,10 @@ namespace LongoMatch.Gui.Component.Stats
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.CategoryViewer
+ // Widget LongoMatch.Plugins.Stats.CategoryViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.CategoryViewer";
- // Container child
LongoMatch.Gui.Component.Stats.CategoryViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.CategoryViewer";
+ // Container child
LongoMatch.Plugins.Stats.CategoryViewer.Gtk.Container+ContainerChild
this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
this.scrolledwindow1.CanFocus = true;
this.scrolledwindow1.Name = "scrolledwindow1";
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GameViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs
similarity index 95%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GameViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs
index c28a266..6923d5b 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GameViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component
+namespace LongoMatch.Plugins.Stats
{
public partial class GameViewer
{
@@ -17,10 +17,10 @@ namespace LongoMatch.Gui.Component
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.GameViewer
+ // Widget LongoMatch.Plugins.Stats.GameViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.GameViewer";
- // Container child LongoMatch.Gui.Component.GameViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.GameViewer";
+ // Container child LongoMatch.Plugins.Stats.GameViewer.Gtk.Container+ContainerChild
this.mainbox = new global::Gtk.VBox ();
this.mainbox.Name = "mainbox";
this.mainbox.Spacing = 6;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs
similarity index 81%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs
index bcacde2..8b2eefa 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class PlayerCategoriesViewer
{
@@ -8,15 +8,15 @@ namespace LongoMatch.Gui.Component.Stats
private global::Gtk.ScrolledWindow GtkScrolledWindow;
private global::Gtk.TreeView treeview;
private global::Gtk.ScrolledWindow scrolledwindow3;
- private global::LongoMatch.Gui.Component.Stats.PlayerCategoryViewer categoryviewer;
+ private global::LongoMatch.Plugins.Stats.PlayerCategoryViewer categoryviewer;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer
+ // Widget LongoMatch.Plugins.Stats.PlayerCategoriesViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer";
- // Container child
LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.PlayerCategoriesViewer";
+ // Container child
LongoMatch.Plugins.Stats.PlayerCategoriesViewer.Gtk.Container+ContainerChild
this.hpaned1 = new global::Gtk.HPaned ();
this.hpaned1.CanFocus = true;
this.hpaned1.Name = "hpaned1";
@@ -42,7 +42,7 @@ namespace LongoMatch.Gui.Component.Stats
global::Gtk.Viewport w3 = new global::Gtk.Viewport ();
w3.ShadowType = ((global::Gtk.ShadowType)(0));
// Container child GtkViewport.Gtk.Container+ContainerChild
- this.categoryviewer = new global::LongoMatch.Gui.Component.Stats.PlayerCategoryViewer
();
+ this.categoryviewer = new global::LongoMatch.Plugins.Stats.PlayerCategoryViewer ();
this.categoryviewer.Events = ((global::Gdk.EventMask)(256));
this.categoryviewer.Name = "categoryviewer";
w3.Add (this.categoryviewer);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs
similarity index 75%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs
index 21dbc22..d040933 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class PlayerCategoryViewer
{
@@ -10,10 +10,10 @@ namespace LongoMatch.Gui.Component.Stats
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.PlayerCategoryViewer
+ // Widget LongoMatch.Plugins.Stats.PlayerCategoryViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.PlayerCategoryViewer";
- // Container child
LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.PlayerCategoryViewer";
+ // Container child
LongoMatch.Plugins.Stats.PlayerCategoryViewer.Gtk.Container+ContainerChild
this.vbox1 = new global::Gtk.VBox ();
this.vbox1.Name = "vbox1";
this.vbox1.Spacing = 6;
@@ -24,6 +24,8 @@ namespace LongoMatch.Gui.Component.Stats
this.vbox1.Add (this.tagger);
global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.tagger]));
w1.Position = 0;
+ w1.Expand = false;
+ w1.Fill = false;
this.Add (this.vbox1);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs
similarity index 79%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs
index e0d173d..fdf4bb4 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class PlayerSubcategoryViewer
{
@@ -9,16 +9,16 @@ namespace LongoMatch.Gui.Component.Stats
private global::Gtk.HBox hbox1;
private global::Gtk.ScrolledWindow GtkScrolledWindow;
private global::Gtk.TreeView treeview;
- private global::LongoMatch.Gui.Component.Stats.Plotter plotter;
+ private global::LongoMatch.Plugins.Stats.Plotter plotter1;
private global::Gtk.Label gtkframe;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer
+ // Widget LongoMatch.Plugins.Stats.PlayerSubcategoryViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer";
- // Container child
LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.PlayerSubcategoryViewer";
+ // Container child
LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.Gtk.Container+ContainerChild
this.frame2 = new global::Gtk.Frame ();
this.frame2.Name = "frame2";
this.frame2.ShadowType = ((global::Gtk.ShadowType)(0));
@@ -43,13 +43,14 @@ namespace LongoMatch.Gui.Component.Stats
global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1
[this.GtkScrolledWindow]));
w2.Position = 0;
// Container child hbox1.Gtk.Box+BoxChild
- this.plotter = new global::LongoMatch.Gui.Component.Stats.Plotter ();
- this.plotter.Events = ((global::Gdk.EventMask)(256));
- this.plotter.Name = "plotter";
- this.hbox1.Add (this.plotter);
- global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.plotter]));
+ this.plotter1 = new global::LongoMatch.Plugins.Stats.Plotter ();
+ this.plotter1.Events = ((global::Gdk.EventMask)(256));
+ this.plotter1.Name = "plotter1";
+ this.hbox1.Add (this.plotter1);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1
[this.plotter1]));
w3.Position = 1;
w3.Expand = false;
+ w3.Fill = false;
this.GtkAlignment.Add (this.hbox1);
this.frame2.Add (this.GtkAlignment);
this.gtkframe = new global::Gtk.Label ();
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs
similarity index 77%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs
index b1504a4..04eee6d 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs
@@ -1,21 +1,21 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class PlayersViewer
{
private global::Gtk.HPaned hpaned1;
private global::Gtk.ScrolledWindow GtkScrolledWindow2;
private global::Gtk.TreeView treeview1;
- private global::LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer categoriesviewer;
+ private global::LongoMatch.Plugins.Stats.PlayerCategoriesViewer categoriesviewer;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.PlayersViewer
+ // Widget LongoMatch.Plugins.Stats.PlayersViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.PlayersViewer";
- // Container child
LongoMatch.Gui.Component.Stats.PlayersViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.PlayersViewer";
+ // Container child LongoMatch.Plugins.Stats.PlayersViewer.Gtk.Container+ContainerChild
this.hpaned1 = new global::Gtk.HPaned ();
this.hpaned1.CanFocus = true;
this.hpaned1.Name = "hpaned1";
@@ -33,7 +33,7 @@ namespace LongoMatch.Gui.Component.Stats
global::Gtk.Paned.PanedChild w2 = ((global::Gtk.Paned.PanedChild)(this.hpaned1
[this.GtkScrolledWindow2]));
w2.Resize = false;
// Container child hpaned1.Gtk.Paned+PanedChild
- this.categoriesviewer = new
global::LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer ();
+ this.categoriesviewer = new global::LongoMatch.Plugins.Stats.PlayerCategoriesViewer
();
this.categoriesviewer.Events = ((global::Gdk.EventMask)(256));
this.categoriesviewer.Name = "categoriesviewer";
this.hpaned1.Add (this.categoriesviewer);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs
similarity index 93%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs
index d9515ac..cf65617 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class Plotter
{
@@ -16,10 +16,10 @@ namespace LongoMatch.Gui.Component.Stats
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.Plotter
+ // Widget LongoMatch.Plugins.Stats.Plotter
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.Plotter";
- // Container child LongoMatch.Gui.Component.Stats.Plotter.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.Plotter";
+ // Container child LongoMatch.Plugins.Stats.Plotter.Gtk.Container+ContainerChild
this.vbox3 = new global::Gtk.VBox ();
this.vbox3.Name = "vbox3";
this.vbox3.Spacing = 6;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs
similarity index 66%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs
index f4665df..43cfe0d 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs
@@ -1,33 +1,29 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Dialog
+namespace LongoMatch.Plugins.Stats
{
- public partial class StatsViewer
+ public partial class StatsDialog
{
private global::Gtk.Notebook notebook1;
- private global::LongoMatch.Gui.Component.GameViewer gameviewer;
+ private global::LongoMatch.Plugins.Stats.GameViewer gameviewer;
private global::Gtk.Label label2;
- private global::LongoMatch.Gui.Component.Stats.CategoriesViewer categoriesviewer;
+ private global::LongoMatch.Plugins.Stats.CategoriesViewer categoriesviewer;
private global::Gtk.Label label4;
- private global::LongoMatch.Gui.Component.Stats.PlayersViewer playersviewer;
+ private global::LongoMatch.Plugins.Stats.PlayersViewer playersviewer;
private global::Gtk.Label label5;
- private global::Gtk.Button buttonCancel;
+ private global::Gtk.Button buttonOk;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Dialog.StatsViewer
- this.Name = "LongoMatch.Gui.Dialog.StatsViewer";
- this.Title = global::Mono.Unix.Catalog.GetString ("Stats");
+ // Widget LongoMatch.Plugins.Stats.StatsDialog
+ this.Name = "LongoMatch.Plugins.Stats.StatsDialog";
this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch",
global::Gtk.IconSize.Menu);
- this.TypeHint = ((global::Gdk.WindowTypeHint)(5));
- this.WindowPosition = ((global::Gtk.WindowPosition)(3));
- this.Modal = true;
+ this.TypeHint = ((global::Gdk.WindowTypeHint)(1));
+ this.WindowPosition = ((global::Gtk.WindowPosition)(4));
this.DestroyWithParent = true;
this.Gravity = ((global::Gdk.Gravity)(5));
- this.SkipPagerHint = true;
- this.SkipTaskbarHint = true;
- // Internal child LongoMatch.Gui.Dialog.StatsViewer.VBox
+ // Internal child LongoMatch.Plugins.Stats.StatsDialog.VBox
global::Gtk.VBox w1 = this.VBox;
w1.Name = "dialog1_VBox";
w1.BorderWidth = ((uint)(2));
@@ -35,9 +31,9 @@ namespace LongoMatch.Gui.Dialog
this.notebook1 = new global::Gtk.Notebook ();
this.notebook1.CanFocus = true;
this.notebook1.Name = "notebook1";
- this.notebook1.CurrentPage = 2;
+ this.notebook1.CurrentPage = 0;
// Container child notebook1.Gtk.Notebook+NotebookChild
- this.gameviewer = new global::LongoMatch.Gui.Component.GameViewer ();
+ this.gameviewer = new global::LongoMatch.Plugins.Stats.GameViewer ();
this.gameviewer.Events = ((global::Gdk.EventMask)(256));
this.gameviewer.Name = "gameviewer";
this.notebook1.Add (this.gameviewer);
@@ -48,7 +44,7 @@ namespace LongoMatch.Gui.Dialog
this.notebook1.SetTabLabel (this.gameviewer, this.label2);
this.label2.ShowAll ();
// Container child notebook1.Gtk.Notebook+NotebookChild
- this.categoriesviewer = new global::LongoMatch.Gui.Component.Stats.CategoriesViewer
();
+ this.categoriesviewer = new global::LongoMatch.Plugins.Stats.CategoriesViewer ();
this.categoriesviewer.Events = ((global::Gdk.EventMask)(256));
this.categoriesviewer.Name = "categoriesviewer";
this.notebook1.Add (this.categoriesviewer);
@@ -61,7 +57,7 @@ namespace LongoMatch.Gui.Dialog
this.notebook1.SetTabLabel (this.categoriesviewer, this.label4);
this.label4.ShowAll ();
// Container child notebook1.Gtk.Notebook+NotebookChild
- this.playersviewer = new global::LongoMatch.Gui.Component.Stats.PlayersViewer ();
+ this.playersviewer = new global::LongoMatch.Plugins.Stats.PlayersViewer ();
this.playersviewer.Events = ((global::Gdk.EventMask)(256));
this.playersviewer.Name = "playersviewer";
this.notebook1.Add (this.playersviewer);
@@ -76,29 +72,29 @@ namespace LongoMatch.Gui.Dialog
w1.Add (this.notebook1);
global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1 [this.notebook1]));
w5.Position = 0;
- // Internal child LongoMatch.Gui.Dialog.StatsViewer.ActionArea
+ // Internal child LongoMatch.Plugins.Stats.StatsDialog.ActionArea
global::Gtk.HButtonBox w6 = this.ActionArea;
w6.Name = "dialog1_ActionArea";
w6.Spacing = 10;
w6.BorderWidth = ((uint)(5));
w6.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.buttonCancel = new global::Gtk.Button ();
- this.buttonCancel.CanDefault = true;
- this.buttonCancel.CanFocus = true;
- this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.UseStock = true;
- this.buttonCancel.UseUnderline = true;
- this.buttonCancel.Label = "gtk-close";
- this.AddActionWidget (this.buttonCancel, -7);
- global::Gtk.ButtonBox.ButtonBoxChild w7 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w6
[this.buttonCancel]));
+ this.buttonOk = new global::Gtk.Button ();
+ this.buttonOk.CanDefault = true;
+ this.buttonOk.CanFocus = true;
+ this.buttonOk.Name = "buttonOk";
+ this.buttonOk.UseStock = true;
+ this.buttonOk.UseUnderline = true;
+ this.buttonOk.Label = "gtk-ok";
+ this.AddActionWidget (this.buttonOk, -5);
+ global::Gtk.ButtonBox.ButtonBoxChild w7 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w6
[this.buttonOk]));
w7.Expand = false;
w7.Fill = false;
if ((this.Child != null)) {
this.Child.ShowAll ();
}
- this.DefaultWidth = 1167;
- this.DefaultHeight = 619;
+ this.DefaultWidth = 659;
+ this.DefaultHeight = 300;
this.Show ();
}
}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs
similarity index 85%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs
index 4cf4cb9..adf61e6 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs
@@ -1,6 +1,6 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
{
public partial class SubCategoryViewer
{
@@ -9,16 +9,16 @@ namespace LongoMatch.Gui.Component.Stats
private global::Gtk.HBox hbox1;
private global::Gtk.ScrolledWindow GtkScrolledWindow;
private global::Gtk.TreeView treeview;
- private global::LongoMatch.Gui.Component.Stats.Plotter plotter;
+ private global::LongoMatch.Plugins.Stats.Plotter plotter;
private global::Gtk.Label gtkframe;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.Stats.SubCategoryViewer
+ // Widget LongoMatch.Plugins.Stats.SubCategoryViewer
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.Stats.SubCategoryViewer";
- // Container child
LongoMatch.Gui.Component.Stats.SubCategoryViewer.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Plugins.Stats.SubCategoryViewer";
+ // Container child
LongoMatch.Plugins.Stats.SubCategoryViewer.Gtk.Container+ContainerChild
this.frame2 = new global::Gtk.Frame ();
this.frame2.Name = "frame2";
this.frame2.ShadowType = ((global::Gtk.ShadowType)(0));
@@ -43,7 +43,7 @@ namespace LongoMatch.Gui.Component.Stats
global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1
[this.GtkScrolledWindow]));
w2.Position = 0;
// Container child hbox1.Gtk.Box+BoxChild
- this.plotter = new global::LongoMatch.Gui.Component.Stats.Plotter ();
+ this.plotter = new global::LongoMatch.Plugins.Stats.Plotter ();
this.plotter.Events = ((global::Gdk.EventMask)(256));
this.plotter.Name = "plotter";
this.hbox1.Add (this.plotter);
diff --git a/LongoMatch.Plugins.Stats/gtk-gui/generated.cs b/LongoMatch.Plugins.Stats/gtk-gui/generated.cs
new file mode 100644
index 0000000..0ada9fc
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/gtk-gui/generated.cs
@@ -0,0 +1,115 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace Stetic
+{
+ internal class Gui
+ {
+ private static bool initialized;
+
+ internal static void Initialize (Gtk.Widget iconRenderer)
+ {
+ if ((Stetic.Gui.initialized == false)) {
+ Stetic.Gui.initialized = true;
+ }
+ }
+ }
+
+ internal class BinContainer
+ {
+ private Gtk.Widget child;
+ private Gtk.UIManager uimanager;
+
+ public static BinContainer Attach (Gtk.Bin bin)
+ {
+ BinContainer bc = new BinContainer ();
+ bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested);
+ bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated);
+ bin.Added += new Gtk.AddedHandler (bc.OnAdded);
+ return bc;
+ }
+
+ private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args)
+ {
+ if ((this.child != null)) {
+ args.Requisition = this.child.SizeRequest ();
+ }
+ }
+
+ private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args)
+ {
+ if ((this.child != null)) {
+ this.child.Allocation = args.Allocation;
+ }
+ }
+
+ private void OnAdded (object sender, Gtk.AddedArgs args)
+ {
+ this.child = args.Widget;
+ }
+
+ public void SetUiManager (Gtk.UIManager uim)
+ {
+ this.uimanager = uim;
+ this.child.Realized += new System.EventHandler (this.OnRealized);
+ }
+
+ private void OnRealized (object sender, System.EventArgs args)
+ {
+ if ((this.uimanager != null)) {
+ Gtk.Widget w;
+ w = this.child.Toplevel;
+ if (((w != null) && typeof(Gtk.Window).IsInstanceOfType (w))) {
+ ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup);
+ this.uimanager = null;
+ }
+ }
+ }
+ }
+
+ internal class IconLoader
+ {
+ public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size)
+ {
+ Gdk.Pixbuf res = widget.RenderIcon (name, size, null);
+ if ((res != null)) {
+ return res;
+ } else {
+ int sz;
+ int sy;
+ global::Gtk.Icon.SizeLookup (size, out sz, out sy);
+ try {
+ return Gtk.IconTheme.Default.LoadIcon (name, sz, 0);
+ } catch (System.Exception) {
+ if ((name != "gtk-missing-image")) {
+ return Stetic.IconLoader.LoadIcon (widget,
"gtk-missing-image", size);
+ } else {
+ Gdk.Pixmap pmap = new Gdk.Pixmap
(Gdk.Screen.Default.RootWindow, sz, sz);
+ Gdk.GC gc = new Gdk.GC (pmap);
+ gc.RgbFgColor = new Gdk.Color (255, 255, 255);
+ pmap.DrawRectangle (gc, true, 0, 0, sz, sz);
+ gc.RgbFgColor = new Gdk.Color (0, 0, 0);
+ pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1));
+ gc.SetLineAttributes (3, Gdk.LineStyle.Solid,
Gdk.CapStyle.Round, Gdk.JoinStyle.Round);
+ gc.RgbFgColor = new Gdk.Color (255, 0, 0);
+ pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)),
((sz - 1) - (sz / 4)));
+ pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4),
((sz - 1) - (sz / 4)));
+ return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0,
0, sz, sz);
+ }
+ }
+ }
+ }
+ }
+
+ internal class ActionGroups
+ {
+ public static Gtk.ActionGroup GetActionGroup (System.Type type)
+ {
+ return Stetic.ActionGroups.GetActionGroup (type.FullName);
+ }
+
+ public static Gtk.ActionGroup GetActionGroup (string name)
+ {
+ return null;
+ }
+ }
+}
diff --git a/LongoMatch.Plugins.Stats/gtk-gui/gui.stetic b/LongoMatch.Plugins.Stats/gtk-gui/gui.stetic
new file mode 100644
index 0000000..c75d1a0
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/gtk-gui/gui.stetic
@@ -0,0 +1,829 @@
+<?xml version="1.0" encoding="utf-8"?>
+<stetic-interface>
+ <configuration>
+ <images-root-path>..</images-root-path>
+ <target-gtk-version>2.12</target-gtk-version>
+ </configuration>
+ <import>
+ <widget-library name="../../bin/LongoMatch.GUI.dll" />
+ <widget-library name="../../bin/LongoMatch.GUI.Helpers.dll" />
+ <widget-library name="../../bin/LongoMatch.Plugins.Stats.dll" internal="true" />
+ </import>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.CategoryViewer" design-size="720 598">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.Viewport" id="GtkViewport">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.Notebook" id="notebook1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="CurrentPage">1</property>
+ <child>
+ <widget class="Gtk.VBox" id="vbox1">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Label" id="nodatalabel">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">No data available</property>
+ <property name="Justify">Center</property>
+ </widget>
+ <packing>
+ <property name="Position">0</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">Statistics</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.VBox" id="vbox2">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Frame" id="allframe">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.Alignment" id="GtkAlignment2">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="Yalign">0</property>
+ <property name="LeftPadding">12</property>
+ <child>
+ <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="alltagger">
+ <property name="MemberName" />
+ <property name="HeightRequest">150</property>
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="GtkLabel2">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"><b>All</b></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="homeframe">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.Alignment" id="GtkAlignment">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="Yalign">0</property>
+ <property name="LeftPadding">12</property>
+ <child>
+ <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger"
id="hometagger">
+ <property name="MemberName" />
+ <property name="HeightRequest">150</property>
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="homeLabel">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"><b>Home</b></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>
+ <child>
+ <widget class="Gtk.Frame" id="awayframe">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.Alignment" id="GtkAlignment1">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="Yalign">0</property>
+ <property name="LeftPadding">12</property>
+ <child>
+ <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger"
id="awaytagger">
+ <property name="MemberName" />
+ <property name="HeightRequest">150</property>
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="awayLabel">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"><b>Away</b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label2">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Zonal tagging</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.Plotter" design-size="257 181">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.VBox" id="vbox3">
+ <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.RadioButton" id="historadiobutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes">Histogram</property>
+ <property name="DrawIndicator">True</property>
+ <property name="HasLabel">True</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">group1</property>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.RadioButton" id="pieradiobutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes">Pie chart</property>
+ <property name="DrawIndicator">True</property>
+ <property name="HasLabel">True</property>
+ <property name="UseUnderline">True</property>
+ <property name="Group">group1</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.HBox" id="hbox3">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Image" id="imageall">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Image" id="imagehome">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Image" id="imageaway">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.SubCategoryViewer" design-size="536 270">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.Frame" id="frame2">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.Alignment" id="GtkAlignment">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="Yalign">0</property>
+ <property name="LeftPadding">12</property>
+ <child>
+ <widget class="Gtk.HBox" id="hbox1">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+ <property name="MemberName" />
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.TreeView" id="treeview">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShowScrollbars">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.Plotter" id="plotter">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</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>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="gtkframe">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"><b></b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.CategoriesViewer" design-size="812 461">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.HPaned" id="hpaned1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Position">185</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+ <property name="MemberName" />
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.TreeView" id="treeview">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShowScrollbars">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Resize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.Viewport" id="GtkViewport">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.CategoryViewer" id="categoryviewer1">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.SubCategoryViewer" design-size="461 270">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.Frame" id="frame2">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.Alignment" id="GtkAlignment">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="Yalign">0</property>
+ <property name="LeftPadding">12</property>
+ <child>
+ <widget class="Gtk.HBox" id="hbox1">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+ <property name="MemberName" />
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.TreeView" id="treeview">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShowScrollbars">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.Plotter" id="plotter">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">False</property>
+ <property name="Expand">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="gtkframe">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"><b></b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayersViewer" design-size="699 459">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.HPaned" id="hpaned1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Position">123</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow2">
+ <property name="MemberName" />
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.TreeView" id="treeview1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShowScrollbars">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Resize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.PlayerCategoriesViewer" id="categoriesviewer">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayerCategoriesViewer" design-size="866 566">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.HPaned" id="hpaned1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Position">185</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+ <property name="MemberName" />
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.TreeView" id="treeview">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShowScrollbars">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Resize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.Viewport" id="GtkViewport">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.PlayerCategoryViewer" id="categoryviewer">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayerCategoryViewer" design-size="787 585">
+ <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.PlaysCoordinatesTagger" id="tagger">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayerSubcategoryViewer" design-size="593 281">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.Frame" id="frame2">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.Alignment" id="GtkAlignment">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="Yalign">0</property>
+ <property name="LeftPadding">12</property>
+ <child>
+ <widget class="Gtk.HBox" id="hbox1">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+ <property name="MemberName" />
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.TreeView" id="treeview">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShowScrollbars">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.Plotter" id="plotter1">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</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>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="gtkframe">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes"><b></b></property>
+ <property name="UseMarkup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.GameViewer" design-size="649 300">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.VBox" id="mainbox">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.HBox" id="topbox">
+ <property name="MemberName" />
+ <property name="Homogeneous">True</property>
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Image" id="homeimage">
+ <property name="MemberName" />
+ </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.Label" id="homelabel">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.CheckButton" id="subcatscheckbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes">Sub categories</property>
+ <property name="DrawIndicator">True</property>
+ <property name="HasLabel">True</property>
+ <property name="UseUnderline">True</property>
+ <signal name="Clicked" handler="OnSubcatscheckbuttonClicked" />
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="awaylabel">
+ <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.Image" id="awayimage">
+ <property name="MemberName" />
+ </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>
+ <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="scrolledwindow1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.Viewport" id="GtkViewport">
+ <property name="MemberName" />
+ <property name="ShadowType">None</property>
+ <child>
+ <widget class="Gtk.VBox" id="cstatsbox">
+ <property name="MemberName" />
+ <property name="Spacing">2</property>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <widget class="Gtk.Dialog" id="LongoMatch.Plugins.Stats.StatsDialog" design-size="659 300">
+ <property name="MemberName" />
+ <property name="Icon">stock:longomatch Menu</property>
+ <property name="TypeHint">Dialog</property>
+ <property name="WindowPosition">CenterOnParent</property>
+ <property name="DestroyWithParent">True</property>
+ <property name="Gravity">Center</property>
+ <property name="Buttons">1</property>
+ <property name="HelpButton">False</property>
+ <child internal-child="VBox">
+ <widget class="Gtk.VBox" id="dialog1_VBox">
+ <property name="MemberName" />
+ <property name="BorderWidth">2</property>
+ <child>
+ <widget class="Gtk.Notebook" id="notebook1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="CurrentPage">0</property>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.GameViewer" id="gameviewer">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label2">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Game stats</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.CategoriesViewer" id="categoriesviewer">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label4">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Categories stats</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Plugins.Stats.PlayersViewer" id="playersviewer">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="label5">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Players stats</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ <child internal-child="ActionArea">
+ <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
+ <property name="MemberName" />
+ <property name="Spacing">10</property>
+ <property name="BorderWidth">5</property>
+ <property name="Size">1</property>
+ <property name="LayoutStyle">End</property>
+ <child>
+ <widget class="Gtk.Button" id="buttonOk">
+ <property name="MemberName" />
+ <property name="CanDefault">True</property>
+ <property name="CanFocus">True</property>
+ <property name="UseStock">True</property>
+ <property name="Type">StockItem</property>
+ <property name="StockId">gtk-ok</property>
+ <property name="ResponseId">-5</property>
+ <property name="label">gtk-ok</property>
+ </widget>
+ <packing>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+</stetic-interface>
\ No newline at end of file
diff --git a/LongoMatch.Plugins.Stats/gtk-gui/objects.xml b/LongoMatch.Plugins.Stats/gtk-gui/objects.xml
new file mode 100644
index 0000000..092554b
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/gtk-gui/objects.xml
@@ -0,0 +1,329 @@
+<objects attr-sync="on">
+ <object type="LongoMatch.Plugins.Stats.CategoriesViewer" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.CategoryViewer" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="CategoryViewer Properties">
+ <property name="HomeName" />
+ <property name="AwayName" />
+ </itemgroup>
+ </itemgroups>
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.GameViewer" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.PlayerCategoriesViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.PlayerCategoryViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.PlayerSubcategoryViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.PlayersViewer" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.Plotter" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="Plotter Properties">
+ <property name="ShowTeams" />
+ <property name="HomeName" />
+ <property name="AwayName" />
+ </itemgroup>
+ </itemgroups>
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.SubCategoryViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.CategoryProperties" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="CategoryProperties Properties">
+ <property name="Edited" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="CategoryProperties Signals">
+ <signal name="EditedEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Popup.TransparentDrawingArea" palette-category="General"
allow-children="false" base-type="Gtk.Window">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.DashboardWidget" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="DashboardWidget Properties">
+ <property name="Edited" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="DashboardWidget Signals">
+ <signal name="NewTagEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.NotesWidget" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlayersTreeView" palette-category="General" allow-children="false"
base-type="Gtk.TreeView">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlayListTreeView" palette-category="General" allow-children="false"
base-type="Gtk.TreeView">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysTreeView" palette-category="General" allow-children="false"
base-type="Gtk.TreeView">
+ <itemgroups />
+ <signals>
+ <itemgroup label="PlaysTreeView Signals">
+ <signal name="EditProperties" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.PlayersListTreeWidget" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlayListWidget" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.ProjectListWidget" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="ProjectListWidget Signals">
+ <signal name="ProjectsSelected" />
+ <signal name="ProjectSelected" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysListTreeWidget" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.RenderingStateBar" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="IRenderingStateBar Properties">
+ <property name="Fraction" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="IRenderingStateBar Signals">
+ <signal name="Cancel" />
+ <signal name="ManageJobs" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.RenderingJobsTreeView" palette-category="General"
allow-children="false" base-type="Gtk.TreeView">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysSelectionWidget" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlayersFilterTreeView" palette-category="General"
allow-children="false" base-type="Gtk.TreeView">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.CategoriesFilterTreeView" palette-category="General"
allow-children="false" base-type="Gtk.TreeView">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.CoordinatesTagger" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.GeneralPreferencesPanel" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.VideoPreferencesPanel" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.LiveAnalysisPreferences" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysCoordinatesTagger" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.AnalysisComponent" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <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="IPanel Signals">
+ <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="IPanel Signals">
+ <signal name="BackEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Panel.TeamsTemplatesPanel" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="IPanel Signals">
+ <signal name="BackEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.TeamTemplateEditor" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="TeamTemplateEditor Properties">
+ <property name="Edited" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="TeamTemplateEditor Signals">
+ <signal name="TemplateSaved" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Panel.ProjectsManagerPanel" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="IPanel Signals">
+ <signal name="BackEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Panel.SportsTemplatesPanel" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="IPanel Signals">
+ <signal name="BackEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Panel.PreferencesPanel" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="IPanel Signals">
+ <signal name="BackEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.Timeline" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.CodingWidget" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="CodingWidget Properties">
+ <property name="TagPositions" />
+ </itemgroup>
+ </itemgroups>
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.ProjectPeriods" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysPositionViewer" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.TeamsComboBox" palette-category="General" allow-children="false"
base-type="Gtk.ComboBox">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.HomeTeamsComboBox" palette-category="General"
allow-children="false" base-type="Gtk.ComboBox">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.AwayTeamsComboBox" palette-category="General"
allow-children="false" base-type="Gtk.ComboBox">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.MediaFileChooser" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="MediaFileChooser Properties">
+ <property name="CurrentPath" />
+ <property name="FilterName" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="MediaFileChooser Signals">
+ <signal name="ChangedEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.DatePicker" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="DatePicker Properties">
+ <property name="Date" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="DatePicker Signals">
+ <signal name="ValueChanged" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Panel.PanelHeader" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="PanelHeader Signals">
+ <signal name="BackClicked" />
+ <signal name="ApplyClicked" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.MediaFileSetSelection" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.HotkeysConfiguration" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.FakeAnalysisComponent" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.EventsListWidget" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.PluginsPreferences" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Plugins.Stats.StatsViewer" palette-category="General" allow-children="false"
base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+</objects>
\ No newline at end of file
diff --git a/LongoMatch.sln b/LongoMatch.sln
index f49c728..0d67063 100644
--- a/LongoMatch.sln
+++ b/LongoMatch.sln
@@ -31,6 +31,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LongoMatch.Migration", "Lon
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LongoMatch.Plugins.GStreamer",
"LongoMatch.Plugins.GStreamer\LongoMatch.Plugins.GStreamer.csproj", "{92BF45E5-4F84-48FB-B3F0-BB8878B6137B}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LongoMatch.Plugins.Stats",
"LongoMatch.Plugins.Stats\LongoMatch.Plugins.Stats.csproj", "{F03D161E-CC4D-4FE6-968A-04F884AB0939}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -97,6 +99,10 @@ Global
{E75E30DC-C1CF-4683-9A36-65B91EF10095}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E75E30DC-C1CF-4683-9A36-65B91EF10095}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E75E30DC-C1CF-4683-9A36-65B91EF10095}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = LongoMatch\LongoMatch.csproj
diff --git a/LongoMatch/LongoMatch.csproj b/LongoMatch/LongoMatch.csproj
index 5d92a90..f3dc817 100644
--- a/LongoMatch/LongoMatch.csproj
+++ b/LongoMatch/LongoMatch.csproj
@@ -96,6 +96,10 @@
<Project>{92BF45E5-4F84-48FB-B3F0-BB8878B6137B}</Project>
<Name>LongoMatch.Plugins.GStreamer</Name>
</ProjectReference>
+ <ProjectReference Include="..\LongoMatch.Plugins.Stats\LongoMatch.Plugins.Stats.csproj">
+ <Project>{F03D161E-CC4D-4FE6-968A-04F884AB0939}</Project>
+ <Name>LongoMatch.Plugins.Stats</Name>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
diff --git a/Makefile.am b/Makefile.am
index 8a73acf..d9fe987 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,6 +20,7 @@ SUBDIRS = \
LongoMatch.GUI.Multimedia \
LongoMatch.GUI \
LongoMatch.Plugins \
+ LongoMatch.Plugins.Stats \
LongoMatch.Services \
LongoMatch \
po
diff --git a/build/build.environment.mk b/build/build.environment.mk
index 6258c78..f1b0605 100644
--- a/build/build.environment.mk
+++ b/build/build.environment.mk
@@ -153,6 +153,18 @@ REF_DEP_LONGOMATCH_PLUGINS_GSTREAMER = \
$(LINK_LONGOMATCH_CORE) \
$(LINK_LONGOMATCH_ADDINS)
+REF_DEP_LONGOMATCH_PLUGINS_STATS = \
+ $(LINK_MONO_ADDINS) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_GLIB) \
+ $(LINK_GTK) \
+ $(LINK_OSXYPLOT) \
+ $(LINK_LONGOMATCH_CORE) \
+ $(LINK_LONGOMATCH_GUI) \
+ $(LINK_LONGOMATCH_GUI_HELPERS) \
+ $(LINK_LONGOMATCH_ADDINS)
+
+
DIR_BIN = $(top_builddir)/bin
diff --git a/configure.ac b/configure.ac
index 69059dc..b360c62 100644
--- a/configure.ac
+++ b/configure.ac
@@ -143,6 +143,7 @@ LongoMatch.GUI.Multimedia/Makefile
LongoMatch.GUI/Makefile
LongoMatch.Plugins/Makefile
LongoMatch.Plugins.GStreamer/Makefile
+LongoMatch.Plugins.Stats/Makefile
LongoMatch.Services/Makefile
LongoMatch/Makefile
LongoMatch/longomatch
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]