mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 22:25:39 +00:00
Added longpress (mouse right button)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import pygame
|
||||
import logging
|
||||
import logging
|
||||
import time
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -8,6 +9,9 @@ class TouchManager():
|
||||
|
||||
click = 1
|
||||
swipe = 2
|
||||
long_click = 3
|
||||
|
||||
long_click_min_time = 0.3
|
||||
|
||||
up = 0
|
||||
down = 1
|
||||
@@ -21,6 +25,7 @@ class TouchManager():
|
||||
self.max_move_margin = self.screen_size[1] / 6
|
||||
self.min_swipe_move = self.screen_size[1] / 3
|
||||
self.down_button = -1
|
||||
self.down_time = -1
|
||||
|
||||
def event(self, event):
|
||||
if event.type == pygame.MOUSEBUTTONUP:
|
||||
@@ -33,7 +38,11 @@ class TouchManager():
|
||||
touch_event.direction = TouchManager.down
|
||||
return touch_event
|
||||
elif event.button == 1 and self.down_button == 1:
|
||||
return self.mouse_up(event)
|
||||
touch_event = self.mouse_up(event)
|
||||
return touch_event
|
||||
elif event.button == 2 and self.down_button == 2:
|
||||
touch_event = TouchEvent(TouchManager.long_click, self.down_pos, self.up_pos, None)
|
||||
return TouchEvent
|
||||
else:
|
||||
return None
|
||||
elif event.type == pygame.MOUSEBUTTONDOWN:
|
||||
@@ -43,16 +52,22 @@ class TouchManager():
|
||||
def mouse_down(self, event):
|
||||
self.down_pos = event.pos
|
||||
self.down_button = event.button
|
||||
self.down_time = time.time()
|
||||
|
||||
def mouse_up(self, event):
|
||||
self.up_pos = event.pos
|
||||
if abs(self.down_pos[0] - self.up_pos[0]) < self.max_move_margin:
|
||||
if abs(self.down_pos[1] - self.up_pos[1]) < self.max_move_margin:
|
||||
return TouchEvent(TouchManager.click, self.down_pos, self.up_pos, None)
|
||||
logger.error(time.time())
|
||||
logger.error(self.down_time)
|
||||
if time.time() - TouchManager.long_click_min_time > self.down_time:
|
||||
logger.error("longpress")
|
||||
return TouchEvent(TouchManager.long_click, self.down_pos, self.up_pos, None)
|
||||
else:
|
||||
return TouchEvent(TouchManager.click, self.down_pos, self.up_pos, None)
|
||||
elif abs(self.down_pos[1] - self.up_pos[1]) > self.min_swipe_move:
|
||||
return TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
|
||||
elif self.down_pos[1] - self.up_pos[1] < self.max_move_margin:
|
||||
logger.error( abs(self.down_pos[1] - self.up_pos[1]))
|
||||
if abs(self.down_pos[0] - self.up_pos[0]) > self.min_swipe_move:
|
||||
return TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, False)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user