]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler/music_sampler.kv
Precompute font size in kv file
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler / music_sampler.kv
index ffc2797e0bf44c8df87dbd2fba7e6940b5091a75..7abab0d374d3bd491f8b307e47e2d8d753f84109 100644 (file)
@@ -1,5 +1,4 @@
 #:import math math
-#:import h music_sampler
 
 <Key>:
   pad_col_sep: 0 if not self.pad_cols else self.parent.pad_x
@@ -18,6 +17,8 @@
   key_height: 1
   width: self.key_width * (self.parent.key_size + self.parent.key_sep) - self.parent.key_sep
   height: self.key_height * (self.parent.key_size + self.parent.key_sep) - self.parent.key_sep
+  normal_font_size: self.parent.font_size
+  smaller_font_size: math.ceil(2 * math.sqrt(self.parent.key_size / 2))
   canvas.before:
     Color:
       rgba: self.color
@@ -42,7 +43,7 @@
     id: key_label
     font_name: "Ubuntu"
     bold: True
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size))
+    font_size: self.parent.normal_font_size or 10
     color: 0, 0, 0, 1
     text: self.parent.key_sym
     text_size: self.parent.width,self.font_size
@@ -54,7 +55,7 @@
   Label:
     id: key_description_title
     font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size / 2))
+    font_size: self.parent.smaller_font_size or 8
     color: 0, 0, 0, 1
     text: self.parent.description_title
     text_size: self.parent.width - 2*self.parent.line_width, self.font_size
@@ -65,7 +66,7 @@
   Label:
     id: key_description
     font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size / 2))
+    font_size: self.parent.smaller_font_size or 8
     color: 0, 0, 0, 1
     text: "\n".join(self.parent.description)
     text_size: 2 * self.parent.width,self.parent.height - key_label.font_size
   play_list_y: self.border
   play_list_x: self.action_list_width + self.key_list_width + 3 * self.border
 
-  max_height: 1.3 * math.ceil(2 * math.sqrt(self.key_size or 10))
+  font_size: math.ceil(2 * math.sqrt(self.key_size or 10))
+  max_height: 1.3 * self.font_size
 
   Label:
     id: mock_ubuntu_regular
     font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
+    font_size: self.parent.font_size
     color: 0, 0, 0, 0
     text: "A"
     text_size: None, None
     size: self.parent.play_list_width, self.parent.play_list_height
 
 <KeyList>:
+  font_size: self.parent.font_size or 10
   size_hint: None, None
   canvas:
     Color:
     id: key_list_first
     font_name: "Ubuntu"
     bold: True
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
+    font_size: self.parent.font_size
     color: 0, 0, 0, 1
     text: self.parent.first_key
     text_size: None, None
   Label:
     id: key_list_second
     font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
+    font_size: self.parent.font_size
     color: 0, 0, 0, 1
     text: self.parent.second_key
     text_size: None, None
   Label:
     id: key_list_third
     font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
+    font_size: self.parent.font_size
     color: 0, 0, 0, 0.75
     text: self.parent.third_key
     text_size: None, None
   Label:
     id: key_list_rest
     font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
+    font_size: self.parent.font_size
     color: 0, 0, 0, 0.5
     text: "\n".join(self.parent.keylist[3:])
     text_size: None, None
 <ActionList>:
   size_hint: None, None
   labels_height: self.parent.max_height or 1
-  font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
+  font_size: self.parent.font_size or 10
   canvas:
     Color:
       rgba: 250./255, 250./255, 250./255, 1
 <PlayList>:
   size_hint: None, None
   labels_height: self.parent.max_height or 1
-  font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
+  font_size: self.parent.font_size or 10
   canvas:
     Color:
       rgba: 250./255, 250./255, 250./255, 1
 <Mapping>:
   size_hint: None, None
   key_size: 48
+  font_size: self.parent.font_size
   key_sep: 2
   key_pad_sep: 7
   pad_x: 755
       size: self.key_size / 3, self.key_size / 3
   Label:
     font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
+    font_size: self.parent.font_size or 10
     color: 0, 0, 0, 1
     text: "volume: {}%".format(self.parent.master_volume)
     valign: "top"