/* tool bar related */
, zoom_range_clock (new AudioClock (X_("zoomrange"), false, X_("zoom range"), true, false, true))
-
, toolbar_selection_clock_table (2,3)
-
+ , _mouse_mode_tearoff (0)
, automation_mode_button (_("mode"))
+ , _zoom_tearoff (0)
+ , _tools_tearoff (0)
, _toolbar_viewport (*manage (new Gtk::Adjustment (0, 0, 1e10)), *manage (new Gtk::Adjustment (0, 0, 1e10)))
meter_label.hide();
meter_label.set_no_show_all();
+ if (Profile->get_trx()) {
+ mark_label.set_text (_("Markers"));
+ }
mark_label.set_name ("EditorRulerLabel");
mark_label.set_size_request (-1, (int)timebar_height);
mark_label.set_alignment (1.0, 0.5);
HBox* h = manage (new HBox);
_group_tabs = new EditorGroupTabs (this);
- h->pack_start (*_group_tabs, PACK_SHRINK);
+ if (!ARDOUR::Profile->get_trx()) {
+ h->pack_start (*_group_tabs, PACK_SHRINK);
+ }
h->pack_start (edit_controls_vbox);
controls_layout.add (*h);
_summary_hbox.pack_start (*summary_frame, true, true);
_summary_hbox.pack_start (*summary_arrows_right, false, false);
- editor_summary_pane.pack2 (_summary_hbox);
+ if (!ARDOUR::Profile->get_trx()) {
+ editor_summary_pane.pack2 (_summary_hbox);
+ }
edit_pane.pack1 (editor_summary_pane, true, true);
- edit_pane.pack2 (_the_notebook, false, true);
+ if (!ARDOUR::Profile->get_trx()) {
+ edit_pane.pack2 (_the_notebook, false, true);
+ }
editor_summary_pane.signal_size_allocate().connect (sigc::bind (sigc::mem_fun (*this, &Editor::pane_allocation_handler), static_cast<Paned*> (&editor_summary_pane)));
/* nudge stuff */
nudge_forward_button.set_name ("nudge button");
-// nudge_forward_button.add_elements (ArdourButton::FlatFace);
+// nudge_forward_button.add_elements (ArdourButton::Inset);
nudge_forward_button.set_image(::get_icon("nudge_right"));
nudge_backward_button.set_name ("nudge button");
-// nudge_backward_button.add_elements (ArdourButton::FlatFace);
+// nudge_backward_button.add_elements (ArdourButton::Inset);
nudge_backward_button.set_image(::get_icon("nudge_left"));
fade_context_menu.set_name ("ArdourContextMenu");
reset_zoom (samples_per_pixel);
}
+ if ((prop = node.property ("visible-track-count"))) {
+ set_visible_track_count (PBD::atoi (prop->value()));
+ }
+
if ((prop = node.property ("snap-to"))) {
set_snap_to ((SnapType) string_2_enum (prop->value(), _snap_type));
}
node->add_property ("pre-internal-snap-to", enum_2_string (pre_internal_snap_type));
node->add_property ("pre-internal-snap-mode", enum_2_string (pre_internal_snap_mode));
node->add_property ("edit-point", enum_2_string (_edit_point));
+ snprintf (buf, sizeof(buf), "%d", _visible_track_count);
+ node->add_property ("visible-track-count", buf);
snprintf (buf, sizeof (buf), "%" PRIi64, playhead_cursor->current_frame ());
node->add_property ("playhead", buf);
mouse_mode_hbox->set_spacing (2);
- mouse_mode_hbox->pack_start (smart_mode_button, false, false);
+ if (!ARDOUR::Profile->get_trx()) {
+ mouse_mode_hbox->pack_start (smart_mode_button, false, false);
+ }
+
mouse_mode_hbox->pack_start (mouse_move_button, false, false);
mouse_mode_hbox->pack_start (mouse_select_button, false, false);
mouse_mode_hbox->pack_start (mouse_zoom_button, false, false);
- mouse_mode_hbox->pack_start (mouse_gain_button, false, false);
- mouse_mode_hbox->pack_start (mouse_timefx_button, false, false);
- mouse_mode_hbox->pack_start (mouse_audition_button, false, false);
- mouse_mode_hbox->pack_start (mouse_draw_button, false, false);
- mouse_mode_hbox->pack_start (internal_edit_button, false, false, 8);
+
+ if (!ARDOUR::Profile->get_trx()) {
+ mouse_mode_hbox->pack_start (mouse_gain_button, false, false);
+ mouse_mode_hbox->pack_start (mouse_timefx_button, false, false);
+ mouse_mode_hbox->pack_start (mouse_audition_button, false, false);
+ mouse_mode_hbox->pack_start (mouse_draw_button, false, false);
+ mouse_mode_hbox->pack_start (internal_edit_button, false, false, 8);
+ }
mouse_mode_vbox->pack_start (*mouse_mode_hbox);
edit_mode_selector.set_name ("mouse mode button");
edit_mode_selector.set_size_request (65, -1);
- edit_mode_selector.add_elements (ArdourButton::FlatFace);
+ edit_mode_selector.add_elements (ArdourButton::Inset);
- mode_box->pack_start (edit_mode_selector, false, false);
+ if (!ARDOUR::Profile->get_trx()) {
+ mode_box->pack_start (edit_mode_selector, false, false);
+ }
mode_box->pack_start (*mouse_mode_box, false, false);
_mouse_mode_tearoff = manage (new TearOff (*mode_box));
RefPtr<Action> act;
zoom_in_button.set_name ("zoom button");
-// zoom_in_button.add_elements ( ArdourButton::FlatFace );
+// zoom_in_button.add_elements ( ArdourButton::Inset );
zoom_in_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
zoom_in_button.set_image(::get_icon ("zoom_in"));
act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-in"));
zoom_in_button.set_related_action (act);
zoom_out_button.set_name ("zoom button");
-// zoom_out_button.add_elements ( ArdourButton::FlatFace );
+// zoom_out_button.add_elements ( ArdourButton::Inset );
zoom_out_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
zoom_out_button.set_image(::get_icon ("zoom_out"));
act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-out"));
zoom_out_button.set_related_action (act);
zoom_out_full_button.set_name ("zoom button");
-// zoom_out_full_button.add_elements ( ArdourButton::FlatFace );
+// zoom_out_full_button.add_elements ( ArdourButton::Inset );
zoom_out_full_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
zoom_out_full_button.set_image(::get_icon ("zoom_full"));
act = ActionManager::get_action (X_("Editor"), X_("zoom-to-session"));
zoom_focus_selector.set_name ("zoom button");
zoom_focus_selector.set_size_request (80, -1);
-// zoom_focus_selector.add_elements (ArdourButton::FlatFace);
-
- _zoom_box.pack_start (zoom_out_button, false, false);
- _zoom_box.pack_start (zoom_in_button, false, false);
- _zoom_box.pack_start (zoom_out_full_button, false, false);
+// zoom_focus_selector.add_elements (ArdourButton::Inset);
- _zoom_box.pack_start (zoom_focus_selector, false, false);
+ if (!ARDOUR::Profile->get_trx()) {
+ _zoom_box.pack_start (zoom_out_button, false, false);
+ _zoom_box.pack_start (zoom_in_button, false, false);
+ _zoom_box.pack_start (zoom_out_full_button, false, false);
+ _zoom_box.pack_start (zoom_focus_selector, false, false);
+ } else {
+ mode_box->pack_start (zoom_out_button, false, false);
+ mode_box->pack_start (zoom_in_button, false, false);
+ }
/* Track zoom buttons */
visible_tracks_selector.set_name ("zoom button");
-// visible_tracks_selector.add_elements ( ArdourButton::FlatFace );
+// visible_tracks_selector.add_elements ( ArdourButton::Inset );
set_size_request_to_display_given_text (visible_tracks_selector, _("all"), 40, 2);
- _zoom_box.pack_start (visible_tracks_selector);
-
- _zoom_tearoff = manage (new TearOff (_zoom_box));
-
- _zoom_tearoff->Detach.connect (sigc::bind (sigc::mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&toolbar_hbox),
- &_zoom_tearoff->tearoff_window()));
- _zoom_tearoff->Attach.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
- &_zoom_tearoff->tearoff_window(), 0));
- _zoom_tearoff->Hidden.connect (sigc::bind (sigc::mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&toolbar_hbox),
- &_zoom_tearoff->tearoff_window()));
- _zoom_tearoff->Visible.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
- &_zoom_tearoff->tearoff_window(), 0));
+ tav_expand_button.set_name ("zoom button");
+// tav_expand_button.add_elements ( ArdourButton::FlatFace );
+ tav_expand_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
+ tav_expand_button.set_size_request (-1, 20);
+ tav_expand_button.set_image(::get_icon ("tav_exp"));
+ act = ActionManager::get_action (X_("Editor"), X_("expand-tracks"));
+ tav_expand_button.set_related_action (act);
+
+ tav_shrink_button.set_name ("zoom button");
+// tav_shrink_button.add_elements ( ArdourButton::FlatFace );
+ tav_shrink_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
+ tav_shrink_button.set_size_request (-1, 20);
+ tav_shrink_button.set_image(::get_icon ("tav_shrink"));
+ act = ActionManager::get_action (X_("Editor"), X_("shrink-tracks"));
+ tav_shrink_button.set_related_action (act);
+
+ if (!ARDOUR::Profile->get_trx()) {
+ _zoom_box.pack_start (visible_tracks_selector);
+ }
+ _zoom_box.pack_start (tav_shrink_button);
+ _zoom_box.pack_start (tav_expand_button);
+
+ if (!ARDOUR::Profile->get_trx()) {
+ _zoom_tearoff = manage (new TearOff (_zoom_box));
+
+ _zoom_tearoff->Detach.connect (sigc::bind (sigc::mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&toolbar_hbox),
+ &_zoom_tearoff->tearoff_window()));
+ _zoom_tearoff->Attach.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
+ &_zoom_tearoff->tearoff_window(), 0));
+ _zoom_tearoff->Hidden.connect (sigc::bind (sigc::mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&toolbar_hbox),
+ &_zoom_tearoff->tearoff_window()));
+ _zoom_tearoff->Visible.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
+ &_zoom_tearoff->tearoff_window(), 0));
+ }
snap_box.set_spacing (2);
snap_box.set_border_width (2);
snap_type_selector.set_name ("mouse mode button");
snap_type_selector.set_size_request (140, -1);
- snap_type_selector.add_elements (ArdourButton::FlatFace);
+ snap_type_selector.add_elements (ArdourButton::Inset);
snap_mode_selector.set_name ("mouse mode button");
snap_mode_selector.set_size_request (85, -1);
- snap_mode_selector.add_elements (ArdourButton::FlatFace);
+ snap_mode_selector.add_elements (ArdourButton::Inset);
edit_point_selector.set_name ("mouse mode button");
edit_point_selector.set_size_request (85, -1);
- edit_point_selector.add_elements (ArdourButton::FlatFace);
+ edit_point_selector.add_elements (ArdourButton::Inset);
snap_box.pack_start (snap_mode_selector, false, false);
snap_box.pack_start (snap_type_selector, false, false);
toolbar_hbox.set_border_width (1);
toolbar_hbox.pack_start (*_mouse_mode_tearoff, false, false);
- toolbar_hbox.pack_start (*_zoom_tearoff, false, false);
- toolbar_hbox.pack_start (*_tools_tearoff, false, false);
-
- hbox->pack_start (snap_box, false, false);
- if (!Profile->get_small_screen()) {
- hbox->pack_start (*nudge_box, false, false);
- } else {
- ARDOUR_UI::instance()->editor_transport_box().pack_start (*nudge_box, false, false);
- }
+ if (!ARDOUR::Profile->get_trx()) {
+ toolbar_hbox.pack_start (*_zoom_tearoff, false, false);
+ toolbar_hbox.pack_start (*_tools_tearoff, false, false);
+ }
+
+ if (!ARDOUR::Profile->get_trx()) {
+ hbox->pack_start (snap_box, false, false);
+ if (!Profile->get_small_screen()) {
+ hbox->pack_start (*nudge_box, false, false);
+ } else {
+ ARDOUR_UI::instance()->editor_transport_box().pack_start (*nudge_box, false, false);
+ }
+ }
hbox->pack_start (panic_box, false, false);
hbox->show_all ();
ARDOUR_UI::instance()->set_tip (zoom_out_button, _("Zoom Out"));
ARDOUR_UI::instance()->set_tip (zoom_out_full_button, _("Zoom to Session"));
ARDOUR_UI::instance()->set_tip (zoom_focus_selector, _("Zoom focus"));
+ ARDOUR_UI::instance()->set_tip (tav_expand_button, _("Expand Tracks"));
+ ARDOUR_UI::instance()->set_tip (tav_shrink_button, _("Shrink Tracks"));
ARDOUR_UI::instance()->set_tip (visible_tracks_selector, _("Number of visible tracks"));
ARDOUR_UI::instance()->set_tip (snap_type_selector, _("Snap/Grid Units"));
ARDOUR_UI::instance()->set_tip (snap_mode_selector, _("Snap/Grid Mode"));
visible_tracks_selector.AddMenuElem (MenuElem (X_("24"), sigc::bind (sigc::mem_fun(*this, &Editor::set_visible_track_count), 24)));
visible_tracks_selector.AddMenuElem (MenuElem (X_("32"), sigc::bind (sigc::mem_fun(*this, &Editor::set_visible_track_count), 32)));
visible_tracks_selector.AddMenuElem (MenuElem (X_("64"), sigc::bind (sigc::mem_fun(*this, &Editor::set_visible_track_count), 64)));
- visible_tracks_selector.AddMenuElem (MenuElem (_("all"), sigc::bind (sigc::mem_fun(*this, &Editor::set_visible_track_count), -1)));
+ visible_tracks_selector.AddMenuElem (MenuElem (_("all"), sigc::bind (sigc::mem_fun(*this, &Editor::set_visible_track_count), 0)));
}
void
Editor::set_visible_track_count (int32_t n)
{
- if (n == _visible_track_count && !visible_tracks_selector.get_text().empty()) {
+ _visible_track_count = n;
+
+ /* if the canvas hasn't really been allocated any size yet, just
+ record the desired number of visible tracks and return. when canvas
+ allocation happens, we will get called again and then we can do the
+ real work.
+ */
+
+ if (_visible_canvas_height <= 1) {
return;
}
- _visible_track_count = n;
-
+ int h;
string str;
if (_visible_track_count > 0) {
+ h = _visible_canvas_height / _visible_track_count;
std::ostringstream s;
s << _visible_track_count;
-
str = s.str();
-
- } else {
+ } else if (_visible_track_count == 0) {
+ h = _visible_canvas_height / track_views.size();
str = _("all");
+ } else {
+ /* negative value means that the visible track count has
+ been overridden by explicit track height changes.
+ */
+ visible_tracks_selector.set_text (X_("*"));
+ return;
}
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->set_height (h);
+ }
+
if (str != visible_tracks_selector.get_text()) {
visible_tracks_selector.set_text (str);
}
}
+void
+Editor::override_visible_track_count ()
+{
+ _visible_track_count = -_visible_track_count;
+}
+
bool
Editor::edit_controls_button_release (GdkEventButton* ev)
{
{
if ((_tools_tearoff->torn_off() || !_tools_tearoff->visible()) &&
(_mouse_mode_tearoff->torn_off() || !_mouse_mode_tearoff->visible()) &&
- (_zoom_tearoff->torn_off() || !_zoom_tearoff->visible())) {
+ (_zoom_tearoff && (_zoom_tearoff->torn_off() || !_zoom_tearoff->visible()))) {
top_hbox.remove (toolbar_frame);
}
}
bool visible = Config->get_keep_tearoffs();
_mouse_mode_tearoff->set_visible (visible);
_tools_tearoff->set_visible (visible);
- _zoom_tearoff->set_visible (visible);
+ if (_zoom_tearoff) {
+ _zoom_tearoff->set_visible (visible);
+ }
}
void
_summary->set_dirty ();
}
-TimeAxisView*
+RouteTimeAxisView*
Editor::axis_view_from_route (boost::shared_ptr<Route> r) const
{
TrackViewList::const_iterator j = track_views.begin ();