74 for (PortGroup::BundleList::const_iterator i = column_bundles.begin(); i != column_bundles.end(); ++i) {
77 cairo_move_to (cr, x, 0);
85 cairo_move_to (cr, x, 0);
100 cairo_move_to (cr, x, 0);
101 cairo_line_to (cr, x,
_height);
110 for (PortGroup::BundleList::const_iterator i = row_bundles.begin(); i != row_bundles.end(); ++i) {
113 cairo_move_to (cr, 0, y);
114 cairo_line_to (cr,
_width, y);
121 cairo_move_to (cr, 0, y);
122 cairo_line_to (cr,
_width, y);
136 cairo_move_to (cr, 0, y);
137 cairo_line_to (cr,
_width, y);
152 for (PortGroup::BundleList::const_iterator i = column_bundles.begin(); i != column_bundles.end(); ++i) {
155 for (PortGroup::BundleList::const_iterator j = row_bundles.begin(); j != row_bundles.end(); ++j) {
181 for (PortGroup::BundleList::const_iterator i = column_bundles.begin(); i != column_bundles.end(); ++i) {
184 for (PortGroup::BundleList::const_iterator j = row_bundles.begin(); j != row_bundles.end(); ++j) {
196 (*i)->bundle->type_channel_to_overall (
_matrix->
type (), k)
201 (*j)->bundle->type_channel_to_overall (
_matrix->
type (), l)
204 if (c[0].bundle->channel_type (c[0].
channel) != c[1].
bundle->channel_type (c[1].channel)) {
319 if (ev->button == 1) {
328 }
else if (ev->button == 3) {
340 for (uint32_t i = 0; i < node.
column.
bundle->nchannels().n_total(); ++i) {
341 for (uint32_t j = 0; j < node.
row.
bundle->nchannels().n_total(); ++j) {
370 if (ev->button == 1) {
381 for (list<PortMatrixNode>::const_iterator i = p.begin(); i != p.end(); ++i) {
389 if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
419 _body->queue_draw ();
434 for (list<PortMatrixNode>::const_iterator i = m.begin(); i != m.end(); ++i) {
441 cairo_move_to (cr, x, y);
449 cairo_move_to (cr, x, y);
467 for (list<PortMatrixNode>::const_iterator i = p.begin(); i != p.end(); ++i) {
525 _body->queue_draw ();
532 for (list<PortMatrixNode>::const_iterator i = n.begin(); i != n.end(); ++i) {
537 _body->queue_draw_area (
545 if (i->column.bundle) {
549 _body->queue_draw_area (
586 list<PortMatrixNode> p;
588 bool const steep = abs (y1 - y0) > abs (x1 - x0);
610 int dy = abs (y1 - y0);
613 double derr = double (dy) / dx;
616 int const ystep = y0 < y1 ? 1 : -1;
618 for (
int x = x0; x <= x1; ++x) {
PortMatrixNode position_to_node(double, double) const
virtual void set_state(ARDOUR::BundleChannel c[2], bool s)=0
void button_release(double, double, GdkEventButton *)
void popup_menu(ARDOUR::BundleChannel, ARDOUR::BundleChannel, uint32_t)
void motion(double, double)
void compute_dimensions()
void set_source_rgb(cairo_t *, Gdk::Color const &)
the ports are not associated
static Gdk::Color association_colour()
void set_association(PortMatrixNode, bool)
std::list< BundleRecord * > BundleList
bool toggle_state(PortMatrixNode::State) const
bool should_show(ARDOUR::DataType) const
static uint32_t grid_spacing()
std::list< PortMatrixNode > mouseover() const
virtual PortMatrixNode::State get_state(ARDOUR::BundleChannel c[2]) const =0
uint32_t count_of_our_type(ARDOUR::ChanCount) const
std::list< PortMatrixNode > nodes_on_line(int, int, int, int) const
static Gdk::Color grid_colour()
ARDOUR::BundleChannel row
column labels on top, row labels to the right
uint32_t _height
full height of the contents
PortMatrixNode::State get_association(PortMatrixNode) const
LIBGTKMM2EXT_API uint64_t Keyboard
double parent_to_component_x(double x) const
static uint32_t connection_indicator_pad()
double component_to_parent_y(double y) const
uint32_t group_size(boost::shared_ptr< const PortGroup >) const
virtual ARDOUR::BundleChannel position_to_channel(double, double, boost::shared_ptr< const PortGroup >) const
uint32_t channel_to_position(ARDOUR::BundleChannel, boost::shared_ptr< const PortGroup >) const
Gdk::Color background_colour()
void button_press(double, double, GdkEventButton *)
uint32_t count_of_our_type_min_1(ARDOUR::ChanCount) const
Gdk::Rectangle _parent_rectangle
double component_to_parent_x(double x) const
static Gdk::Color non_connectable_colour()
PortMatrixBody * _body
the PortMatrixBody that we're in
PortMatrixGrid(PortMatrix *, PortMatrixBody *)
row labels to the left, column labels on the bottom
void set_source_rgba(cairo_t *, Gdk::Color const &, double)
bool show_only_bundles() const
static Gdk::Color mouseover_line_colour()
static uint32_t mouseover_line_width()
ARDOUR::BundleChannel column
ARDOUR::DataType type() const
void draw_empty_square(cairo_t *, uint32_t, uint32_t)
void set_mouseover(PortMatrixNode const &)
uint32_t _width
full width of the contents
void draw_non_connectable_indicator(cairo_t *, uint32_t, uint32_t)
void draw_extra(cairo_t *)
boost::shared_ptr< Bundle > bundle
double parent_to_component_y(double y) const
used when we are examining bundles; the bundles are partially associated
void mouseover_changed(std::list< PortMatrixNode > const &)
void draw_association_indicator(cairo_t *, uint32_t, uint32_t, double p=1)
boost::shared_ptr< const PortGroup > visible_columns() const
int channel
channel index, or -1 for "all"
void queue_draw_for(std::list< PortMatrixNode > const &)
boost::shared_ptr< const PortGroup > visible_rows() const
static double thick_grid_line_width()
static bool bundle_with_channels(boost::shared_ptr< ARDOUR::Bundle >)
Arrangement arrangement() const
static double thin_grid_line_width()