Integrating time::Control into ibeam tool.

This commit is contained in:
Michael R. Fisher 2011-10-22 04:29:55 -05:00 committed by Ichthyostega
parent b39edad306
commit 6046749f19
6 changed files with 21 additions and 9 deletions

View file

@ -62,7 +62,7 @@ TimelineWidget::TimelineWidget(shared_ptr<timeline::TimelineState> source_state)
ENSURE(headerContainer != NULL); ENSURE(headerContainer != NULL);
ruler = manage(new TimelineRuler(*this)); ruler = manage(new TimelineRuler(*this));
ENSURE(ruler != NULL); ENSURE(ruler != NULL);
horizontalAdjustment.signal_value_changed().connect( sigc::mem_fun( horizontalAdjustment.signal_value_changed().connect( sigc::mem_fun(
this, &TimelineWidget::on_scroll) ); this, &TimelineWidget::on_scroll) );
verticalAdjustment.signal_value_changed().connect( sigc::mem_fun( verticalAdjustment.signal_value_changed().connect( sigc::mem_fun(
@ -71,7 +71,7 @@ TimelineWidget::TimelineWidget(shared_ptr<timeline::TimelineState> source_state)
this, &TimelineWidget::on_motion_in_body_notify_event) ); this, &TimelineWidget::on_motion_in_body_notify_event) );
update_tracks(); update_tracks();
attach(*body, 1, 2, 1, 2, FILL|EXPAND, FILL|EXPAND); attach(*body, 1, 2, 1, 2, FILL|EXPAND, FILL|EXPAND);
attach(*ruler, 1, 2, 0, 1, FILL|EXPAND, SHRINK); attach(*ruler, 1, 2, 0, 1, FILL|EXPAND, SHRINK);
attach(*headerContainer, 0, 1, 1, 2, SHRINK, FILL|EXPAND); attach(*headerContainer, 0, 1, 1, 2, SHRINK, FILL|EXPAND);

View file

@ -82,6 +82,12 @@ TimelineBody::getTimelineWidget () const
return timelineWidget; return timelineWidget;
} }
TimeSpan
TimelineBody::get_selection()
{
return timelineWidget.get_state()->get_selection();
}
ToolType ToolType
TimelineBody::get_tool() const TimelineBody::get_tool() const
{ {

View file

@ -46,6 +46,7 @@ class TimelineWidget;
namespace timeline { namespace timeline {
using lib::time::TimeVar; using lib::time::TimeVar;
using lib::time::TimeSpan;
class Track; class Track;
@ -73,6 +74,9 @@ public:
TimelineWidget& TimelineWidget&
getTimelineWidget () const; getTimelineWidget () const;
TimeSpan
get_selection();
/** /**
* Returns the type of the currently selected timeline tool. * Returns the type of the currently selected timeline tool.
*/ */

View file

@ -24,8 +24,6 @@
#include "gui/widgets/timeline-widget.hpp" #include "gui/widgets/timeline-widget.hpp"
#include "lib/time/mutation.hpp" #include "lib/time/mutation.hpp"
#include <boost/shared_ptr.hpp>
using namespace gui::widgets; using namespace gui::widgets;
using lib::time::Mutation; using lib::time::Mutation;
@ -45,12 +43,11 @@ const int IBeamTool::ScrollSlideEventInterval = 40;
IBeamTool::IBeamTool(TimelineBody &timeline_body) : IBeamTool::IBeamTool(TimelineBody &timeline_body) :
Tool(timeline_body), Tool(timeline_body),
selectionControl(),
dragType(None), dragType(None),
pinnedDragTime(), pinnedDragTime(),
scrollSlideRate(0) scrollSlideRate(0)
{ { }
}
IBeamTool::~IBeamTool() IBeamTool::~IBeamTool()
{ {

View file

@ -30,14 +30,17 @@
#include "gui/widgets/timeline/timeline-tool.hpp" #include "gui/widgets/timeline/timeline-tool.hpp"
#include "lib/time/timevalue.hpp" #include "lib/time/timevalue.hpp"
#include "lib/time/timequant.hpp"
#include "lib/time/control.hpp"
#include <gtkmm.h>
namespace gui { namespace gui {
namespace widgets { namespace widgets {
namespace timeline { namespace timeline {
using lib::time::TimeVar; using lib::time::TimeVar;
using lib::time::TimeSpan;
using lib::time::Control;
/** /**
* A helper class to implement the timeline i-beam tool * A helper class to implement the timeline i-beam tool
@ -159,6 +162,8 @@ private:
}; };
/* ==== Internals ===== */ /* ==== Internals ===== */
Control<TimeSpan> selectionControl;
/** /**
* Specifies the type of drag currently taking place. * Specifies the type of drag currently taking place.
*/ */

View file

@ -70,7 +70,7 @@ public:
*/ */
timeline::TimelineViewWindow& get_view_window(); timeline::TimelineViewWindow& get_view_window();
TimeSpan get_selection() const { return selection_; }
Time getSelectionStart() const { return selection_.start();} Time getSelectionStart() const { return selection_.start();}
Time getSelectionEnd() const { return selection_.end(); } Time getSelectionEnd() const { return selection_.end(); }
Time getPlaybackPeriodStart() const { return selection_.start();} Time getPlaybackPeriodStart() const { return selection_.start();}