/*
* DWN - Desktop Window Manager
* retoor <retoor@molodetz.nl>
* Panel system (top and bottom panels with widgets)
*/
#ifndef DWN_PANEL_H
#define DWN_PANEL_H
#include "dwn.h"
#include <stdbool.h>
typedef enum {
PANEL_TOP,
PANEL_BOTTOM
} PanelPosition;
struct Panel {
Window window;
PanelPosition position;
int x, y;
int width, height;
bool visible;
Pixmap buffer;
};
Panel *panel_create(PanelPosition position);
void panel_destroy(Panel *panel);
void panels_init(void);
void panels_cleanup(void);
void panel_render(Panel *panel);
void panel_render_all(void);
void panel_render_workspaces(Panel *panel, int x, int *width);
void panel_render_taskbar(Panel *panel, int x, int *width);
void panel_render_clock(Panel *panel, int x, int *width);
void panel_render_systray(Panel *panel, int x, int *width);
void panel_render_layout_indicator(Panel *panel, int x, int *width);
void panel_render_ai_status(Panel *panel, int x, int *width);
void panel_handle_click(Panel *panel, int x, int y, int button);
int panel_hit_test_workspace(Panel *panel, int x, int y);
Client *panel_hit_test_taskbar(Panel *panel, int x, int y);
void panel_show(Panel *panel);
void panel_hide(Panel *panel);
void panel_toggle(Panel *panel);
void panel_raise_all(void);
void panel_update_clock(void);
void panel_update_system_stats(void);
void panel_init_systray(void);
void panel_add_systray_icon(Window icon);
void panel_remove_systray_icon(Window icon);
#endif