mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 07:45:00 +01:00
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
This commit is contained in:
parent
9fc369aa44
commit
c601946bc8
4 changed files with 19 additions and 4 deletions
|
|
@ -347,6 +347,9 @@ PortInsertUI::PortInsertUI (ARDOUR::Session& sess, boost::shared_ptr<ARDOUR::Por
|
||||||
: input_selector (sess, pi->io(), true),
|
: input_selector (sess, pi->io(), true),
|
||||||
output_selector (sess, pi->io(), false)
|
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 (output_selector, true, true);
|
||||||
pack_start (input_selector, true, true);
|
pack_start (input_selector, true, true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,8 @@ PortMatrix::PortMatrix (ARDOUR::Session& session, ARDOUR::DataType type)
|
||||||
_setup_once (false),
|
_setup_once (false),
|
||||||
_arrangement (TOP_TO_RIGHT),
|
_arrangement (TOP_TO_RIGHT),
|
||||||
_row_index (0),
|
_row_index (0),
|
||||||
_column_index (1)
|
_column_index (1),
|
||||||
|
_min_height_divisor (1)
|
||||||
{
|
{
|
||||||
_body = new PortMatrixBody (this);
|
_body = new PortMatrixBody (this);
|
||||||
|
|
||||||
|
|
@ -494,7 +495,6 @@ PortMatrix::setup_global_ports ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PortMatrix::setup_all_ports ()
|
PortMatrix::setup_all_ports ()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,13 @@ public:
|
||||||
void setup_scrollbars ();
|
void setup_scrollbars ();
|
||||||
void popup_channel_context_menu (int, uint32_t, uint32_t);
|
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 {
|
enum Arrangement {
|
||||||
TOP_TO_RIGHT, ///< column labels on top, row labels to the right
|
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
|
LEFT_TO_BOTTOM ///< row labels to the left, column labels on the bottom
|
||||||
|
|
@ -169,6 +176,7 @@ private:
|
||||||
Arrangement _arrangement;
|
Arrangement _arrangement;
|
||||||
int _row_index;
|
int _row_index;
|
||||||
int _column_index;
|
int _column_index;
|
||||||
|
int _min_height_divisor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -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
|
/* don't ask for the maximum size of our contents, otherwise GTK won't
|
||||||
let the containing window shrink below this size */
|
let the containing window shrink below this size */
|
||||||
|
|
||||||
req->width = std::min (512, std::max (col.first, grid.first + row.first));
|
/* XXX these shouldn't be hard-coded */
|
||||||
req->height = std::min (512, col.second + grid.second);
|
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
|
void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue