+/**************************************************************************
+* Copyright (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr)
+*
+* taskbar
+*
+**************************************************************************/
#ifndef TASKBAR_H
#define TASKBAR_H
#include "task.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;
-// --------------------------------------------------
-// taskbar parameter
+// tint2 use one taskbar per desktop.
typedef struct {
- // --------------------------------------------------
- // always start with area
- Area area;
-
- int desktop;
- int monitor;
-
- // task parameters
- int task_width;
- int task_modulo;
- int text_width;
+ // always start with area
+ Area area;
+
+ int desktop;
+ Pixmap state_pix[TASKBAR_STATE_COUNT];
+
+ // task parameters
+ int text_width;
} Taskbar;
-// --------------------------------------------------
-// global taskbar parameter
-Area g_taskbar;
+typedef struct {
+ //always start with area
+ Area area;
+ Background* background[TASKBAR_STATE_COUNT];
+} Global_taskbar;
+
+// default global data
+void default_taskbar();
+// freed memory
+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 ();
-// return 1 if task_width changed
-int resize_tasks (Taskbar *tskbar);
+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);
-//void add_taskbar(Area *a);
#endif