]> Dogcows Code - chaz/tint2/blobdiff - src/taskbar/task.h
Fix for incorrect task cycling when windows visible on all desktops are present
[chaz/tint2] / src / taskbar / task.h
index 4bfeb9cf3a45b4db5c3043037b67df9c9e2e9883..50eed31d5d1df77f4f0a4b0ddf75f30c70c4df07 100644 (file)
@@ -9,55 +9,81 @@
 
 #include <X11/Xlib.h>
 #include <pango/pangocairo.h>
+#include <Imlib2.h>
 #include "common.h"
+#include "timer.h"
 
 
+enum { TASK_NORMAL, TASK_ACTIVE, TASK_ICONIFIED, TASK_URGENT, TASK_STATE_COUNT };
+extern timeout* urgent_timeout;
+extern GSList* urgent_list;
+
 // --------------------------------------------------
 // global task parameter
 typedef struct {
-   Area area;
-
-   int text;
-   int icon;
-   int centered;
-
-   int icon_posy;
-   int icon_size1;
-   int maximum_width;
-   // starting position for text ~ task_padding + task_border + icon_size
-   double text_posx, text_posy;
-
-   int font_shadow;
-   PangoFontDescription *font_desc;
-   config_color font;
-   config_color font_active;
+       Area area;
+
+       int text;
+       int icon;
+       int centered;
+
+       int icon_posy;
+       int icon_size1;
+       int maximum_width;
+       int maximum_height;
+       int alpha[TASK_STATE_COUNT];
+       int saturation[TASK_STATE_COUNT];
+       int brightness[TASK_STATE_COUNT];
+       int config_asb_mask;
+       Background* background[TASK_STATE_COUNT];
+       int config_background_mask;
+       // starting position for text ~ task_padding + task_border + icon_size
+       double text_posx, text_height;
+
+       int font_shadow;
+       PangoFontDescription *font_desc;
+       Color font[TASK_STATE_COUNT];
+       int config_font_mask;
+       int tooltip_enabled;
 } Global_task;
 
 
 
 typedef struct {
-   // always start with area
-   Area area;
-
-   // TODO: group task with list of windows here
-   Window win;
-   int  desktop;
-   long *icon_data;
-   int icon_width;
-   int icon_height;
-   char *title;
+       // always start with area
+       Area area;
+
+       // TODO: group task with list of windows here
+       Window win;
+       int  desktop;
+       int current_state;
+       Imlib_Image icon[TASK_STATE_COUNT];
+       Pixmap state_pix[TASK_STATE_COUNT];
+       unsigned int icon_width;
+       unsigned int icon_height;
+       char *title;
+       int urgent_tick;
 } Task;
 
 
-
-void add_task (Window win);
+Task *add_task (Window win);
 void remove_task (Task *tsk);
 
-void draw_foreground_task (void *obj, cairo_t *c, int active);
+void draw_task (void *obj, cairo_t *c);
+void on_change_task (void *obj);
 
 void get_icon (Task *tsk);
-void get_title(Task *tsk);
+int  get_title(Task *tsk);
+void active_task();
+void set_task_state(Task* tsk, int state);
+void set_task_redraw(Task* tsk);
+
+Task *find_active_task(Task *current_task, Task *active_task);
+Task *next_task (Task *tsk);
+Task *prev_task (Task *tsk);
 
+void add_urgent(Task *tsk);
+void del_urgent(Task *tsk);
 
 #endif
 
This page took 0.022586 seconds and 4 git commands to generate.