X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_matrix_column_labels.h;h=3b1c5a128c40b745676cfc646bcb6ab507180fc3;hb=c83e48e07a0b4790512c6251d8ad8f941c881021;hp=5bdd7a29303b45e22d90b94259589d0c0509808c;hpb=49510ba1d7fc1c85e767c05f10f9481998ef94b0;p=ardour.git diff --git a/gtk2_ardour/port_matrix_column_labels.h b/gtk2_ardour/port_matrix_column_labels.h index 5bdd7a2930..3b1c5a128c 100644 --- a/gtk2_ardour/port_matrix_column_labels.h +++ b/gtk2_ardour/port_matrix_column_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,37 +21,54 @@ #define __port_matrix_column_labels_h__ #include -#include "port_matrix_component.h" - -class PortMatrixBody; +#include "port_matrix_labels.h" namespace ARDOUR { class Bundle; + class BundleChannel; } +class PortMatrixNode; + /** The column labels part of the port matrix */ -class PortMatrixColumnLabels : public PortMatrixComponent +class PortMatrixColumnLabels : public PortMatrixLabels { public: + PortMatrixColumnLabels (PortMatrix *, PortMatrixBody *); + + void button_press (double, double, int, uint32_t); - enum Location { - TOP, - BOTTOM - }; - - PortMatrixColumnLabels (PortMatrixBody *, Location); + 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 &); + + uint32_t overhang () const { + return _overhang; + } private: + void render_bundle_name (cairo_t *, Gdk::Color, Gdk::Color, double, double, boost::shared_ptr); + void render_channel_name (cairo_t *, Gdk::Color, Gdk::Color, double, double, ARDOUR::BundleChannel const &); + double channel_x (ARDOUR::BundleChannel const &) const; + double channel_y (ARDOUR::BundleChannel const &) const; + void queue_draw_for (ARDOUR::BundleChannel const &); + void render (cairo_t *); void compute_dimensions (); double basic_text_x_pos (int) const; + std::vector > port_name_shape (double, double) const; + + double slanted_height () const { + return _height - _highest_group_name - 2 * name_pad(); + } - std::vector > _bundles; double _longest_bundle_name; double _longest_channel_name; double _highest_text; double _highest_group_name; - Location _location; + uint32_t _overhang; }; #endif