prepare horizontal meters (level-meter H/V Box abstraction)

This commit is contained in:
Robin Gareus 2013-07-25 14:18:39 +02:00 committed by Paul Davis
parent afb9578462
commit 1d964e27f4
8 changed files with 110 additions and 45 deletions

View file

@ -37,6 +37,7 @@
#include <gtkmm2ext/click_box.h>
#include <gtkmm2ext/focus_entry.h>
#include <gtkmm2ext/slider_controller.h>
#include <gtkmm2ext/fastmeter.h>
#include "enums.h"
@ -44,18 +45,16 @@ namespace ARDOUR {
class Session;
class PeakMeter;
}
namespace Gtkmm2ext {
class FastMeter;
}
namespace Gtk {
class Menu;
}
class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr
class LevelMeterBase : public sigc::trackable, public ARDOUR::SessionHandlePtr
{
public:
LevelMeter (ARDOUR::Session*);
~LevelMeter ();
LevelMeterBase (ARDOUR::Session*,
Gtkmm2ext::FastMeter::Orientation o = Gtkmm2ext::FastMeter::Vertical);
~LevelMeterBase ();
virtual void set_meter (ARDOUR::PeakMeter* meter);
@ -74,8 +73,13 @@ class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr
PBD::Signal1<bool, GdkEventButton *> ButtonPress;
PBD::Signal1<void, ARDOUR::MeterType> MeterTypeChanged;
protected:
virtual void mtr_pack(Gtk::Widget &w) = 0;
virtual void mtr_remove(Gtk::Widget &w) = 0;
private:
ARDOUR::PeakMeter* _meter;
Gtkmm2ext::FastMeter::Orientation _meter_orientation;
Width _width;
@ -121,5 +125,27 @@ class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr
void color_handler ();
};
class LevelMeterHBox : public LevelMeterBase, public Gtk::HBox
{
public:
LevelMeterHBox (ARDOUR::Session*);
~LevelMeterHBox();
protected:
void mtr_pack(Gtk::Widget &w);
void mtr_remove(Gtk::Widget &w);
};
class LevelMeterVBox : public LevelMeterBase, public Gtk::VBox
{
public:
LevelMeterVBox (ARDOUR::Session*);
~LevelMeterVBox();
protected:
void mtr_pack(Gtk::Widget &w);
void mtr_remove(Gtk::Widget &w);
};
#endif /* __ardour_gtk_track_meter_h__ */