X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=helpers%2Fkey.py;h=9a6cb3b29f2a1b0270a1081490eab4efdc90f844;hb=b86db9f1679c855c2d39a0b116f846d271271a2c;hp=6997e702d75a78040e391e77e225a02a40b08d76;hpb=ba9ea93a0f52178d24a606fddc2acc5dc85b7ff2;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/helpers/key.py b/helpers/key.py index 6997e70..9a6cb3b 100644 --- a/helpers/key.py +++ b/helpers/key.py @@ -18,7 +18,8 @@ class Key: lighter_outer_color = (200, 200, 200) default_inner_color = (255, 255, 255) mapped_inner_color = ( 0, 255, 0) - mapped_unready_inner_color = (255, 165, 0) + mapped_unready_inner_color = ( 0, 255, 0, 100) + #mapped_unready_inner_color = (255, 165, 0) def __init__(self, mapping, draw_lock, key_name, key_sym, top, left, width = 48, height = 48, disabled = False): self.draw_lock = draw_lock @@ -50,13 +51,16 @@ class Key: self.inner_color = self.default_inner_color self.actions = [] + self.description = [] + self.custom_color = None + self.custom_unready_color = None def square(self, all_actions_ready): if self.has_actions(): if all_actions_ready: - self.inner_color = self.mapped_inner_color + self.inner_color = self.custom_color or self.mapped_inner_color else: - self.inner_color = self.mapped_unready_inner_color + self.inner_color = self.custom_unready_color or self.mapped_unready_inner_color return RoundedRect((0, 0, self.width, self.height), self.outer_color, self.inner_color, self.linewidth) @@ -67,6 +71,14 @@ class Key: position[1] - self.position[1] ) + def set_description(self, description): + self.description = description + + def set_color(self, color): + self.custom_color = tuple(color) + color.append(100) + self.custom_unready_color = tuple(color) + def draw(self, background_surface): self.draw_lock.acquire() all_actions_ready = self.all_actions_ready() @@ -75,11 +87,27 @@ class Key: if getattr(sys, 'frozen', False): police = pygame.font.Font(sys._MEIPASS + "/Ubuntu-Regular.ttf", 14) + text_police = pygame.font.Font(sys._MEIPASS + "/Ubuntu-Regular.ttf", 10) else: police = pygame.font.Font("Ubuntu-Regular.ttf", 14) + text_police = pygame.font.Font("Ubuntu-Regular.ttf", 10) + police.set_bold(True) text = police.render(self.key_sym, True, (0,0,0)) self.surface.blit(text, (5,5)) + + is_first_line = True + offset = 11 + text_police.get_linesize() + first_line_offset = 18 + for description in self.description: + text = text_police.render(description, True, (0,0,0)) + if is_first_line: + self.surface.blit(text, (first_line_offset, 9)) + is_first_line = False + else: + self.surface.blit(text, (5, offset)) + offset += text_police.get_linesize() + background_surface.blit(self.surface, self.position) self.draw_lock.release() @@ -114,8 +142,8 @@ class Key: def list_actions(self, screen): 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)) + #print("actions linked to key {}:".format(self.key_sym)) + #print("\t" + "\n\t".join(action_descriptions)) self.draw_lock.acquire() surface = pygame.Surface((800, 250)).convert() surface.fill((250, 250, 250))