X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_matrix_row_labels.h;h=c1bfbb6e6a3befadbb8e4ac0a0818c10166de871;hb=a8d62ce056fe260792d4e72bf8cf2fbff0e8b39b;hp=ce77dc82948f774d2a063a8d5a2453dd5c1f2685;hpb=9cc7b452ebb8fe8f348ad6aad18054703700da18;p=ardour.git diff --git a/gtk2_ardour/port_matrix_row_labels.h b/gtk2_ardour/port_matrix_row_labels.h index ce77dc8294..c1bfbb6e6a 100644 --- a/gtk2_ardour/port_matrix_row_labels.h +++ b/gtk2_ardour/port_matrix_row_labels.h @@ -1,78 +1,75 @@ /* - 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ + * Copyright (C) 2009-2011 Carl Hetherington + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ #ifndef __port_matrix_row_labels_h__ #define __port_matrix_row_labels_h__ #include #include -#include "port_matrix_component.h" +#include "port_matrix_labels.h" class PortMatrix; class PortMatrixBody; class PortMatrixNode; -class PortMatrixBundleChannel; +class PortMatrixColumnLabels; namespace ARDOUR { class Bundle; + class BundleChannel; } namespace Gtk { class Menu; } -class PortMatrixRowLabels : public PortMatrixComponent +/** The row labels part of the port matrix */ +class PortMatrixRowLabels : public PortMatrixLabels { public: - enum Location { - LEFT, - RIGHT - }; - - PortMatrixRowLabels (PortMatrix *, PortMatrixBody *, Location); - ~PortMatrixRowLabels (); + PortMatrixRowLabels (PortMatrix *, PortMatrixBody *, PortMatrixColumnLabels&); + + void button_press (double, double, GdkEventButton *); - void button_press (double, double, int, uint32_t); - 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 draw_extra (cairo_t* cr); + void mouseover_changed (std::list const &); + void motion (double, double); private: + void render_channel_name (cairo_t *, Gdk::Color, Gdk::Color, double, double, ARDOUR::BundleChannel const &); + void render_bundle_name (cairo_t *, Gdk::Color, Gdk::Color, double, double, boost::shared_ptr); + double channel_x (ARDOUR::BundleChannel const &) const; + double channel_y (ARDOUR::BundleChannel const &) const; + void render (cairo_t *); void compute_dimensions (); void remove_channel_proxy (boost::weak_ptr, uint32_t); void rename_channel_proxy (boost::weak_ptr, uint32_t); - void render_port_name (cairo_t *, Gdk::Color, double, double, PortMatrixBundleChannel const &); - double channel_y (PortMatrixBundleChannel const &) const; - void queue_draw_for (PortMatrixNode const &); + void queue_draw_for (ARDOUR::BundleChannel const &); double port_name_x () const; + double bundle_name_x () const; - PortMatrix* _port_matrix; double _longest_port_name; double _longest_bundle_name; - double _highest_group_name; - Gtk::Menu* _menu; - Location _location; + + PortMatrixColumnLabels& _column_labels; }; #endif