X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fsystray%2Fsystraybar.h;h=03c031362b77b3bd057ffead9c4caf479818ab0a;hb=b68d4db999a5912c2fc7f29aef8ab75e2f742706;hp=761bda6746dd02aeb2595c0d8fa82091041d9b02;hpb=bf2fd3cf8c96d2a747ba4ea3bd8bd9b0a0d7e0e7;p=chaz%2Ftint2 diff --git a/src/systray/systraybar.h b/src/systray/systraybar.h index 761bda6..03c0313 100644 --- a/src/systray/systraybar.h +++ b/src/systray/systraybar.h @@ -2,35 +2,61 @@ * Copyright (C) 2009 thierry lorthiois (lorthiois@bbsoft.fr) * * systraybar +* systray implementation come from 'docker-1.5' by Ben Jansens, +* and from systray/xembed specification (freedesktop.org). * **************************************************************************/ #ifndef SYSTRAYBAR_H #define SYSTRAYBAR_H +#include "common.h" #include "area.h" +// XEMBED messages +#define XEMBED_EMBEDDED_NOTIFY 0 +// Flags for _XEMBED_INFO +#define XEMBED_MAPPED (1 << 0) + typedef struct { // always start with area Area area; + GSList *list_icons; } Systraybar; typedef struct { - Window id; - int x, y; + Window id; + int x, y; + int width, height; } TrayWindow; -void init_systray(Systraybar *sysbar, Area *parent); +extern Window net_sel_win; +extern Systraybar systray; +extern int refresh_systray; + + +void init_systray(); +void cleanup_systray(); +void draw_systray(void *obj, cairo_t *c, int active); +void resize_systray(void *obj); + + +// systray protocol +int init_net(); +void cleanup_net(); +void net_message(XClientMessageEvent *e); -// return 1 if task_width changed -int resize_systray (Systraybar *sysbar); +gboolean add_icon(Window id); +void remove_icon(TrayWindow *traywin); +void refresh_systray_icon(); +void kde_update_icons(); #endif