X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmarker_time_axis_view.cc;h=124aac0852a73f1529ec28c3ec599dca8f76f28d;hb=99aa8c6338e47b41143f799fdcb35d1699548076;hp=cbd363a0217f3170ccde70f30916ef4a1f43373a;hpb=789cbb21810802adc478de3134fa42950c5e8569;p=ardour.git diff --git a/gtk2_ardour/marker_time_axis_view.cc b/gtk2_ardour/marker_time_axis_view.cc index cbd363a021..124aac0852 100644 --- a/gtk2_ardour/marker_time_axis_view.cc +++ b/gtk2_ardour/marker_time_axis_view.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2003 Paul Davis + Copyright (C) 2003 Paul Davis 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 @@ -31,6 +31,7 @@ #include "public_editor.h" #include "rgb_macros.h" #include "gui_thread.h" +#include "ardour_ui.h" #include "i18n.h" @@ -39,7 +40,7 @@ using namespace Editing; //---------------------------------------------------------------------------------------// // Constructor / Desctructor - + /** * Construct a new MarkerTimeAxisView helper time axis helper * @@ -49,23 +50,24 @@ MarkerTimeAxisView::MarkerTimeAxisView(MarkerTimeAxis& tv) : _trackview (tv) { region_color = _trackview.color(); - stream_base_color = Config->canvasvar_MarkerTrack.get(); + stream_base_color = ARDOUR_UI::config()->canvasvar_MarkerTrack.get(); canvas_group = new ArdourCanvas::Group (*_trackview.canvas_display); canvas_rect = new ArdourCanvas::SimpleRect (*canvas_group); canvas_rect->property_x1() = 0.0; canvas_rect->property_y1() = 0.0; - canvas_rect->property_x2() = max_frames; + canvas_rect->property_x2() = max_framepos; canvas_rect->property_y2() = (double)20; - canvas_rect->property_outline_color_rgba() = Config->canvasvar_MarkerTrack.get(); + canvas_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerTrack.get(); canvas_rect->property_fill_color_rgba() = stream_base_color; - - canvas_rect->signal_event().connect (bind (mem_fun (_trackview.editor, &PublicEditor::canvas_marker_time_axis_view_event), canvas_rect, &_trackview)); + + canvas_rect->signal_event().connect (sigc::bind (sigc::mem_fun (_trackview.editor, &PublicEditor::canvas_marker_time_axis_view_event), canvas_rect, &_trackview)); _samples_per_unit = _trackview.editor.get_current_zoom() ; - _trackview.editor.ZoomChanged.connect (mem_fun(*this, &MarkerTimeAxisView::reset_samples_per_unit)); + _trackview.editor.ZoomChanged.connect (sigc::mem_fun(*this, &MarkerTimeAxisView::reset_samples_per_unit)); + MarkerView::CatchDeletion.connect (*this, ui_bind (&MarkerTimeAxisView::remove_marker_view, this, _1), gui_context()); } /** @@ -79,28 +81,22 @@ MarkerTimeAxisView::~MarkerTimeAxisView() for(MarkerViewList::iterator iter = marker_view_list.begin(); iter != marker_view_list.end(); ++iter) { MarkerView* mv = (*iter) ; - + MarkerViewList::iterator next = iter ; next++ ; marker_view_list.erase(iter) ; delete mv ; mv = 0 ; - + iter = next ; } - - if(canvas_rect) - { - delete canvas_rect; - canvas_rect = 0 ; - } - - if(canvas_group) - { - delete canvas_group; - canvas_group = 0 ; - } + + delete canvas_rect; + canvas_rect = 0 ; + + delete canvas_group; + canvas_group = 0 ; } @@ -118,7 +114,7 @@ MarkerTimeAxisView::set_height(gdouble h) if (h < 10.0 || h > 1000.0) { return -1; } - + canvas_rect->property_y2() = h; for (MarkerViewList::iterator i = marker_view_list.begin(); i != marker_view_list.end(); ++i) { @@ -145,7 +141,7 @@ MarkerTimeAxisView::set_position(gdouble x, gdouble y) /** * Sets the current samples per unit. * this method tells each item upon the time axis of the change - * + * * @param spu the new samples per canvas unit value */ int @@ -154,7 +150,7 @@ MarkerTimeAxisView::set_samples_per_unit(gdouble spp) if(spp < 1.0) { return -1 ; } - + _samples_per_unit = spp ; for(MarkerViewList::iterator i = marker_view_list.begin(); i != marker_view_list.end(); ++i) @@ -183,7 +179,7 @@ MarkerTimeAxisView::apply_color(Gdk::Color& color) //---------------------------------------------------------------------------------------// // Child MarkerView Accessors/Mutators - + /** * Adds a marker view to the list of items upon this time axis view helper * the new MarkerView is returned @@ -194,15 +190,15 @@ MarkerTimeAxisView::apply_color(Gdk::Color& color) * @param start the position the new item should be placed upon the time line * @param duration the duration the new item should be placed upon the timeline * @param src the identity of the object that initiated the change - */ + */ MarkerView* -MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, nframes_t start, nframes_t dur, void* src) +MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, framepos_t start, framecnt_t dur, void* src) { if(ifv->has_marker_view_item(mark_id)) { return(0) ; } - + MarkerView* mv = new MarkerView(canvas_group, &_trackview, ifv, @@ -212,14 +208,12 @@ MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type, mark_id, start, dur) ; - + ifv->add_marker_view_item(mv, src) ; marker_view_list.push_front(mv) ; - - mv->GoingAway.connect(bind (mem_fun(*this,&MarkerTimeAxisView::remove_marker_view), (void*)this)) ; - - MarkerViewAdded(mv,src) ; /* EMIT_SIGNAL */ - + + MarkerViewAdded(mv,src) ; /* EMIT_SIGNAL */ + return(mv) ; } @@ -233,7 +227,7 @@ MarkerView* MarkerTimeAxisView::get_named_marker_view(std::string item_id) { MarkerView* mv = 0 ; - + for(MarkerViewList::iterator i = marker_view_list.begin(); i != marker_view_list.end(); ++i) { if(((MarkerView*)*i)->get_item_name() == item_id) @@ -257,14 +251,14 @@ void MarkerTimeAxisView::remove_selected_marker_view(void* src) { std::string removed ; - + if (selected_time_axis_item) { MarkerViewList::iterator i ; if((i = find (marker_view_list.begin(), marker_view_list.end(), selected_time_axis_item)) != marker_view_list.end()) { marker_view_list.erase(i) ; - + MarkerViewRemoved(selected_time_axis_item->get_item_name(),src) ; /* EMIT_SIGNAL */ delete(selected_time_axis_item) ; @@ -288,24 +282,24 @@ MarkerView* MarkerTimeAxisView::remove_named_marker_view(std::string item_id, void* src) { MarkerView* mv = 0 ; - + MarkerViewList::iterator i = marker_view_list.begin() ; - + for(MarkerViewList::iterator iter = marker_view_list.begin(); iter != marker_view_list.end(); ++iter) { if(((MarkerView*)*i)->get_item_name() == item_id) { mv = ((MarkerView*)*i) ; marker_view_list.erase(i) ; - + MarkerViewRemoved(mv->get_item_name(), src) ; /* EMIT_SIGNAL */ - + // break from the for loop break; } i++ ; } - + return(mv) ; } @@ -316,22 +310,21 @@ MarkerTimeAxisView::remove_named_marker_view(std::string item_id, void* src) * @param src the identity of the object that initiated the change */ void -MarkerTimeAxisView::remove_marker_view(MarkerView* mv, void* src) +MarkerTimeAxisView::remove_marker_view (MarkerView* mv) { - ENSURE_GUI_THREAD(bind (mem_fun(*this, &MarkerTimeAxisView::remove_marker_view), mv, src)); - + ENSURE_GUI_THREAD (*this, &MarkerTimeAxisView::remove_marker_view, mv, src) + MarkerViewList::iterator i; if((i = find (marker_view_list.begin(), marker_view_list.end(), mv)) != marker_view_list.end()) { marker_view_list.erase(i) ; - + // Assume this remove happened locally, else use remove_named_marker_time_axis // let listeners know that the named MarkerTimeAxis has been removed MarkerViewRemoved(mv->get_item_name(), src) ; /* EMIT_SIGNAL */ } } - /** * Sets the duration of the selected MarkerView to the specified number of seconds * @@ -342,7 +335,7 @@ MarkerTimeAxisView::set_marker_duration_sec(double sec) { if(get_selected_time_axis_item() != 0) { - get_selected_time_axis_item()->set_duration((nframes_t) (sec * _trackview.editor.current_session()->frame_rate()), this) ; + get_selected_time_axis_item()->set_duration((sec * _trackview.editor.session()->frame_rate()), this); } } @@ -370,7 +363,7 @@ MarkerTimeAxisView::clear_selected_time_axis_item() { selected_time_axis_item = 0 ; } - + /** * Returnsthe currently selected item upon this time axis *