From cd255f24c1a3b199c2b446537aff60be767676d4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Fri, 24 Jun 2016 20:46:52 +0200 Subject: [PATCH] Add checkmarks to the action list --- helpers/key.py | 21 +++++++++++++++++---- music_sampler.py | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/helpers/key.py b/helpers/key.py index 56cccaa..d923b1d 100644 --- a/helpers/key.py +++ b/helpers/key.py @@ -118,17 +118,21 @@ class Key: def add_action(self, action_name, **arguments): self.actions.append(Action(action_name, self, **arguments)) - def do_actions(self): + def do_actions(self, screen): print("running actions for {}".format(self.key_sym)) start_time = time.time() self.mapping.start_running(self, start_time) + action_number = 0 for action in self.actions: if self.mapping.keep_running(self, start_time): + self.list_actions(screen, action_number = action_number + 0.5) action.run() + action_number += 1 + self.list_actions(screen, action_number = action_number) self.mapping.finished_running(self, start_time) - def list_actions(self, screen): + def list_actions(self, screen, action_number = 0): action_descriptions = [action.description() for action in self.actions] #print("actions linked to key {}:".format(self.key_sym)) #print("\t" + "\n\t".join(action_descriptions)) @@ -144,9 +148,18 @@ class Key: offset += police.get_linesize() police.set_bold(False) - for description in action_descriptions: + icon_police = font(14, font = "Symbola") + for index, description in enumerate(action_descriptions): + if index < int(action_number): + icon = icon_police.render("✓", True, (0,0,0)) + elif index + 0.5 == action_number: + icon = icon_police.render("✅", True, (0,0,0)) + else: + icon = icon_police.render(" ", True, (0,0,0)) + text = police.render(description, True, (0,0,0)) - surface.blit(text, (0, offset)) + surface.blit(icon, (0, offset)) + surface.blit(text, (10, offset)) offset += police.get_linesize() screen.blit(surface, (5, 308)) diff --git a/music_sampler.py b/music_sampler.py index 6fed26b..42c01e3 100644 --- a/music_sampler.py +++ b/music_sampler.py @@ -48,7 +48,7 @@ while 1: 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 = "MSKeyAction", target=key.do_actions, args = [screen]).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()) -- 2.41.0