mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-06 13:45:43 +01:00
Implement multi-touch support for ArdourKnobs
This commit is contained in:
parent
2a9776de5a
commit
95949e6267
2 changed files with 39 additions and 0 deletions
|
|
@ -60,6 +60,7 @@ ArdourCtrlBase::ArdourCtrlBase (Flags flags)
|
|||
, _dead_zone_delta (0)
|
||||
{
|
||||
UIConfigurationBase::instance().ColorsChanged.connect (sigc::mem_fun (*this, &ArdourCtrlBase::color_handler));
|
||||
add_events (Gdk::TOUCH_UPDATE_MASK | Gdk::TOUCH_BEGIN_MASK | Gdk::TOUCH_END_MASK);
|
||||
|
||||
#ifdef VBM
|
||||
_flags = (Flags)(static_cast <int>(_flags) | (int)NoHorizontal);
|
||||
|
|
@ -257,6 +258,41 @@ ArdourCtrlBase::on_button_release_event (GdkEventButton *ev)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
ArdourCtrlBase::on_touch_begin_event (GdkEventTouch *ev)
|
||||
{
|
||||
_grabbed_x = ev->x;
|
||||
_grabbed_y = ev->y;
|
||||
_dead_zone_delta = 0;
|
||||
_grabbed = true;
|
||||
_tooltip.start_drag();
|
||||
set_active_state (Gtkmm2ext::ExplicitActive);
|
||||
StartGesture (ev->state);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
ArdourCtrlBase::on_touch_end_event (GdkEventTouch *ev)
|
||||
{
|
||||
_tooltip.stop_drag();
|
||||
_grabbed = false;
|
||||
StopGesture (ev->state);
|
||||
unset_active_state ();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
ArdourCtrlBase::on_touch_update_event (GdkEventTouch* ev)
|
||||
{
|
||||
GdkEventMotion mev;
|
||||
mev.window = ev->window;
|
||||
mev.time = ev->time;
|
||||
mev.x = ev->x;
|
||||
mev.y = ev->y;
|
||||
mev.state = Gdk::BUTTON1_MASK;
|
||||
return ArdourCtrlBase::on_motion_notify_event (&mev);
|
||||
}
|
||||
|
||||
void
|
||||
ArdourCtrlBase::color_handler ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -77,6 +77,9 @@ public:
|
|||
bool on_button_release_event (GdkEventButton*);
|
||||
bool on_scroll_event (GdkEventScroll* ev);
|
||||
bool on_motion_notify_event (GdkEventMotion *ev) ;
|
||||
bool on_touch_begin_event (GdkEventTouch*);
|
||||
bool on_touch_end_event (GdkEventTouch*);
|
||||
bool on_touch_update_event (GdkEventTouch*);
|
||||
|
||||
void color_handler ();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue