summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-program-change.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-07-27 14:09:16 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-07-27 14:09:16 +0000
commitece5093234e4c185cf536d2b4e5edfeb90622409 (patch)
treede566ed8a317eaac10b13c6e06a11ab3f68c97e7 /gtk2_ardour/canvas-program-change.cc
parentfbc946d60dbe68016abcc386932b35c4ef4ba1af (diff)
change Control::{set,get}_float to Control::{set,get}_double and make almost all Control-related stuff use double rather than random mixtures of float, double and some integer value ; make hans' program change stuff work quite a bit better (not finished yet) including keyboard edting of pgm change values
git-svn-id: svn://localhost/ardour2/branches/3.0@7514 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-program-change.cc')
-rw-r--r--gtk2_ardour/canvas-program-change.cc21
1 files changed, 19 insertions, 2 deletions
diff --git a/gtk2_ardour/canvas-program-change.cc b/gtk2_ardour/canvas-program-change.cc
index 27a163ef7c..77169ce8ec 100644
--- a/gtk2_ardour/canvas-program-change.cc
+++ b/gtk2_ardour/canvas-program-change.cc
@@ -20,7 +20,7 @@ CanvasProgramChange::CanvasProgramChange(
double y,
string& model_name,
string& custom_device_mode,
- nframes_t event_time,
+ double event_time,
uint8_t channel,
uint8_t program)
: CanvasFlag(
@@ -113,11 +113,28 @@ CanvasProgramChange::on_event(GdkEvent* ev)
initialize_popup_menus();
_popup_initialized = true;
}
- _popup.popup(ev->button.button, ev->button.time);
+ _popup.popup(ev->button.button, ev->button.time);
return true;
}
break;
+ case GDK_KEY_PRESS:
+ switch (ev->key.keyval) {
+ case GDK_Up:
+ case GDK_KP_Up:
+ case GDK_uparrow:
+ _region.previous_program(*this);
+ break;
+ case GDK_Down:
+ case GDK_KP_Down:
+ case GDK_downarrow:
+ _region.next_program(*this);
+ break;
+ default:
+ break;
+ }
+ break;
+
case GDK_SCROLL:
if (ev->scroll.direction == GDK_SCROLL_UP) {
_region.previous_program(*this);