-IOSelectorWindow::IOSelectorWindow (Session& sess, IO& ior, bool input, bool can_cancel)
- : ArdourDialog ("i/o selector"),
- _selector (sess, ior, input),
- ok_button (can_cancel ? _("OK"): _("Close")),
- cancel_button (_("Cancel")),
- rescan_button (_("Rescan"))
-
-{
- add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
- set_name ("IOSelectorWindow");
-
- string title;
- if (input) {
- title = compose(_("%1 input"), ior.name());
- } else {
- title = compose(_("%1 output"), ior.name());
- }
-
- ok_button.set_name ("IOSelectorButton");
- cancel_button.set_name ("IOSelectorButton");
- rescan_button.set_name ("IOSelectorButton");
-
- button_box.set_spacing (5);
- button_box.set_border_width (5);
- button_box.set_homogeneous (true);
- button_box.pack_start (rescan_button);
-
- if (can_cancel) {
- button_box.pack_start (cancel_button);
- }
- else {
- cancel_button.hide();
- }
-
- button_box.pack_start (ok_button);
-
- vbox.pack_start (_selector);
- vbox.pack_start (button_box, false, false);
-
- ok_button.signal_clicked().connect (mem_fun(*this, &IOSelectorWindow::accept));
- cancel_button.signal_clicked().connect (mem_fun(*this, &IOSelectorWindow::cancel));
- rescan_button.signal_clicked().connect (mem_fun(*this, &IOSelectorWindow::rescan));
-
- set_title (title);
- set_position (Gtk::WIN_POS_MOUSE);
- add (vbox);
-
- delete_event.connect (bind (ptr_fun (just_hide_it), reinterpret_cast<Window *> (this)));
-}
-
-IOSelectorWindow::~IOSelectorWindow()
-{
-}
-
-void
-IOSelectorWindow::rescan ()
-{
- _selector.redisplay ();
-}
-
-void
-IOSelectorWindow::cancel ()
-{
- _selector.Finished(IOSelector::Cancelled);
- hide ();
-}
-
-void
-IOSelectorWindow::accept ()
-{
- _selector.Finished(IOSelector::Accepted);
- hide ();
-}
-
-
-gint
-IOSelectorWindow::on_map (GdkEventAny *ev)
-{
- _selector.redisplay ();
- return Window::on_map (ev);
-}
-
-/*************************
- The IO Selector "widget"
- *************************/
-
-IOSelector::IOSelector (Session& sess, IO& ior, bool input)
- : session (sess),
- io (ior),
- for_input (input),
- port_frame (for_input? _("Inputs") : _("Outputs")),
- add_port_button (for_input? _("Add Input") : _("Add Output")),
- remove_port_button (for_input? _("Remove Input") : _("Remove Output")),
- clear_connections_button (_("Disconnect All"))