Some fixes to ioselector. Remaining fixes coming soon

git-svn-id: svn://localhost/trunk/ardour2@207 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Doug McLain
2005-12-24 13:00:17 +00:00
parent 143cb330b6
commit d7cd04b719
3 changed files with 26 additions and 29 deletions

View File

@@ -737,7 +737,7 @@ style "io_selector_port_list" = "medium_text"
style "io_selector_notebook" = "default_base"
{
fg[NORMAL] = { 0.98, 0.76, 0.14 }
font_name ="sans bold 14"
font_name ="sans bold 8"
}
style "tearoff_arrow" = "medium_bold_entry"

View File

@@ -284,15 +284,7 @@ IOSelector::rescan ()
/* get relevant current JACK ports */
ports = session.engine().get_ports ("", JACK_DEFAULT_AUDIO_TYPE, for_input?JackPortIsOutput:JackPortIsInput);
if (ports == 0) {
return;
}
/* get relevant current JACK ports */
ports = session.engine().get_ports ("", JACK_DEFAULT_AUDIO_TYPE, for_input?JackPortIsOutput:JackPortIsInput);
ports = session.engine().get_ports ("", JACK_DEFAULT_AUDIO_TYPE, for_input ? JackPortIsOutput : JackPortIsInput);
if (ports == 0) {
return;
@@ -312,7 +304,7 @@ IOSelector::rescan ()
pos = str.find (':');
newpair.first = str.substr (0, pos);
newpair.first = str.substr (0, pos);
portname = str.substr (pos+1);
result = portmap.insert (newpair);
@@ -402,7 +394,7 @@ IOSelector::display_ports ()
for (uint32_t n = 0; n < limit; ++n) {
TreeView* tview;
ScrolledWindow *scroller;
//ScrolledWindow *scroller;
string really_short_name;
if (for_input) {
@@ -430,15 +422,16 @@ IOSelector::display_ports ()
tview->set_headers_visible (true);
tview->set_name ("IOSelectorPortList");
scroller = manage (new ScrolledWindow);
port_box.pack_start (*tview);
//scroller = manage (new ScrolledWindow);
scroller->add (*tview);
scroller->set_policy (POLICY_NEVER, POLICY_AUTOMATIC);
//scroller->add (*tview);
//scroller->set_policy (POLICY_NEVER, POLICY_NEVER);
port_displays.insert (port_displays.end(), tview);
port_box.pack_start (*scroller);
//port_box.pack_start (*scroller);
scroller->set_size_request (-1, 75);
//scroller->set_size_request (-1, 75);
/* now fill the clist with the current connections */
@@ -449,6 +442,7 @@ IOSelector::display_ports ()
for (uint32_t c = 0; connections[c]; ++c) {
TreeModel::Row row = *(port_model->append());
row[port_display_columns.displayed_name] = connections[c];
row[port_display_columns.full_name] = connections[c];
}
}
@@ -478,11 +472,11 @@ IOSelector::display_ports ()
TreeViewColumn* col = tview->get_column (0);
col->set_clickable (true);
//col->set_widget(0);
/* handle button events on the column header and within the treeview itself */
//col->get_widget()->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::port_column_button_release), tview));
tview->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::connection_button_release), tview));
tview->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::connection_button_release), tview));
}
port_box.show_all ();
@@ -629,7 +623,7 @@ IOSelector::connection_button_release (GdkEventButton *ev, TreeView *treeview)
between the named port and the port represented by the treeview.
*/
TreeIter iter;
Gtk::TreeModel::iterator iter;
TreeModel::Path path;
TreeViewColumn* column;
int cellx;
@@ -640,20 +634,22 @@ IOSelector::connection_button_release (GdkEventButton *ev, TreeView *treeview)
if (ev->button != 1) {
return false;
}
if (!(Keyboard::is_delete_event (ev))) {
return false;
//return false;
}
if (!treeview->get_path_at_pos ((int)ev->x, (int)ev->y, path, column, cellx, celly)) {
return false;
}
if ((iter = treeview->get_model()->get_iter (path))) {
cerr << "path = " << path.to_string() << endl;
if ((iter = treeview->get_model()->get_iter (path.to_string()))) {
/* path is valid */
ustring connected_port_name = (*iter)[port_display_columns.full_name];
cerr << "selected row displayed_name: " << (*iter)[port_display_columns.displayed_name] << endl;
cerr << "selected row string was " << connected_port_name << endl;
Port *port = reinterpret_cast<Port *> (treeview->get_data (_("port")));
if (for_input) {
@@ -668,13 +664,14 @@ IOSelector::connection_button_release (GdkEventButton *ev, TreeView *treeview)
return true;
}
gint
IOSelector::port_column_button_release (GdkEventButton *event, TreeView* treeview)
int
IOSelector::port_column_button_release (GdkEventButton* event, TreeView* treeview)
{
/* this handles button release on the button at the top of a single-column
treeview (representing a port)
*/
cerr << "IOSelector::port_column_button_release() called" << endl;
if (Keyboard::is_delete_event (event)) {
Port* port;
{

View File

@@ -121,7 +121,7 @@ class IOSelector : public Gtk::VBox {
void remove_port ();
gint remove_port_when_idle (ARDOUR::Port *);
gint port_column_button_release (GdkEventButton*, Gtk::TreeView*);
gint port_column_button_release (GdkEventButton *, Gtk::TreeView*);
gint connection_button_release (GdkEventButton *, Gtk::TreeView*);
void select_treeview(Gtk::TreeView*);