ARDOUR_UI::instance()->set_tip (mouse_select_button, _("Draw/Edit MIDI Notes"));
mouse_mode_toggled (mouse_mode);
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->enter_internal_edit_mode ();
+ }
+
} else {
mouse_select_button.set_image (*(manage (new Image (::get_icon("tool_range")))));
mouse_select_button.get_image ()->show ();
ARDOUR_UI::instance()->set_tip (mouse_select_button, _("Select/Move Ranges"));
mouse_mode_toggled (mouse_mode); // sets cursor
+
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->leave_internal_edit_mode ();
+ }
}
}
void
MidiRegionView::set_frame_color()
{
+ uint32_t f;
+
if (!frame) {
return;
}
if (_selected) {
- frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get();
+ f = ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get();
} else if (high_enough_for_name) {
- frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiFrameBase.get();
+ f= ARDOUR_UI::config()->canvasvar_MidiFrameBase.get();
} else {
- frame->property_fill_color_rgba() = fill_color;
+ f = fill_color;
}
+
+ if (!rect_visible) {
+ f = UINT_RGBA_CHANGE_A (f, 0);
+ }
+
+ frame->property_fill_color_rgba() = f;
+
+ f = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
+
+ if (!rect_visible) {
+ f = UINT_RGBA_CHANGE_A (f, 0);
+ }
+
+ frame->property_outline_color_rgba() = f;
}
void
region_view->display_model(source->model());
}
+void
+MidiStreamView::enter_internal_edit_mode ()
+{
+ for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
+ (*i)->hide_rect ();
+ }
+}
+
+void
+MidiStreamView::leave_internal_edit_mode ()
+{
+ for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
+ (*i)->show_rect ();
+ }
+}
+
void
MidiStreamView::display_track (boost::shared_ptr<Track> tr)
{
MidiStreamView (MidiTimeAxisView&);
~MidiStreamView ();
+ void enter_internal_edit_mode ();
+ void leave_internal_edit_mode ();
+
void set_selected_regionviews (RegionSelection&);
void get_inverted_selectables (Selection&, std::list<Selectable* >& results);
delete _step_editor;
}
+void
+MidiTimeAxisView::enter_internal_edit_mode ()
+{
+ if (midi_view()) {
+ midi_view()->enter_internal_edit_mode ();
+ }
+}
+
+void
+MidiTimeAxisView::leave_internal_edit_mode ()
+{
+ if (midi_view()) {
+ midi_view()->leave_internal_edit_mode ();
+ }
+}
+
void
MidiTimeAxisView::check_step_edit ()
{
void set_height (uint32_t);
void hide ();
+ void enter_internal_edit_mode ();
+ void leave_internal_edit_mode ();
+
boost::shared_ptr<ARDOUR::MidiRegion> add_region (ARDOUR::framepos_t, ARDOUR::framecnt_t, bool);
void show_all_automation ();
_region->trim_start ((framepos_t) (new_bound * speed), this);
region_changed (PropertyChange (ARDOUR::Properties::start));
}
+
gdouble get_samples_per_unit () { return _samples_per_unit; }
virtual void horizontal_position_changed () {}
+ virtual void enter_internal_edit_mode () {}
+ virtual void leave_internal_edit_mode () {}
+
void set_layer_display (LayerDisplay);
LayerDisplay layer_display () const { return _layer_display; }
/** @return maximum allowable value of order */
static int max_order () { return _max_order; }
+ virtual void enter_internal_edit_mode () {}
+ virtual void leave_internal_edit_mode () {}
+
ArdourCanvas::Group* canvas_display () { return _canvas_display; }
ArdourCanvas::Group* canvas_background () { return _canvas_background; }
ArdourCanvas::Group* ghost_group () { return _ghost_group; }
last_item_width = 0;
wide_enough_for_name = wide;
high_enough_for_name = high;
+ rect_visible = true;
if (duration == 0) {
warning << "Time Axis Item Duration == 0" << endl;
delete group;
}
+void
+TimeAxisViewItem::hide_rect ()
+{
+ rect_visible = false;
+ set_frame_color ();
+
+ if (name_highlight) {
+ name_highlight->property_outline_what() = 0x0;
+ }
+}
+
+void
+TimeAxisViewItem::show_rect ()
+{
+ rect_visible = true;
+ set_frame_color ();
+
+ if (name_highlight) {
+ name_highlight->property_outline_what() = 0x4;
+ }
+}
+
/**
* Set the position of this item on the timeline.
void
TimeAxisViewItem::set_frame_color()
{
+ uint32_t f = 0;
+
if (!frame) {
return;
}
if (_selected) {
+
+ f = ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get();
+
if (fill_opacity) {
- frame->property_fill_color_rgba() = UINT_RGBA_CHANGE_A (ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get(), fill_opacity);
- } else {
- frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_SelectedFrameBase.get();
- }
+ f = UINT_RGBA_CHANGE_A (f, fill_opacity);
+ }
+
+ if (!rect_visible) {
+ f = UINT_RGBA_CHANGE_A (f, 0);
+ }
+
} else {
+
if (_recregion) {
- frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
+ f = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
} else {
- uint32_t f = 0;
+
if (high_enough_for_name && !Config->get_color_regions_using_track_color()) {
f = ARDOUR_UI::config()->canvasvar_FrameBase.get();
} else {
f = UINT_RGBA_CHANGE_A (f, fill_opacity);
}
- frame->property_fill_color_rgba() = f;
- }
+ if (!rect_visible) {
+ f = UINT_RGBA_CHANGE_A (f, 0);
+ }
+ }
}
+
+ frame->property_fill_color_rgba() = f;
}
/**
virtual void raise_to_top () { return; }
virtual void lower () { return; }
virtual void lower_to_bottom () { return; }
-
+
+ virtual void hide_rect ();
+ virtual void show_rect ();
+
/** @return true if the name area should respond to events */
bool name_active() const { return name_connected; }
int name_pixbuf_width;
bool wide_enough_for_name;
bool high_enough_for_name;
-
+ bool rect_visible;
+
ArdourCanvas::Group* group;
ArdourCanvas::SimpleRect* vestigial_frame;
ArdourCanvas::SimpleRect* frame;