summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-02-10 02:09:46 +0000
committerCarl Hetherington <carl@carlh.net>2009-02-10 02:09:46 +0000
commitc601946bc87d503f4bda1fc2d7321d99acc9d5f7 (patch)
treeb4aaf1c026d10b89ad7836337c27714dd43976cf
parent9fc369aa44e9c934f0f9fea7e02d812831cc7468 (diff)
Bit of a hack to make the port matrix for port inserts at least vaguely usable.
git-svn-id: svn://localhost/ardour2/branches/3.0@4516 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/io_selector.cc3
-rw-r--r--gtk2_ardour/port_matrix.cc4
-rw-r--r--gtk2_ardour/port_matrix.h8
-rw-r--r--gtk2_ardour/port_matrix_body.cc8
4 files changed, 19 insertions, 4 deletions
diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc
index 76892dcd3d..e868a6ad2b 100644
--- a/gtk2_ardour/io_selector.cc
+++ b/gtk2_ardour/io_selector.cc
@@ -347,6 +347,9 @@ PortInsertUI::PortInsertUI (ARDOUR::Session& sess, boost::shared_ptr<ARDOUR::Por
: input_selector (sess, pi->io(), true),
output_selector (sess, pi->io(), false)
{
+ output_selector.set_min_height_divisor (2);
+ input_selector.set_min_height_divisor (2);
+
pack_start (output_selector, true, true);
pack_start (input_selector, true, true);
}
diff --git a/gtk2_ardour/port_matrix.cc b/gtk2_ardour/port_matrix.cc
index 1c00fb8994..63779a6083 100644
--- a/gtk2_ardour/port_matrix.cc
+++ b/gtk2_ardour/port_matrix.cc
@@ -45,7 +45,8 @@ PortMatrix::PortMatrix (ARDOUR::Session& session, ARDOUR::DataType type)
_setup_once (false),
_arrangement (TOP_TO_RIGHT),
_row_index (0),
- _column_index (1)
+ _column_index (1),
+ _min_height_divisor (1)
{
_body = new PortMatrixBody (this);
@@ -494,7 +495,6 @@ PortMatrix::setup_global_ports ()
}
}
-
void
PortMatrix::setup_all_ports ()
{
diff --git a/gtk2_ardour/port_matrix.h b/gtk2_ardour/port_matrix.h
index 8514306544..d397c5df05 100644
--- a/gtk2_ardour/port_matrix.h
+++ b/gtk2_ardour/port_matrix.h
@@ -61,6 +61,13 @@ public:
void setup_scrollbars ();
void popup_channel_context_menu (int, uint32_t, uint32_t);
+ int min_height_divisor () const {
+ return _min_height_divisor;
+ }
+ void set_min_height_divisor (int f) {
+ _min_height_divisor = f;
+ }
+
enum Arrangement {
TOP_TO_RIGHT, ///< column labels on top, row labels to the right
LEFT_TO_BOTTOM ///< row labels to the left, column labels on the bottom
@@ -169,6 +176,7 @@ private:
Arrangement _arrangement;
int _row_index;
int _column_index;
+ int _min_height_divisor;
};
#endif
diff --git a/gtk2_ardour/port_matrix_body.cc b/gtk2_ardour/port_matrix_body.cc
index 3f8fcdc0c6..205e6d4bdd 100644
--- a/gtk2_ardour/port_matrix_body.cc
+++ b/gtk2_ardour/port_matrix_body.cc
@@ -146,8 +146,12 @@ PortMatrixBody::on_size_request (Gtk::Requisition *req)
/* don't ask for the maximum size of our contents, otherwise GTK won't
let the containing window shrink below this size */
- req->width = std::min (512, std::max (col.first, grid.first + row.first));
- req->height = std::min (512, col.second + grid.second);
+ /* XXX these shouldn't be hard-coded */
+ int const min_width = 512;
+ int const min_height = 512;
+
+ req->width = std::min (min_width, std::max (col.first, grid.first + row.first));
+ req->height = std::min (min_height / _matrix->min_height_divisor(), col.second + grid.second);
}
void