From bf0cfc295ea521118922970abc266872cade5984 Mon Sep 17 00:00:00 2001 From: Joel Holdsworth Date: Fri, 2 Jan 2009 16:15:42 +0000 Subject: [PATCH] Transitioned TimelineHeaderContainer to having a reference to TimelineWidget, not a pointer --- src/gui/widgets/timeline-widget.cpp | 2 +- .../timeline/timeline-header-container.cpp | 32 +++++++------------ .../timeline/timeline-header-container.hpp | 4 +-- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/src/gui/widgets/timeline-widget.cpp b/src/gui/widgets/timeline-widget.cpp index 91cf58b01..4f1fac3eb 100644 --- a/src/gui/widgets/timeline-widget.cpp +++ b/src/gui/widgets/timeline-widget.cpp @@ -60,7 +60,7 @@ TimelineWidget::TimelineWidget( body = new TimelineBody(this); ENSURE(body != NULL); - headerContainer = new TimelineHeaderContainer(this); + headerContainer = new TimelineHeaderContainer(*this); ENSURE(headerContainer != NULL); ruler = new TimelineRuler(this); ENSURE(ruler != NULL); diff --git a/src/gui/widgets/timeline/timeline-header-container.cpp b/src/gui/widgets/timeline/timeline-header-container.cpp index 41f9bed0e..7aca6e240 100644 --- a/src/gui/widgets/timeline/timeline-header-container.cpp +++ b/src/gui/widgets/timeline/timeline-header-container.cpp @@ -37,14 +37,12 @@ namespace widgets { namespace timeline { TimelineHeaderContainer::TimelineHeaderContainer( - gui::widgets::TimelineWidget *timeline_widget) : + gui::widgets::TimelineWidget &timeline_widget) : Glib::ObjectBase("TimelineHeaderContainer"), timelineWidget(timeline_widget), margin(-1), expand_button_size(12) { - REQUIRE(timeline_widget != NULL); - // This widget will not have a window at first set_flags(Gtk::NO_WINDOW); @@ -52,12 +50,12 @@ TimelineHeaderContainer::TimelineHeaderContainer( // Connect to the timeline widget's vertical scroll event, // so that we get notified when the view shifts - timelineWidget->verticalAdjustment.signal_value_changed().connect( + timelineWidget.verticalAdjustment.signal_value_changed().connect( sigc::mem_fun(this, &TimelineHeaderContainer::on_scroll) ); // Connect to the timeline widget's hover event, // so that we get notified when tracks are hovered on - timelineWidget->hovering_track_changed_signal().connect( + timelineWidget.hovering_track_changed_signal().connect( sigc::mem_fun(this, &TimelineHeaderContainer::on_hovering_track_changed) ); @@ -138,7 +136,6 @@ TimelineHeaderContainer::on_unrealize() bool TimelineHeaderContainer::on_button_press_event ( GdkEventButton* event) { - REQUIRE(timelineWidget != NULL); REQUIRE(event != NULL); switch(event->button) @@ -157,7 +154,7 @@ bool TimelineHeaderContainer::on_button_press_event ( { // Popup the context menu shared_ptr header( - timelineWidget->layoutHelper.header_from_point( + timelineWidget.layoutHelper.header_from_point( Gdk::Point(event->x, event->y))); // Are we hovering on a header? @@ -189,7 +186,7 @@ bool TimelineHeaderContainer::on_button_release_event ( clickedExpander->set_expanded(!clickedExpander->get_expanded()); clickedExpander.reset(); - timelineWidget->layoutHelper.update_layout(); + timelineWidget.layoutHelper.update_layout(); } return Container::on_button_release_event(event); @@ -309,7 +306,6 @@ TimelineHeaderContainer::on_hovering_track_changed( void TimelineHeaderContainer::layout_headers() { - REQUIRE(timelineWidget != NULL); REQUIRE(margin >= 0); // read_styles must have been called before now // We can't layout before the widget has been set up @@ -317,7 +313,7 @@ TimelineHeaderContainer::layout_headers() return; TimelineLayoutHelper &layout_helper = - timelineWidget->layoutHelper; + timelineWidget.layoutHelper; const TimelineLayoutHelper::TrackTree &layout_tree = layout_helper.get_layout_tree(); @@ -417,7 +413,6 @@ TimelineHeaderContainer::draw_header_decoration( shared_ptr model_track, const Gdk::Rectangle &clip_rect) { - REQUIRE(timelineWidget != NULL); REQUIRE(model_track != NULL); REQUIRE(clip_rect.get_width() > 0); REQUIRE(clip_rect.get_height() > 0); @@ -430,7 +425,7 @@ TimelineHeaderContainer::draw_header_decoration( // Get the header box const optional &optional_box = - timelineWidget->layoutHelper.get_track_header_rect(timeline_track); + timelineWidget.layoutHelper.get_track_header_rect(timeline_track); REQUIRE(optional_box); const Gdk::Rectangle box = *optional_box; @@ -480,7 +475,7 @@ TimelineHeaderContainer::expander_button_from_point( const Gdk::Point &point) { const TimelineLayoutHelper::TrackTree &layout_tree = - timelineWidget->layoutHelper.get_layout_tree(); + timelineWidget.layoutHelper.get_layout_tree(); TimelineLayoutHelper::TrackTree::pre_order_iterator iterator; for(iterator = ++layout_tree.begin(); // ++ so we skip the sequence root @@ -511,11 +506,10 @@ const optional TimelineHeaderContainer::get_expander_button_rectangle( shared_ptr track) { - REQUIRE(timelineWidget != NULL); REQUIRE(track != NULL); optional box = - timelineWidget->layoutHelper.get_track_header_rect(track); + timelineWidget.layoutHelper.get_track_header_rect(track); if(box) { return optional(Gdk::Rectangle( @@ -531,10 +525,9 @@ TimelineHeaderContainer::lookup_timeline_track( shared_ptr model_track) { REQUIRE(model_track != NULL); - REQUIRE(timelineWidget != NULL); shared_ptr timeline_track = - timelineWidget->lookup_timeline_track(model_track); + timelineWidget.lookup_timeline_track(model_track); ENSURE(timeline_track); return timeline_track; @@ -543,9 +536,8 @@ TimelineHeaderContainer::lookup_timeline_track( const std::list< boost::shared_ptr > TimelineHeaderContainer::get_tracks() const { - REQUIRE(timelineWidget != NULL); - REQUIRE(timelineWidget->sequence); - return timelineWidget->sequence->get_child_tracks(); + [.sequence); + return timelineWidget.sequence->get_child_tracks(); } void diff --git a/src/gui/widgets/timeline/timeline-header-container.hpp b/src/gui/widgets/timeline/timeline-header-container.hpp index 195fe7840..cdf472b06 100644 --- a/src/gui/widgets/timeline/timeline-header-container.hpp +++ b/src/gui/widgets/timeline/timeline-header-container.hpp @@ -57,7 +57,7 @@ public: * * @param[in] timeline_widget A pointer to the owner timeline widget */ - TimelineHeaderContainer(gui::widgets::TimelineWidget* timeline_widget); + TimelineHeaderContainer(gui::widgets::TimelineWidget &timeline_widget); /** * Attaches the header all the header widgets of root @@ -246,7 +246,7 @@ private: /** * The owner TimelineWidget of which this class is a helper */ - gui::widgets::TimelineWidget* const timelineWidget; + gui::widgets::TimelineWidget &timelineWidget; /** * The widget's window object.