X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=music_sampler%2Fapp.py;h=e7c90dbd8967da9a4cadda1a8068ef7c2223da54;hb=814c30c6835b25d06977af1dd2d1e565c45121cc;hp=cce396972172268307e49a2a14e61665c79b9e22;hpb=60aa2bed939858f9aec4252071c8efd99baac7e3;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/music_sampler/app.py b/music_sampler/app.py index cce3969..e7c90db 100644 --- a/music_sampler/app.py +++ b/music_sampler/app.py @@ -6,16 +6,19 @@ import kivy kivy.require("1.9.1") from kivy.app import App from kivy.uix.floatlayout import FloatLayout -from kivy.uix.stacklayout import StackLayout 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 -from .key import Key -from .mapping import Mapping register_fonts() + +from .helpers import Config +from .key import Key +from .mapping import Mapping + from .app_blocks.actionlist import * from .app_blocks.playlist import * @@ -36,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 Config.no_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)