]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blame - music_sampler/app.py
Add config
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler / app.py
CommitLineData
5e0dc4b2 1from .helpers import parse_args, dump_config, register_fonts, path
cc008de4 2
6ebe6247 3parse_args()
cc008de4 4
d8046b94
IB
5import kivy
6kivy.require("1.9.1")
4b2d79ca
IB
7from kivy.app import App
8from kivy.uix.floatlayout import FloatLayout
9from kivy.uix.relativelayout import RelativeLayout
7d6df771 10from kivy.uix.label import Label
4b2d79ca 11from kivy.properties import ListProperty, StringProperty
4b2d79ca 12from kivy.core.window import Window
bb69f62e 13from kivy.lang import Builder
bb69f62e 14
5e0dc4b2 15dump_config()
6ebe6247 16register_fonts()
35bde798 17
dd25f8f0 18
7d6df771 19from .helpers import Config
dd25f8f0
IB
20from .key import Key
21from .mapping import Mapping
22
60aa2bed 23from .app_blocks.actionlist import *
d734981b
IB
24from .app_blocks.playlist import *
25
65ec4d2a
IB
26class KeyList(RelativeLayout):
27 keylist = ListProperty([])
28 first_key = StringProperty("")
29 second_key = StringProperty("")
30 third_key = StringProperty("")
31
32 def append(self, value):
98ff4305 33 self.keylist.insert(0, value)
65ec4d2a
IB
34
35 def on_keylist(self, instance, new_key_list):
36 if len(self.keylist) > 0:
37 self.first_key = self.keylist[0]
38 if len(self.keylist) > 1:
39 self.second_key = self.keylist[1]
40 if len(self.keylist) > 2:
41 self.third_key = self.keylist[2]
42
7d6df771 43class UnfocusedOverlay(Label):
4b2d79ca 44 pass
189bf90c 45
7d6df771
IB
46class Screen(FloatLayout):
47 def __init__(self, **kwargs):
48 super(Screen, self).__init__(**kwargs)
49 self.unfocused_widget = UnfocusedOverlay()
50 Window.bind(focus=self.focus_changed)
ca3264c8 51 Window.on_request_close = self.on_request_close
7d6df771
IB
52
53 def focus_changed(self, instance, focus):
16847231 54 if not Config.focus_warning:
7d6df771
IB
55 return
56 if not focus:
57 self.add_widget(self.unfocused_widget)
58 else:
59 self.remove_widget(self.unfocused_widget)
60
ca3264c8
IB
61 def on_request_close(self, *args, **kwargs):
62 self.ids["Mapping"].leave_application()
63
4b2d79ca
IB
64class MusicSamplerApp(App):
65 def build(self):
66 Window.size = (913, 563)
9de92b6d 67
4b2d79ca 68 return Screen()
9de92b6d 69
6ebe6247 70def main():
b3951077
IB
71 with open(path() + "/music_sampler.kv", encoding='utf8') as f:
72 Builder.load_string(f.read())
4b2d79ca 73 MusicSamplerApp().run()