ardour
mono_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_mono_panner_h__
21 #define __gtk_ardour_mono_panner_h__
22 
23 #include "pbd/signals.h"
24 
25 #include <boost/shared_ptr.hpp>
26 
28 
29 #include "panner_interface.h"
30 
31 namespace ARDOUR {
32  class PannerShell;
33 }
34 
35 namespace PBD {
36  class Controllable;
37 }
38 
40 {
41  public:
43  ~MonoPanner ();
44 
46 
47  sigc::signal<void> StartGesture;
48  sigc::signal<void> StopGesture;
49 
50  protected:
51  bool on_expose_event (GdkEventExpose*);
52  bool on_button_press_event (GdkEventButton*);
53  bool on_button_release_event (GdkEventButton*);
54  bool on_motion_notify_event (GdkEventMotion*);
55  bool on_scroll_event (GdkEventScroll*);
56  bool on_key_press_event (GdkEventKey*);
57 
58  private:
59  PannerEditor* editor ();
61 
68  bool detented;
69 
71 
72  void set_tooltip ();
73 
74  struct ColorScheme {
75  uint32_t outline;
76  uint32_t fill;
77  uint32_t text;
78  uint32_t background;
79  uint32_t pos_outline;
80  uint32_t pos_fill;
81  };
82 
83  bool _dragging;
84 
85  static Pango::AttrList panner_font_attributes;
86  static bool have_font;
87 
89  static void set_colors ();
90  static bool have_colors;
91  void color_handler ();
92  void bypass_handler ();
93  void pannable_handler ();
94 };
95 
96 #endif /* __gtk_ardour_mono_panner_h__ */
static Pango::AttrList panner_font_attributes
Definition: mono_panner.h:85
sigc::signal< void > StopGesture
Definition: mono_panner.h:48
boost::shared_ptr< ARDOUR::PannerShell > _panner_shell
Definition: mono_panner.h:60
static void set_colors()
Definition: mono_panner.cc:487
int last_drag_x
Definition: mono_panner.h:66
void color_handler()
Definition: mono_panner.cc:498
void pannable_handler()
Definition: mono_panner.cc:511
BindingProxy position_binder
Definition: mono_panner.h:70
double accumulated_delta
Definition: mono_panner.h:67
bool on_motion_notify_event(GdkEventMotion *)
Definition: mono_panner.cc:410
static bool have_font
Definition: mono_panner.h:86
bool _dragging
Definition: mono_panner.h:83
Definition: amp.h:29
PBD::ScopedConnectionList panshell_connections
Definition: mono_panner.h:64
boost::shared_ptr< PBD::Controllable > position_control
Definition: mono_panner.h:62
bool on_scroll_event(GdkEventScroll *)
Definition: mono_panner.cc:377
static bool have_colors
Definition: mono_panner.h:90
sigc::signal< void > StartGesture
Definition: mono_panner.h:47
bool on_expose_event(GdkEventExpose *)
Definition: mono_panner.cc:125
static ColorScheme colors
Definition: mono_panner.h:88
bool detented
Definition: mono_panner.h:68
boost::shared_ptr< PBD::Controllable > get_controllable() const
Definition: mono_panner.h:45
PBD::ScopedConnectionList panvalue_connections
Definition: mono_panner.h:63
PannerEditor * editor()
Definition: mono_panner.cc:521
Definition: debug.h:30
MonoPanner(boost::shared_ptr< ARDOUR::PannerShell >)
Definition: mono_panner.cc:61
bool on_button_release_event(GdkEventButton *)
Definition: mono_panner.cc:348
int drag_start_x
Definition: mono_panner.h:65
void set_tooltip()
Definition: mono_panner.cc:101
bool on_button_press_event(GdkEventButton *)
Definition: mono_panner.cc:281
void bypass_handler()
Definition: mono_panner.cc:505
bool on_key_press_event(GdkEventKey *)
Definition: mono_panner.cc:450