summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2008-02-05 19:29:05 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2008-02-05 19:29:05 +0000
commit8f77a845524b91bb62cf73e318c41abd991235c0 (patch)
treefc28cf37ebbb43c5a49039f6952e45baf9cfbc5d
parent8cddcec46f5d1398b7f8d1ecd71968d9d72a929b (diff)
use a separate drag rect for cd marker bar, show cd marker details on load in location ui.
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3012 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/editor.h1
-rw-r--r--gtk2_ardour/editor_canvas.cc7
-rw-r--r--gtk2_ardour/editor_mouse.cc21
-rw-r--r--gtk2_ardour/location_ui.cc6
4 files changed, 30 insertions, 5 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 4ea5ec0cc6..48b9cef25d 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1550,6 +1550,7 @@ public:
void drag_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event);
void end_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event);
+ ArdourCanvas::SimpleRect* cd_marker_bar_drag_rect;
ArdourCanvas::SimpleRect* range_bar_drag_rect;
ArdourCanvas::SimpleRect* transport_bar_drag_rect;
ArdourCanvas::Line* marker_drag_line;
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index a5922fc515..7d9a81afae 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -184,6 +184,10 @@ Editor::initialize_canvas ()
transport_marker_bar = new ArdourCanvas::SimpleRect (*transport_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
transport_marker_bar->property_outline_pixels() = 0;
+ cd_marker_bar_drag_rect = new ArdourCanvas::SimpleRect (*cd_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
+ cd_marker_bar_drag_rect->property_outline_pixels() = 0;
+ cd_marker_bar_drag_rect->hide ();
+
range_bar_drag_rect = new ArdourCanvas::SimpleRect (*range_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
range_bar_drag_rect->property_outline_pixels() = 0;
range_bar_drag_rect->hide ();
@@ -773,6 +777,9 @@ Editor::color_handler()
transport_marker_bar->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TransportMarkerBar.get();
transport_marker_bar->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get();
+ cd_marker_bar_drag_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get();
+ cd_marker_bar_drag_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get();
+
range_bar_drag_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get();
range_bar_drag_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_RangeDragBarRect.get();
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index c29693a4ac..c915d0c8da 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -4746,7 +4746,23 @@ Editor::drag_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event)
{
nframes_t start = 0;
nframes_t end = 0;
- ArdourCanvas::SimpleRect *crect = (range_marker_op == CreateRangeMarker) ? range_bar_drag_rect: transport_bar_drag_rect;
+ ArdourCanvas::SimpleRect *crect;
+
+ switch (range_marker_op) {
+ case CreateRangeMarker:
+ crect = range_bar_drag_rect;
+ break;
+ case CreateTransportMarker:
+ crect = transport_bar_drag_rect;
+ break;
+ case CreateCDMarker:
+ crect = cd_marker_bar_drag_rect;
+ break;
+ default:
+ cerr << "Error: unknown range marker op passed to Editor::drag_range_markerbar_op ()" << endl;
+ return;
+ break;
+ }
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
snap_to (drag_info.current_pointer_frame);
@@ -4833,9 +4849,11 @@ Editor::end_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event)
session->locations()->next_available_name(rangename,"unnamed");
if (range_marker_op == CreateCDMarker) {
flags = Location::IsRangeMarker|Location::IsCDMarker;
+ cd_marker_bar_drag_rect->hide();
}
else {
flags = Location::IsRangeMarker;
+ range_bar_drag_rect->hide();
}
newloc = new Location(temp_location->start(), temp_location->end(), rangename, (Location::Flags) flags);
session->locations()->add (newloc, true);
@@ -4843,7 +4861,6 @@ Editor::end_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event)
session->add_command(new MementoCommand<Locations>(*(session->locations()), &before, &after));
commit_reversible_command ();
- range_bar_drag_rect->hide();
range_marker_drag_rect->hide();
break;
}
diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc
index 5833bb160a..2079d0dc7a 100644
--- a/gtk2_ardour/location_ui.cc
+++ b/gtk2_ardour/location_ui.cc
@@ -421,9 +421,9 @@ LocationEditRow::cd_toggled ()
return;
}
- if (cd_check_button.get_active() == location->is_cd_marker()) {
- return;
- }
+ //if (cd_check_button.get_active() == location->is_cd_marker()) {
+ // return;
+ //}
if (cd_check_button.get_active()) {
if (location->start() <= session->current_start_frame()) {