#include <gtkmm/frame.h>
#include <gtkmm/notebook.h>
#include <gtkmm/treeview.h>
+#include <gtkmm/liststore.h>
#include "ardour_dialog.h"
-#include <pbd/lockmonitor.h>
+#include <glibmm/thread.h>
namespace ARDOUR {
class Session;
void set_session (ARDOUR::Session *);
protected:
- bool on_map (GdkEventAny *);
+ void on_map ();
private:
ARDOUR::Connection *current_connection;
int selected_port;
bool push_at_front;
+
+ struct ConnectionDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
+ ConnectionDisplayModelColumns() {
+ add (name);
+ add (connection);
+ }
+ Gtk::TreeModelColumn<Glib::ustring> name;
+ Gtk::TreeModelColumn<ARDOUR::Connection*> connection;
+ };
+
+ ConnectionDisplayModelColumns connection_columns;
+
+ Glib::RefPtr<Gtk::ListStore> input_connection_model;
+ Glib::RefPtr<Gtk::ListStore> output_connection_model;
+
Gtk::TreeView input_connection_display;
Gtk::TreeView output_connection_display;
Gtk::ScrolledWindow input_scroller;
Gtk::Button clear_button;
Gtk::Button add_port_button;
- PBD::Lock port_display_lock;
+ Glib::Mutex port_display_lock;
slist<Gtk::ScrolledWindow *> port_displays;
Gtk::Button ok_button;
void cancel ();
void accept ();
- void port_selection_handler (gint row, gint col, GdkEvent*, Gtk::TreeView*);
+ void selection_changed (Gtk::TreeView* display);
void add_port ();
void remove_port (int which_port);
void port_column_click (gint col, Gtk::TreeView* );
gint port_button_event (GdkEventButton *, Gtk::TreeView*);
gint connection_click (GdkEventButton *ev, Gtk::TreeView*);
- void connection_selected (gint, gint, GdkEvent *, bool);
+ void connection_selection_changed (Gtk::TreeView&, Glib::RefPtr<Gtk::ListStore>&);
sigc::connection config_connection;
sigc::connection connect_connection;