X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_matrix_row_labels.h;h=21839df41e77914a57dafc704aef44b78977fa59;hb=77a2632e342801aee3836ce0bf59f7e639fd42e5;hp=dd3d2a934839d011809510d8fe02ed25f6b0cf61;hpb=4476461443061703e9ef268ade72511dff3e3ae5;p=ardour.git diff --git a/gtk2_ardour/port_matrix_row_labels.h b/gtk2_ardour/port_matrix_row_labels.h index dd3d2a9348..21839df41e 100644 --- a/gtk2_ardour/port_matrix_row_labels.h +++ b/gtk2_ardour/port_matrix_row_labels.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 @@ -21,43 +21,53 @@ #define __port_matrix_row_labels_h__ #include -#include "port_matrix_component.h" +#include +#include "port_matrix_labels.h" class PortMatrix; class PortMatrixBody; +class PortMatrixNode; 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 (); - - void button_press (double, double, int, uint32_t); - + PortMatrixRowLabels (PortMatrix *, PortMatrixBody *); + + void button_press (double, double, GdkEventButton *); + + 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 (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 queue_draw_for (ARDOUR::BundleChannel const &); + double port_name_x () const; + double bundle_name_x () const; - PortMatrix* _port_matrix; - uint32_t _longest_port_name; - uint32_t _longest_bundle_name; - Gtk::Menu* _menu; - Location _location; + double _longest_port_name; + double _longest_bundle_name; }; #endif