diff --git a/display/low_level_gui.cpp b/display/low_level_gui.cpp index f774d91..aacd819 100644 --- a/display/low_level_gui.cpp +++ b/display/low_level_gui.cpp @@ -45,22 +45,22 @@ void LowLevelGUI::draw_window(LowLevelWindow* window){ renderer->draw_line(close_x + 3, close_y + 3, close_x + close_size - 4, close_y + close_size - 4, true, 1); renderer->draw_line(close_x + close_size - 4, close_y + 3, close_x + 3, close_y + close_size - 4, true, 1); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); renderer->draw_string_scaled(window->x + 10, window->y + 3, window->title, 2); - renderer->set_font(&original_font); + renderer->set_font(original_font); } void LowLevelGUI::draw_button(LowLevelWindow* window, int x, int y, const char *label, bool pressed, bool rounded) { window = validate_or_create_window(window, renderer); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); bool original_text_color = renderer->get_current_text_color(); renderer->set_font(current_font); int text_x = window->x + x + 5; int text_y = window->y + y + 5; - int height = renderer->get_current_font().get_char_height() * 2 + 10; + int height = renderer->get_current_font()->get_char_height() * 2 + 10; int width = int(renderer->draw_string_scaled(text_x, text_y, label, 2) * 1) + 30; if (pressed) @@ -79,15 +79,15 @@ void LowLevelGUI::draw_button(LowLevelWindow* window, int x, int y, const char * renderer->set_text_color(!pressed); renderer->draw_string_scaled(text_x, text_y, label, 2); - renderer->set_font(&original_font); + renderer->set_font(original_font); renderer->set_text_color(original_text_color); } void LowLevelGUI::draw_checkbox(LowLevelWindow* window, int x, int y, const char *label, bool checked) { window = validate_or_create_window(window, renderer); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); - int box_size = renderer->get_current_font().get_char_height() * 2 ; + int box_size = renderer->get_current_font()->get_char_height() * 2 ; int box_x = window->x + x; int box_y = window->y + y; // Draw checkbox square @@ -101,14 +101,14 @@ void LowLevelGUI::draw_checkbox(LowLevelWindow* window, int x, int y, const char // Draw label renderer->set_text_color(true); renderer->draw_string_scaled(box_x + box_size + 5, box_y - 1, label, 2); - renderer->set_font(&original_font); + renderer->set_font(original_font); } void LowLevelGUI::draw_radio_button(LowLevelWindow* window, int x, int y, const char *label, bool selected) { window = validate_or_create_window(window, renderer); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); - int radius = renderer->get_current_font().get_char_height(); + int radius = renderer->get_current_font()->get_char_height(); int center_x = window->x + x + radius; int center_y = window->y + y + radius; // Draw outer circle @@ -121,7 +121,7 @@ void LowLevelGUI::draw_radio_button(LowLevelWindow* window, int x, int y, const // Draw label renderer->set_text_color(true); renderer->draw_string_scaled(center_x + radius + 5, center_y - radius / 2, label, 2); - renderer->set_font(&original_font); + renderer->set_font(original_font); } @@ -138,7 +138,7 @@ void LowLevelGUI::draw_slider(LowLevelWindow* window, int x, int y, int width, i renderer->draw_rectangle(handle_x - 6, slider_y - 1, 12, height + 2, true, 1); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); // draw current position value label on top of the slider char pos_label[10]; @@ -149,7 +149,7 @@ void LowLevelGUI::draw_slider(LowLevelWindow* window, int x, int y, int width, i renderer->draw_string_scaled(slider_x, window->y + y, label, 2); } - renderer->set_font(&original_font); + renderer->set_font(original_font); @@ -157,7 +157,7 @@ void LowLevelGUI::draw_slider(LowLevelWindow* window, int x, int y, int width, i void LowLevelGUI::draw_calendar(LowLevelWindow* window, int x, int y, int month, int year) { window = validate_or_create_window(window, renderer); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); // 1. Draw Month and Year Header @@ -209,7 +209,7 @@ void LowLevelGUI::draw_calendar(LowLevelWindow* window, int x, int y, int month, renderer->draw_string_scaled(cell_x + offset_x, cell_y + 5, day_str, 1); } - renderer->set_font(&original_font); + renderer->set_font(original_font); } void LowLevelGUI::draw_textbox(LowLevelWindow* window, int x, int y, int width, int height, const char* content, bool focused) { @@ -226,7 +226,7 @@ void LowLevelGUI::draw_textbox(LowLevelWindow* window, int x, int y, int width, } // Draw content text inside the textbox - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); renderer->set_text_color(true); @@ -234,7 +234,7 @@ void LowLevelGUI::draw_textbox(LowLevelWindow* window, int x, int y, int width, int text_y = box_y + 5; renderer->draw_string_scaled(text_x, text_y, content, 1); - renderer->set_font(&original_font); + renderer->set_font(original_font); } void LowLevelGUI::draw_tab(LowLevelWindow* window, int x, int y, int width, int height, const char* label, bool selected) { @@ -249,17 +249,17 @@ void LowLevelGUI::draw_tab(LowLevelWindow* window, int x, int y, int width, int renderer->draw_rectangle(tab_x - 1, tab_y - 1, width + 2, height + 2, true, 1); } - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); renderer->set_text_color(true); // Center the label within the tab int text_width = int(renderer->draw_string_scaled(0, 0, label, 1) * 0.75); int text_x = tab_x + (width - text_width) / 2; - int text_y = tab_y + (height - renderer->get_current_font().get_char_height()) / 2; + int text_y = tab_y + (height - renderer->get_current_font()->get_char_height()) / 2; renderer->draw_string_scaled(text_x, text_y, label, 1); - renderer->set_font(&original_font); + renderer->set_font(original_font); } void LowLevelGUI::draw_status_bar(LowLevelWindow* window, int x, int y, int width, const char* label, const char* sublabel, int percentage, const char* value_text) { @@ -267,7 +267,7 @@ void LowLevelGUI::draw_status_bar(LowLevelWindow* window, int x, int y, int widt int base_x = window->x + x; int base_y = window->y + y; - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); // Draw Main Label (e.g., "PANELS") @@ -289,7 +289,7 @@ void LowLevelGUI::draw_status_bar(LowLevelWindow* window, int x, int y, int widt renderer->draw_rounded_rectangle(base_x + 2, bar_y + 2, fill_width - 4, bar_height - 4, 4, true, true); } - renderer->set_font(&original_font); + renderer->set_font(original_font); } void LowLevelGUI::draw_circular_gauge(LowLevelWindow* window, int x, int y, int width, const char* label, int percentage) { @@ -301,7 +301,7 @@ void LowLevelGUI::draw_circular_gauge(LowLevelWindow* window, int x, int y, int // Draw pill-shaped container renderer->draw_rounded_rectangle(base_x, base_y, width, height, height/2, true); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); // Draw Label @@ -323,7 +323,7 @@ void LowLevelGUI::draw_circular_gauge(LowLevelWindow* window, int x, int y, int // Note: If your renderer supports arcs: // renderer->draw_arc(centerX, centerY, radius, 0, (percentage * 360) / 100); - renderer->set_font(&original_font); + renderer->set_font(original_font); } @@ -335,7 +335,7 @@ void LowLevelGUI::draw_notification(LowLevelWindow* window, int x, int y, int wi // Draw dark background renderer->draw_rounded_rectangle(base_x, base_y, width, 100, 15, true, true); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); renderer->set_text_color(false); // Assume false is white/light on dark @@ -347,15 +347,15 @@ void LowLevelGUI::draw_notification(LowLevelWindow* window, int x, int y, int wi renderer->draw_string_scaled(base_x + 15, base_y + 30, message, 2); renderer->set_text_color(true); - renderer->set_font(&original_font); + renderer->set_font(original_font); } void LowLevelGUI::draw_large_clock(LowLevelWindow* window, int x, int y, const char* time_str) { window = validate_or_create_window(window, renderer); - Font original_font = renderer->get_current_font(); + const Font* original_font = renderer->get_current_font(); renderer->set_font(current_font); // Draw the time significantly larger (scale 5 or 6) renderer->draw_string_scaled(window->x + x, window->y + y, time_str, 6); - renderer->set_font(&original_font); + renderer->set_font(original_font); } diff --git a/display/low_level_render.h b/display/low_level_render.h index 06a76cd..7fb2ab0 100644 --- a/display/low_level_render.h +++ b/display/low_level_render.h @@ -111,7 +111,7 @@ public: // Font management void set_font(const Font* font); void set_text_color(bool color); - Font get_current_font() const { return *current_font; } + const Font* get_current_font() const { return current_font; } bool get_current_text_color() const { return text_color; } int get_width() const { return V_WIDTH; } int get_height() const { return V_HEIGHT; }