[longomatch] Add a base class for time lines
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Add a base class for time lines
- Date: Sun, 18 Dec 2011 21:40:40 +0000 (UTC)
commit 0be36d4d4642610e16f54631dcd4c9f90d790583
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Thu Nov 24 22:50:48 2011 +0100
Add a base class for time lines
LongoMatch.GUI/Gui/Base/TimelineWidgetBase.cs | 200 ++++++++++++
LongoMatch.GUI/Gui/Component/TimeLineWidget.cs | 147 +--------
LongoMatch.GUI/LongoMatch.GUI.mdp | 3 +-
LongoMatch.GUI/Makefile.am | 5 +-
...s => LongoMatch.Gui.Base.TimelineWidgetBase.cs} | 22 +-
.../gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +-
LongoMatch.GUI/gtk-gui/gui.stetic | 341 ++++++++++----------
LongoMatch.GUI/gtk-gui/objects.xml | 58 +++-
8 files changed, 442 insertions(+), 336 deletions(-)
---
diff --git a/LongoMatch.GUI/Gui/Base/TimelineWidgetBase.cs b/LongoMatch.GUI/Gui/Base/TimelineWidgetBase.cs
new file mode 100644
index 0000000..0c5a20b
--- /dev/null
+++ b/LongoMatch.GUI/Gui/Base/TimelineWidgetBase.cs
@@ -0,0 +1,200 @@
+//
+// Copyright (C) 2011 Andoni Morales Alastruey
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+using System;
+using System.Collections.Generic;
+
+using LongoMatch.Interfaces;
+using LongoMatch.Gui.Base;
+using LongoMatch.Gui.Component;
+using Gtk;
+
+namespace LongoMatch.Gui.Base
+{
+ [System.ComponentModel.ToolboxItem(true)]
+ public partial class TimelineWidgetBase : Gtk.Bin
+ {
+ protected TimeReferenceWidget tr;
+ protected CategoriesScale cs;
+ protected uint currentFrame, pixelRatio, frames;
+ protected bool loaded;
+
+ public TimelineWidgetBase ()
+ {
+ this.Build ();
+
+ tr = new TimeReferenceWidget();
+ cs = new CategoriesScale();
+
+ cs.WidthRequest = 100;
+ toolsbox.HeightRequest = 50 - leftbox.Spacing;
+ tr.HeightRequest = 50 - leftbox.Spacing;
+
+ categoriesbox.PackStart(cs, false, false, 0);
+ timelinebox.PackStart(tr,false,false,0);
+
+ zoomscale.CanFocus = false;
+ loaded = false;
+ frames = 0;
+
+ ScrolledWindow.Vadjustment.ValueChanged += HandleScrollEvent;
+ ScrolledWindow.Hadjustment.ValueChanged += HandleScrollEvent;
+ ScrolledWindow.HScrollbar.SizeAllocated += OnSizeAllocated;
+ }
+
+ public ScrolledWindow ScrolledWindow {
+ get {
+ return GtkScrolledWindow;
+ }
+ }
+
+ public Box TimelineBox {
+ get{
+ return timelinebox;
+ }
+ }
+
+ public Scale ZoomScale {
+ get{
+ return zoomscale;
+ }
+ }
+
+ public Alignment Alignment {
+ get{
+ return categoriesalignment1;
+ }
+ }
+
+ public void AdjustPostion(uint currentframe) {
+ int visibleWidth;
+ int realWidth;
+ uint pos;
+ int scrollbarWidth;
+ if(Visible) {
+ scrollbarWidth= ScrolledWindow.VScrollbar.Allocation.Width;
+ visibleWidth = ScrolledWindow.Allocation.Width-scrollbarWidth;
+ realWidth = TimelineBox.Allocation.Width;
+ pos = currentframe/pixelRatio;
+ if(pos+visibleWidth < realWidth) {
+ ScrolledWindow.Hadjustment.Value = pos;
+ }
+ else {
+ ScrolledWindow.Hadjustment.Value = realWidth-visibleWidth-20;
+ }
+ }
+ }
+
+ protected virtual void HandleScrollEvent(object sender, System.EventArgs args)
+ {
+ if(sender == ScrolledWindow.Vadjustment)
+ cs.Scroll = ScrolledWindow.Vadjustment.Value;
+ else if(sender == ScrolledWindow.Hadjustment)
+ tr.Scroll = ScrolledWindow.Hadjustment.Value;
+ }
+
+ protected virtual void OnSizeAllocated(object sender, SizeAllocatedArgs e)
+ {
+ /* Align the categories list widget on top of the timeline's horizontal bar */
+ if(sender == ScrolledWindow.HScrollbar)
+ Alignment.BottomPadding = (uint) ScrolledWindow.HScrollbar.Allocation.Height;
+ }
+
+ }
+
+ [System.ComponentModel.ToolboxItem(true)]
+ public partial class TimelineBase <W, Z> : TimelineWidgetBase where Z:ITimelineNode where W: TimeScaleBase<Z>
+ {
+ protected Dictionary<object, W> tsList;
+ protected Z selected;
+
+ public TimelineBase (): base()
+ {
+ SetPixelRatio(10);
+ tsList = new Dictionary<object, W>();
+ }
+
+ public Z SelectedTimeNode {
+ get {
+ return selected;
+ }
+ set {
+ if(!loaded)
+ return;
+
+ selected = value;
+ foreach(W ts in tsList.Values)
+ ts.SelectedTimeNode = value;
+ if(selected != null) {
+ if(SelectedTimeNode.StartFrame/pixelRatio < ScrolledWindow.Hadjustment.Value ||
+ SelectedTimeNode.StartFrame/pixelRatio > ScrolledWindow.Hadjustment.Value +
+ ScrolledWindow.Allocation.Width - ScrolledWindow.VScrollbar.Allocation.Width)
+ AdjustPostion(SelectedTimeNode.StartFrame);
+ }
+ QueueDraw();
+ }
+ }
+
+ public uint CurrentFrame {
+ get {
+ return currentFrame;
+ }
+ set {
+ if(!loaded)
+ return;
+
+ currentFrame = value;
+ foreach(W ts in tsList.Values)
+ ts.CurrentFrame = value;
+ tr.CurrentFrame = value;
+ QueueDraw();
+ }
+ }
+
+ protected void SetPixelRatio(uint pixelRatio) {
+ if(!loaded)
+ return;
+
+ this.pixelRatio = pixelRatio;
+ tr.PixelRatio = pixelRatio;
+ foreach(W ts in tsList.Values)
+ ts.PixelRatio = pixelRatio;
+ ZoomScale.Value=pixelRatio;
+ }
+
+ protected void ResetGui() {
+ //Unrealize all children
+ foreach(Widget w in TimelineBox.AllChildren) {
+ TimelineBox.Remove(w);
+ w.Destroy();
+ }
+ }
+
+ protected virtual void OnFitbuttonClicked(object sender, System.EventArgs e)
+ {
+ AdjustPostion(currentFrame);
+ }
+
+ protected virtual void OnZoomscaleValueChanged(object sender, System.EventArgs e)
+ {
+ SetPixelRatio((uint)(ZoomScale.Value));
+ QueueDraw();
+ AdjustPostion(currentFrame);
+ }
+ }
+}
+
diff --git a/LongoMatch.GUI/Gui/Component/TimeLineWidget.cs b/LongoMatch.GUI/Gui/Component/TimeLineWidget.cs
index 5efd169..aec0c2a 100644
--- a/LongoMatch.GUI/Gui/Component/TimeLineWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/TimeLineWidget.cs
@@ -20,6 +20,8 @@
using System;
using System.Collections.Generic;
using Gtk;
+
+using LongoMatch.Gui.Base;
using LongoMatch.Handlers;
using LongoMatch.Store;
using LongoMatch.Store.Templates;
@@ -28,113 +30,18 @@ namespace LongoMatch.Gui.Component {
[System.ComponentModel.Category("LongoMatch")]
[System.ComponentModel.ToolboxItem(true)]
- public partial class TimeLineWidget : Gtk.Bin
+ public class TimeLineWidget : TimelineBase<TimeScale, Play>
{
public event TimeNodeChangedHandler TimeNodeChanged;
public event PlaySelectedHandler TimeNodeSelected;
public event PlaysDeletedHandler TimeNodeDeleted;
public event NewTagAtFrameHandler NewMarkEvent;
- //public event PlayListNodeAddedHandler PlayListNodeAdded;
- private Dictionary<Category,TimeScale> tsList;
private Categories categories;
- private TimeReferenceWidget tr;
- CategoriesScale cs;
- private uint frames;
- private uint pixelRatio;
- private Play selected;
- private uint currentFrame;
- private bool hasProject;
-
- public TimeLineWidget()
+ public TimeLineWidget(): base()
{
- this.Build();
- SetPixelRatio(10);
- zoomscale.CanFocus = false;
-
- GtkScrolledWindow.Vadjustment.ValueChanged += HandleScrollEvent;
- GtkScrolledWindow.Hadjustment.ValueChanged += HandleScrollEvent;
-
- GtkScrolledWindow.HScrollbar.SizeAllocated += OnSizeAllocated;
-
- cs = new CategoriesScale();
- cs.WidthRequest = 100;
- categoriesbox.PackStart(cs, false, false, 0);
-
- tr = new TimeReferenceWidget();
- timescalebox.PackStart(tr,false,false,0);
-
- tr.HeightRequest = 50 - leftbox.Spacing;
- toolsbox.HeightRequest = 50 - leftbox.Spacing;
- }
-
- public Play SelectedTimeNode {
- get {
- return selected;
- }
- set {
- if(!hasProject)
- return;
-
- selected = value;
- foreach(TimeScale ts in tsList.Values)
- ts.SelectedTimeNode = value;
- if(selected != null) {
- if(SelectedTimeNode.StartFrame/pixelRatio < GtkScrolledWindow.Hadjustment.Value ||
- SelectedTimeNode.StartFrame/pixelRatio > GtkScrolledWindow.Hadjustment.Value +
- GtkScrolledWindow.Allocation.Width - GtkScrolledWindow.VScrollbar.Allocation.Width)
- AdjustPostion(SelectedTimeNode.StartFrame);
- }
- QueueDraw();
- }
- }
-
- public uint CurrentFrame {
- get {
- return currentFrame;
- }
- set {
- if(!hasProject)
- return;
-
- currentFrame = value;
- foreach(TimeScale ts in tsList.Values)
- ts.CurrentFrame = value;
- tr.CurrentFrame = value;
- QueueDraw();
- }
- }
-
- public void AdjustPostion(uint currentframe) {
- int visibleWidth;
- int realWidth;
- uint pos;
- int scrollbarWidth;
- if(Visible) {
- scrollbarWidth= GtkScrolledWindow.VScrollbar.Allocation.Width;
- visibleWidth = GtkScrolledWindow.Allocation.Width-scrollbarWidth;
- realWidth = vbox1.Allocation.Width;
- pos = currentframe/pixelRatio;
- if(pos+visibleWidth < realWidth) {
- GtkScrolledWindow.Hadjustment.Value = pos;
- }
- else {
- GtkScrolledWindow.Hadjustment.Value = realWidth-visibleWidth-20;
- }
- }
- }
-
- private void SetPixelRatio(uint pixelRatio) {
- if(!hasProject)
- return;
-
- this.pixelRatio = pixelRatio;
- tr.PixelRatio = pixelRatio;
- foreach(TimeScale ts in tsList.Values)
- ts.PixelRatio = pixelRatio;
- zoomscale.Value=pixelRatio;
}
public Project Project {
@@ -145,12 +52,12 @@ namespace LongoMatch.Gui.Component {
categories = null;
tsList.Clear();
tsList=null;
- hasProject = false;
+ loaded = false;
return;
}
- hasProject = true;
+ loaded = true;
categories = value.Categories;
- tsList = new Dictionary<Category, TimeScale>();
+ tsList.Clear();
frames = value.Description.File.GetFrames();
cs.Categories = categories;
@@ -168,7 +75,7 @@ namespace LongoMatch.Gui.Component {
ts.TimeNodeSelected += new PlaySelectedHandler(OnTimeNodeSelected);
ts.TimeNodeDeleted += new PlaysDeletedHandler(OnTimeNodeDeleted);
ts.NewMarkAtFrameEvent += new NewTagAtFrameHandler(OnNewMark);
- vbox1.PackStart(ts,true,true,0);
+ TimelineBox.PackStart(ts,true,true,0);
ts.Show();
}
SetPixelRatio(3);
@@ -187,16 +94,8 @@ namespace LongoMatch.Gui.Component {
if(tsList.TryGetValue(play.Category, out ts))
ts.RemovePlay(play);
}
-
- }
- private void ResetGui() {
- //Unrealize all children
- foreach(Widget w in vbox1.AllChildren) {
- vbox1.Remove(w);
- w.Destroy();
- }
}
-
+
protected virtual void OnNewMark(Category category, int frame) {
if(NewMarkEvent != null)
NewMarkEvent(category,frame);
@@ -211,36 +110,10 @@ namespace LongoMatch.Gui.Component {
if(TimeNodeSelected != null)
TimeNodeSelected(tn);
}
+
protected virtual void OnTimeNodeDeleted(List<Play> plays) {
if(TimeNodeDeleted != null)
TimeNodeDeleted(plays);
}
-
- protected virtual void OnFitbuttonClicked(object sender, System.EventArgs e)
- {
- AdjustPostion(currentFrame);
- }
-
- protected virtual void OnZoomscaleValueChanged(object sender, System.EventArgs e)
- {
- SetPixelRatio((uint)(zoomscale.Value));
- QueueDraw();
- AdjustPostion(currentFrame);
- }
-
- protected virtual void HandleScrollEvent(object sender, System.EventArgs args)
- {
- if(sender == GtkScrolledWindow.Vadjustment)
- cs.Scroll = GtkScrolledWindow.Vadjustment.Value;
- else if(sender == GtkScrolledWindow.Hadjustment)
- tr.Scroll = GtkScrolledWindow.Hadjustment.Value;
- }
-
- protected virtual void OnSizeAllocated(object sender, SizeAllocatedArgs e)
- {
- /* Align the categories list widget on top of the timeline's horizontal bar */
- if(sender == GtkScrolledWindow.HScrollbar)
- categoriesalignment1.BottomPadding = (uint) GtkScrolledWindow.HScrollbar.Allocation.Height;
- }
}
}
diff --git a/LongoMatch.GUI/LongoMatch.GUI.mdp b/LongoMatch.GUI/LongoMatch.GUI.mdp
index 91e3bad..31ad85c 100644
--- a/LongoMatch.GUI/LongoMatch.GUI.mdp
+++ b/LongoMatch.GUI/LongoMatch.GUI.mdp
@@ -80,7 +80,6 @@
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs" />
- <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Component.NotesWidget.cs" />
@@ -147,6 +146,8 @@
<File subtype="Directory" buildaction="Compile" name="Gui/Component" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Base.TemplatesEditorBase.cs" />
<File subtype="Code" buildaction="Compile" name="Gui/Component/GameUnitTimeScale.cs" />
+ <File subtype="Code" buildaction="Compile" name="Gui/Base/TimelineWidgetBase.cs" />
+ <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.Base.TimelineWidgetBase.cs" />
</Contents>
<MonoDevelop.Autotools.MakefileInfo RelativeMakefileName="../CesarPlayer/Makefile.am" RelativeConfigureInPath="../">
<BuildFilesVar Name="FILES" />
diff --git a/LongoMatch.GUI/Makefile.am b/LongoMatch.GUI/Makefile.am
index e15620c..cc3a394 100644
--- a/LongoMatch.GUI/Makefile.am
+++ b/LongoMatch.GUI/Makefile.am
@@ -6,6 +6,7 @@ LINK = $(REF_DEP_LONGOMATCH_GUI)
SOURCES = \
gtk-gui/generated.cs \
gtk-gui/LongoMatch.Gui.Base.TemplatesEditorBase.cs \
+ gtk-gui/LongoMatch.Gui.Base.TimelineWidgetBase.cs \
gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs \
gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs \
gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs \
@@ -26,7 +27,6 @@ SOURCES = \
gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs \
gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs \
gtk-gui/LongoMatch.Gui.Component.TeamTaggerWidget.cs \
- gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs \
gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs \
gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs \
gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs \
@@ -52,8 +52,9 @@ SOURCES = \
gtk-gui/LongoMatch.Gui.MainWindow.cs \
gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs \
gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs \
- Gui/Base/TimeScaleBase.cs \
Gui/Base/TemplatesEditorBase.cs \
+ Gui/Base/TimelineWidgetBase.cs \
+ Gui/Base/TimeScaleBase.cs \
Gui/Component/ButtonsWidget.cs \
Gui/Component/CategoriesScale.cs \
Gui/Component/CategoriesTemplateEditor.cs \
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Base.TimelineWidgetBase.cs
similarity index 91%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs
rename to LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Base.TimelineWidgetBase.cs
index 4c72a59..880813a 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Base.TimelineWidgetBase.cs
@@ -1,8 +1,8 @@
// This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component
+namespace LongoMatch.Gui.Base
{
- public partial class TimeLineWidget
+ public partial class TimelineWidgetBase
{
private global::Gtk.VBox vbox3;
private global::Gtk.HSeparator hseparator1;
@@ -17,15 +17,15 @@ namespace LongoMatch.Gui.Component
private global::Gtk.VBox vbox2;
private global::Gtk.VBox timescalebox;
private global::Gtk.ScrolledWindow GtkScrolledWindow;
- private global::Gtk.VBox vbox1;
+ private global::Gtk.VBox timelinebox;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
- // Widget LongoMatch.Gui.Component.TimeLineWidget
+ // Widget LongoMatch.Gui.Base.TimelineWidgetBase
global::Stetic.BinContainer.Attach (this);
- this.Name = "LongoMatch.Gui.Component.TimeLineWidget";
- // Container child LongoMatch.Gui.Component.TimeLineWidget.Gtk.Container+ContainerChild
+ this.Name = "LongoMatch.Gui.Base.TimelineWidgetBase";
+ // Container child LongoMatch.Gui.Base.TimelineWidgetBase.Gtk.Container+ContainerChild
this.vbox3 = new global::Gtk.VBox ();
this.vbox3.Name = "vbox3";
this.vbox3.Spacing = 6;
@@ -137,9 +137,9 @@ namespace LongoMatch.Gui.Component
global::Gtk.Viewport w18 = new global::Gtk.Viewport ();
w18.ShadowType = ((global::Gtk.ShadowType)(0));
// Container child GtkViewport.Gtk.Container+ContainerChild
- this.vbox1 = new global::Gtk.VBox ();
- this.vbox1.Name = "vbox1";
- w18.Add (this.vbox1);
+ this.timelinebox = new global::Gtk.VBox ();
+ this.timelinebox.Name = "timelinebox";
+ w18.Add (this.timelinebox);
this.GtkScrolledWindow.Add (w18);
this.vbox2.Add (this.GtkScrolledWindow);
global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.GtkScrolledWindow]));
@@ -154,9 +154,7 @@ namespace LongoMatch.Gui.Component
if ((this.Child != null)) {
this.Child.ShowAll ();
}
- this.Show ();
- this.fitbutton.Clicked += new global::System.EventHandler (this.OnFitbuttonClicked);
- this.zoomscale.ValueChanged += new global::System.EventHandler (this.OnZoomscaleValueChanged);
+ this.Hide ();
}
}
}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
index 030c9c6..fd091c9 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@ -139,7 +139,7 @@ namespace LongoMatch.Gui
this.ImportProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Import Project");
w1.Add (this.ImportProjectAction, "<Control>i");
this.ManualTaggingViewAction = new global::Gtk.RadioAction ("ManualTaggingViewAction", global::Mono.Unix.Catalog.GetString ("Manual tagging view"), null, null, 0);
- this.ManualTaggingViewAction.Group = this.TaggingViewAction.Group;
+ this.ManualTaggingViewAction.Group = this.TimelineViewAction.Group;
this.ManualTaggingViewAction.Sensitive = false;
this.ManualTaggingViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Free Capture Mode");
w1.Add (this.ManualTaggingViewAction, "<Control>f");
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index f217339..aca3d2c 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -3008,174 +3008,6 @@ new one.</property>
</widget>
</child>
</widget>
- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.TimeLineWidget" design-size="535 229">
- <property name="MemberName" />
- <child>
- <widget class="Gtk.VBox" id="vbox3">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.HSeparator" id="hseparator1">
- <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.HBox" id="hbox3">
- <property name="MemberName" />
- <child>
- <widget class="Gtk.VBox" id="leftbox">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.HBox" id="toolsbox">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.Button" id="fitbutton">
- <property name="MemberName" />
- <property name="Type">TextAndIcon</property>
- <property name="Icon">stock:gtk-zoom-fit Button</property>
- <property name="Label" translatable="yes" />
- <property name="UseUnderline">True</property>
- <signal name="Clicked" handler="OnFitbuttonClicked" />
- </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.HScale" id="zoomscale">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="UpdatePolicy">Discontinuous</property>
- <property name="Lower">1</property>
- <property name="Upper">100</property>
- <property name="PageIncrement">10</property>
- <property name="StepIncrement">1</property>
- <property name="Value">1</property>
- <property name="DrawValue">True</property>
- <property name="Digits">0</property>
- <property name="ValuePos">Top</property>
- <signal name="ValueChanged" handler="OnZoomscaleValueChanged" />
- </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.Alignment" id="categoriesalignment1">
- <property name="MemberName" />
- <child>
- <widget class="Gtk.HBox" id="categoriesbox">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <placeholder />
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </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>
- <widget class="Gtk.VSeparator" id="vseparator1">
- <property name="MemberName" />
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">True</property>
- <property name="Expand">False</property>
- <property name="Fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.VBox" id="vbox2">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.VBox" id="timescalebox">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <placeholder />
- </child>
- </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>
- <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
- <property name="MemberName" />
- <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="vbox1">
- <property name="MemberName" />
- <property name="ShowScrollbars">True</property>
- <child>
- <placeholder />
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">2</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">1</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
<widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.VideoEditionProperties" design-size="516 245">
<property name="MemberName" />
<property name="Title" translatable="yes">Video Properties</property>
@@ -6798,4 +6630,177 @@ Defining <b> Game Units </b> will help you during the analysis to in
</widget>
</child>
</widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Gui.Base.TimelineWidgetBase" design-size="687 300">
+ <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.HSeparator" id="hseparator1">
+ <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.HBox" id="hbox3">
+ <property name="MemberName" />
+ <child>
+ <widget class="Gtk.VBox" id="leftbox">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.HBox" id="toolsbox">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Button" id="fitbutton">
+ <property name="MemberName" />
+ <property name="Type">TextAndIcon</property>
+ <property name="Icon">stock:gtk-zoom-fit Button</property>
+ <property name="Label" translatable="yes" />
+ <property name="UseUnderline">True</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>
+ <widget class="Gtk.HScale" id="zoomscale">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="UpdatePolicy">Discontinuous</property>
+ <property name="Lower">1</property>
+ <property name="Upper">100</property>
+ <property name="PageIncrement">10</property>
+ <property name="StepIncrement">1</property>
+ <property name="Value">1</property>
+ <property name="DrawValue">True</property>
+ <property name="Digits">0</property>
+ <property name="ValuePos">Top</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.Alignment" id="categoriesalignment1">
+ <property name="MemberName" />
+ <child>
+ <widget class="Gtk.HBox" id="categoriesbox">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ </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>
+ <widget class="Gtk.VSeparator" id="vseparator1">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.VBox" id="vbox2">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.VBox" id="timescalebox">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <placeholder />
+ </child>
+ </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>
+ <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+ <property name="MemberName" />
+ <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="timelinebox">
+ <property name="MemberName" />
+ <property name="ShowScrollbars">True</property>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </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.TimeLineWidget" design-size="535 229">
+ <property name="MemberName" />
+ <child>
+ <placeholder />
+ </child>
+ </widget>
</stetic-interface>
\ No newline at end of file
diff --git a/LongoMatch.GUI/gtk-gui/objects.xml b/LongoMatch.GUI/gtk-gui/objects.xml
index 22f1bc7..a3445d3 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -240,21 +240,6 @@
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.Component.TimeLineWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
- <itemgroups>
- <itemgroup label="TimeLineWidget Properties">
- <property name="CurrentFrame" />
- </itemgroup>
- </itemgroups>
- <signals>
- <itemgroup label="TimeLineWidget Signals">
- <signal name="TimeNodeChanged" />
- <signal name="TimeNodeSelected" />
- <signal name="TimeNodeDeleted" />
- <signal name="NewMarkEvent" />
- </itemgroup>
- </signals>
- </object>
<object type="LongoMatch.Gui.Base.TimeScaleBase" palette-category="LongoMatch" allow-children="false" base-type="Gtk.DrawingArea">
<itemgroups>
<itemgroup label="TimeScaleBase Properties">
@@ -288,4 +273,47 @@
</itemgroups>
<signals />
</object>
+ <object type="LongoMatch.Gui.Component.GameUnitTimeScale" palette-category="LongoMatch" allow-children="false" base-type="Gtk.DrawingArea">
+ <itemgroups>
+ <itemgroup label="TimeScaleBase[LongoMatch.Store.TimelineNode] Properties">
+ <property name="PixelRatio" />
+ <property name="CurrentFrame" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="GameUnitTimeScale Signals">
+ <signal name="UnitChanged" />
+ <signal name="UnitSelected" />
+ <signal name="UnitDeleted" />
+ <signal name="UnitAdded" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Base.TimelineBase" palette-category="General" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="TimelineBase Properties">
+ <property name="CurrentFrame" />
+ </itemgroup>
+ </itemgroups>
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.TimeLineWidget" palette-category="LongoMatch" allow-children="false" base-type="LongoMatch.Gui.Base.TimelineWidgetBase">
+ <itemgroups>
+ <itemgroup label="TimelineBase[LongoMatch.Gui.Component.TimeScale,LongoMatch.Store.Play] Properties">
+ <property name="CurrentFrame" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="TimeLineWidget Signals">
+ <signal name="TimeNodeChanged" />
+ <signal name="TimeNodeSelected" />
+ <signal name="TimeNodeDeleted" />
+ <signal name="NewMarkEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Base.TimelineWidgetBase" palette-category="General" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
</objects>
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]