From 631ade1931887d5d9bbfd9f2c553ad11fe8f7af3 Mon Sep 17 00:00:00 2001 From: ChuckBuilds <33324927+ChuckBuilds@users.noreply.github.com> Date: Wed, 23 Apr 2025 15:31:13 -0500 Subject: [PATCH] feat: center date/time and event title in calendar display --- src/calendar_manager.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/calendar_manager.py b/src/calendar_manager.py index 23620252..2eec6b5a 100644 --- a/src/calendar_manager.py +++ b/src/calendar_manager.py @@ -120,25 +120,30 @@ class CalendarManager: def draw_event(self, event, y_position=2): """Draw a single calendar event.""" try: - # Get time and summary - time_text = self._format_event_time(event) + # Get date, time, and summary + date_text = self._format_event_date(event) + time_text = self._format_event_time(event).replace(" ", "") # Remove space between time and AM/PM + datetime_text = f"{date_text} {time_text}" summary = event.get('summary', 'No Title') - # Use regular font (PressStart2P) for time and date - time_width = self.display_manager.get_text_width(time_text, self.display_manager.regular_font) + # Use regular font (PressStart2P) for date/time + datetime_width = self.display_manager.get_text_width(datetime_text, self.display_manager.regular_font) + datetime_x = (self.display_manager.matrix.width - datetime_width) // 2 - # Use calendar font (4x6) for summary - available_width = self.display_manager.matrix.width - time_width - 10 # 10 pixels padding - title_lines = self._wrap_text(summary, available_width, self.display_manager.calendar_font, max_lines=2) - - # Draw time with regular font - self.display_manager.draw_text(time_text, 0, y_position, + # Draw centered date/time with regular font + self.display_manager.draw_text(datetime_text, datetime_x, y_position, color=self.time_color, font=self.display_manager.regular_font) - # Draw summary with calendar font + # Use calendar font (4x6) for summary + available_width = self.display_manager.matrix.width - 4 # 2 pixel margin on each side + title_lines = self._wrap_text(summary, available_width, self.display_manager.calendar_font, max_lines=2) + + # Draw centered summary with calendar font for i, line in enumerate(title_lines): - self.display_manager.draw_text(line, time_width + 10, y_position + (i * 8), + line_width = self.display_manager.get_text_width(line, self.display_manager.calendar_font) + line_x = (self.display_manager.matrix.width - line_width) // 2 + self.display_manager.draw_text(line, line_x, y_position + 12 + (i * 8), color=self.text_color, font=self.display_manager.calendar_font)