@ -1 +1 @@
|
|||||||
__version__ = '0.6.1'
|
__version__ = '0.6.2'
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
from cvpubsubs.window_sub.winctrl import WinCtrl
|
from cvpubsubs.window_sub.winctrl import WinCtrl
|
||||||
import threading
|
import threading
|
||||||
|
import time
|
||||||
|
|
||||||
if False:
|
if False:
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
@ -18,22 +19,24 @@ class mouse_thread(object): # NOSONAR
|
|||||||
|
|
||||||
class mouse_loop_thread(object): # NOSONAR
|
class mouse_loop_thread(object): # NOSONAR
|
||||||
|
|
||||||
def __init__(self, f, run_when_no_events=False):
|
def __init__(self, f, run_when_no_events=False, fps=60):
|
||||||
self.f = f
|
self.f = f
|
||||||
self.sub_mouse = WinCtrl.mouse_pub.make_sub()
|
self.sub_mouse = WinCtrl.mouse_pub.make_sub()
|
||||||
self.sub_cmd = WinCtrl.win_cmd_pub.make_sub()
|
self.sub_cmd = WinCtrl.win_cmd_pub.make_sub()
|
||||||
self.sub_cmd.return_on_no_data = ''
|
self.sub_cmd.return_on_no_data = ''
|
||||||
self.run_when_no_events = run_when_no_events
|
self.run_when_no_events = run_when_no_events
|
||||||
|
self.fps = fps
|
||||||
|
|
||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
msg_cmd = ''
|
msg_cmd = ''
|
||||||
while msg_cmd != 'quit':
|
while msg_cmd != 'quit':
|
||||||
mouse_xyzclick = self.sub_mouse.get() # type: MouseEvent
|
mouse_xyzclick = self.sub_mouse.get(blocking=True) # type: MouseEvent
|
||||||
if mouse_xyzclick is not self.sub_mouse.return_on_no_data:
|
if mouse_xyzclick is not self.sub_mouse.return_on_no_data:
|
||||||
self.f(mouse_xyzclick, *args, **kwargs)
|
self.f(mouse_xyzclick, *args, **kwargs)
|
||||||
elif self.run_when_no_events:
|
elif self.run_when_no_events:
|
||||||
self.f(None, *args, **kwargs)
|
self.f(None, *args, **kwargs)
|
||||||
msg_cmd = self.sub_cmd.get()
|
msg_cmd = self.sub_cmd.get()
|
||||||
|
time.sleep(1.0 / self.fps)
|
||||||
WinCtrl.quit(force_all_read=False)
|
WinCtrl.quit(force_all_read=False)
|
||||||
|
|
||||||
|
|
||||||
@ -59,12 +62,13 @@ class key_thread(object): # NOSONAR
|
|||||||
|
|
||||||
class key_loop_thread(object): # NOSONAR
|
class key_loop_thread(object): # NOSONAR
|
||||||
|
|
||||||
def __init__(self, f, run_when_no_events=False):
|
def __init__(self, f, run_when_no_events=False, fps=60):
|
||||||
self.f = f
|
self.f = f
|
||||||
self.sub_key = WinCtrl.key_pub.make_sub()
|
self.sub_key = WinCtrl.key_pub.make_sub()
|
||||||
self.sub_cmd = WinCtrl.win_cmd_pub.make_sub()
|
self.sub_cmd = WinCtrl.win_cmd_pub.make_sub()
|
||||||
self.sub_cmd.return_on_no_data = ''
|
self.sub_cmd.return_on_no_data = ''
|
||||||
self.run_when_no_events = run_when_no_events
|
self.run_when_no_events = run_when_no_events
|
||||||
|
self.fps = fps
|
||||||
|
|
||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
msg_cmd = ''
|
msg_cmd = ''
|
||||||
@ -75,6 +79,7 @@ class key_loop_thread(object): # NOSONAR
|
|||||||
elif self.run_when_no_events:
|
elif self.run_when_no_events:
|
||||||
self.f(None, *args, **kwargs)
|
self.f(None, *args, **kwargs)
|
||||||
msg_cmd = self.sub_cmd.get()
|
msg_cmd = self.sub_cmd.get()
|
||||||
|
time.sleep(1.0 / self.fps)
|
||||||
WinCtrl.quit(force_all_read=False)
|
WinCtrl.quit(force_all_read=False)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user