X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Froute_time_axis.cc;h=41d7905bf179bbdd2c17fa66b6069c107a1bf0f2;hb=696b89b71a895dff732c734cdaa30a2e119292c8;hp=f7c21fa734dddd2b0895d06f6df2686e0fbb9d72;hpb=fc1e7dbb55939c708ce572d3a5c2518ea926a682;p=ardour.git diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index f7c21fa734..41d7905bf1 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -76,6 +76,8 @@ #include "rgb_macros.h" #include "selection.h" #include "streamview.h" +#include "tooltips.h" +#include "ui_config.h" #include "utils.h" #include "route_group_menu.h" @@ -179,15 +181,15 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) } if (is_midi_track()) { - ARDOUR_UI::instance()->set_tip(*rec_enable_button, _("Record (Right-click for Step Edit)")); + set_tooltip(*rec_enable_button, _("Record (Right-click for Step Edit)")); gm.set_fader_name ("MidiTrackFader"); } else { - ARDOUR_UI::instance()->set_tip(*rec_enable_button, _("Record")); + set_tooltip(*rec_enable_button, _("Record")); gm.set_fader_name ("AudioTrackFader"); } rec_enable_button->set_sensitive (_session->writable()); - + /* set playlist button tip to the current playlist, and make it update when it changes */ update_playlist_tip (); track()->PlaylistChanged.connect (*this, invalidator (*this), ui_bind(&RouteTimeAxisView::update_playlist_tip, this), gui_context()); @@ -249,10 +251,10 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) controls_table.attach (route_group_button, 4, 5, 2, 3, Gtk::SHRINK, Gtk::SHRINK, 0, 0); controls_table.attach (gm.get_gain_slider(), 0, 2, 2, 3, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 1, 0); } - - ARDOUR_UI::instance()->set_tip(*solo_button,_("Solo")); - ARDOUR_UI::instance()->set_tip(*mute_button,_("Mute")); - ARDOUR_UI::instance()->set_tip(route_group_button, _("Route Group")); + + set_tooltip(*solo_button,_("Solo")); + set_tooltip(*mute_button,_("Mute")); + set_tooltip(route_group_button, _("Route Group")); mute_button->set_tweaks(ArdourButton::TrackHeader); solo_button->set_tweaks(ArdourButton::TrackHeader); @@ -262,9 +264,9 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) route_group_button.set_tweaks(ArdourButton::TrackHeader); if (is_midi_track()) { - ARDOUR_UI::instance()->set_tip(automation_button, _("MIDI Controllers and Automation")); + set_tooltip(automation_button, _("MIDI Controllers and Automation")); } else { - ARDOUR_UI::instance()->set_tip(automation_button, _("Automation")); + set_tooltip(automation_button, _("Automation")); } update_track_number_visibility(); @@ -304,10 +306,10 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) /* pick up the correct freeze state */ map_frozen (); - } + } _editor.ZoomChanged.connect (sigc::mem_fun(*this, &RouteTimeAxisView::reset_samples_per_pixel)); - UIConfiguration::ColorsChanged.connect (sigc::mem_fun (*this, &RouteTimeAxisView::color_handler)); + UIConfiguration::instance().ColorsChanged.connect (sigc::mem_fun (*this, &RouteTimeAxisView::color_handler)); PropertyList* plist = new PropertyList(); @@ -322,7 +324,7 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) RouteTimeAxisView::~RouteTimeAxisView () { cleanup_gui_properties (); - + for (list::iterator i = processor_automation.begin(); i != processor_automation.end(); ++i) { delete *i; } @@ -503,9 +505,9 @@ RouteTimeAxisView::build_automation_action_menu (bool for_selection) sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::hide_all_automation), for_selection))); /* Attach the plugin submenu. It may have previously been used elsewhere, - so it was detached above + so it was detached above */ - + if (!subplugin_menu.items().empty()) { items.push_back (SeparatorElem ()); items.push_back (MenuElem (_("Processor automation"), subplugin_menu)); @@ -517,7 +519,7 @@ RouteTimeAxisView::build_automation_action_menu (bool for_selection) if (gain_track) { items.push_back (CheckMenuElem (_("Fader"), sigc::mem_fun (*this, &RouteTimeAxisView::update_gain_track_visibility))); gain_automation_item = dynamic_cast (&items.back ()); - gain_automation_item->set_active ((!for_selection || _editor.get_selection().tracks.size() == 1) && + gain_automation_item->set_active ((!for_selection || _editor.get_selection().tracks.size() == 1) && (gain_track && string_is_affirmative (gain_track->gui_property ("visible")))); _main_automation_menu_map[Evoral::Parameter(GainAutomation)] = gain_automation_item; @@ -535,7 +537,7 @@ RouteTimeAxisView::build_automation_action_menu (bool for_selection) if (mute_track) { items.push_back (CheckMenuElem (_("Mute"), sigc::mem_fun (*this, &RouteTimeAxisView::update_mute_track_visibility))); mute_automation_item = dynamic_cast (&items.back ()); - mute_automation_item->set_active ((!for_selection || _editor.get_selection().tracks.size() == 1) && + mute_automation_item->set_active ((!for_selection || _editor.get_selection().tracks.size() == 1) && (mute_track && string_is_affirmative (mute_track->gui_property ("visible")))); _main_automation_menu_map[Evoral::Parameter(MuteAutomation)] = mute_automation_item; @@ -632,7 +634,7 @@ RouteTimeAxisView::build_display_menu () */ _ignore_set_layer_display = true; - + layers_items.push_back (RadioMenuElem (layers_group, _("Overlaid"))); RadioMenuItem* i = dynamic_cast (&layers_items.back ()); i->set_active (overlaid != 0 && stacked == 0); @@ -644,7 +646,7 @@ RouteTimeAxisView::build_display_menu () i->set_active (overlaid == 0 && stacked != 0); i->set_inconsistent (overlaid != 0 && stacked != 0); i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::set_layer_display), Stacked, true)); - + _ignore_set_layer_display = false; items.push_back (MenuElem (_("Layers"), *layers_menu)); @@ -811,7 +813,7 @@ RouteTimeAxisView::build_display_menu () } route_group_menu->detach (); - + WeakRouteList r; for (TrackSelection::iterator i = _editor.get_selection().tracks.begin(); i != _editor.get_selection().tracks.end(); ++i) { RouteTimeAxisView* rtv = dynamic_cast (*i); @@ -819,19 +821,19 @@ RouteTimeAxisView::build_display_menu () r.push_back (rtv->route ()); } } - + if (r.empty ()) { r.push_back (route ()); } route_group_menu->build (r); items.push_back (MenuElem (_("Group"), *route_group_menu->menu ())); - + build_automation_action_menu (true); items.push_back (MenuElem (_("Automation"), *automation_action_menu)); - + items.push_back (SeparatorElem()); - + int active = 0; int inactive = 0; TrackSelection const & s = _editor.get_selection().tracks; @@ -921,8 +923,8 @@ RouteTimeAxisView::show_timestretch (framepos_t start, framepos_t end, int layer if (timestretch_rect == 0) { timestretch_rect = new ArdourCanvas::Rectangle (canvas_display ()); - timestretch_rect->set_fill_color (ArdourCanvas::HSV (ARDOUR_UI::config()->color ("time stretch fill")).mod (ARDOUR_UI::config()->modifier ("time stretch fill")).color()); - timestretch_rect->set_outline_color (ARDOUR_UI::config()->color ("time stretch outline")); + timestretch_rect->set_fill_color (ArdourCanvas::HSV (UIConfiguration::instance().color ("time stretch fill")).mod (UIConfiguration::instance().modifier ("time stretch fill")).color()); + timestretch_rect->set_outline_color (UIConfiguration::instance().color ("time stretch outline")); } timestretch_rect->show (); @@ -1548,11 +1550,11 @@ RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op) vector cmds; playlist->rdiff (cmds); _session->add_commands (cmds); - + _session->add_command (new StatefulDiffCommand (playlist)); } break; - + case Cut: if ((what_we_got = playlist->cut (time)) != 0) { _editor.get_cut_buffer().add (what_we_got); @@ -1725,29 +1727,29 @@ RouteTimeAxisView::use_playlist (RadioMenuItem *item, boost::weak_ptr } track()->use_playlist (pl); - + RouteGroup* rg = route_group(); - + if (rg && rg->is_active() && rg->enabled_property (ARDOUR::Properties::select.property_id)) { std::string group_string = "." + rg->name() + "."; - + std::string take_name = pl->name(); std::string::size_type idx = take_name.find(group_string); - + if (idx == std::string::npos) return; - + take_name = take_name.substr(idx + group_string.length()); // find the bit containing the take number / name - + boost::shared_ptr rl (rg->route_list()); - + for (RouteList::const_iterator i = rl->begin(); i != rl->end(); ++i) { if ((*i) == this->route()) { continue; } std::string playlist_name = (*i)->name()+group_string+take_name; - + boost::shared_ptr track = boost::dynamic_pointer_cast(*i); if (!track) { continue; @@ -1757,7 +1759,7 @@ RouteTimeAxisView::use_playlist (RadioMenuItem *item, boost::weak_ptr /* Don't change playlists of frozen tracks */ continue; } - + boost::shared_ptr ipl = session()->playlists->by_name(playlist_name); if (!ipl) { // No playlist for this track for this take yet, make it @@ -1776,28 +1778,28 @@ RouteTimeAxisView::update_playlist_tip () RouteGroup* rg = route_group (); if (rg && rg->is_active() && rg->enabled_property (ARDOUR::Properties::select.property_id)) { string group_string = "." + rg->name() + "."; - + string take_name = track()->playlist()->name(); string::size_type idx = take_name.find(group_string); - + if (idx != string::npos) { /* find the bit containing the take number / name */ take_name = take_name.substr (idx + group_string.length()); /* set the playlist button tooltip to the take name */ - ARDOUR_UI::instance()->set_tip ( + set_tooltip ( playlist_button, string_compose(_("Take: %1.%2"), - Glib::Markup::escape_text(rg->name()), - Glib::Markup::escape_text(take_name)) + Gtkmm2ext::markup_escape_text (rg->name()), + Gtkmm2ext::markup_escape_text (take_name)) ); - + return; } } /* set the playlist button tooltip to the playlist name */ - ARDOUR_UI::instance()->set_tip (playlist_button, _("Playlist") + std::string(": ") + Glib::Markup::escape_text(track()->playlist()->name())); + set_tooltip (playlist_button, _("Playlist") + std::string(": ") + Gtkmm2ext::markup_escape_text (track()->playlist()->name())); } @@ -1833,11 +1835,11 @@ RouteTimeAxisView::color_handler () { //case cTimeStretchOutline: if (timestretch_rect) { - timestretch_rect->set_outline_color (ARDOUR_UI::config()->color ("time stretch outline")); + timestretch_rect->set_outline_color (UIConfiguration::instance().color ("time stretch outline")); } //case cTimeStretchFill: if (timestretch_rect) { - timestretch_rect->set_fill_color (ARDOUR_UI::config()->color ("time stretch fill")); + timestretch_rect->set_fill_color (UIConfiguration::instance().color ("time stretch fill")); } reset_meter(); @@ -2207,10 +2209,10 @@ RouteTimeAxisView::add_processor_automation_curve (boost::shared_ptr boost::shared_ptr control = boost::dynamic_pointer_cast(processor->control(what, true)); - + pan->view = boost::shared_ptr( new AutomationTimeAxisView (_session, _route, processor, control, control->parameter (), - _editor, *this, false, parent_canvas, + _editor, *this, false, parent_canvas, processor->describe_parameter (what), processor->name())); pan->view->Hiding.connect (sigc::bind (sigc::mem_fun(*this, &RouteTimeAxisView::processor_automation_track_hidden), pan, processor)); @@ -2249,7 +2251,7 @@ RouteTimeAxisView::add_existing_processor_automation_curves (boost::weak_ptrwhat_has_data (existing); for (set::iterator i = existing.begin(); i != existing.end(); ++i) { - + Evoral::Parameter param (*i); boost::shared_ptr al; @@ -2274,7 +2276,7 @@ RouteTimeAxisView::add_automation_child (Evoral::Parameter param, boost::shared_ /* existing state overrides "show" argument */ string s = track->gui_property ("visible"); - if (!s.empty()) { + if (!s.empty()) { show = string_is_affirmative (s); } @@ -2363,7 +2365,7 @@ RouteTimeAxisView::add_processor_to_subplugin_menu (boost::weak_ptr p items.push_back (CheckMenuElem (name)); mitem = dynamic_cast (&items.back()); - + _subplugin_menu_map[*i] = mitem; if (has_visible_automation.find((*i)) != has_visible_automation.end()) { @@ -2412,7 +2414,7 @@ RouteTimeAxisView::processor_menu_item_toggled (RouteTimeAxisView::ProcessorAuto if (pan->view && pan->view->set_marked_for_display (showit)) { redraw = true; } - + if (redraw && !no_redraw) { request_redraw (); } @@ -2501,7 +2503,7 @@ RouteTimeAxisView::set_layer_display (LayerDisplay d, bool apply_to_selection) if (_ignore_set_layer_display) { return; } - + if (apply_to_selection) { _editor.get_selection().tracks.foreach_route_time_axis (boost::bind (&RouteTimeAxisView::set_layer_display, _1, d, false)); } else { @@ -2560,7 +2562,7 @@ RouteTimeAxisView::show_meter () void RouteTimeAxisView::reset_meter () { - if (ARDOUR_UI::config()->get_show_track_meters()) { + if (UIConfiguration::instance().get_show_track_meters()) { int meter_width = 3; if (_route && _route->shared_peak_meter()->input_streams().n_total() == 1) { meter_width = 6; @@ -2582,7 +2584,7 @@ RouteTimeAxisView::meter_changed () { ENSURE_GUI_THREAD (*this, &RouteTimeAxisView::meter_changed) reset_meter(); - if (_route && !no_redraw && ARDOUR_UI::config()->get_show_track_meters()) { + if (_route && !no_redraw && UIConfiguration::instance().get_show_track_meters()) { request_redraw (); } // reset peak when meter point changes @@ -2726,16 +2728,16 @@ RouteTimeAxisView::set_button_names () switch (Config->get_listen_position()) { case AfterFaderListen: solo_button->set_text (S_("AfterFader|A")); - ARDOUR_UI::instance()->set_tip (*solo_button, _("After-fade listen (AFL)")); + set_tooltip (*solo_button, _("After-fade listen (AFL)")); break; case PreFaderListen: solo_button->set_text (S_("PreFader|P")); - ARDOUR_UI::instance()->set_tip (*solo_button, _("Pre-fade listen (PFL)")); + set_tooltip (*solo_button, _("Pre-fade listen (PFL)")); break; } } else { solo_button->set_text (S_("Solo|S")); - ARDOUR_UI::instance()->set_tip (*solo_button, _("Solo")); + set_tooltip (*solo_button, _("Solo")); } mute_button->set_text (S_("Mute|M")); } @@ -2907,7 +2909,7 @@ void RouteTimeAxisView::remove_child (boost::shared_ptr c) { TimeAxisView::remove_child (c); - + boost::shared_ptr a = boost::dynamic_pointer_cast (c); if (a) { for (AutomationTracks::iterator i = _automation_tracks.begin(); i != _automation_tracks.end(); ++i) {