X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_markers.cc;h=7b0f56776cb6cf84a37059c1bf5d8c88f2e2fa25;hb=af5bd3df3033c168c4564cb0dd951bc8571d958d;hp=0eab51260fd4f3c880479fd2504c1db19eab9366;hpb=ba8b84eed159b5c6282b176ccd488134a9ea5b72;p=ardour.git diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index 0eab51260f..7b0f56776c 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -80,45 +80,45 @@ Editor::add_new_location (Location *location) if (location->is_mark()) { if (location->is_cd_marker() && ruler_cd_marker_action->get_active()) { - lam->start = new Marker (*this, *cd_marker_group, color, location->name(), Marker::Mark, location->start()); + lam->start = new Marker (*this, *cd_marker_group, *cursor_group, color, location->name(), Marker::Mark, location->start()); } else { - lam->start = new Marker (*this, *marker_group, color, location->name(), Marker::Mark, location->start()); + lam->start = new Marker (*this, *marker_group, *cursor_group, color, location->name(), Marker::Mark, location->start()); } lam->end = 0; } else if (location->is_auto_loop()) { // transport marker - lam->start = new Marker (*this, *transport_marker_group, color, + lam->start = new Marker (*this, *transport_marker_group, *cursor_group, color, location->name(), Marker::LoopStart, location->start()); - lam->end = new Marker (*this, *transport_marker_group, color, + lam->end = new Marker (*this, *transport_marker_group, *cursor_group, color, location->name(), Marker::LoopEnd, location->end()); } else if (location->is_auto_punch()) { // transport marker - lam->start = new Marker (*this, *transport_marker_group, color, + lam->start = new Marker (*this, *transport_marker_group, *cursor_group, color, location->name(), Marker::PunchIn, location->start()); - lam->end = new Marker (*this, *transport_marker_group, color, + lam->end = new Marker (*this, *transport_marker_group, *cursor_group, color, location->name(), Marker::PunchOut, location->end()); } else if (location->is_session_range()) { // session range - lam->start = new Marker (*this, *marker_group, color, _("start"), Marker::Start, location->start()); - lam->end = new Marker (*this, *marker_group, color, _("end"), Marker::End, location->end()); + lam->start = new Marker (*this, *marker_group, *cursor_group, color, _("start"), Marker::SessionStart, location->start()); + lam->end = new Marker (*this, *marker_group, *cursor_group, color, _("end"), Marker::SessionEnd, location->end()); } else { // range marker if (location->is_cd_marker() && ruler_cd_marker_action->get_active()) { - lam->start = new Marker (*this, *cd_marker_group, color, - location->name(), Marker::Start, location->start()); - lam->end = new Marker (*this, *cd_marker_group, color, - location->name(), Marker::End, location->end()); + lam->start = new Marker (*this, *cd_marker_group, *cursor_group, color, + location->name(), Marker::RangeStart, location->start()); + lam->end = new Marker (*this, *cd_marker_group, *cursor_group, color, + location->name(), Marker::RangeEnd, location->end()); } else { - lam->start = new Marker (*this, *range_marker_group, color, - location->name(), Marker::Start, location->start()); - lam->end = new Marker (*this, *range_marker_group, color, - location->name(), Marker::End, location->end()); + lam->start = new Marker (*this, *range_marker_group, *cursor_group, color, + location->name(), Marker::RangeStart, location->start()); + lam->end = new Marker (*this, *range_marker_group, *cursor_group, color, + location->name(), Marker::RangeEnd, location->end()); } } @@ -146,11 +146,8 @@ Editor::add_new_location (Location *location) select_new_marker = false; } - if (_show_marker_lines) { - lam->show_lines (cursor_group, _canvas_height); - } else { - lam->hide_lines (); - } + lam->canvas_height_set (_canvas_height); + lam->set_show_lines (_show_marker_lines); } void @@ -377,62 +374,72 @@ Editor::LocationMarkers::show() } void -Editor::LocationMarkers::show_lines (ArdourCanvas::Group* g, double h) +Editor::LocationMarkers::canvas_height_set (double h) { - /* add_line may be required, and it calls show_line even if it isn't */ - - start->add_line (g, 0, h); - + start->canvas_height_set (h); if (end) { - end->add_line (g, 0, h); + end->canvas_height_set (h); } } void -Editor::LocationMarkers::hide_lines () +Editor::LocationMarkers::set_name (const string& str) { - start->hide_line (); - if (end) { - end->hide_line (); + /* XXX: hack: don't change names of session start/end markers */ + + if (start->type() != Marker::SessionStart) { + start->set_name (str); + } + + if (end && end->type() != Marker::SessionEnd) { + end->set_name (str); } } void -Editor::LocationMarkers::set_lines_vpos (double y, double h) +Editor::LocationMarkers::set_position (framepos_t startf, + framepos_t endf) { - start->set_line_vpos (y, h); + start->set_position (startf); if (end) { - end->set_line_vpos (y, h); + end->set_position (endf); } } void -Editor::LocationMarkers::set_name (const string& str) +Editor::LocationMarkers::set_color_rgba (uint32_t rgba) { - /* XXX: hack: don't change names of session start/end markers */ - - if (start->type() != Marker::Start) { - start->set_name (str); + start->set_color_rgba (rgba); + if (end) { + end->set_color_rgba (rgba); } - - if (end && end->type() != Marker::End) { - end->set_name (str); +} + +void +Editor::LocationMarkers::set_show_lines (bool s) +{ + start->set_show_line (s); + if (end) { + end->set_show_line (s); } } void -Editor::LocationMarkers::set_position (framepos_t startf, - framepos_t endf) +Editor::LocationMarkers::set_selected (bool s) { - start->set_position (startf); - if (end) { end->set_position (endf); } + start->set_selected (s); + if (end) { + end->set_selected (s); + } } void -Editor::LocationMarkers::set_color_rgba (uint32_t rgba) +Editor::LocationMarkers::setup_lines () { - start->set_color_rgba (rgba); - if (end) { end->set_color_rgba (rgba); } + start->setup_line (); + if (end) { + end->setup_line (); + } } void @@ -1243,15 +1250,12 @@ Editor::marker_selection_changed () return; } - if (!_show_marker_lines) { - for (LocationMarkerMap::iterator i = location_markers.begin(); i != location_markers.end(); ++i) { - i->second->hide_lines (); - } + for (LocationMarkerMap::iterator i = location_markers.begin(); i != location_markers.end(); ++i) { + i->second->set_selected (false); } for (MarkerSelection::iterator x = selection->markers.begin(); x != selection->markers.end(); ++x) { - (*x)->add_line (cursor_group, 0, _canvas_height); - (*x)->show_line (); + (*x)->set_selected (true); } } @@ -1318,10 +1322,6 @@ Editor::toggle_marker_lines () _show_marker_lines = !_show_marker_lines; for (LocationMarkerMap::iterator i = location_markers.begin(); i != location_markers.end(); ++i) { - if (_show_marker_lines) { - i->second->show_lines (cursor_group, _canvas_height); - } else { - i->second->hide_lines (); - } + i->second->set_show_lines (_show_marker_lines); } }