ardour
stereo_panner.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2010 Paul Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 #ifndef __gtk_ardour_stereo_panner_h__
21 #define __gtk_ardour_stereo_panner_h__
22 
23 #include "pbd/signals.h"
25 #include "panner_interface.h"
26 
27 namespace ARDOUR {
28  class PannerShell;
29 }
30 
31 namespace PBD {
32  class Controllable;
33 }
34 
35 namespace ARDOUR {
36  class Panner;
37 }
38 
40 {
41  public:
43  ~StereoPanner ();
44 
47 
48  sigc::signal<void> StartPositionGesture;
49  sigc::signal<void> StopPositionGesture;
50  sigc::signal<void> StartWidthGesture;
51  sigc::signal<void> StopWidthGesture;
52 
53  protected:
54  bool on_expose_event (GdkEventExpose*);
55  bool on_button_press_event (GdkEventButton*);
56  bool on_button_release_event (GdkEventButton*);
57  bool on_motion_notify_event (GdkEventMotion*);
58  bool on_scroll_event (GdkEventScroll*);
59  bool on_key_press_event (GdkEventKey*);
60 
61  private:
62  PannerEditor* editor ();
64 
75  bool detented;
76 
79 
80  void set_tooltip ();
81 
82  struct ColorScheme {
83  uint32_t outline;
84  uint32_t fill;
85  uint32_t text;
86  uint32_t background;
87  uint32_t rule;
88  };
89 
90  enum State {
94  };
95 
96  bool _dragging;
97 
98  static Pango::AttrList panner_font_attributes;
99  static bool have_font;
100 
101  static ColorScheme colors[3];
102  static void set_colors ();
103  static bool have_colors;
104  void color_handler ();
105  void bypass_handler ();
106  void pannable_handler ();
107 };
108 
109 #endif /* __gtk_ardour_stereo_panner_h__ */
void set_tooltip()
bool dragging_right
Definition: stereo_panner.h:71
PannerEditor * editor()
BindingProxy width_binder
Definition: stereo_panner.h:78
static ColorScheme colors[3]
bool on_expose_event(GdkEventExpose *)
sigc::signal< void > StopPositionGesture
Definition: stereo_panner.h:49
bool on_motion_notify_event(GdkEventMotion *)
StereoPanner(boost::shared_ptr< ARDOUR::PannerShell >)
static void set_colors()
bool dragging_position
Definition: stereo_panner.h:69
PBD::ScopedConnectionList panshell_connections
Definition: stereo_panner.h:68
bool on_scroll_event(GdkEventScroll *)
boost::shared_ptr< ARDOUR::PannerShell > _panner_shell
Definition: stereo_panner.h:63
boost::shared_ptr< PBD::Controllable > get_position_controllable() const
Definition: stereo_panner.h:45
bool dragging_left
Definition: stereo_panner.h:70
void pannable_handler()
static bool have_font
Definition: stereo_panner.h:99
double accumulated_delta
Definition: stereo_panner.h:74
Definition: amp.h:29
bool on_key_press_event(GdkEventKey *)
static Pango::AttrList panner_font_attributes
Definition: stereo_panner.h:98
static bool have_colors
boost::shared_ptr< PBD::Controllable > width_control
Definition: stereo_panner.h:66
bool on_button_press_event(GdkEventButton *)
sigc::signal< void > StartWidthGesture
Definition: stereo_panner.h:50
Definition: debug.h:30
PBD::ScopedConnectionList panvalue_connections
Definition: stereo_panner.h:67
sigc::signal< void > StopWidthGesture
Definition: stereo_panner.h:51
sigc::signal< void > StartPositionGesture
Definition: stereo_panner.h:48
boost::shared_ptr< PBD::Controllable > get_width_controllable() const
Definition: stereo_panner.h:46
BindingProxy position_binder
Definition: stereo_panner.h:77
void bypass_handler()
boost::shared_ptr< PBD::Controllable > position_control
Definition: stereo_panner.h:65
bool on_button_release_event(GdkEventButton *)
void color_handler()