/* * DWN - Desktop Window Manager * retoor * Window decorations (title bars, borders, buttons) */ #ifndef DWN_DECORATIONS_H #define DWN_DECORATIONS_H #include "dwn.h" #include typedef enum { BUTTON_CLOSE, BUTTON_MAXIMIZE, BUTTON_MINIMIZE, BUTTON_COUNT } ButtonType; typedef struct { int x, y; int width, height; } ButtonArea; void decorations_init(void); void decorations_cleanup(void); void decorations_render(Client *client, bool focused); void decorations_render_title_bar(Client *client, bool focused); void decorations_render_buttons(Client *client, bool focused); void decorations_render_border(Client *client, bool focused); ButtonType decorations_hit_test_button(Client *client, int x, int y); bool decorations_hit_test_title_bar(Client *client, int x, int y); bool decorations_hit_test_resize_area(Client *client, int x, int y, int *direction); void decorations_button_press(Client *client, ButtonType button); void decorations_draw_text(Window window, GC gc, int x, int y, const char *text, unsigned long color); #endif