Files
basic1/display/low_level_gui.h
2026-01-28 20:12:41 -05:00

35 lines
1.8 KiB
C++

#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);
};