mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-11 13:23:00 +00:00
feat: use MatrixChunky6 font for calendar event summaries
This commit is contained in:
@@ -124,21 +124,26 @@ class CalendarManager:
|
|||||||
time_str = self._format_event_time(event)
|
time_str = self._format_event_time(event)
|
||||||
date_str = self._format_event_date(event)
|
date_str = self._format_event_date(event)
|
||||||
|
|
||||||
# Use display manager's font for wrapping
|
# Use display manager's small font for date/time and calendar font for summary
|
||||||
font = self.display_manager.small_font
|
datetime_font = self.display_manager.small_font
|
||||||
|
summary_font = self.display_manager.calendar_font
|
||||||
available_width = self.display_manager.matrix.width - 4 # Leave 2 pixel margin on each side
|
available_width = self.display_manager.matrix.width - 4 # Leave 2 pixel margin on each side
|
||||||
|
|
||||||
# Draw date and time on top line
|
# Draw date and time on top line
|
||||||
datetime_str = f"{date_str} {time_str}"
|
datetime_str = f"{date_str} {time_str}"
|
||||||
self.display_manager.draw_text(datetime_str, y=2, color=self.text_color, small_font=True)
|
self.display_manager.draw_text(datetime_str, y=2, color=self.text_color, small_font=True)
|
||||||
|
|
||||||
# Wrap summary text for two lines
|
# Wrap summary text for two lines using calendar font
|
||||||
title_lines = self._wrap_text(summary, available_width, font, max_lines=2)
|
title_lines = self._wrap_text(summary, available_width, summary_font, max_lines=2)
|
||||||
|
|
||||||
# Draw summary lines
|
# Draw summary lines
|
||||||
y_pos = 12 # Start position for summary (below date/time)
|
y_pos = 12 # Start position for summary (below date/time)
|
||||||
for line in title_lines:
|
for line in title_lines:
|
||||||
self.display_manager.draw_text(line, y=y_pos, color=self.text_color, small_font=True)
|
# Use direct drawing with calendar font for summary
|
||||||
|
bbox = self.display_manager.draw.textbbox((0, 0), line, font=summary_font)
|
||||||
|
text_width = bbox[2] - bbox[0]
|
||||||
|
x = (self.display_manager.matrix.width - text_width) // 2
|
||||||
|
self.display_manager.draw.text((x, y_pos), line, font=summary_font, fill=self.text_color)
|
||||||
y_pos += 8 # Move down for next line
|
y_pos += 8 # Move down for next line
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -149,6 +149,18 @@ class DisplayManager:
|
|||||||
self.small_font = ImageFont.truetype("assets/fonts/PressStart2P-Regular.ttf", 8)
|
self.small_font = ImageFont.truetype("assets/fonts/PressStart2P-Regular.ttf", 8)
|
||||||
logger.info("Press Start 2P small font loaded successfully")
|
logger.info("Press Start 2P small font loaded successfully")
|
||||||
|
|
||||||
|
# Load MatrixChunky6 font for calendar events
|
||||||
|
try:
|
||||||
|
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
relative_font_path = os.path.join(script_dir, "../assets/fonts/MatrixChunky6.ttf")
|
||||||
|
font_path = os.path.abspath(relative_font_path)
|
||||||
|
logger.info(f"Attempting to load MatrixChunky6 font from: {font_path} at size 8")
|
||||||
|
self.calendar_font = ImageFont.truetype(font_path, 8)
|
||||||
|
logger.info(f"MatrixChunky6 calendar font loaded successfully from {font_path}")
|
||||||
|
except Exception as font_err:
|
||||||
|
logger.error(f"Failed to load MatrixChunky6 font: {font_err}. Falling back to small font.")
|
||||||
|
self.calendar_font = self.small_font
|
||||||
|
|
||||||
# Load 4x6 font as extra_small_font
|
# Load 4x6 font as extra_small_font
|
||||||
try:
|
try:
|
||||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
@@ -168,6 +180,7 @@ class DisplayManager:
|
|||||||
# Fallback to default font
|
# Fallback to default font
|
||||||
self.regular_font = ImageFont.load_default()
|
self.regular_font = ImageFont.load_default()
|
||||||
self.small_font = self.regular_font
|
self.small_font = self.regular_font
|
||||||
|
self.calendar_font = self.regular_font
|
||||||
# Ensure extra_small_font exists even if regular/small fail
|
# Ensure extra_small_font exists even if regular/small fail
|
||||||
if not hasattr(self, 'extra_small_font'):
|
if not hasattr(self, 'extra_small_font'):
|
||||||
self.extra_small_font = self.regular_font
|
self.extra_small_font = self.regular_font
|
||||||
|
|||||||
Reference in New Issue
Block a user