-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
79 lines (56 loc) · 2.03 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# import os
# os.environ["KIVY_NO_CONSOLELOG"] = "1"
from kivy.config import Config
Config.set('kivy', 'log_level', 'info')
Config.set('graphics', 'maxfps', '60')
Config.set('graphics', 'width', '0')
Config.set('graphics', 'height', '0')
from kivy.core.window import Window
Window.hide()
import yaml
with open('paths.yaml', 'r') as f:
paths = yaml.safe_load(f)
icons = paths['assets']['icons']
fonts = paths['assets']['fonts']
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager
from views.screens import SettingsScreen, CameraFeedbackScreen, HomeScreen
from kivy.clock import Clock
from db.db import Database
db = Database(paths['db']['actions'], paths['db']['schema'])
class VirtualMouse(App):
title = 'Virtual Mouse'
def build(self):
self.paths = paths
self.fonts = fonts
self.icons = icons
self.db = db
Window.bind(on_resize=self.resize)
self.sm = ScreenManager()
self.sm.add_widget(HomeScreen(name='home'))
self._show_window()
Clock.schedule_once(lambda dt: self.sm.add_widget(CameraFeedbackScreen(name='camera')), 0)
self.sm.add_widget(SettingsScreen(name='settings'))
return self.sm
def _show_window(self):
Window.size = (360, 500)
Window.minimum_width = 360
Window.minimum_height = 500
import pyautogui
screen_size = pyautogui.size()
Window.left = (screen_size[0] - Window.size[0]) / 2
Window.top = (screen_size[1] - Window.size[1]) / 2
self.height = Window.height
self.width = Window.width
self.icon = icons['app']
Window.show()
def on_stop(self):
Window.hide()
for screen in self.sm.screens:
if hasattr(screen, 'on_stop'):
screen.on_stop()
def resize(self, instance, value, *args):
self.height = Window.height
self.width = Window.width
if __name__ == '__main__':
VirtualMouse().run()