X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftaskbar%2Ftask.h;h=1dbaa97cb8291de9737cf29205a8607967fd5650;hb=c0f91cbbb76989eb2e6a7a2185509573b0c3b0cb;hp=6bb9ef3c22e25501b8f86fc15bcbb33d415da3ea;hpb=1b1f2a1a069edcf3db99ae07020eeedae3023f76;p=chaz%2Ftint2 diff --git a/src/taskbar/task.h b/src/taskbar/task.h index 6bb9ef3..1dbaa97 100644 --- a/src/taskbar/task.h +++ b/src/taskbar/task.h @@ -11,8 +11,13 @@ #include #include #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 { @@ -21,20 +26,26 @@ typedef struct { int text; int icon; int centered; + int align; int icon_posy; int icon_size1; int maximum_width; int maximum_height; - int alpha, saturation, brightness; - int alpha_active, saturation_active, brightness_active; + 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_posy; + double text_posx, text_height; int font_shadow; PangoFontDescription *font_desc; - config_color font; - config_color font_active; + Color font[TASK_STATE_COUNT]; + int config_font_mask; + int tooltip_enabled; } Global_task; @@ -46,36 +57,34 @@ typedef struct { // TODO: group task with list of windows here Window win; int desktop; - Imlib_Image icon; - Imlib_Image icon_active; + 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; -typedef struct { - Task* tsk; - int tick; -} Task_urgent; - - - Task *add_task (Window win); void remove_task (Task *tsk); -void draw_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); -int is_urgent(Task *tsk); #endif