mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 03:36:32 +01:00
prepare horizontal meters (level-meter H/V Box abstraction)
This commit is contained in:
parent
90ea64d1fc
commit
953e4aba54
8 changed files with 110 additions and 45 deletions
|
|
@ -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__ */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue