diff options
author | Carl Hetherington <carl@carlh.net> | 2009-02-10 02:09:46 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-02-10 02:09:46 +0000 |
commit | c601946bc87d503f4bda1fc2d7321d99acc9d5f7 (patch) | |
tree | b4aaf1c026d10b89ad7836337c27714dd43976cf /gtk2_ardour | |
parent | 9fc369aa44e9c934f0f9fea7e02d812831cc7468 (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
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/io_selector.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/port_matrix.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/port_matrix.h | 8 | ||||
-rw-r--r-- | gtk2_ardour/port_matrix_body.cc | 8 |
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 |