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
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)
position[1] - self.position[1]
)
+ def set_description(self, description):
+ for desc in description:
+ if desc is None:
+ self.description.append("")
+ else:
+ self.description.append(str(desc))
+
+ 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()
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() - 4
+ 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, (3, offset))
+ offset += text_police.get_linesize() - 4
+
background_surface.blit(self.surface, self.position)
self.draw_lock.release()
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 = pygame.Surface((690, 250)).convert()
surface.fill((250, 250, 250))
if getattr(sys, 'frozen', False):
police = pygame.font.Font(sys._MEIPASS + "/Ubuntu-Regular.ttf", 14)
surface.blit(text, (0, offset))
offset += police.get_linesize()
- screen.blit(surface, (10, 330))
+ screen.blit(surface, (5, 308))
pygame.display.flip()
self.draw_lock.release()