- thread.join()
-
- pygame.quit()
- sys.exit()
-
- if context == 'normal':
- if event.type == pygame.KEYDOWN:
- key = mapping.find_by_key_num(event.key)
- if key is not None and not key.disabled:
- threading.Thread(name = "MSKeyAction", target=key.do_actions).start()
- threading.Thread(name = "MSClic", target=key.list_actions, args = [screen]).start()
- elif event.type == pygame.MOUSEBUTTONUP:
- key = mapping.find_by_collidepoint(pygame.mouse.get_pos())
- if key is not None:
- threading.Thread(name = "MSClic", target=key.list_actions, args = [screen]).start()
-
- draw_lock.acquire()
- police = helpers.font(14)
- icon_police = helpers.font(14, font = "Symbola")
-
- surface = pygame.Surface((208, 250)).convert()
- surface.fill((250, 250, 250))
- offset = 0
- for music_file in open_files.values():
- police.set_bold(False)
- if music_file.is_playing():
- if music_file.is_paused():
- icon = icon_police.render("⏸", True, (0,0,0))
+
+ text = "{}/{}".format(
+ helpers.duration_to_min_sec(music_file.sound_position),
+ helpers.duration_to_min_sec(music_file.sound_duration))
+
+ if music_file.is_loaded_paused():
+ self.playlist.append(["⏸", music_file.name, text, False])
+ else:
+ self.playlist.append(["⏵", music_file.name, text, True])
+
+
+class ActionList(RelativeLayout):
+ action_title = StringProperty("")
+ action_list = ListProperty([])
+
+ def update_list(self, key, action_number = 0):
+ self.action_title = "actions linked to key {}:".format(key.key_sym)
+ self.action_list = []
+
+ action_descriptions = [action.description() for action in key.actions]
+
+ for index, description in enumerate(action_descriptions):
+ if index < int(action_number):
+ icon = "✓"
+ elif index + 0.5 == action_number:
+ icon = "✅"