#include "low_level_render.h" class LowLevelWindow { public: int x, y, width, height; const char* title; LowLevelWindow(int x_pos, int y_pos, int w, int h, const char* t) : x(x_pos), y(y_pos), width(w), height(h), title(t) {} }; class LowLevelGUI { private: LowLevelRenderer* renderer; bool use_rounded_corners = true; const Font* current_font; public: LowLevelGUI(LowLevelRenderer* rend, const Font& font); LowLevelWindow* draw_new_window(int x, int y, int width, int height, const char *title); void draw_window(LowLevelWindow* window); void draw_button(LowLevelWindow* window, int x, int y, const char *label, bool pressed = false, bool rounded = true); void draw_checkbox(LowLevelWindow* window, int x, int y, const char *label, bool checked = false); void draw_radio_button(LowLevelWindow* window, int x, int y, const char *label, bool selected = false); void draw_slider(LowLevelWindow* window, int x, int y, int width, int height, int position, char* label = nullptr); void draw_calendar(LowLevelWindow* window, int x, int y, int month, int year); void draw_textbox(LowLevelWindow* window, int x, int y, int width, int height, const char* content, bool focused = false); void draw_tab(LowLevelWindow* window, int x, int y, int width, int height, const char* label, bool selected = false); void draw_status_bar(LowLevelWindow* window, int x, int y, int width, const char* label, const char* sublabel, int percentage, const char* value_text); void draw_circular_gauge(LowLevelWindow* window, int x, int y, int width, const char* label, int percentage); void draw_notification(LowLevelWindow* window, int x, int y, int width, const char* time, const char* message); void draw_large_clock(LowLevelWindow* window, int x, int y, const char* time_str); };