]>
Commit | Line | Data |
---|---|---|
5e0dc4b2 | 1 | from .helpers import parse_args, dump_config, register_fonts, path |
cc008de4 | 2 | |
6ebe6247 | 3 | parse_args() |
cc008de4 | 4 | |
d8046b94 IB |
5 | import kivy |
6 | kivy.require("1.9.1") | |
4b2d79ca IB |
7 | from kivy.app import App |
8 | from kivy.uix.floatlayout import FloatLayout | |
9 | from kivy.uix.relativelayout import RelativeLayout | |
7d6df771 | 10 | from kivy.uix.label import Label |
4b2d79ca | 11 | from kivy.properties import ListProperty, StringProperty |
4b2d79ca | 12 | from kivy.core.window import Window |
bb69f62e | 13 | from kivy.lang import Builder |
bb69f62e | 14 | |
5e0dc4b2 | 15 | dump_config() |
6ebe6247 | 16 | register_fonts() |
35bde798 | 17 | |
dd25f8f0 | 18 | |
7d6df771 | 19 | from .helpers import Config |
dd25f8f0 IB |
20 | from .key import Key |
21 | from .mapping import Mapping | |
22 | ||
60aa2bed | 23 | from .app_blocks.actionlist import * |
d734981b IB |
24 | from .app_blocks.playlist import * |
25 | ||
65ec4d2a IB |
26 | class 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 | 43 | class UnfocusedOverlay(Label): |
4b2d79ca | 44 | pass |
189bf90c | 45 | |
7d6df771 IB |
46 | class 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 |
64 | class MusicSamplerApp(App): |
65 | def build(self): | |
66 | Window.size = (913, 563) | |
9de92b6d | 67 | |
4b2d79ca | 68 | return Screen() |
9de92b6d | 69 | |
6ebe6247 | 70 | def main(): |
b3951077 IB |
71 | with open(path() + "/music_sampler.kv", encoding='utf8') as f: |
72 | Builder.load_string(f.read()) | |
4b2d79ca | 73 | MusicSamplerApp().run() |