]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler/music_sampler.kv
Lock widget modifications and reuse labels in actionlist/playlist
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler / music_sampler.kv
index 905753272f738b8088afd9778793da3d367aad42..ffc2797e0bf44c8df87dbd2fba7e6940b5091a75 100644 (file)
   action_list_y: self.border
 
   play_list_height: self.action_list_height
-  play_list_width: self.width - self.action_list_width - 3* self.border
+  play_list_width: self.width - self.key_list_width - self.action_list_width - 4* self.border
   play_list_y: self.border
   play_list_x: self.action_list_width + self.key_list_width + 3 * self.border
 
-  min_height: min(mock_symbola.height, mock_ubuntu_regular.height, mock_ubuntu_bold.height)
-  symbola_line_height: self.min_height / max(mock_symbola.height,1)
-  ubuntu_regular_line_height: self.min_height / max(mock_ubuntu_regular.height,1)
-  ubuntu_bold_line_height: self.min_height / max(mock_ubuntu_bold.height,1)
-  Label:
-    id: mock_symbola
-    font_name: "Symbola"
-    font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
-    color: 0, 0, 0, 0
-    text: "A"
-    text_size: None, None
-    size_hint: None, None
-    size: self.texture_size
+  max_height: 1.3 * math.ceil(2 * math.sqrt(self.key_size or 10))
+
   Label:
     id: mock_ubuntu_regular
     font_name: "Ubuntu"
     text_size: None, None
     size_hint: None, None
     size: self.texture_size
-  Label:
-    id: mock_ubuntu_bold
-    font_name: "Ubuntu"
-    bold: True
-    font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
-    color: 0, 0, 0, 0
-    text: "A"
-    text_size: None, None
-    size_hint: None, None
-    size: self.texture_size
 
   Mapping:
     id: Mapping
 
 <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))
   canvas:
     Color:
       rgba: 250./255, 250./255, 250./255, 1
     Rectangle:
       pos:  0, 0
       size: self.width, self.height
-
   Label:
     id: action_list_title
     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.action_title
     text_size: None, self.parent.height
     valign: "top"
     size_hint: None, None
     size: self.texture_size[0], self.parent.height
-  Label:
-    id: action_list_icons
-    font_name: "Symbola"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
-    line_height: self.parent.parent.symbola_line_height or 1
-    color: 0, 0, 0, 1
-    text: "\n".join(map(lambda x: x[0], self.parent.action_list))
-    text_size: None, self.parent.height
-    halign: "left"
-    valign: "top"
-    size_hint: None, None
-    size: self.texture_size[0], self.parent.height - 3 * self.line_height * self.font_size
-  Label:
-    id: action_list_names
-    font_name: "Ubuntu"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
-    line_height: self.parent.parent.ubuntu_regular_line_height or 1
-    color: 0, 0, 0, 1
-    text: "\n".join(map(lambda x: x[1], self.parent.action_list))
-    text_size: None, self.parent.height
-    halign: "left"
-    valign: "top"
-    size_hint: None, None
-    pos: 15, self.y
-    size: self.texture_size[0], self.parent.height - 3 * self.line_height * self.font_size
-  
+  ActionListIcons:
+    font_size: self.parent.font_size
+    labels_height: self.parent.labels_height
+    orientation: 'lr-tb'
+    size_hint: 0.02, 0.9
+    pos_hint: { 'x': 0, 'top': 0.9 }
+  ActionListDescriptions:
+    font_size: self.parent.font_size
+    labels_height: self.parent.labels_height
+    orientation: 'lr-tb'
+    size_hint: 0.98, 0.9
+    pos_hint: { 'x': 0.02, 'top': 0.9 }
+
+<ActionListIcon>:
+  font_size: self.parent and self.parent.font_size or 10
+  height: self.parent and self.parent.labels_height or 0
+  font_name: "Symbola"
+  color: 0, 0, 0, 1
+  text_size: None, None
+  halign: "left"
+  size_hint: None, None
+  width: self.texture_size[0]
+
+<ActionListDescription>:
+  font_size: self.parent and self.parent.font_size or 10
+  height: self.parent and self.parent.labels_height or 0
+  font_name: "Ubuntu"
+  color: 0, 0, 0, 1
+  text_size: self.width, None
+  shorten: True
+  shorten_from: "right"
+  split_str: ""
+  halign: "left"
+  size_hint: 1, None
+
 <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))
   canvas:
     Color:
       rgba: 250./255, 250./255, 250./255, 1
     Rectangle:
       pos:  0, 0
       size: self.width, self.height
-
-  Label:
-    id: playlist_icons
-    font_name: "Symbola"
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
-    line_height: self.parent.parent.symbola_line_height or 1
-    color: 0, 0, 0, 1
-    text: "\n".join(map(lambda x: x[0], self.parent.playlist))
-    text_size: None, self.parent.height
-    halign: "left"
-    valign: "top"
-    size_hint: None, None
-    size: self.texture_size[0], self.parent.height
-  Label:
-    id: playlist_names
-    font_name: "Ubuntu" # FIXME: Mettre en gras quand c'est en cours
-    line_height: self.parent.parent.ubuntu_regular_line_height or 1
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
-    color: 0, 0, 0, 1
-    text: "\n".join(map(lambda x: x[1], self.parent.playlist))
-    text_size: None, self.parent.height
-    halign: "left"
-    valign: "top"
-    size_hint: None, None
-    pos: 15, self.y
-    size: self.texture_size[0], self.parent.height
-  Label:
-    canvas.before:
-      Color:
-        rgba: 250./255, 250./255, 250./255, 1
-      Rectangle:
-        pos:  self.pos
-        size: self.width, self.height
-    id: playlist_times
-    font_name: "Ubuntu"
-    line_height: self.parent.parent.ubuntu_regular_line_height or 1
-    font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
-    color: 0, 0, 0, 1
-    text: "\n".join(map(lambda x: x[2], self.parent.playlist))
-    text_size: None, self.parent.height
-    halign: "left"
-    valign: "top"
-    size_hint: None, None
-    pos: self.parent.width - 3 * self.width / 2 - 2 * (self.parent.parent.border or 0), self.y
-    size: self.texture_size[0], self.parent.height
+  PlayListIcons:
+    font_size: self.parent.font_size
+    labels_height: self.parent.labels_height
+    orientation: 'lr-tb'
+    size_hint: 0.05, 1
+    pos_hints: { 'x': 0, 'top': 0 }
+  PlayListNames:
+    font_size: self.parent.font_size
+    labels_height: self.parent.labels_height
+    orientation: 'lr-tb'
+    pos_hint: { 'x': 0.05, 'bottom': 0 }
+    size_hint: 0.65, 1
+  PlayListTimes:
+    font_size: self.parent.font_size
+    labels_height: self.parent.labels_height
+    orientation: 'lr-tb'
+    pos_hint: { 'x': 0.7, 'bottom': 0 }
+    size_hint: 0.30, 1
  
+<PlayListIcon>:
+  font_size: self.parent and self.parent.font_size or 10
+  height: self.parent and self.parent.labels_height or 0
+  font_name: "Symbola"
+  color: 0, 0, 0, 1
+  text_size: None, None
+  halign: "left"
+  size_hint: None, None
+  width: self.texture_size[0]
+
+<PlayListName>:
+  font_size: self.parent and self.parent.font_size or 10
+  height: self.parent and self.parent.labels_height or 0
+  font_name: "Ubuntu"
+  color: 0, 0, 0, 1
+  text_size: self.width, None
+  shorten: True
+  shorten_from: "right"
+  split_str: ""
+  halign: "left"
+  size_hint: 1, None
+
+<PlayListTime>:
+  font_size: self.parent and self.parent.font_size or 10
+  height: self.parent and self.parent.labels_height or 0
+  canvas.before:
+    Color:
+      rgba: 250./255, 250./255, 250./255, 1
+    Rectangle:
+      pos:  self.pos
+      size: self.width, self.height
+  font_name: "Ubuntu"
+  color: 0, 0, 0, 1
+  text_size: None, None
+  halign: "left"
+  size_hint: None, None
+  width: self.texture_size[0]
+
 <Mapping>:
   size_hint: None, None
   key_size: 48