#define TASKBAR_H
#include "task.h"
+#include "taskbarname.h"
+enum { TASKBAR_NORMAL, TASKBAR_ACTIVE, TASKBAR_STATE_COUNT };
extern GHashTable* win_to_task_table;
extern Task *task_active;
extern Task *task_drag;
+extern int taskbar_enabled;
+
+
+typedef struct {
+ // always start with area
+ Area area;
+ Pixmap state_pix[TASKBAR_STATE_COUNT];
+
+ char *name;
+ int posy;
+} Taskbarname;
// tint2 use one taskbar per desktop.
typedef struct {
Area area;
int desktop;
+ Pixmap state_pix[TASKBAR_STATE_COUNT];
+ Taskbarname bar_name;
+
// task parameters
- int task_width;
- int task_modulo;
int text_width;
} Taskbar;
-
typedef struct {
//always start with area
Area area;
- Background* bg;
- Background* bg_active;
- int use_active;
+ Area area_name;
+ Background* background[TASKBAR_STATE_COUNT];
+ Background* background_name[TASKBAR_STATE_COUNT];
} Global_taskbar;
void cleanup_taskbar();
void init_taskbar();
+void init_taskbar_panel(void *p);
+void draw_taskbar (void *obj, cairo_t *c);
+void taskbar_remove_task(gpointer key, gpointer value, gpointer user_data);
Task *task_get_task (Window win);
GPtrArray* task_get_tasks(Window win);
void task_refresh_tasklist ();
-void resize_taskbar(void *obj);
+int resize_taskbar(void *obj);
+void on_change_taskbar (void *obj);
+void set_taskbar_state(Taskbar *tskbar, int state);
+
+// show/hide taskbar according to current desktop
+void visible_taskbar(void *p);
#endif