ardour
slider_controller.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 1998-2006 Paul Davis
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License as published by
5  the Free Software Foundation; either version 2 of the License, or
6  (at your option) any later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16 
17 */
18 
19 #ifndef __gtkmm2ext_slider_controller_h__
20 #define __gtkmm2ext_slider_controller_h__
21 
22 #ifdef interface
23 #undef interface
24 #endif
25 
26 #include <gtkmm.h>
27 #include <gtkmm2ext/popup.h>
28 #include <gtkmm2ext/pixfader.h>
30 
31 #include <boost/shared_ptr.hpp>
32 
33 #include "gtkmm2ext/visibility.h"
34 
35 namespace Gtkmm2ext {
36  class Pix;
37 }
38 
39 namespace PBD {
40  class Controllable;
41 }
42 
43 namespace Gtkmm2ext {
44 
46 {
47  public:
48  SliderController (Gtk::Adjustment* adj, boost::shared_ptr<PBD::Controllable> mc, int orientation, int, int);
49 
50  virtual ~SliderController () {}
51 
52  Gtk::SpinButton& get_spin_button () { assert(_ctrl); return _spin; }
53  void set_controllable (boost::shared_ptr<PBD::Controllable> c) { _binding_proxy.set_controllable (c); }
54 
55  protected:
56  bool on_button_press_event (GdkEventButton *ev);
57  void ctrl_adjusted();
58  void spin_adjusted();
59 
62  Gtk::Adjustment *_ctrl_adj;
63  Gtk::Adjustment _spin_adj;
64  Gtk::SpinButton _spin;
67 };
68 
70 {
71  public:
72  VSliderController (Gtk::Adjustment *adj, boost::shared_ptr<PBD::Controllable> mc, int, int);
73 };
74 
76 {
77  public:
78  HSliderController (Gtk::Adjustment *adj, boost::shared_ptr<PBD::Controllable> mc, int, int);
79 };
80 
81 
82 }; /* namespace */
83 
84 #endif // __gtkmm2ext_slider_controller_h__
Gtk::SpinButton & get_spin_button()
LIBGTKMM2EXT_API
boost::shared_ptr< PBD::Controllable > _ctrl
Definition: debug.h:30
void set_controllable(boost::shared_ptr< PBD::Controllable > c)