X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Froute_ui.cc;h=68f6622e35d19a672e13753047aef05e110b41ba;hb=aaa44a37aaf585b9bcd9268a9551a005e6269bdb;hp=bd9c535ecd4702558d49fd392a00f93c3762544a;hpb=209d967b1bb80a9735d690d8f4f0455ecb9970ca;p=ardour.git diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index bd9c535ecd..68f6622e35 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -18,11 +18,11 @@ $Id$ */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include @@ -37,10 +37,9 @@ #include #include "i18n.h" - -using namespace SigC; +using namespace sigc; using namespace Gtk; -using namespace Gtkmmext; +using namespace Gtkmm2ext; using namespace ARDOUR; @@ -63,8 +62,8 @@ RouteUI::RouteUI (ARDOUR::Route& rt, ARDOUR::Session& sess, const char* m_name, set_color (unique_random_color()); } - _route.GoingAway.connect (slot (*this, &RouteUI::route_removed)); - _route.active_changed.connect (slot (*this, &RouteUI::route_active_changed)); + _route.GoingAway.connect (mem_fun (*this, &RouteUI::route_removed)); + _route.active_changed.connect (mem_fun (*this, &RouteUI::route_active_changed)); mute_button = manage (new BindableToggleButton (& _route.midi_mute_control(), m_name )); mute_button->set_bind_button_state (2, GDK_CONTROL_MASK); @@ -74,10 +73,10 @@ RouteUI::RouteUI (ARDOUR::Route& rt, ARDOUR::Session& sess, const char* m_name, if (is_audio_track()) { AudioTrack* at = dynamic_cast(&_route); - get_diskstream()->record_enable_changed.connect (slot (*this, &RouteUI::route_rec_enable_changed)); + get_diskstream()->record_enable_changed.connect (mem_fun (*this, &RouteUI::route_rec_enable_changed)); - _session.RecordEnabled.connect (slot (*this, &RouteUI::session_rec_enable_changed)); - _session.RecordDisabled.connect (slot (*this, &RouteUI::session_rec_enable_changed)); + _session.RecordEnabled.connect (mem_fun (*this, &RouteUI::session_rec_enable_changed)); + _session.RecordDisabled.connect (mem_fun (*this, &RouteUI::session_rec_enable_changed)); rec_enable_button = manage (new BindableToggleButton (& at->midi_rec_enable_control(), r_name )); rec_enable_button->set_bind_button_state (2, GDK_CONTROL_MASK); @@ -86,9 +85,9 @@ RouteUI::RouteUI (ARDOUR::Route& rt, ARDOUR::Session& sess, const char* m_name, rec_enable_button = manage (new BindableToggleButton (0, r_name )); } - mute_button->unset_flags (GTK_CAN_FOCUS); - solo_button->unset_flags (GTK_CAN_FOCUS); - rec_enable_button->unset_flags (GTK_CAN_FOCUS); + mute_button->unset_flags (Gtk::CAN_FOCUS); + solo_button->unset_flags (Gtk::CAN_FOCUS); + rec_enable_button->unset_flags (Gtk::CAN_FOCUS); /* map the current state */ @@ -315,7 +314,7 @@ RouteUI::rec_enable_press(GdkEventButton* ev) void RouteUI::solo_changed(void* src) { - Gtkmmext::UI::instance()->call_slot (slot (*this, &RouteUI::update_solo_display)); + Gtkmm2ext::UI::instance()->call_slot (mem_fun (*this, &RouteUI::update_solo_display)); } void @@ -341,7 +340,7 @@ RouteUI::update_solo_display () void RouteUI::mute_changed(void* src) { - Gtkmmext::UI::instance()->call_slot (slot (*this, &RouteUI::update_mute_display)); + Gtkmm2ext::UI::instance()->call_slot (mem_fun (*this, &RouteUI::update_mute_display)); } void @@ -359,13 +358,13 @@ RouteUI::update_mute_display () void RouteUI::route_rec_enable_changed (void *src) { - Gtkmmext::UI::instance()->call_slot (slot (*this, &RouteUI::update_rec_display)); + Gtkmm2ext::UI::instance()->call_slot (mem_fun (*this, &RouteUI::update_rec_display)); } void RouteUI::session_rec_enable_changed () { - Gtkmmext::UI::instance()->call_slot (slot (*this, &RouteUI::update_rec_display)); + Gtkmm2ext::UI::instance()->call_slot (mem_fun (*this, &RouteUI::update_rec_display)); } void @@ -391,21 +390,21 @@ RouteUI::update_rec_display () switch (_session.record_status ()) { case Session::Disabled: case Session::Enabled: - if (rec_enable_button->get_state() != GTK_STATE_ACTIVE) { - rec_enable_button->set_state (GTK_STATE_ACTIVE); + if (rec_enable_button->get_state() != Gtk::STATE_ACTIVE) { + rec_enable_button->set_state (Gtk::STATE_ACTIVE); } break; case Session::Recording: - if (rec_enable_button->get_state() != GTK_STATE_SELECTED) { - rec_enable_button->set_state (GTK_STATE_SELECTED); + if (rec_enable_button->get_state() != Gtk::STATE_SELECTED) { + rec_enable_button->set_state (Gtk::STATE_SELECTED); } break; } } else { - if (rec_enable_button->get_state() != GTK_STATE_NORMAL) { - rec_enable_button->set_state (GTK_STATE_NORMAL); + if (rec_enable_button->get_state() != Gtk::STATE_NORMAL) { + rec_enable_button->set_state (Gtk::STATE_NORMAL); } } } @@ -422,13 +421,13 @@ RouteUI::build_solo_menu (void) check = new CheckMenuItem(_("Solo-safe")); check->set_active (_route.solo_safe()); - check->toggled.connect (bind (slot (*this, &RouteUI::toggle_solo_safe), check)); - _route.solo_safe_changed.connect(bind (slot (*this, &RouteUI::solo_safe_toggle), check)); + check->signal_toggled().connect (bind (mem_fun (*this, &RouteUI::toggle_solo_safe), check)); + _route.solo_safe_changed.connect(bind (mem_fun (*this, &RouteUI::solo_safe_toggle), check)); items.push_back (CheckMenuElem(*check)); check->show_all(); items.push_back (SeparatorElem()); - items.push_back (MenuElem (_("MIDI Bind"), slot (*mute_button, &BindableToggleButton::midi_learn))); + items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn))); } @@ -444,34 +443,34 @@ RouteUI::build_mute_menu(void) check = new CheckMenuItem(_("Pre Fader")); init_mute_menu(PRE_FADER, check); - check->toggled.connect(bind (slot (*this, &RouteUI::toggle_mute_menu), PRE_FADER, check)); - _route.pre_fader_changed.connect(bind (slot (*this, &RouteUI::pre_fader_toggle), check)); + check->signal_toggled().connect(bind (mem_fun (*this, &RouteUI::toggle_mute_menu), PRE_FADER, check)); + _route.pre_fader_changed.connect(bind (mem_fun (*this, &RouteUI::pre_fader_toggle), check)); items.push_back (CheckMenuElem(*check)); check->show_all(); check = new CheckMenuItem(_("Post Fader")); init_mute_menu(POST_FADER, check); - check->toggled.connect(bind (slot (*this, &RouteUI::toggle_mute_menu), POST_FADER, check)); - _route.post_fader_changed.connect(bind (slot (*this, &RouteUI::post_fader_toggle), check)); + check->signal_toggled().connect(bind (mem_fun (*this, &RouteUI::toggle_mute_menu), POST_FADER, check)); + _route.post_fader_changed.connect(bind (mem_fun (*this, &RouteUI::post_fader_toggle), check)); items.push_back (CheckMenuElem(*check)); check->show_all(); check = new CheckMenuItem(_("Control Outs")); init_mute_menu(CONTROL_OUTS, check); - check->toggled.connect(bind (slot (*this, &RouteUI::toggle_mute_menu), CONTROL_OUTS, check)); - _route.control_outs_changed.connect(bind (slot (*this, &RouteUI::control_outs_toggle), check)); + check->signal_toggled().connect(bind (mem_fun (*this, &RouteUI::toggle_mute_menu), CONTROL_OUTS, check)); + _route.control_outs_changed.connect(bind (mem_fun (*this, &RouteUI::control_outs_toggle), check)); items.push_back (CheckMenuElem(*check)); check->show_all(); check = new CheckMenuItem(_("Main Outs")); init_mute_menu(MAIN_OUTS, check); - check->toggled.connect(bind (slot (*this, &RouteUI::toggle_mute_menu), MAIN_OUTS, check)); - _route.main_outs_changed.connect(bind (slot (*this, &RouteUI::main_outs_toggle), check)); + check->signal_toggled().connect(bind (mem_fun (*this, &RouteUI::toggle_mute_menu), MAIN_OUTS, check)); + _route.main_outs_changed.connect(bind (mem_fun (*this, &RouteUI::main_outs_toggle), check)); items.push_back (CheckMenuElem(*check)); check->show_all(); items.push_back (SeparatorElem()); - items.push_back (MenuElem (_("MIDI Bind"), slot (*mute_button, &BindableToggleButton::midi_learn))); + items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn))); } void @@ -514,8 +513,8 @@ void RouteUI::reversibly_apply_route_boolean (string name, void (Route::*func)(bool, void *), bool yn, void *arg) { _session.begin_reversible_command (name); - _session.add_undo (bind (slot (_route, func), !yn, (void *) arg)); - _session.add_redo (bind (slot (_route, func), yn, (void *) arg)); + _session.add_undo (bind (mem_fun (_route, func), !yn, (void *) arg)); + _session.add_redo (bind (mem_fun (_route, func), yn, (void *) arg)); _session.commit_reversible_command (); } @@ -523,8 +522,8 @@ void RouteUI::reversibly_apply_audio_track_boolean (string name, void (AudioTrack::*func)(bool, void *), bool yn, void *arg) { _session.begin_reversible_command (name); - _session.add_undo (bind (slot (*audio_track(), func), !yn, (void *) arg)); - _session.add_redo (bind (slot (*audio_track(), func), yn, (void *) arg)); + _session.add_undo (bind (mem_fun (*audio_track(), func), !yn, (void *) arg)); + _session.add_redo (bind (mem_fun (*audio_track(), func), yn, (void *) arg)); _session.commit_reversible_command (); } @@ -565,15 +564,14 @@ bool RouteUI::choose_color() { bool picked; - GdkColor color; - gdouble current[4]; + Gdk::Color color; + Gdk::Color current; - current[0] = _color.get_red() / 65535.0; - current[1] = _color.get_green() / 65535.0; - current[2] = _color.get_blue() / 65535.0; - current[3] = 1.0; + current.set_red ( _color.get_red() / 65535); + current.set_green (_color.get_green() / 65535); + current.set_blue (_color.get_blue() / 65535); - color = Gtkmmext::UI::instance()->get_color (_("ardour: color selection"), picked, current); + color = Gtkmm2ext::UI::instance()->get_color (_("ardour: color selection"), picked, ¤t); if (picked) { set_color (color); @@ -583,14 +581,14 @@ RouteUI::choose_color() } void -RouteUI::set_color (Gdk_Color c) +RouteUI::set_color (Gdk::Color c) { char buf[64]; _color = c; ensure_xml_node (); - snprintf (buf, sizeof (buf), "%d:%d:%d", c.red, c.green, c.blue); + snprintf (buf, sizeof (buf), "%d:%d:%d", c.get_red(), c.get_green(), c.get_blue()); xml_node->add_property ("color", buf); _route.gui_changed ("color", (void *) 0); /* EMIT_SIGNAL */ @@ -634,9 +632,9 @@ RouteUI::set_color_from_route () if ((prop = xml_node->property ("color")) != 0) { int r, g, b; sscanf (prop->value().c_str(), "%d:%d:%d", &r, &g, &b); - _color.red = r; - _color.green = g; - _color.blue = b; + _color.set_red(r); + _color.set_green(g); + _color.set_blue(b); return 0; } return 1; @@ -649,9 +647,9 @@ RouteUI::remove_this_route () string prompt; if (is_audio_track()) { - prompt = compose (_("Do you really want to remove track \"%1\" ?\nYou may also lose the playlist used by this track.\n(cannot be undone)"), _route.name()); + prompt = string_compose (_("Do you really want to remove track \"%1\" ?\nYou may also lose the playlist used by this track.\n(cannot be undone)"), _route.name()); } else { - prompt = compose (_("Do you really want to remove bus \"%1\" ?\n(cannot be undone)"), _route.name()); + prompt = string_compose (_("Do you really want to remove bus \"%1\" ?\n(cannot be undone)"), _route.name()); } choices.push_back (_("Yes, remove it.")); @@ -659,13 +657,13 @@ RouteUI::remove_this_route () Choice prompter (prompt, choices); - prompter.chosen.connect (Gtk::Main::quit.slot()); + prompter.chosen.connect(sigc::ptr_fun(Gtk::Main::quit)); prompter.show_all (); Gtk::Main::run (); if (prompter.get_choice() == 0) { - Main::idle.connect (bind (slot (&RouteUI::idle_remove_this_route), this)); + Glib::signal_idle().connect (bind (sigc::ptr_fun (&RouteUI::idle_remove_this_route), this)); } } @@ -679,7 +677,7 @@ RouteUI::idle_remove_this_route (RouteUI *rui) void RouteUI::route_removed () { - ENSURE_GUI_THREAD(slot (*this, &RouteUI::route_removed)); + ENSURE_GUI_THREAD(mem_fun (*this, &RouteUI::route_removed)); delete this; } @@ -688,32 +686,30 @@ void RouteUI::route_rename () { ArdourPrompter name_prompter (true); + string result; name_prompter.set_prompt (_("new name: ")); name_prompter.set_initial_text (_route.name()); - name_prompter.done.connect (Gtk::Main::quit.slot()); name_prompter.show_all (); - Gtk::Main::run(); - - if (name_prompter.status == Gtkmmext::Prompter::cancelled) { - return; - } - - string result; - name_prompter.get_result (result); + switch (name_prompter.run ()) { - if (result.length() == 0) { - return; + case GTK_RESPONSE_ACCEPT: + name_prompter.get_result (result); + if (result.length()) { + strip_whitespace_edges (result); + _route.set_name (result, this); + } + break; } - strip_whitespace_edges (result); - _route.set_name (result, this); + return; + } void RouteUI::name_changed (void *src) { - ENSURE_GUI_THREAD(bind (slot (*this, &RouteUI::name_changed), src)); + ENSURE_GUI_THREAD(bind (mem_fun (*this, &RouteUI::name_changed), src)); name_label.set_text (_route.name()); } @@ -734,7 +730,7 @@ void RouteUI::route_active_changed () { if (route_active_menu_item) { - Gtkmmext::UI::instance()->call_slot (bind (slot (*route_active_menu_item, &CheckMenuItem::set_active), _route.active())); + Gtkmm2ext::UI::instance()->call_slot (bind (mem_fun (*route_active_menu_item, &CheckMenuItem::set_active), _route.active())); } } @@ -750,7 +746,7 @@ RouteUI::solo_safe_toggle(void* src, Gtk::CheckMenuItem* check) void RouteUI::pre_fader_toggle(void* src, Gtk::CheckMenuItem* check) { - ENSURE_GUI_THREAD(bind (slot (*this, &RouteUI::pre_fader_toggle), src, check)); + ENSURE_GUI_THREAD(bind (mem_fun (*this, &RouteUI::pre_fader_toggle), src, check)); bool yn = _route.get_mute_config(PRE_FADER); if (check->get_active() != yn) { @@ -761,7 +757,7 @@ RouteUI::pre_fader_toggle(void* src, Gtk::CheckMenuItem* check) void RouteUI::post_fader_toggle(void* src, Gtk::CheckMenuItem* check) { - ENSURE_GUI_THREAD(bind (slot (*this, &RouteUI::post_fader_toggle), src, check)); + ENSURE_GUI_THREAD(bind (mem_fun (*this, &RouteUI::post_fader_toggle), src, check)); bool yn = _route.get_mute_config(POST_FADER); if (check->get_active() != yn) { @@ -772,7 +768,7 @@ RouteUI::post_fader_toggle(void* src, Gtk::CheckMenuItem* check) void RouteUI::control_outs_toggle(void* src, Gtk::CheckMenuItem* check) { - ENSURE_GUI_THREAD(bind (slot (*this, &RouteUI::control_outs_toggle), src, check)); + ENSURE_GUI_THREAD(bind (mem_fun (*this, &RouteUI::control_outs_toggle), src, check)); bool yn = _route.get_mute_config(CONTROL_OUTS); if (check->get_active() != yn) { @@ -783,7 +779,7 @@ RouteUI::control_outs_toggle(void* src, Gtk::CheckMenuItem* check) void RouteUI::main_outs_toggle(void* src, Gtk::CheckMenuItem* check) { - ENSURE_GUI_THREAD(bind (slot (*this, &RouteUI::main_outs_toggle), src, check)); + ENSURE_GUI_THREAD(bind (mem_fun (*this, &RouteUI::main_outs_toggle), src, check)); bool yn = _route.get_mute_config(MAIN_OUTS); if (check->get_active() != yn) { @@ -835,7 +831,7 @@ RouteUI::name() const void RouteUI::map_frozen () { - ENSURE_GUI_THREAD (slot (*this, &RouteUI::map_frozen)); + ENSURE_GUI_THREAD (mem_fun (*this, &RouteUI::map_frozen)); AudioTrack* at = dynamic_cast(&_route);