projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve midi model redraw performance by caching colours.
[ardour.git]
/
gtk2_ardour
/
shuttle_control.h
diff --git
a/gtk2_ardour/shuttle_control.h
b/gtk2_ardour/shuttle_control.h
index 0b289c51801086058fdf5adaec0361e1b932821f..31be53c976c9f40c8ac886aa037e37ccae9cdf4f 100644
(file)
--- a/
gtk2_ardour/shuttle_control.h
+++ b/
gtk2_ardour/shuttle_control.h
@@
-22,6
+22,7
@@
#include <gtkmm/drawingarea.h>
#include "gtkmm2ext/binding_proxy.h"
#include <gtkmm/drawingarea.h>
#include "gtkmm2ext/binding_proxy.h"
+#include "gtkmm2ext/cairo_widget.h"
#include "pbd/controllable.h"
#include "ardour/session_handle.h"
#include "pbd/controllable.h"
#include "ardour/session_handle.h"
@@
-39,14
+40,13
@@
class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr
~ShuttleControl ();
void map_transport_state ();
~ShuttleControl ();
void map_transport_state ();
- void update_speed_display ();
- void set_shuttle_fract (double, bool zero_ok = false);
+ void set_shuttle_fract (double, bool zero_ok = false);
double get_shuttle_fract () const { return shuttle_fract; }
void set_session (ARDOUR::Session*);
struct ShuttleControllable : public PBD::Controllable {
ShuttleControllable (ShuttleControl&);
double get_shuttle_fract () const { return shuttle_fract; }
void set_session (ARDOUR::Session*);
struct ShuttleControllable : public PBD::Controllable {
ShuttleControllable (ShuttleControl&);
- void set_value (double);
+ void set_value (double
, PBD::Controllable::GroupControlDisposition group_override
);
double get_value (void) const;
double lower() const { return -1.0; }
double get_value (void) const;
double lower() const { return -1.0; }
@@
-56,6
+56,7
@@
class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr
};
boost::shared_ptr<ShuttleControllable> controllable() const { return _controllable; }
};
boost::shared_ptr<ShuttleControllable> controllable() const { return _controllable; }
+ void set_colors ();
protected:
bool _hovering;
protected:
bool _hovering;
@@
-73,12
+74,17
@@
class ShuttleControl : public CairoWidget, public ARDOUR::SessionHandlePtr
Gtk::Menu* shuttle_style_menu;
Gtk::Menu* shuttle_context_menu;
BindingProxy binding_proxy;
Gtk::Menu* shuttle_style_menu;
Gtk::Menu* shuttle_context_menu;
BindingProxy binding_proxy;
-
+ Glib::RefPtr<Pango::Layout> left_text;
+ Glib::RefPtr<Pango::Layout> right_text;
+ Pango::AttrList text_attributes;
+ Pango::AttrColor* text_color;
+ float bg_r, bg_g, bg_b;
void build_shuttle_context_menu ();
void show_shuttle_context_menu ();
void shuttle_style_changed();
void shuttle_unit_clicked ();
void set_shuttle_max_speed (float);
void build_shuttle_context_menu ();
void show_shuttle_context_menu ();
void shuttle_style_changed();
void shuttle_unit_clicked ();
void set_shuttle_max_speed (float);
+ void reset_speed ();
bool on_enter_notify_event (GdkEventCrossing*);
bool on_leave_notify_event (GdkEventCrossing*);
bool on_enter_notify_event (GdkEventCrossing*);
bool on_leave_notify_event (GdkEventCrossing*);