summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour.menus1
-rw-r--r--gtk2_ardour/ardour3_ui_dark.rc.in12
-rw-r--r--gtk2_ardour/ardour3_ui_light.rc.in13
-rw-r--r--gtk2_ardour/bundle_manager.cc2
-rw-r--r--gtk2_ardour/editor_route_list.cc2
-rw-r--r--gtk2_ardour/io_selector.cc99
-rw-r--r--gtk2_ardour/io_selector.h6
-rw-r--r--gtk2_ardour/port_matrix.cc148
-rw-r--r--gtk2_ardour/port_matrix.h12
-rw-r--r--gtk2_ardour/utils.cc6
10 files changed, 169 insertions, 132 deletions
diff --git a/gtk2_ardour/ardour.menus b/gtk2_ardour/ardour.menus
index ed4ea0c2a6..13468a5633 100644
--- a/gtk2_ardour/ardour.menus
+++ b/gtk2_ardour/ardour.menus
@@ -402,6 +402,7 @@
<menuitem action='ToggleInspector'/>
<menuitem action='ToggleLocations'/>
<menuitem action='ToggleKeyEditor'/>
+ <menuitem action='ToggleBundleManager'/>
<menuitem action='ToggleThemeManager'/>
<menuitem action='ToggleBigClock'/>
<menuitem action='toggle-rhythm-ferret'/>
diff --git a/gtk2_ardour/ardour3_ui_dark.rc.in b/gtk2_ardour/ardour3_ui_dark.rc.in
index 2d18c277e9..c819a886c3 100644
--- a/gtk2_ardour/ardour3_ui_dark.rc.in
+++ b/gtk2_ardour/ardour3_ui_dark.rc.in
@@ -1202,6 +1202,16 @@ style "ardour_button" ="default_button"
ythickness = 1
}
+style "odd_port_groups"
+{
+ fg[NORMAL] = { 0.6, 0.6, 0.6 }
+}
+
+style "even_port_groups"
+{
+ fg[NORMAL] = { 0.3, 0.3, 0.3 }
+}
+
#---------------------------------------------------------------
class "GtkWidget" style:highest "default_base"
@@ -1578,4 +1588,6 @@ widget "*ChannelCountSelector" style:highest "medium_bold_entry"
widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic"
widget "*RegionListWholeFile" style:highest "treeview_parent_node"
widget "*EditorHScrollbar" style:highest "editor_hscrollbar"
+widget "*OddPortGroups" style:highest "odd_port_groups"
+widget "*EvenPortGroups" style:highest "even_port_groups"
diff --git a/gtk2_ardour/ardour3_ui_light.rc.in b/gtk2_ardour/ardour3_ui_light.rc.in
index 5a5ab6cc3f..ec1cb5275d 100644
--- a/gtk2_ardour/ardour3_ui_light.rc.in
+++ b/gtk2_ardour/ardour3_ui_light.rc.in
@@ -1199,6 +1199,16 @@ style "ardour_button" ="default_button"
ythickness = 1
}
+style "odd_port_groups"
+{
+ fg[NORMAL] = { 0.6, 0.6, 0.6 }
+}
+
+style "even_port_groups"
+{
+ fg[NORMAL] = { 0.3, 0.3, 0.3 }
+}
+
#---------------------------------------------------------------
class "GtkWidget" style:highest "default_base"
@@ -1575,4 +1585,5 @@ widget "*ChannelCountSelector" style:highest "medium_bold_entry"
widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic"
widget "*RegionListWholeFile" style:highest "treeview_parent_node"
widget "*EditorHScrollbar" style:highest "editor_hscrollbar"
-
+widget "*OddPortGroups" style:highest "odd_port_groups"
+widget "*EvenPortGroups" style:highest "even_port_groups"
diff --git a/gtk2_ardour/bundle_manager.cc b/gtk2_ardour/bundle_manager.cc
index 8486c5c30f..0ba8d8eb96 100644
--- a/gtk2_ardour/bundle_manager.cc
+++ b/gtk2_ardour/bundle_manager.cc
@@ -81,7 +81,7 @@ std::string
BundleEditorMatrix::row_name (int r) const
{
std::stringstream s;
- s << r;
+ s << r + 1; // 1-based counting
return s.str();
}
diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc
index 8fdc1ce110..43e064b702 100644
--- a/gtk2_ardour/editor_route_list.cc
+++ b/gtk2_ardour/editor_route_list.cc
@@ -103,7 +103,7 @@ Editor::handle_new_route (Session::RouteList& routes)
row = *(route_display_model->append ());
#endif
- cerr << route->name() << " marked for display ? " << tv->marked_for_display() << endl;
+ // cerr << route->name() << " marked for display ? " << tv->marked_for_display() << endl;
row[route_display_columns.text] = route->name();
row[route_display_columns.visible] = tv->marked_for_display();
diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc
index c2e78485f8..94da96573c 100644
--- a/gtk2_ardour/io_selector.cc
+++ b/gtk2_ardour/io_selector.cc
@@ -53,12 +53,6 @@ IOSelector::IOSelector (ARDOUR::Session& session, boost::shared_ptr<ARDOUR::IO>
} else {
_io->input_changed.connect (mem_fun(*this, &IOSelector::ports_changed));
}
-
- /* this got lost in a merge from 2.0 */
-
- // set_button_sensitivity ();
- // io->name_changed.connect (mem_fun(*this, &IOSelector::name_changed));
-
}
void
@@ -210,55 +204,6 @@ IOSelector::row_descriptor () const
return _("port");
}
-#if 0
-void
-IOSelector::set_button_sensitivity ()
-{
- if (for_input) {
-
- if (io->input_maximum() < 0 || io->input_maximum() > (int) io->n_inputs()) {
- add_port_button.set_sensitive (true);
- } else {
- add_port_button.set_sensitive (false);
- }
-
- } else {
-
- if (io->output_maximum() < 0 || io->output_maximum() > (int) io->n_outputs()) {
- add_port_button.set_sensitive (true);
- } else {
- add_port_button.set_sensitive (false);
- }
-
- }
-
- if (for_input) {
- if (io->n_inputs() && (io->input_minimum() < 0 || io->input_minimum() < (int) io->n_inputs())) {
- remove_port_button.set_sensitive (true);
- } else {
- remove_port_button.set_sensitive (false);
- }
-
- } else {
- if (io->n_outputs() && (io->output_minimum() < 0 || io->output_minimum() < (int) io->n_outputs())) {
- remove_port_button.set_sensitive (true);
- } else {
- remove_port_button.set_sensitive (false);
- }
- }
-}
-#endif
-
-#if 0
-void
-IOSelector::name_changed (void* src)
-{
- ENSURE_GUI_THREAD(bind (mem_fun(*this, &IOSelector::name_changed), src));
-
- display_ports ();
-}
-#endif
-
IOSelectorWindow::IOSelectorWindow (
ARDOUR::Session& session, boost::shared_ptr<ARDOUR::IO> io, bool for_input, bool can_cancel
)
@@ -273,20 +218,19 @@ IOSelectorWindow::IOSelectorWindow (
add_events (Gdk::KEY_PRESS_MASK | Gdk::KEY_RELEASE_MASK);
set_name ("IOSelectorWindow2");
- string title;
- if (for_input) {
- title = string_compose(_("%1 input"), io->name());
- } else {
- title = string_compose(_("%1 output"), io->name());
- }
+ // io->name_changed.connect (mem_fun(*this, &IOSelectorWindow::io_name_changed));
if (_selector.maximum_rows() > _selector.n_rows()) {
add_button.set_name ("IOSelectorButton");
add_button.set_image (*Gtk::manage (new Gtk::Image (Gtk::Stock::ADD, Gtk::ICON_SIZE_BUTTON)));
get_action_area()->pack_start (add_button, false, false);
add_button.signal_clicked().connect (sigc::mem_fun (_selector, &IOSelector::add_row));
+ }
+
+ if (!for_input) {
+ io->output_changed.connect (mem_fun(*this, &IOSelectorWindow::ports_changed));
} else {
- add_button.hide ();
+ io->input_changed.connect (mem_fun(*this, &IOSelectorWindow::ports_changed));
}
rescan_button.set_name ("IOSelectorButton");
@@ -314,12 +258,14 @@ IOSelectorWindow::IOSelectorWindow (
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);
+ io_name_changed (this);
+ ports_changed (IOChange (0), this);
+
show_all ();
- signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), reinterpret_cast<Window *> (this)));
+ signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), this));
}
IOSelectorWindow::~IOSelectorWindow()
@@ -328,6 +274,16 @@ IOSelectorWindow::~IOSelectorWindow()
}
void
+IOSelectorWindow::ports_changed (ARDOUR::IOChange change, void *src)
+{
+ if (_selector.maximum_rows() > _selector.n_rows()) {
+ add_button.set_sensitive (true);
+ } else {
+ add_button.set_sensitive (false);
+ }
+}
+
+void
IOSelectorWindow::rescan ()
{
_selector.redisplay ();
@@ -354,6 +310,21 @@ IOSelectorWindow::on_map ()
Window::on_map ();
}
+void
+IOSelectorWindow::io_name_changed (void* src)
+{
+ ENSURE_GUI_THREAD(bind (mem_fun(*this, &IOSelectorWindow::io_name_changed), src));
+
+ string title;
+
+ if (!_selector.offering_input()) {
+ title = string_compose(_("%1 input"), _selector.io()->name());
+ } else {
+ title = string_compose(_("%1 output"), _selector.io()->name());
+ }
+
+ set_title (title);
+}
PortInsertUI::PortInsertUI (ARDOUR::Session& sess, boost::shared_ptr<ARDOUR::PortInsert> pi)
: input_selector (sess, pi->io(), true),
diff --git a/gtk2_ardour/io_selector.h b/gtk2_ardour/io_selector.h
index c31354a5a7..e720a630b3 100644
--- a/gtk2_ardour/io_selector.h
+++ b/gtk2_ardour/io_selector.h
@@ -36,10 +36,11 @@ class IOSelector : public PortMatrix {
void add_row ();
void remove_row (int);
std::string row_descriptor () const;
+ boost::shared_ptr<ARDOUR::IO> const io() { return _io; }
private:
boost::shared_ptr<ARDOUR::IO> _io;
-
+
void ports_changed (ARDOUR::IOChange, void*);
};
@@ -67,6 +68,9 @@ class IOSelectorWindow : public ArdourDialog
void rescan ();
void cancel ();
void accept ();
+
+ void ports_changed (ARDOUR::IOChange change, void *src);
+ void io_name_changed (void *src);
};
diff --git a/gtk2_ardour/port_matrix.cc b/gtk2_ardour/port_matrix.cc
index f0a26d9840..e8297b6193 100644
--- a/gtk2_ardour/port_matrix.cc
+++ b/gtk2_ardour/port_matrix.cc
@@ -41,6 +41,8 @@
#include "gui_thread.h"
#include "i18n.h"
+using namespace Gtk;
+
/** Add a port to a group.
* @param p Port name, with or without prefix.
*/
@@ -81,7 +83,7 @@ PortGroupUI::PortGroupUI (PortMatrix& m, PortGroup& g)
for (int i = 0; i < rows; ++i) {
for (uint32_t j = 0; j < _port_group.ports.size(); ++j) {
- Gtk::CheckButton* b = new Gtk::CheckButton;
+ CheckButton* b = new CheckButton;
b->signal_toggled().connect (
sigc::bind (sigc::mem_fun (*this, &PortGroupUI::port_checkbutton_toggled), b, i, j)
@@ -118,7 +120,6 @@ void
PortGroupUI::visibility_checkbutton_toggled ()
{
_port_group.visible = _visibility_checkbutton.get_active ();
- setup_visibility ();
}
/** @return Width and height of a single checkbutton in a port group table */
@@ -143,14 +144,14 @@ PortGroupUI::unit_size () const
}
/** @return Table widget containing the port checkbuttons */
-Gtk::Widget&
+Widget&
PortGroupUI::get_table ()
{
return _table_box;
}
/** @return Checkbutton used to toggle visibility */
-Gtk::Widget&
+Widget&
PortGroupUI::get_visibility_checkbutton ()
{
return _visibility_checkbutton;
@@ -159,7 +160,7 @@ PortGroupUI::get_visibility_checkbutton ()
/** Handle a toggle of a port check button */
void
-PortGroupUI::port_checkbutton_toggled (Gtk::CheckButton* b, int r, int c)
+PortGroupUI::port_checkbutton_toggled (CheckButton* b, int r, int c)
{
if (_ignore_check_button_toggle == false) {
_port_matrix.set_state (r, _port_group.prefix + _port_group.ports[c], b->get_active());
@@ -183,9 +184,9 @@ PortGroupUI::setup_visibility ()
}
RotatedLabelSet::RotatedLabelSet (PortGroupList& g)
- : Glib::ObjectBase ("RotatedLabelSet"), Gtk::Widget (), _port_group_list (g), _base_width (128)
+ : Glib::ObjectBase ("RotatedLabelSet"), Widget (), _port_group_list (g), _base_width (128)
{
- set_flags (Gtk::NO_WINDOW);
+ set_flags (NO_WINDOW);
set_angle (30);
}
@@ -209,9 +210,9 @@ RotatedLabelSet::set_angle (int degrees)
}
void
-RotatedLabelSet::on_size_request (Gtk::Requisition* requisition)
+RotatedLabelSet::on_size_request (Requisition* requisition)
{
- *requisition = Gtk::Requisition ();
+ *requisition = Requisition ();
if (_pango_layout == 0) {
return;
@@ -238,7 +239,7 @@ RotatedLabelSet::on_size_request (Gtk::Requisition* requisition)
}
void
-RotatedLabelSet::on_size_allocate (Gtk::Allocation& allocation)
+RotatedLabelSet::on_size_allocate (Allocation& allocation)
{
set_allocation (allocation);
@@ -252,15 +253,15 @@ RotatedLabelSet::on_size_allocate (Gtk::Allocation& allocation)
void
RotatedLabelSet::on_realize ()
{
- Gtk::Widget::on_realize ();
+ Widget::on_realize ();
- Glib::RefPtr<Gtk::Style> style = get_style ();
+ Glib::RefPtr<Style> style = get_style ();
if (!_gdk_window) {
GdkWindowAttr attributes;
memset (&attributes, 0, sizeof (attributes));
- Gtk::Allocation allocation = get_allocation ();
+ Allocation allocation = get_allocation ();
attributes.x = allocation.get_x ();
attributes.y = allocation.get_y ();
attributes.width = allocation.get_width ();
@@ -271,13 +272,13 @@ RotatedLabelSet::on_realize ()
attributes.wclass = GDK_INPUT_OUTPUT;
_gdk_window = Gdk::Window::create (get_window (), &attributes, GDK_WA_X | GDK_WA_Y);
- unset_flags (Gtk::NO_WINDOW);
+ unset_flags (NO_WINDOW);
set_window (_gdk_window);
- _bg_colour = style->get_bg (Gtk::STATE_NORMAL );
- modify_bg (Gtk::STATE_NORMAL, _bg_colour);
- _fg_colour = style->get_fg (Gtk::STATE_NORMAL);
-;
+ _bg_colour = style->get_bg (STATE_NORMAL );
+ modify_bg (STATE_NORMAL, _bg_colour);
+ _fg_colour = style->get_fg (STATE_NORMAL);
+
_gdk_window->set_user_data (gobj ());
/* Set up Pango stuff */
@@ -297,7 +298,7 @@ RotatedLabelSet::on_unrealize()
{
_gdk_window.clear ();
- Gtk::Widget::on_unrealize ();
+ Widget::on_unrealize ();
}
@@ -376,20 +377,21 @@ PortMatrix::PortMatrix (ARDOUR::Session& session, ARDOUR::DataType type, bool of
_row_labels_vbox[0] = _row_labels_vbox[1] = 0;
_side_vbox_pad[0] = _side_vbox_pad[1] = 0;
+ _visibility_checkbutton_box.pack_start (*(manage (new Label (_("Connections displayed: ")))), false, false, 10);
pack_start (_visibility_checkbutton_box, false, false);
- _side_vbox[0].pack_start (*Gtk::manage (new Gtk::Label ("")));
+ _side_vbox[0].pack_start (*manage (new Label ("")));
_overall_hbox.pack_start (_side_vbox[0], false, false);
- _scrolled_window.set_policy (Gtk::POLICY_ALWAYS, Gtk::POLICY_NEVER);
- _scrolled_window.set_shadow_type (Gtk::SHADOW_NONE);
- Gtk::VBox* b = new Gtk::VBox;
+ _scrolled_window.set_policy (POLICY_ALWAYS, POLICY_NEVER);
+ _scrolled_window.set_shadow_type (SHADOW_NONE);
+ VBox* b = new VBox;
b->pack_start (_column_labels, false, false);
b->pack_start (_port_group_hbox, false, false);
- Gtk::Alignment* a = new Gtk::Alignment (0, 1, 0, 0);
- a->add (*Gtk::manage (b));
- _scrolled_window.add (*Gtk::manage (a));
+ Alignment* a = new Alignment (0, 1, 0, 0);
+ a->add (*manage (b));
+ _scrolled_window.add (*manage (a));
_overall_hbox.pack_start (_scrolled_window);
- _side_vbox[1].pack_start (*Gtk::manage (new Gtk::Label ("")));
+ _side_vbox[1].pack_start (*manage (new Label ("")));
// _overall_hbox.pack_start (_side_vbox[1]);
pack_start (_overall_hbox);
@@ -407,7 +409,7 @@ PortMatrix::clear ()
{
for (int i = 0; i < 2; ++i) {
- for (std::vector<Gtk::EventBox*>::iterator j = _row_labels[i].begin(); j != _row_labels[i].end(); ++j) {
+ for (std::vector<EventBox*>::iterator j = _row_labels[i].begin(); j != _row_labels[i].end(); ++j) {
delete *j;
}
_row_labels[i].clear ();
@@ -468,7 +470,7 @@ PortMatrix::setup_dimensions ()
/* Row labels */
for (int i = 0; i < 2; ++i) {
- for (std::vector<Gtk::EventBox*>::iterator j = _row_labels[i].begin(); j != _row_labels[i].end(); ++j) {
+ for (std::vector<EventBox*>::iterator j = _row_labels[i].begin(); j != _row_labels[i].end(); ++j) {
(*j)->get_child()->set_size_request (-1, unit_size.second);
}
@@ -489,49 +491,77 @@ PortMatrix::setup ()
/* Row labels */
for (int i = 0; i < 2; ++i) {
- _row_labels_vbox[i] = new Gtk::VBox;
+ _row_labels_vbox[i] = new VBox;
int const run_rows = std::max (1, rows);
for (int j = 0; j < run_rows; ++j) {
- Gtk::Label* label = new Gtk::Label (rows == 0 ? "Quim" : row_name (j));
- Gtk::EventBox* b = new Gtk::EventBox;
+
+ /* embolden the port/channel name */
+
+ string s = "<b>";
+ s += row_name (j);
+ s += "</b>";
+
+ Label* label = manage (new Label (s));
+ EventBox* b = manage (new EventBox);
+
+ label->set_use_markup (true);
+
b->set_events (Gdk::BUTTON_PRESS_MASK);
b->signal_button_press_event().connect (sigc::bind (sigc::mem_fun (*this, &IOSelector::row_label_button_pressed), j));
- b->add (*Gtk::manage (label));
+ b->add (*label);
+
_row_labels[i].push_back (b);
_row_labels_vbox[i]->pack_start (*b, false, false);
}
_side_vbox[i].pack_start (*_row_labels_vbox[i], false, false);
- _side_vbox_pad[i] = new Gtk::Label ("");
+ _side_vbox_pad[i] = new Label ("");
_side_vbox[i].pack_start (*_side_vbox_pad[i], false, false);
}
/* Checkbutton tables and visibility checkbuttons */
- int n = 0;
for (PortGroupList::iterator i = _port_group_list.begin(); i != _port_group_list.end(); ++i) {
PortGroupUI* t = new PortGroupUI (*this, **i);
- /* XXX: this is a bit of a hack; should probably use a configurable colour here */
- Gdk::Color alt_bg = get_style()->get_bg (Gtk::STATE_NORMAL);
- alt_bg.set_rgb (alt_bg.get_red() + 4096, alt_bg.get_green() + 4096, alt_bg.get_blue () + 4096);
- if ((n % 2) == 0) {
- t->get_table().modify_bg (Gtk::STATE_NORMAL, alt_bg);
- }
-
_port_group_ui.push_back (t);
_port_group_hbox.pack_start (t->get_table(), false, false);
_visibility_checkbutton_box.pack_start (t->get_visibility_checkbutton(), false, false);
- ++n;
+
+ CheckButton* chk = dynamic_cast<CheckButton*>(&t->get_visibility_checkbutton());
+ if (chk) {
+ chk->signal_toggled().connect (sigc::mem_fun (*this, &PortMatrix::reset_visibility));
+ }
}
show_all ();
+ reset_visibility ();
+}
+
+void
+PortMatrix::reset_visibility ()
+{
+ /* now adjust visibility and coloring */
+
+ bool even = true;
+ Gdk::Color odd_bg (color_from_style ("OddPortGroups", STATE_NORMAL, "fg"));
+ Gdk::Color even_bg (color_from_style ("EvenPortGroups", STATE_NORMAL, "fg"));
+
for (std::vector<PortGroupUI*>::iterator i = _port_group_ui.begin(); i != _port_group_ui.end(); ++i) {
+
(*i)->setup_visibility ();
+
+ if ((*i)->port_group().visible) {
+ if (even) {
+ (*i)->get_table().modify_bg (STATE_NORMAL, even_bg);
+ } else {
+ (*i)->get_table().modify_bg (STATE_NORMAL, odd_bg);
+ }
+ even = !even;
+ }
}
-
}
void
@@ -550,8 +580,8 @@ PortMatrix::row_label_button_pressed (GdkEventButton* e, int r)
return false;
}
- Gtk::Menu* menu = Gtk::manage (new Gtk::Menu);
- Gtk::Menu_Helpers::MenuList& items = menu->items ();
+ Menu* menu = manage (new Menu);
+ Menu_Helpers::MenuList& items = menu->items ();
menu->set_name ("ArdourContextMenu");
bool const can_add = maximum_rows () > n_rows ();
@@ -559,13 +589,13 @@ PortMatrix::row_label_button_pressed (GdkEventButton* e, int r)
std::string const name = row_name (r);
items.push_back (
- Gtk::Menu_Helpers::MenuElem (string_compose(_("Add %1"), row_descriptor()), sigc::mem_fun (*this, &PortMatrix::add_row))
+ Menu_Helpers::MenuElem (string_compose(_("Add %1"), row_descriptor()), sigc::mem_fun (*this, &PortMatrix::add_row))
);
items.back().set_sensitive (can_add);
items.push_back (
- Gtk::Menu_Helpers::MenuElem (string_compose(_("Remove %1 \"%2\""), row_descriptor(), name), sigc::bind (sigc::mem_fun (*this, &PortMatrix::remove_row), r))
+ Menu_Helpers::MenuElem (string_compose(_("Remove %1 \"%2\""), row_descriptor(), name), sigc::bind (sigc::mem_fun (*this, &PortMatrix::remove_row), r))
);
items.back().set_sensitive (can_remove);
@@ -628,12 +658,22 @@ PortGroupList::refresh ()
PortGroup* g = 0;
- if (_type == ARDOUR::DataType::AUDIO && boost::dynamic_pointer_cast<ARDOUR::AudioTrack> (*i)) {
- g = &track;
- } else if (_type == ARDOUR::DataType::MIDI && boost::dynamic_pointer_cast<ARDOUR::MidiTrack> (*i)) {
- g = &track;
- } else if (_type == ARDOUR::DataType::AUDIO && boost::dynamic_pointer_cast<ARDOUR::Route> (*i)) {
- g = &buss;
+ if (_type == ARDOUR::DataType::AUDIO) {
+
+ if (boost::dynamic_pointer_cast<ARDOUR::AudioTrack> (*i)) {
+ g = &track;
+ } else if (!boost::dynamic_pointer_cast<ARDOUR::MidiTrack>(*i)) {
+ g = &buss;
+ }
+
+
+ } else if (_type == ARDOUR::DataType::MIDI) {
+
+ if (boost::dynamic_pointer_cast<ARDOUR::MidiTrack> (*i)) {
+ g = &track;
+ }
+
+ /* No MIDI busses yet */
}
if (g) {
diff --git a/gtk2_ardour/port_matrix.h b/gtk2_ardour/port_matrix.h
index a945d00496..dc863ad26b 100644
--- a/gtk2_ardour/port_matrix.h
+++ b/gtk2_ardour/port_matrix.h
@@ -162,6 +162,7 @@ class PortMatrix : public Gtk::VBox {
void set_type (ARDOUR::DataType);
void set_offer_inputs (bool);
+ bool offering_input() const { return _offer_inputs; }
virtual void set_state (int, std::string const &, bool) = 0;
virtual bool get_state (int, std::string const &) const = 0;
@@ -178,11 +179,6 @@ class PortMatrix : public Gtk::VBox {
bool _offer_inputs;
private:
- void setup ();
- void clear ();
- void setup_dimensions ();
- bool row_label_button_pressed (GdkEventButton*, int);
-
PortGroupList _port_group_list;
ARDOUR::DataType _type;
std::vector<PortGroupUI*> _port_group_ui;
@@ -195,6 +191,12 @@ class PortMatrix : public Gtk::VBox {
Gtk::ScrolledWindow _scrolled_window;
Gtk::Label* _side_vbox_pad[2];
Gtk::HBox _visibility_checkbutton_box;
+
+ void setup ();
+ void clear ();
+ void setup_dimensions ();
+ bool row_label_button_pressed (GdkEventButton*, int);
+ void reset_visibility ();
};
#endif
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index f09ef1b27f..020bc6f4d6 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -1,7 +1,7 @@
/*
Copyright (C) 2003 Paul Davis
- This program is free software; you can redistribute it and/or modify
+ This program is free software; you an redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
@@ -348,14 +348,11 @@ color_from_style (string widget_style_name, int state, string attr)
return Gdk::Color ("red");
}
- cerr << "got style for " << widget_style_name << endl;
-
if (attr == "fg") {
return Gdk::Color (&style->fg[state]);
}
if (attr == "bg") {
- cerr << "returning color from bg\n";
return Gdk::Color (&style->bg[state]);
}
@@ -387,7 +384,6 @@ color_from_style (string widget_style_name, int state, string attr)
return Gdk::Color ("red");
}
-
bool
canvas_item_visible (ArdourCanvas::Item* item)
{