96 lines
2.9 KiB
Python
96 lines
2.9 KiB
Python
import sys
|
|
import threading
|
|
from threading import Thread
|
|
import keyboard
|
|
import time
|
|
import menu_key_def as KEYDEF
|
|
|
|
class class_menu_key_thread(Thread):
|
|
def __init__(self, parent = None) :
|
|
Thread.__init__(self)
|
|
self.key_left = False
|
|
self.key_right = False
|
|
self.key_up = False
|
|
self.key_down = False
|
|
self.key_enter = False
|
|
self.key_reset = False
|
|
self.stop_request = False
|
|
|
|
self.key_left_count = 0
|
|
self.key_right_count = 0
|
|
self.key_up_count = 0
|
|
self.key_down_count = 0
|
|
self.key_enter_count = 0
|
|
self.key_reset_count = 0
|
|
self.key_event = threading.Event()
|
|
|
|
def menu_wait_key(self, timeout) :
|
|
self.key_event.wait(timeout)
|
|
self.key_event.clear()
|
|
|
|
if self.key_enter :
|
|
self.key_enter = False
|
|
return KEYDEF.MENU_PACK_KEY_ENTER_OR_RIGHT
|
|
if self.key_reset :
|
|
self.key_reset = False
|
|
return KEYDEF.MENU_PACK_KEY_ESCAPE
|
|
if self.key_up :
|
|
self.key_up = False
|
|
return KEYDEF.MENU_PACK_KEY_UP
|
|
if self.key_down :
|
|
self.key_down = False
|
|
return KEYDEF.MENU_PACK_KEY_DOWN
|
|
if self.key_left :
|
|
self.key_left = False
|
|
return KEYDEF.MENU_PACK_KEY_LEFT
|
|
if self.key_right :
|
|
self.key_right = False
|
|
return KEYDEF.MENU_PACK_KEY_RIGHT
|
|
|
|
return KEYDEF.MENU_PACK_KEY_NULL
|
|
|
|
def thread_stop(self) :
|
|
self.stop_request = True
|
|
return
|
|
|
|
def key_up_press(self) :
|
|
self.key_up_count += 1
|
|
self.key_up = True
|
|
self.key_event.set()
|
|
|
|
def key_down_press(self) :
|
|
self.key_down_count += 1
|
|
self.key_down = True
|
|
self.key_event.set()
|
|
|
|
def key_enter_press(self) :
|
|
self.key_enter_count += 1
|
|
self.key_enter = True
|
|
self.key_event.set()
|
|
|
|
def key_reset_press(self) :
|
|
self.key_reset_count += 1
|
|
self.key_reset = True
|
|
self.key_event.set()
|
|
|
|
def key_right_press(self) :
|
|
self.key_right_count += 1
|
|
self.key_right = True
|
|
self.key_event.set()
|
|
|
|
def key_left_press(self) :
|
|
self.key_left_count += 1
|
|
self.key_left = True
|
|
self.key_event.set()
|
|
|
|
def run(self) :
|
|
keyboard.add_hotkey('ctrl + right', self.key_left_press, args=(), suppress=False)
|
|
keyboard.add_hotkey('ctrl + left', self.key_right_press, args=(), suppress=False)
|
|
keyboard.add_hotkey('ctrl + up', self.key_up_press, args=(), suppress=False)
|
|
keyboard.add_hotkey('ctrl + down', self.key_down_press, args=(), suppress=False)
|
|
keyboard.add_hotkey('ctrl + enter', self.key_enter_press, args=(), suppress=False)
|
|
keyboard.add_hotkey('ctrl + q', self.key_reset_press, args=(), suppress=False)
|
|
|
|
while self.stop_request == False:
|
|
time.sleep(0.5)
|