X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmeter_strip.h;h=a877ab998c31a25619f1d8ef626d79d99ae7be6c;hb=154f9825ff72d691ba550de573948424b81a09a6;hp=e1bae713265059c78bdb16df7a75c9dab76b52e7;hpb=a1a3f6c8265264227ce19f731bf1863aff229a94;p=ardour.git diff --git a/gtk2_ardour/meter_strip.h b/gtk2_ardour/meter_strip.h index e1bae71326..a877ab998c 100644 --- a/gtk2_ardour/meter_strip.h +++ b/gtk2_ardour/meter_strip.h @@ -21,35 +21,42 @@ #define __ardour_meter_strip__ #include - #include +#include +#include +#include +#include +#include + #include "pbd/stateful.h" #include "ardour/types.h" #include "ardour/ardour.h" -#include "route_ui.h" -#include "ardour_button.h" + +#include "widgets/ardour_button.h" #include "level_meter.h" +#include "route_ui.h" namespace ARDOUR { class Route; class RouteGroup; class Session; } -namespace Gtk { - class Window; - class Style; -} -class MeterStrip : public Gtk::VBox, public RouteUI +class MeterStrip : public Gtk::VBox, public AxisView, public RouteUI { - public: +public: MeterStrip (ARDOUR::Session*, boost::shared_ptr); MeterStrip (int, ARDOUR::MeterType); ~MeterStrip (); + std::string name() const; + Gdk::Color color () const; + + boost::shared_ptr stripable() const { return RouteUI::stripable(); } + void set_session (ARDOUR::Session* s); void fast_update (); boost::shared_ptr route() { return _route; } @@ -72,9 +79,11 @@ class MeterStrip : public Gtk::VBox, public RouteUI bool is_metric_display() { return _strip_type == 0; } ARDOUR::MeterType meter_type(); - protected: + bool selected() const { return false; } + +protected: boost::shared_ptr _route; - PBD::ScopedConnectionList route_connections; + PBD::ScopedConnectionList meter_route_connections; PBD::ScopedConnectionList level_meter_connection; void self_delete (); @@ -88,11 +97,11 @@ class MeterStrip : public Gtk::VBox, public RouteUI void on_size_request (Gtk::Requisition*); /* route UI */ - void update_rec_display (); + void blink_rec_display (bool onoff); std::string state_id() const; void set_button_names (); - private: +private: Gtk::VBox mtr_vbox; Gtk::VBox nfo_vbox; Gtk::EventBox mtr_container; @@ -100,7 +109,9 @@ class MeterStrip : public Gtk::VBox, public RouteUI Gtk::HBox meterbox; Gtk::HBox spacer; Gtk::HBox namebx; - ArdourButton name_label; + Gtk::VBox namenumberbx; + ArdourWidgets::ArdourButton name_label; + ArdourWidgets::ArdourButton number_label; Gtk::DrawingArea meter_metric_area; Gtk::DrawingArea meter_ticks1_area; Gtk::DrawingArea meter_ticks2_area; @@ -115,7 +126,7 @@ class MeterStrip : public Gtk::VBox, public RouteUI Gtk::Alignment peak_align; Gtk::HBox peakbx; Gtk::VBox btnbox; - ArdourButton peak_display; + ArdourWidgets::ArdourButton peak_display; std::vector _types; ARDOUR::MeterType metric_type; @@ -128,8 +139,7 @@ class MeterStrip : public Gtk::VBox, public RouteUI LevelMeterHBox *level_meter; - PBD::ScopedConnection _config_connection; - void strip_property_changed (const PBD::PropertyChange&); + void route_property_changed (const PBD::PropertyChange&); void meter_configuration_changed (ARDOUR::ChanCount); void meter_type_changed (ARDOUR::MeterType); void update_background (ARDOUR::MeterType); @@ -140,9 +150,12 @@ class MeterStrip : public Gtk::VBox, public RouteUI void redraw_metrics (); void update_button_box (); void update_name_box (); + void name_changed (); + + void route_color_changed (); bool _suspend_menu_callbacks; - bool level_meter_button_release (GdkEventButton* ev); + bool level_meter_button_press (GdkEventButton* ev); void popup_level_meter_menu (GdkEventButton* ev); void add_level_meter_type_item (Gtk::Menu_Helpers::MenuList&, Gtk::RadioMenuItem::Group&, std::string const &, ARDOUR::MeterType);