src/taskbar/task.h (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
/************************************************************************** * task : * - * **************************************************************************/ #ifndef TASK_H #define TASK_H #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; 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; } Global_task; typedef struct { // 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; Task *add_task (Window win); void remove_task (Task *tsk); void draw_task (void *obj, cairo_t *c); void get_icon (Task *tsk); void get_title(Task *tsk); void active_task(); void set_task_state(Task* tsk, int state); void set_task_redraw(Task* tsk); Task *next_task (Task *tsk); Task *prev_task (Task *tsk); void add_urgent(Task *tsk); void del_urgent(Task *tsk); #endif |