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 *
class KeyList(RelativeLayout):
if len(self.keylist) > 2:
self.third_key = self.keylist[2]
-class ActionList(RelativeLayout):
- action_title = StringProperty("")
- action_list = ListProperty([])
-
- def update_list(self, key, action_descriptions):
- self.action_title = "actions linked to key {}:".format(key.key_sym)
- self.action_list = []
-
- for [action, status] in action_descriptions:
- if status == "done":
- icon = "✓"
- elif status == "current":
- icon = "✅"
- else:
- icon = " "
- self.action_list.append([icon, action])
+class UnfocusedOverlay(Label):
+ pass
class Screen(FloatLayout):
- pass
+ def __init__(self, **kwargs):
+ super(Screen, self).__init__(**kwargs)
+ self.unfocused_widget = UnfocusedOverlay()
+ Window.bind(focus=self.focus_changed)
+
+ 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)
class MusicSamplerApp(App):
def build(self):