X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_matrix_grid.h;h=ec7eb32b4bee90d4b571fd8559ee0d10468a4a00;hb=957c0aec4fcb4f4e44d7eedcb2942326c52d69cd;hp=543ea8533fb408d4b621fa0a627894e2d1eadaae;hpb=50437bff22279473cd364d007d5e474af2a542bc;p=ardour.git diff --git a/gtk2_ardour/port_matrix_grid.h b/gtk2_ardour/port_matrix_grid.h index 543ea8533f..ec7eb32b4b 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 @@ -41,30 +41,39 @@ class PortMatrixGrid : public PortMatrixComponent public: PortMatrixGrid (PortMatrix *, PortMatrixBody *); - void button_press (double, double, int, uint32_t); - void mouseover_event (double, double); + void button_press (double, double, int, uint32_t, guint); + void button_release (double, double, int, uint32_t, guint); + 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, PortGroup::BundleList const &, double) const; PortMatrixNode position_to_node (double, double) const; - std::pair, ARDOUR::BundleChannel> x_position_to_group_and_channel (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