From f55522f03c3e9be7954aeacd79c45b10f966853b Mon Sep 17 00:00:00 2001 From: sallar Date: Sun, 3 Aug 2025 18:01:18 +0200 Subject: [PATCH] changed the apparence of athmos.py and added max_width property --- athmos.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/athmos.py b/athmos.py index 8e99c9c..ef70aeb 100755 --- a/athmos.py +++ b/athmos.py @@ -13,6 +13,7 @@ class Athmos: self.screen = screen self.show_list = True self.surface = pygame.Surface((0,0), pygame.SRCALPHA) + self.max_name_width = 350 def set_filenames(self,filenames): self.filenames = filenames @@ -27,18 +28,23 @@ class Athmos: if self.show_list: self.surface.fill("black") for i in range(self.get_display_count()): - # text = self.filenames[(i-self.index-math.floor(self.get_display_count()/2))%len(self.filenames)] - text = self.filenames[i] - # if i == math.floor(self.get_display_count()/2): - if i == self.index: - text_surface = font_helvetica16.render(text, False, "black", color_primary_light) - else: + text = self.filenames[(i+self.index-math.floor(self.get_display_count()/2))%len(self.filenames)] + if len(text)> math.floor(self.max_name_width/10): + text = text[0:math.floor(self.max_name_width/10)-2] + text += '...' + #text = self.filenames[i] + if i == math.floor(self.get_display_count()/2): + #if i == self.index: text_surface = font_helvetica16.render(text, False, color_primary_light) - opacity = math.floor((i+1) * 2 * 255 / MAX_COUNT + else: + text_surface = font_helvetica16.render(text, False, color_primary) + opacity = -20 + math.floor((i+1) * 2 * 255 / MAX_COUNT if i < MAX_COUNT/2 else (MAX_COUNT-i) * 2 * 255 / MAX_COUNT) - # text_surface.set_alpha(opacity) - self.surface.blit(text_surface, ((0, self.surface.get_height()/self.get_display_count()*i))) - - self.screen.blit(self.surface, (self.screen.get_width()/3, + text_surface.set_alpha(opacity) + #if text_surface.get_width() > self.max_name_width: self.max_name_width = text_surface.get_width() + self.surface.blit(text_surface, ((10, self.surface.get_height()/self.get_display_count()*i))) + pygame.draw.rect(self.surface, color_primary_light, (0, self.surface.get_height()/2-25, self.max_name_width+20, 40), 2) + + self.screen.blit(self.surface, ((self.screen.get_width()-self.max_name_width)/2, (self.screen.get_height() - self.surface.get_height())/2)) \ No newline at end of file