diff options
author | Doug McLain <doug@nostar.net> | 2007-07-05 05:33:40 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2007-07-05 05:33:40 +0000 |
commit | 291a186cba343ed705c60d15fa7db0b21eb8a1fd (patch) | |
tree | 683a299b237164b5a67d2d79e9b05dc2251b8f46 /gtk2_ardour/editor_canvas.cc | |
parent | 0518b045c62ef764eced6fff0b64d4f71832a7b0 (diff) |
New theme manager from trunk, backported to 2.0-ongoing
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2110 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_canvas.cc')
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 117 |
1 files changed, 65 insertions, 52 deletions
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index e175cb9c6b..45081a1bbb 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -126,7 +126,6 @@ Editor::initialize_canvas () verbose_canvas_cursor = new ArdourCanvas::Text (*track_canvas.root()); verbose_canvas_cursor->property_font_desc() = *font; verbose_canvas_cursor->property_anchor() = ANCHOR_NW; - verbose_canvas_cursor->property_fill_color_rgba() = color_map[cVerboseCanvasCursor]; delete font; @@ -150,34 +149,25 @@ Editor::initialize_canvas () transport_marker_group = new ArdourCanvas::Group (*time_canvas.root(), 0.0, timebar_height * 4.0); tempo_bar = new ArdourCanvas::SimpleRect (*tempo_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0); - tempo_bar->property_fill_color_rgba() = color_map[cTempoBar]; tempo_bar->property_outline_pixels() = 0; meter_bar = new ArdourCanvas::SimpleRect (*meter_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0); - meter_bar->property_fill_color_rgba() = color_map[cMeterBar]; meter_bar->property_outline_pixels() = 0; marker_bar = new ArdourCanvas::SimpleRect (*marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0); - marker_bar->property_fill_color_rgba() = color_map[cMarkerBar]; marker_bar->property_outline_pixels() = 0; range_marker_bar = new ArdourCanvas::SimpleRect (*range_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0); - range_marker_bar->property_fill_color_rgba() = color_map[cRangeMarkerBar]; range_marker_bar->property_outline_pixels() = 0; transport_marker_bar = new ArdourCanvas::SimpleRect (*transport_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0); - transport_marker_bar->property_fill_color_rgba() = color_map[cTransportMarkerBar]; transport_marker_bar->property_outline_pixels() = 0; 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_fill_color_rgba() = color_map[cRangeDragBarRectFill]; - range_bar_drag_rect->property_outline_color_rgba() = color_map[cRangeDragBarRect]; range_bar_drag_rect->property_outline_pixels() = 0; range_bar_drag_rect->hide (); transport_bar_drag_rect = new ArdourCanvas::SimpleRect (*transport_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0); - transport_bar_drag_rect ->property_fill_color_rgba() = color_map[cTransportDragRectFill]; - transport_bar_drag_rect->property_outline_color_rgba() = color_map[cTransportDragRect]; transport_bar_drag_rect->property_outline_pixels() = 0; transport_bar_drag_rect->hide (); @@ -186,24 +176,17 @@ Editor::initialize_canvas () marker_drag_line = new ArdourCanvas::Line (*track_canvas.root()); marker_drag_line->property_width_pixels() = 1; - marker_drag_line->property_fill_color_rgba() = color_map[cMarkerDragLine]; marker_drag_line->property_points() = marker_drag_line_points; marker_drag_line->hide(); range_marker_drag_rect = new ArdourCanvas::SimpleRect (*track_canvas.root(), 0.0, 0.0, 0.0, 0.0); - range_marker_drag_rect->property_fill_color_rgba() = color_map[cRangeDragRectFill]; - range_marker_drag_rect->property_outline_color_rgba() = color_map[cRangeDragRect]; range_marker_drag_rect->hide (); transport_loop_range_rect = new ArdourCanvas::SimpleRect (*time_line_group, 0.0, 0.0, 0.0, 0.0); - transport_loop_range_rect->property_fill_color_rgba() = color_map[cTransportLoopRectFill]; - transport_loop_range_rect->property_outline_color_rgba() = color_map[cTransportLoopRect]; transport_loop_range_rect->property_outline_pixels() = 1; transport_loop_range_rect->hide(); transport_punch_range_rect = new ArdourCanvas::SimpleRect (*time_line_group, 0.0, 0.0, 0.0, 0.0); - transport_punch_range_rect->property_fill_color_rgba() = color_map[cTransportPunchRectFill]; - transport_punch_range_rect->property_outline_color_rgba() = color_map[cTransportPunchRect]; transport_punch_range_rect->property_outline_pixels() = 0; transport_punch_range_rect->hide(); @@ -214,7 +197,6 @@ Editor::initialize_canvas () transport_punchin_line->property_y1() = 0.0; transport_punchin_line->property_x2() = 0.0; transport_punchin_line->property_y2() = 0.0; - transport_punchin_line->property_color_rgba() = color_map[cPunchInLine]; transport_punchin_line->hide (); transport_punchout_line = new ArdourCanvas::SimpleLine (*time_line_group); @@ -222,13 +204,10 @@ Editor::initialize_canvas () transport_punchout_line->property_y1() = 0.0; transport_punchout_line->property_x2() = 0.0; transport_punchout_line->property_y2() = 0.0; - transport_punchout_line->property_color_rgba() = color_map[cPunchOutLine]; transport_punchout_line->hide(); // used to show zoom mode active zooming zoom_rect = new ArdourCanvas::SimpleRect (*track_canvas.root(), 0.0, 0.0, 0.0, 0.0); - zoom_rect->property_fill_color_rgba() = color_map[cZoomRectFill]; - zoom_rect->property_outline_color_rgba() = color_map[cZoomRect]; zoom_rect->property_outline_pixels() = 1; zoom_rect->hide(); @@ -236,8 +215,6 @@ Editor::initialize_canvas () // used as rubberband rect rubberband_rect = new ArdourCanvas::SimpleRect (*track_canvas.root(), 0.0, 0.0, 0.0, 0.0); - rubberband_rect->property_outline_color_rgba() = color_map[cRubberBandRect]; - rubberband_rect->property_fill_color_rgba() = (guint32) color_map[cRubberBandRectFill]; rubberband_rect->property_outline_pixels() = 1; rubberband_rect->hide(); @@ -247,48 +224,22 @@ Editor::initialize_canvas () range_marker_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_range_marker_bar_event), range_marker_bar)); transport_marker_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_transport_marker_bar_event), transport_marker_bar)); - /* separator lines */ - - tempo_line = new ArdourCanvas::SimpleLine (*tempo_group, 0, timebar_height, max_canvas_coordinate, timebar_height); - tempo_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255); - - meter_line = new ArdourCanvas::SimpleLine (*meter_group, 0, timebar_height, max_canvas_coordinate, timebar_height); - meter_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255); - - marker_line = new ArdourCanvas::SimpleLine (*marker_group, 0, timebar_height, max_canvas_coordinate, timebar_height); - marker_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255); - - range_marker_line = new ArdourCanvas::SimpleLine (*range_marker_group, 0, timebar_height, max_canvas_coordinate, timebar_height); - range_marker_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255); - - transport_marker_line = new ArdourCanvas::SimpleLine (*transport_marker_group, 0, timebar_height, max_canvas_coordinate, timebar_height); - transport_marker_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255); - ZoomChanged.connect (bind (mem_fun(*this, &Editor::update_loop_range_view), false)); ZoomChanged.connect (bind (mem_fun(*this, &Editor::update_punch_range_view), false)); double time_height = timebar_height * 5; double time_width = FLT_MAX/frames_per_unit; time_canvas.set_scroll_region(0.0, 0.0, time_width, time_height); - - if (!color_map[cEditCursor]) { - warning << _("edit cursor color not defined, check your ardour.colors file!") << endmsg; - color_map[cEditCursor] = RGBA_TO_UINT (30,30,30,255); - } - - if (!color_map[cPlayHead]) { - warning << _("playhead color not defined, check your ardour.colors file!") << endmsg; - color_map[cPlayHead] = RGBA_TO_UINT (0,0,0,255); - } edit_cursor = new Cursor (*this, &Editor::canvas_edit_cursor_event); - edit_cursor->canvas_item.property_fill_color_rgba() = color_map[cEditCursor]; playhead_cursor = new Cursor (*this, &Editor::canvas_playhead_cursor_event); - playhead_cursor->canvas_item.property_fill_color_rgba() = color_map[cPlayHead]; initial_ruler_update_required = true; track_canvas.signal_size_allocate().connect (mem_fun(*this, &Editor::track_canvas_allocate)); + ColorsChanged.connect (mem_fun (*this, &Editor::color_handler)); + color_handler(); + } void @@ -734,3 +685,65 @@ Editor::canvas_horizontally_scrolled () redisplay_tempo (!_dragging_hscrollbar); } +void +Editor::color_handler() +{ + edit_cursor->canvas_item.property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_EditCursor.get(); + playhead_cursor->canvas_item.property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_PlayHead.get(); + verbose_canvas_cursor->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_VerboseCanvasCursor.get(); + + meter_bar->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MeterBar.get(); + meter_bar->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get(); + + tempo_bar->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TempoBar.get(); + tempo_bar->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get(); + + marker_bar->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerBar.get(); + marker_bar->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get(); + + range_marker_bar->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_RangeMarkerBar.get(); + range_marker_bar->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get(); + + 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(); + + 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(); + + transport_bar_drag_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TransportDragRect.get(); + transport_bar_drag_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TransportDragRect.get(); + + marker_drag_line->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerDragLine.get(); + + range_marker_drag_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_RangeDragRect.get(); + range_marker_drag_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_RangeDragRect.get(); + + transport_loop_range_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TransportLoopRect.get(); + transport_loop_range_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TransportLoopRect.get(); + + transport_punch_range_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TransportPunchRect.get(); + transport_punch_range_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TransportPunchRect.get(); + + transport_punchin_line->property_color_rgba() = ARDOUR_UI::config()->canvasvar_PunchLine.get(); + transport_punchout_line->property_color_rgba() = ARDOUR_UI::config()->canvasvar_PunchLine.get(); + + zoom_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_ZoomRect.get(); + zoom_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_ZoomRect.get(); + + rubberband_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_RubberBandRect.get(); + rubberband_rect->property_fill_color_rgba() = (guint32) ARDOUR_UI::config()->canvasvar_RubberBandRect.get(); + + location_marker_color = ARDOUR_UI::config()->canvasvar_LocationMarker.get(); + location_range_color = ARDOUR_UI::config()->canvasvar_LocationRange.get(); + location_cd_marker_color = ARDOUR_UI::config()->canvasvar_LocationCDMarker.get(); + location_loop_color = ARDOUR_UI::config()->canvasvar_LocationLoop.get(); + location_punch_color = ARDOUR_UI::config()->canvasvar_LocationPunch.get(); + + refresh_location_display (); + redisplay_tempo (true); + + if (session) + session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers +} + + |