X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_matrix_grid.h;h=383db2d42bdccb9478c37374f8ee551fdbb9da97;hb=5b80a6ba0447406f5ddf61a1ec5ed0f002ee0a05;hp=4a05c3138d813b703a692d0034b1f5b19224d1ce;hpb=1ae39840b3e7b1740b44e5889983e93d837f8e90;p=ardour.git diff --git a/gtk2_ardour/port_matrix_grid.h b/gtk2_ardour/port_matrix_grid.h index 4a05c3138d..383db2d42b 100644 --- a/gtk2_ardour/port_matrix_grid.h +++ b/gtk2_ardour/port_matrix_grid.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2009 Paul Davis + Copyright (C) 2002-2009 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,8 +17,8 @@ */ -#ifndef __gtk_ardour_port_matrix_grid_h__ -#define __gtk_ardour_port_matrix_grid_h__ +#ifndef __gtk_ardour_port_matrix_grid_h__ +#define __gtk_ardour_port_matrix_grid_h__ #include #include @@ -26,6 +26,7 @@ #include "ardour/types.h" #include "port_matrix_component.h" #include "port_matrix_types.h" +#include "port_group.h" class PortMatrix; class PortMatrixBody; @@ -40,29 +41,39 @@ class PortMatrixGrid : public PortMatrixComponent public: PortMatrixGrid (PortMatrix *, PortMatrixBody *); - void button_press (double, double, int); - void mouseover_event (double, double); + void button_press (double, double, GdkEventButton *); + void button_release (double, double, GdkEventButton *); + void motion (double, double); double component_to_parent_x (double x) const; double parent_to_component_x (double x) const; double component_to_parent_y (double y) const; double parent_to_component_y (double y) const; - void mouseover_changed (PortMatrixNode const &); + void mouseover_changed (std::list const &); void draw_extra (cairo_t *); private: - + void compute_dimensions (); void render (cairo_t *); + void render_group_pair (cairo_t *, boost::shared_ptr, boost::shared_ptr, uint32_t, uint32_t); - double channel_position (ARDOUR::BundleChannel, ARDOUR::BundleList const &, double) const; PortMatrixNode position_to_node (double, double) const; - ARDOUR::BundleChannel position_to_channel (double, ARDOUR::BundleList const &, double) const; - void queue_draw_for (PortMatrixNode const &); + void queue_draw_for (std::list const &); void draw_association_indicator (cairo_t *, uint32_t, uint32_t, double p = 1); - void draw_unknown_indicator (cairo_t *, uint32_t, uint32_t); - PortMatrixNode::State bundle_to_bundle_state (boost::shared_ptr, boost::shared_ptr) const; - + void draw_empty_square (cairo_t *, uint32_t, uint32_t); + void draw_non_connectable_indicator (cairo_t *, uint32_t, uint32_t); + std::list nodes_on_line (int, int, int, int) const; + void set_association (PortMatrixNode, bool); + bool toggle_state (PortMatrixNode::State) const; + + bool _dragging; + bool _drag_valid; + bool _moved; + int _drag_start_x; + int _drag_start_y; + int _drag_x; + int _drag_y; }; #endif