summaryrefslogtreecommitdiff
path: root/gtk2_ardour/panner_interface.h
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-06-06 11:47:09 +0000
committerCarl Hetherington <carl@carlh.net>2012-06-06 11:47:09 +0000
commit46e448252f74ce35f37a1a41bb3ebe0f0312cd5d (patch)
tree727768ad3569c3e4becb9694e93fbf6f1b909691 /gtk2_ardour/panner_interface.h
parent31f94b9b048f55b06b7de8fa0b8612b0fa2ea274 (diff)
Provide dialogs to edit pan values numerically, at least for
mono and stereo panners. git-svn-id: svn://localhost/ardour2/branches/3.0@12577 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/panner_interface.h')
-rw-r--r--gtk2_ardour/panner_interface.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/gtk2_ardour/panner_interface.h b/gtk2_ardour/panner_interface.h
index 167ea6d7be..8dd19d1a14 100644
--- a/gtk2_ardour/panner_interface.h
+++ b/gtk2_ardour/panner_interface.h
@@ -23,21 +23,30 @@
#include <boost/shared_ptr.hpp>
#include <gtkmm/drawingarea.h>
#include <gtkmm/label.h>
+#include "pbd/destructible.h"
namespace ARDOUR {
class Panner;
}
+class PannerEditor;
+
/** Parent class for some panner UI classes that contains some common code */
-class PannerInterface : public Gtk::DrawingArea
+class PannerInterface : public Gtk::DrawingArea, public PBD::Destructible
{
public:
PannerInterface (boost::shared_ptr<ARDOUR::Panner>);
virtual ~PannerInterface ();
+ boost::shared_ptr<ARDOUR::Panner> panner () {
+ return _panner;
+ }
+
+ void edit ();
+
protected:
virtual void set_drag_data () = 0;
-
+
void show_drag_data_window ();
void hide_drag_data_window ();
void value_change ();
@@ -45,6 +54,8 @@ protected:
bool on_enter_notify_event (GdkEventCrossing *);
bool on_leave_notify_event (GdkEventCrossing *);
bool on_key_release_event (GdkEventKey *);
+ bool on_button_press_event (GdkEventButton*);
+ bool on_button_release_event (GdkEventButton*);
boost::shared_ptr<ARDOUR::Panner> _panner;
Gtk::Window* _drag_data_window;
@@ -54,6 +65,9 @@ protected:
private:
bool drag_data_timeout ();
sigc::connection _drag_data_timeout;
+
+ virtual PannerEditor* editor () = 0;
+ PannerEditor* _editor;
};
#endif