X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=music_sampler%2Fapp.py;h=ce842358240d0e6cbb56206513ab539ba7b94bc7;hb=16847231fa5a85cbb0f792e6e461392879047c36;hp=08a8891d0a9f88601ffcfc1fac6689f6f92053a1;hpb=dd25f8f05f091ba876b784e3fd4ae6df309bd4a1;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/music_sampler/app.py b/music_sampler/app.py index 08a8891..ce84235 100644 --- a/music_sampler/app.py +++ b/music_sampler/app.py @@ -7,6 +7,7 @@ kivy.require("1.9.1") from kivy.app import App from kivy.uix.floatlayout import FloatLayout from kivy.uix.relativelayout import RelativeLayout +from kivy.uix.label import Label from kivy.properties import ListProperty, StringProperty from kivy.core.window import Window from kivy.lang import Builder @@ -14,6 +15,7 @@ from kivy.lang import Builder register_fonts() +from .helpers import Config from .key import Key from .mapping import Mapping @@ -37,9 +39,27 @@ class KeyList(RelativeLayout): if len(self.keylist) > 2: self.third_key = self.keylist[2] -class Screen(FloatLayout): +class UnfocusedOverlay(Label): pass +class Screen(FloatLayout): + def __init__(self, **kwargs): + super(Screen, self).__init__(**kwargs) + self.unfocused_widget = UnfocusedOverlay() + Window.bind(focus=self.focus_changed) + Window.on_request_close = self.on_request_close + + def focus_changed(self, instance, focus): + if not Config.focus_warning: + return + if not focus: + self.add_widget(self.unfocused_widget) + else: + self.remove_widget(self.unfocused_widget) + + def on_request_close(self, *args, **kwargs): + self.ids["Mapping"].leave_application() + class MusicSamplerApp(App): def build(self): Window.size = (913, 563)