[longomatch] Customize notebook and support detaching tabs
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Customize notebook and support detaching tabs
- Date: Wed, 24 Sep 2014 20:12:46 +0000 (UTC)
commit bf9b9880340fa8f0057dc36e768bd7532515ce1c
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Fri Aug 22 17:12:43 2014 +0200
Customize notebook and support detaching tabs
LongoMatch.Core/StyleConf.cs | 3 +-
LongoMatch.GUI/Gui/Component/CodingWidget.cs | 139 +++++++++++++++-----
LongoMatch.GUI/Gui/Component/DashboardWidget.cs | 6 +
.../LongoMatch.Gui.Component.CodingWidget.cs | 119 ++++++++---------
LongoMatch.GUI/gtk-gui/gui.stetic | 68 ++++-------
.../actions/longomatch-tab-active-dashboard.svg | 10 ++
.../actions/longomatch-tab-active-position.svg | 15 ++
.../actions/longomatch-tab-active-timeline.svg | 24 ++++
.../scalable/actions/longomatch-tab-dashboard.svg | 10 ++
.../scalable/actions/longomatch-tab-position.svg | 15 ++
.../scalable/actions/longomatch-tab-timeline.svg | 24 ++++
data/theme/gtk-2.0/gtkrc | 1 -
12 files changed, 290 insertions(+), 144 deletions(-)
---
diff --git a/LongoMatch.Core/StyleConf.cs b/LongoMatch.Core/StyleConf.cs
index d1e3cb8..4f2d4d2 100644
--- a/LongoMatch.Core/StyleConf.cs
+++ b/LongoMatch.Core/StyleConf.cs
@@ -70,7 +70,8 @@ namespace LongoMatch.Common
public const int PlayerArrowOffset = 14;
public const int PlayerArrowSize = 20;
-
+ public static int NotebookTabIconSize = 18;
+
public int BenchLineWidth = 2;
public int TeamTaggerBenchBorder = 10;
diff --git a/LongoMatch.GUI/Gui/Component/CodingWidget.cs b/LongoMatch.GUI/Gui/Component/CodingWidget.cs
index 4d29fba..dbd443d 100644
--- a/LongoMatch.GUI/Gui/Component/CodingWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/CodingWidget.cs
@@ -24,6 +24,7 @@ using LongoMatch.Common;
using LongoMatch.Drawing.Widgets;
using LongoMatch.Drawing.Cairo;
using LongoMatch.Gui.Helpers;
+using Mono.Unix;
namespace LongoMatch.Gui.Component
{
@@ -34,19 +35,28 @@ namespace LongoMatch.Gui.Component
ProjectType projectType;
List<Player> selectedPlayers;
Play loadedPlay;
-
+ List<Window> activeWindows;
+ int currentPage;
+ Gdk.Pixbuf timelineIco, timelineActiveIco;
+ Gdk.Pixbuf posIco, posAtiveIco;
+ Gdk.Pixbuf dashboardIco, dashboardActiveIco;
+
public CodingWidget ()
{
this.Build ();
- notebook.ShowTabs = false;
+ LoadIcons ();
+
notebook.ShowBorder = false;
+ notebook.Group = this.Handle;
+ notebook.SwitchPage += HandleSwitchPage;
+ Notebook.WindowCreationHook = CreateNewWindow;
+ activeWindows = new List<Window> ();
+ SetTabProps (dashboardhpaned, false);
+ SetTabProps (timeline, false);
+ SetTabProps (playspositionviewer1, false);
+ notebook.Page = currentPage = 0;
- autoTaggingMode.Activated += HandleViewToggled;
- timelineMode.Activated += HandleViewToggled;
- positionMode.Activated += HandleViewToggled;
- autoTaggingMode.Active = true;
-
teamtagger = new TeamTagger (new WidgetWrapper (teamsdrawingarea));
teamtagger.SelectionMode = MultiSelectionMode.Multiple;
teamtagger.PlayersSelectionChangedEvent += HandlePlayersSelectionChangedEvent;
@@ -60,12 +70,15 @@ namespace LongoMatch.Gui.Component
Config.EventsBroker.PlaySelected += HandlePlaySelected;
LongoMatch.Gui.Helpers.Misc.DisableFocus (vbox);
- //buttonswidget.NewTagEvent += HandleNewTagEvent;
buttonswidget.Mode = TagMode.Free;
+ buttonswidget.FitMode = FitMode.Fit;
}
protected override void OnDestroyed ()
{
+ foreach (Window w in activeWindows) {
+ w.Destroy ();
+ }
Config.EventsBroker.Tick -= HandleTick;
Config.EventsBroker.PlaySelected -= HandlePlaySelected;
buttonswidget.Destroy ();
@@ -74,7 +87,8 @@ namespace LongoMatch.Gui.Component
base.OnDestroyed ();
}
- public void SetProject (Project project, ProjectType projectType, PlaysFilter filter) {
+ public void SetProject (Project project, ProjectType projectType, PlaysFilter filter)
+ {
this.projectType = projectType;
autoTaggingMode.Active = true;
buttonswidget.Visible = true;
@@ -91,39 +105,105 @@ namespace LongoMatch.Gui.Component
}
playspositionviewer1.LoadProject (project);
}
-
- public void AddPlay(Play play) {
+
+ public void AddPlay (Play play)
+ {
if (projectType == ProjectType.FileProject) {
- timeline.AddPlay(play);
+ timeline.AddPlay (play);
}
playspositionviewer1.AddPlay (play);
}
-
- public void DeletePlays (List<Play> plays) {
+
+ public void DeletePlays (List<Play> plays)
+ {
if (projectType == ProjectType.FileProject) {
- timeline.RemovePlays(plays);
+ timeline.RemovePlays (plays);
}
playspositionviewer1.RemovePlays (plays);
}
- public void UpdateCategories () {
+ public void UpdateCategories ()
+ {
buttonswidget.Refresh ();
}
-
- void HandleViewToggled (object sender, EventArgs e)
+
+ public void LoadIcons ()
+ {
+ int s = StyleConf.NotebookTabIconSize;
+ IconLookupFlags f = IconLookupFlags.ForceSvg;
+
+ timelineIco = IconTheme.Default.LoadIcon ("longomatch-tab-timeline", s, f);
+ timelineActiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-timeline", s,
f);
+ dashboardIco = IconTheme.Default.LoadIcon ("longomatch-tab-dashboard", s, f);
+ dashboardActiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-dashboard",
s, f);
+ posIco = IconTheme.Default.LoadIcon ("longomatch-tab-position", s, f);
+ posAtiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-position", s, f);
+ }
+
+ void SetTabProps (Widget widget, bool active)
{
- if (!(sender as RadioAction).Active) {
+ Gdk.Pixbuf icon;
+ Gtk.Image img;
+
+ img = notebook.GetTabLabel (widget) as Gtk.Image;
+ if (img == null) {
+ img = new Gtk.Image ();
+ notebook.SetTabLabel (widget, img);
+ }
+
+ if (widget == timeline) {
+ icon = active ? timelineActiveIco : timelineIco;
+ } else if (widget == dashboardhpaned) {
+ icon = active ? dashboardActiveIco : dashboardIco;
+ } else if (widget == playspositionviewer1) {
+ icon = active ? posAtiveIco : posIco;
+ } else {
return;
}
- if (autoTaggingMode.Active) {
- notebook.Page = 0;
- } else if (timelineMode.Active) {
- notebook.Page = 1;
- } else if (positionMode.Active) {
- notebook.CurrentPage = 2;
+ img.Pixbuf = icon;
+ notebook.SetTabDetachable (widget, true);
+ }
+
+ Notebook CreateNewWindow (Notebook source, Widget page, int x, int y)
+ {
+ Window window;
+ Notebook notebook;
+
+ window = new Window (WindowType.Toplevel);
+ if (page == timeline) {
+ window.Title = Catalog.GetString ("Timeline");
+ } else if (page == dashboardhpaned) {
+ window.Title = Catalog.GetString ("Analysis dashboard");
+ } else if (page == playspositionviewer1) {
+ window.Title = Catalog.GetString ("Zonal tags viewer");
}
+ window.Icon = Stetic.IconLoader.LoadIcon (this, "longomatch", IconSize.Menu);
+ notebook = new Notebook ();
+ notebook.ShowTabs = false;
+ //notebook.Group = source.Group;
+ window.Add (notebook);
+ window.SetDefaultSize (300, 300);
+ window.Move (x, y);
+ window.ShowAll ();
+ activeWindows.Add (window);
+ window.DeleteEvent += (o, args) => {
+ Widget pa = notebook.CurrentPageWidget;
+ activeWindows.Remove (window);
+ notebook.Remove (pa);
+ source.AppendPage (pa, null);
+ SetTabProps (pa, source.NPages == 0);
+ notebook.Destroy ();
+ };
+ return notebook;
}
-
+
+ void HandleSwitchPage (object o, SwitchPageArgs args)
+ {
+ SetTabProps (notebook.GetNthPage (currentPage), false);
+ SetTabProps (notebook.GetNthPage ((int)args.PageNum), true);
+ currentPage = (int)args.PageNum;
+ }
+
void HandlePlaySelected (Play play)
{
loadedPlay = play;
@@ -135,12 +215,6 @@ namespace LongoMatch.Gui.Component
timeline.CurrentTime = currentTime;
}
- void HandleNewTagEvent (Category category, List<Player> players)
- {
- Config.EventsBroker.EmitNewTag (category, selectedPlayers);
- teamtagger.ClearSelection ();
- }
-
void HandlePlayersSelectionChangedEvent (List<Player> players)
{
if (loadedPlay != null) {
@@ -151,6 +225,5 @@ namespace LongoMatch.Gui.Component
}
}
}
-
}
diff --git a/LongoMatch.GUI/Gui/Component/DashboardWidget.cs b/LongoMatch.GUI/Gui/Component/DashboardWidget.cs
index 626c822..23a264e 100644
--- a/LongoMatch.GUI/Gui/Component/DashboardWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/DashboardWidget.cs
@@ -79,6 +79,12 @@ namespace LongoMatch.Gui.Component
base.OnDestroyed ();
}
+ public FitMode FitMode {
+ set {
+ tagger.FitMode = value;
+ }
+ }
+
public bool Edited {
get {
return edited || tagger.Edited || tagproperties.Edited;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CodingWidget.cs
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CodingWidget.cs
index 9536ba6..367ad41 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CodingWidget.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.CodingWidget.cs
@@ -5,22 +5,22 @@ namespace LongoMatch.Gui.Component
public partial class CodingWidget
{
private global::Gtk.UIManager UIManager;
+ private global::Gtk.RadioAction positionMode;
private global::Gtk.RadioAction timelineMode;
private global::Gtk.RadioAction autoTaggingMode;
private global::Gtk.Action zoomFitAction;
private global::Gtk.RadioAction convertAction;
- private global::Gtk.RadioAction positionMode;
private global::Gtk.VBox vbox;
- private global::Gtk.HBox hbox1;
- private global::Gtk.Toolbar codingtoolbar;
private global::Gtk.Notebook notebook;
- private global::Gtk.HPaned hpaned1;
+ private global::Gtk.HPaned dashboardhpaned;
private global::Gtk.DrawingArea teamsdrawingarea;
private global::Gtk.HBox hbox5;
private global::LongoMatch.Gui.Component.DashboardWidget buttonswidget;
+ private global::Gtk.Label label2;
private global::LongoMatch.Gui.Component.Timeline timeline;
+ private global::Gtk.Label label3;
private global::LongoMatch.Gui.Component.PlaysPositionViewer playspositionviewer1;
- private global::Gtk.Label label19;
+ private global::Gtk.Label label5;
protected virtual void Build ()
{
@@ -28,23 +28,23 @@ namespace LongoMatch.Gui.Component
// Widget LongoMatch.Gui.Component.CodingWidget
Stetic.BinContainer w1 = global::Stetic.BinContainer.Attach (this);
this.UIManager = new global::Gtk.UIManager ();
- global::Gtk.ActionGroup w2 = new global::Gtk.ActionGroup ("Default");
+ global::Gtk.ActionGroup w2 = new global::Gtk.ActionGroup ("Timeline");
+ this.positionMode = new global::Gtk.RadioAction ("positionMode", null, null,
"gtk-justify-fill", 0);
+ this.positionMode.Group = new global::GLib.SList (global::System.IntPtr.Zero);
+ w2.Add (this.positionMode, null);
+ this.UIManager.InsertActionGroup (w2, 0);
+ global::Gtk.ActionGroup w3 = new global::Gtk.ActionGroup ("Default");
this.timelineMode = new global::Gtk.RadioAction ("timelineMode", null,
global::Mono.Unix.Catalog.GetString ("Timeline view"), "gtk-justify-fill", 0);
- this.timelineMode.Group = new global::GLib.SList (global::System.IntPtr.Zero);
- w2.Add (this.timelineMode, null);
+ this.timelineMode.Group = this.positionMode.Group;
+ w3.Add (this.timelineMode, null);
this.autoTaggingMode = new global::Gtk.RadioAction ("autoTaggingMode", null,
global::Mono.Unix.Catalog.GetString ("Automatic tagging view"), "gtk-select-color", 0);
this.autoTaggingMode.Group = this.timelineMode.Group;
- w2.Add (this.autoTaggingMode, null);
+ w3.Add (this.autoTaggingMode, null);
this.zoomFitAction = new global::Gtk.Action ("zoomFitAction", null, null,
"gtk-zoom-fit");
- w2.Add (this.zoomFitAction, null);
+ w3.Add (this.zoomFitAction, null);
this.convertAction = new global::Gtk.RadioAction ("convertAction", null, null,
"gtk-convert", 0);
- this.convertAction.Group = this.autoTaggingMode.Group;
- w2.Add (this.convertAction, null);
- this.UIManager.InsertActionGroup (w2, 0);
- global::Gtk.ActionGroup w3 = new global::Gtk.ActionGroup ("Timeline");
- this.positionMode = new global::Gtk.RadioAction ("positionMode", null, null,
"gtk-justify-fill", 0);
- this.positionMode.Group = this.autoTaggingMode.Group;
- w3.Add (this.positionMode, null);
+ this.convertAction.Group = this.timelineMode.Group;
+ w3.Add (this.convertAction, null);
this.UIManager.InsertActionGroup (w3, 1);
this.Name = "LongoMatch.Gui.Component.CodingWidget";
// Container child LongoMatch.Gui.Component.CodingWidget.Gtk.Container+ContainerChild
@@ -52,42 +52,24 @@ namespace LongoMatch.Gui.Component
this.vbox.Name = "vbox";
this.vbox.Spacing = 6;
// Container child vbox.Gtk.Box+BoxChild
- this.hbox1 = new global::Gtk.HBox ();
- this.hbox1.Name = "hbox1";
- this.hbox1.Spacing = 6;
- // Container child hbox1.Gtk.Box+BoxChild
- this.UIManager.AddUiFromString ("<ui><toolbar name='codingtoolbar'><toolitem
name='autoTaggingMode' action='autoTaggingMode'/><toolitem name='timelineMode'
action='timelineMode'/><toolitem name='positionMode' action='positionMode'/></toolbar></ui>");
- this.codingtoolbar = ((global::Gtk.Toolbar)(this.UIManager.GetWidget
("/codingtoolbar")));
- this.codingtoolbar.Name = "codingtoolbar";
- this.codingtoolbar.ShowArrow = false;
- this.hbox1.Add (this.codingtoolbar);
- global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox1
[this.codingtoolbar]));
- w4.Position = 0;
- w4.Expand = false;
- w4.Fill = false;
- this.vbox.Add (this.hbox1);
- global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox [this.hbox1]));
- w5.Position = 0;
- w5.Expand = false;
- w5.Fill = false;
- // Container child vbox.Gtk.Box+BoxChild
this.notebook = new global::Gtk.Notebook ();
this.notebook.CanFocus = true;
this.notebook.Name = "notebook";
- this.notebook.CurrentPage = 1;
+ this.notebook.CurrentPage = 0;
this.notebook.TabPos = ((global::Gtk.PositionType)(0));
+ this.notebook.ShowBorder = false;
// Container child notebook.Gtk.Notebook+NotebookChild
- this.hpaned1 = new global::Gtk.HPaned ();
- this.hpaned1.CanFocus = true;
- this.hpaned1.Name = "hpaned1";
- this.hpaned1.Position = 276;
- // Container child hpaned1.Gtk.Paned+PanedChild
+ this.dashboardhpaned = new global::Gtk.HPaned ();
+ this.dashboardhpaned.CanFocus = true;
+ this.dashboardhpaned.Name = "dashboardhpaned";
+ this.dashboardhpaned.Position = 276;
+ // Container child dashboardhpaned.Gtk.Paned+PanedChild
this.teamsdrawingarea = new global::Gtk.DrawingArea ();
this.teamsdrawingarea.Name = "teamsdrawingarea";
- this.hpaned1.Add (this.teamsdrawingarea);
- global::Gtk.Paned.PanedChild w6 = ((global::Gtk.Paned.PanedChild)(this.hpaned1
[this.teamsdrawingarea]));
- w6.Resize = false;
- // Container child hpaned1.Gtk.Paned+PanedChild
+ this.dashboardhpaned.Add (this.teamsdrawingarea);
+ global::Gtk.Paned.PanedChild w4 =
((global::Gtk.Paned.PanedChild)(this.dashboardhpaned [this.teamsdrawingarea]));
+ w4.Resize = false;
+ // Container child dashboardhpaned.Gtk.Paned+PanedChild
this.hbox5 = new global::Gtk.HBox ();
this.hbox5.Name = "hbox5";
this.hbox5.Spacing = 6;
@@ -97,36 +79,45 @@ namespace LongoMatch.Gui.Component
this.buttonswidget.Name = "buttonswidget";
this.buttonswidget.Edited = false;
this.hbox5.Add (this.buttonswidget);
- global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox5
[this.buttonswidget]));
- w7.Position = 0;
- this.hpaned1.Add (this.hbox5);
- this.notebook.Add (this.hpaned1);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox5
[this.buttonswidget]));
+ w5.Position = 0;
+ this.dashboardhpaned.Add (this.hbox5);
+ this.notebook.Add (this.dashboardhpaned);
+ // Notebook tab
+ this.label2 = new global::Gtk.Label ();
+ this.label2.Name = "label2";
+ this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("page1");
+ this.notebook.SetTabLabel (this.dashboardhpaned, this.label2);
+ this.label2.ShowAll ();
// Container child notebook.Gtk.Notebook+NotebookChild
this.timeline = new global::LongoMatch.Gui.Component.Timeline ();
this.timeline.Events = ((global::Gdk.EventMask)(256));
this.timeline.Name = "timeline";
this.notebook.Add (this.timeline);
- global::Gtk.Notebook.NotebookChild w10 =
((global::Gtk.Notebook.NotebookChild)(this.notebook [this.timeline]));
- w10.Position = 1;
+ global::Gtk.Notebook.NotebookChild w8 =
((global::Gtk.Notebook.NotebookChild)(this.notebook [this.timeline]));
+ w8.Position = 1;
+ // Notebook tab
+ this.label3 = new global::Gtk.Label ();
+ this.label3.Name = "label3";
+ this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("page2");
+ this.notebook.SetTabLabel (this.timeline, this.label3);
+ this.label3.ShowAll ();
// Container child notebook.Gtk.Notebook+NotebookChild
this.playspositionviewer1 = new global::LongoMatch.Gui.Component.PlaysPositionViewer
();
this.playspositionviewer1.Events = ((global::Gdk.EventMask)(256));
this.playspositionviewer1.Name = "playspositionviewer1";
this.notebook.Add (this.playspositionviewer1);
- global::Gtk.Notebook.NotebookChild w11 =
((global::Gtk.Notebook.NotebookChild)(this.notebook [this.playspositionviewer1]));
- w11.Position = 2;
+ global::Gtk.Notebook.NotebookChild w9 =
((global::Gtk.Notebook.NotebookChild)(this.notebook [this.playspositionviewer1]));
+ w9.Position = 2;
// Notebook tab
- global::Gtk.Label w12 = new global::Gtk.Label ();
- w12.Visible = true;
- this.notebook.Add (w12);
- this.label19 = new global::Gtk.Label ();
- this.label19.Name = "label19";
- this.label19.LabelProp = global::Mono.Unix.Catalog.GetString ("page3");
- this.notebook.SetTabLabel (w12, this.label19);
- this.label19.ShowAll ();
+ this.label5 = new global::Gtk.Label ();
+ this.label5.Name = "label5";
+ this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("page3");
+ this.notebook.SetTabLabel (this.playspositionviewer1, this.label5);
+ this.label5.ShowAll ();
this.vbox.Add (this.notebook);
- global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox
[this.notebook]));
- w13.Position = 1;
+ global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox
[this.notebook]));
+ w10.Position = 0;
this.Add (this.vbox);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index cc6f4b6..637eaf4 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -10003,48 +10003,14 @@ You can continue with the current capture, cancel it or save your project.
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
- <widget class="Gtk.HBox" id="hbox1">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.Toolbar" id="codingtoolbar">
- <property name="MemberName" />
- <property name="ShowArrow">False</property>
- <node name="codingtoolbar" type="Toolbar">
- <node type="Toolitem" action="autoTaggingMode" />
- <node type="Toolitem" action="timelineMode" />
- <node type="Toolitem" action="positionMode" />
- </node>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">False</property>
- <property name="Expand">False</property>
- <property name="Fill">False</property>
- </packing>
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </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.Notebook" id="notebook">
<property name="MemberName" />
<property name="CanFocus">True</property>
- <property name="CurrentPage">1</property>
+ <property name="CurrentPage">0</property>
<property name="TabPos">Left</property>
+ <property name="ShowBorder">False</property>
<child>
- <widget class="Gtk.HPaned" id="hpaned1">
+ <widget class="Gtk.HPaned" id="dashboardhpaned">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Position">276</property>
@@ -10076,6 +10042,15 @@ You can continue with the current capture, cancel it or save your project.
</widget>
</child>
<child>
+ <widget class="Gtk.Label" id="label2">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">page1</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
<widget class="LongoMatch.Gui.Component.Timeline" id="timeline">
<property name="MemberName" />
<property name="Events">ButtonPressMask</property>
@@ -10085,6 +10060,15 @@ You can continue with the current capture, cancel it or save your project.
</packing>
</child>
<child>
+ <widget class="Gtk.Label" id="label3">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">page2</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
<widget class="LongoMatch.Gui.Component.PlaysPositionViewer" id="playspositionviewer1">
<property name="MemberName" />
<property name="Events">ButtonPressMask</property>
@@ -10094,13 +10078,7 @@ You can continue with the current capture, cancel it or save your project.
</packing>
</child>
<child>
- <placeholder />
- </child>
- <child>
- <placeholder />
- </child>
- <child>
- <widget class="Gtk.Label" id="label19">
+ <widget class="Gtk.Label" id="label5">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">page3</property>
</widget>
@@ -10110,7 +10088,7 @@ You can continue with the current capture, cancel it or save your project.
</child>
</widget>
<packing>
- <property name="Position">1</property>
+ <property name="Position">0</property>
<property name="AutoSize">True</property>
</packing>
</child>
diff --git a/data/icons/hicolor/scalable/actions/longomatch-tab-active-dashboard.svg
b/data/icons/hicolor/scalable/actions/longomatch-tab-active-dashboard.svg
new file mode 100644
index 0000000..2a5e3d2
--- /dev/null
+++ b/data/icons/hicolor/scalable/actions/longomatch-tab-active-dashboard.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="18px" height="18px" viewBox="2 2 18 18" enable-background="new 2 2 18 18"
xml:space="preserve">
+<path id="tag_2_" fill="#F6F6F6"
d="M20,3.124C20,2.504,19.496,2,18.875,2l-7.313,0.006c-0.225,0-0.386,0.075-0.608,0.297
+ l-8.65,8.64c-0.404,0.403-0.404,1.057,0,1.46l7.391,7.294c0.405,0.403,1.06,0.403,1.464,0l8.578-8.622
+ C19.959,10.854,20,10.624,20,10.428V3.124z
M16.068,7.626c-0.932,0-1.688-0.757-1.688-1.688c0-0.932,0.757-1.688,1.688-1.688
+ c0.933,0,1.69,0.756,1.69,1.688C17.759,6.869,17.001,7.626,16.068,7.626z"/>
+</svg>
diff --git a/data/icons/hicolor/scalable/actions/longomatch-tab-active-position.svg
b/data/icons/hicolor/scalable/actions/longomatch-tab-active-position.svg
new file mode 100644
index 0000000..ad13334
--- /dev/null
+++ b/data/icons/hicolor/scalable/actions/longomatch-tab-active-position.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="18px" height="18px" viewBox="2 2 18 18" enable-background="new 2 2 18 18"
xml:space="preserve">
+<g>
+ <path fill="#F6F6F6" d="M10.475,9.232c-0.895,0-1.62,0.727-1.62,1.619c0,0.894,0.726,1.622,1.62,1.622
+ c0.893,0,1.62-0.728,1.62-1.622C12.095,9.959,11.367,9.232,10.475,9.232z"/>
+ <path fill="#F6F6F6"
d="M18.874,2l-7.312,0.007c-0.226,0-0.387,0.075-0.608,0.296l-8.65,8.64c-0.404,0.403-0.404,1.056,0,1.46
+
l7.391,7.294c0.405,0.403,1.06,0.403,1.465,0l8.577-8.622C19.958,10.853,20,10.624,20,10.427V3.124C20,2.504,19.495,2,18.874,2z
+
M14.418,13.688l-0.17,0.234l-3.45,4.869c-0.075,0.102-0.196,0.163-0.323,0.163c-0.128,0-0.248-0.062-0.324-0.163l-3.491-4.928
+
L6.53,13.687c-0.6-0.834-0.917-1.813-0.917-2.835c0-2.68,2.182-4.861,4.861-4.861c2.681,0,4.861,2.181,4.861,4.861
+ C15.336,11.873,15.018,12.853,14.418,13.688z"/>
+</g>
+</svg>
diff --git a/data/icons/hicolor/scalable/actions/longomatch-tab-active-timeline.svg
b/data/icons/hicolor/scalable/actions/longomatch-tab-active-timeline.svg
new file mode 100644
index 0000000..7ade05c
--- /dev/null
+++ b/data/icons/hicolor/scalable/actions/longomatch-tab-active-timeline.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="18px" height="18px" viewBox="2 2 18 18" enable-background="new 2 2 18 18"
xml:space="preserve">
+<g id="list">
+ <path fill="#F6F6F6"
d="M19.438,3.125h-13.5c-0.311,0-0.562,0.251-0.562,0.562v1.126c0,0.31,0.251,0.562,0.562,0.562h13.5
+ C19.748,5.374,20,5.123,20,4.812V3.687C20,3.376,19.748,3.125,19.438,3.125z"/>
+ <path fill="#F6F6F6"
d="M19.438,7.625h-13.5c-0.311,0-0.562,0.251-0.562,0.563v1.124c0,0.311,0.251,0.563,0.562,0.563h13.5
+ C19.748,9.876,20,9.624,20,9.312V8.188C20,7.876,19.748,7.625,19.438,7.625z"/>
+ <path fill="#F6F6F6"
d="M19.438,12.125h-13.5c-0.311,0-0.562,0.251-0.562,0.562v1.125c0,0.311,0.251,0.563,0.562,0.563h13.5
+ c0.311,0,0.562-0.253,0.562-0.563v-1.125C20,12.376,19.748,12.125,19.438,12.125z"/>
+ <path fill="#F6F6F6"
d="M19.438,16.625h-13.5c-0.311,0-0.562,0.252-0.562,0.562v1.126c0,0.311,0.251,0.562,0.562,0.562h13.5
+ c0.311,0,0.562-0.252,0.562-0.562v-1.126C20,16.877,19.748,16.625,19.438,16.625z"/>
+ <path fill="#F6F6F6"
d="M3.688,3.125H2.562C2.251,3.125,2,3.376,2,3.687v1.126c0,0.31,0.251,0.562,0.562,0.562h1.125
+ c0.311,0,0.562-0.251,0.562-0.562V3.687C4.25,3.376,3.999,3.125,3.688,3.125z"/>
+ <path fill="#F6F6F6"
d="M3.688,7.625H2.562C2.251,7.625,2,7.876,2,8.188v1.124c0,0.311,0.251,0.563,0.562,0.563h1.125
+ c0.311,0,0.562-0.252,0.562-0.563V8.188C4.25,7.876,3.999,7.625,3.688,7.625z"/>
+ <path fill="#F6F6F6"
d="M3.688,12.125H2.562C2.251,12.125,2,12.376,2,12.687v1.125c0,0.311,0.251,0.563,0.562,0.563h1.125
+ c0.311,0,0.562-0.253,0.562-0.563v-1.125C4.25,12.376,3.999,12.125,3.688,12.125z"/>
+ <path fill="#F6F6F6"
d="M3.688,16.625H2.562C2.251,16.625,2,16.877,2,17.187v1.126c0,0.311,0.251,0.562,0.562,0.562h1.125
+ c0.311,0,0.562-0.252,0.562-0.562v-1.126C4.25,16.877,3.999,16.625,3.688,16.625z"/>
+</g>
+</svg>
diff --git a/data/icons/hicolor/scalable/actions/longomatch-tab-dashboard.svg
b/data/icons/hicolor/scalable/actions/longomatch-tab-dashboard.svg
new file mode 100644
index 0000000..29f1526
--- /dev/null
+++ b/data/icons/hicolor/scalable/actions/longomatch-tab-dashboard.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="18px" height="18px" viewBox="2 2 18 18" enable-background="new 2 2 18 18"
xml:space="preserve">
+<path id="tag_2_" fill="#6A6A6A"
d="M20,3.124C20,2.504,19.496,2,18.875,2l-7.313,0.006c-0.225,0-0.386,0.075-0.608,0.297
+ l-8.65,8.64c-0.404,0.403-0.404,1.057,0,1.46l7.391,7.294c0.405,0.403,1.06,0.403,1.464,0l8.578-8.622
+ C19.959,10.854,20,10.624,20,10.428V3.124z
M16.068,7.626c-0.932,0-1.688-0.757-1.688-1.688c0-0.932,0.757-1.688,1.688-1.688
+ c0.933,0,1.69,0.756,1.69,1.688C17.759,6.869,17.001,7.626,16.068,7.626z"/>
+</svg>
diff --git a/data/icons/hicolor/scalable/actions/longomatch-tab-position.svg
b/data/icons/hicolor/scalable/actions/longomatch-tab-position.svg
new file mode 100644
index 0000000..ce61a86
--- /dev/null
+++ b/data/icons/hicolor/scalable/actions/longomatch-tab-position.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="18px" height="18px" viewBox="2 2 18 18" enable-background="new 2 2 18 18"
xml:space="preserve">
+<g>
+ <path fill="#6A6A6A" d="M10.475,9.232c-0.895,0-1.62,0.727-1.62,1.619c0,0.894,0.726,1.622,1.62,1.622
+ c0.893,0,1.62-0.728,1.62-1.622C12.095,9.959,11.367,9.232,10.475,9.232z"/>
+ <path fill="#6A6A6A"
d="M18.874,2l-7.312,0.007c-0.226,0-0.387,0.075-0.608,0.296l-8.65,8.64c-0.404,0.403-0.404,1.056,0,1.46
+
l7.391,7.294c0.405,0.403,1.06,0.403,1.465,0l8.577-8.622C19.958,10.853,20,10.624,20,10.427V3.124C20,2.504,19.495,2,18.874,2z
+
M14.418,13.688l-0.17,0.234l-3.45,4.869c-0.075,0.102-0.196,0.163-0.323,0.163c-0.128,0-0.248-0.062-0.324-0.163l-3.491-4.928
+
L6.53,13.687c-0.6-0.834-0.917-1.813-0.917-2.835c0-2.68,2.182-4.861,4.861-4.861c2.681,0,4.861,2.181,4.861,4.861
+ C15.336,11.873,15.018,12.853,14.418,13.688z"/>
+</g>
+</svg>
diff --git a/data/icons/hicolor/scalable/actions/longomatch-tab-timeline.svg
b/data/icons/hicolor/scalable/actions/longomatch-tab-timeline.svg
new file mode 100644
index 0000000..010bcad
--- /dev/null
+++ b/data/icons/hicolor/scalable/actions/longomatch-tab-timeline.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="18px" height="18px" viewBox="2 2 18 18" enable-background="new 2 2 18 18"
xml:space="preserve">
+<g id="list">
+ <path fill="#6A6A6A"
d="M19.438,3.125h-13.5c-0.311,0-0.562,0.251-0.562,0.562v1.126c0,0.31,0.251,0.562,0.562,0.562h13.5
+ C19.748,5.374,20,5.123,20,4.812V3.687C20,3.376,19.748,3.125,19.438,3.125z"/>
+ <path fill="#6A6A6A"
d="M19.438,7.625h-13.5c-0.311,0-0.562,0.251-0.562,0.563v1.124c0,0.311,0.251,0.563,0.562,0.563h13.5
+ C19.748,9.876,20,9.624,20,9.312V8.188C20,7.876,19.748,7.625,19.438,7.625z"/>
+ <path fill="#6A6A6A"
d="M19.438,12.125h-13.5c-0.311,0-0.562,0.251-0.562,0.562v1.125c0,0.311,0.251,0.563,0.562,0.563h13.5
+ c0.311,0,0.562-0.253,0.562-0.563v-1.125C20,12.376,19.748,12.125,19.438,12.125z"/>
+ <path fill="#6A6A6A"
d="M19.438,16.625h-13.5c-0.311,0-0.562,0.252-0.562,0.562v1.126c0,0.311,0.251,0.562,0.562,0.562h13.5
+ c0.311,0,0.562-0.252,0.562-0.562v-1.126C20,16.877,19.748,16.625,19.438,16.625z"/>
+ <path fill="#6A6A6A"
d="M3.688,3.125H2.562C2.251,3.125,2,3.376,2,3.687v1.126c0,0.31,0.251,0.562,0.562,0.562h1.125
+ c0.311,0,0.562-0.251,0.562-0.562V3.687C4.25,3.376,3.999,3.125,3.688,3.125z"/>
+ <path fill="#6A6A6A"
d="M3.688,7.625H2.562C2.251,7.625,2,7.876,2,8.188v1.124c0,0.311,0.251,0.563,0.562,0.563h1.125
+ c0.311,0,0.562-0.252,0.562-0.563V8.188C4.25,7.876,3.999,7.625,3.688,7.625z"/>
+ <path fill="#6A6A6A"
d="M3.688,12.125H2.562C2.251,12.125,2,12.376,2,12.687v1.125c0,0.311,0.251,0.563,0.562,0.563h1.125
+ c0.311,0,0.562-0.253,0.562-0.563v-1.125C4.25,12.376,3.999,12.125,3.688,12.125z"/>
+ <path fill="#6A6A6A"
d="M3.688,16.625H2.562C2.251,16.625,2,16.877,2,17.187v1.126c0,0.311,0.251,0.562,0.562,0.562h1.125
+ c0.311,0,0.562-0.252,0.562-0.562v-1.126C4.25,16.877,3.999,16.625,3.688,16.625z"/>
+</g>
+</svg>
diff --git a/data/theme/gtk-2.0/gtkrc b/data/theme/gtk-2.0/gtkrc
index 5330bcb..dbd6258 100644
--- a/data/theme/gtk-2.0/gtkrc
+++ b/data/theme/gtk-2.0/gtkrc
@@ -296,4 +296,3 @@ widget "*mediafilechooser*entry*" style "longomatch-filechooser-entry"
widget "*datepicker*button*" style "longomatch-filechooser-button"
widget "*datepicker*entry*" style "longomatch-filechooser-entry"
widget "*mediafilechooser*button*" style "longomatch-filechooser-button"
-
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]