|
a |
|
b/app/GuiControl.py |
|
|
1 |
from pywinauto.application import Application |
|
|
2 |
|
|
|
3 |
|
|
|
4 |
class GuiControl: |
|
|
5 |
def __init__(self): |
|
|
6 |
self.visualizer = None |
|
|
7 |
self.visualizer_dlg = None |
|
|
8 |
|
|
|
9 |
self.recorder = None |
|
|
10 |
self.recorder_dlg = None |
|
|
11 |
|
|
|
12 |
def set_windows_record(self): |
|
|
13 |
self.visualizer = Application().start(r"C:\Program Files\Ultraleap\TrackingVisualizer\TrackingVisualizer.exe") |
|
|
14 |
self.visualizer_dlg = self.visualizer.window() |
|
|
15 |
self.recorder = Application().connect(class_name="wxWindowNR") |
|
|
16 |
self.recorder_dlg = self.recorder.window() |
|
|
17 |
visualizer_dlg = self.visualizer_dlg |
|
|
18 |
recorder_dlg = self.recorder_dlg |
|
|
19 |
|
|
|
20 |
# toggle off the help menu |
|
|
21 |
visualizer_dlg.set_keyboard_focus().send_keystrokes("h---f") |
|
|
22 |
|
|
|
23 |
# get maximum screen size |
|
|
24 |
visualizer_dlg.maximize() |
|
|
25 |
max_size = visualizer_dlg.rectangle() |
|
|
26 |
visualizer_dlg.restore() |
|
|
27 |
|
|
|
28 |
size = GuiControl.position_record(max_size, main=True) |
|
|
29 |
visualizer_dlg.move_window(x=-size['x'], y=size['y'], width=size['width'], height=size['height'], repaint=True) |
|
|
30 |
# visualizer_dlg.set_transparency(alpha=120) |
|
|
31 |
|
|
|
32 |
size = GuiControl.position_record(max_size, main=False) |
|
|
33 |
recorder_dlg.set_focus() |
|
|
34 |
recorder_dlg.move_window(x=-size['x'], y=size['y'], width=size['width'], height=size['height'], repaint=True) |
|
|
35 |
recorder_dlg.Stop.set_focus() |
|
|
36 |
|
|
|
37 |
def end_record(self): |
|
|
38 |
self.visualizer.kill() |
|
|
39 |
self.recorder_dlg.restore() |
|
|
40 |
self.recorder_dlg.maximize() |
|
|
41 |
|
|
|
42 |
@staticmethod |
|
|
43 |
def position_record(max_size, main): |
|
|
44 |
max_width = max_size.right - max_size.left - 20 |
|
|
45 |
max_height = max_size.bottom - max_size.top - 20 |
|
|
46 |
if main: |
|
|
47 |
return {'x': -int(max_width / 3), |
|
|
48 |
'y': 0, |
|
|
49 |
'width': int(max_width / 3 * 2), |
|
|
50 |
'height': int(max_height)} |
|
|
51 |
return {'x': 0, |
|
|
52 |
'y': 0, |
|
|
53 |
'width': int(max_width / 3), |
|
|
54 |
'height': int(max_height)} |