X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fsystray%2Fsystraybar.h;h=d9f43bb0d2ff4411210100c0a049f2e320b15df4;hb=9ad50cc90314fb960c8eea1d41f912f6d9e402fd;hp=fab1891e801540d54fa278d28bdd9d72426a06f9;hpb=346e19cf9cc32f56221ae0e9dc25070cefedb5be;p=chaz%2Ftint2 diff --git a/src/systray/systraybar.h b/src/systray/systraybar.h index fab1891..d9f43bb 100644 --- a/src/systray/systraybar.h +++ b/src/systray/systraybar.h @@ -2,24 +2,29 @@ * Copyright (C) 2009 thierry lorthiois (lorthiois@bbsoft.fr) * * systraybar -* based on 'docker-1.5' from Ben Jansens +* systray implementation come from 'docker-1.5' by Ben Jansens, +* and from systray/xembed specification (freedesktop.org). * **************************************************************************/ #ifndef SYSTRAYBAR_H #define SYSTRAYBAR_H -#include -#include -#include +#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; + int sort; } Systraybar; @@ -28,23 +33,31 @@ typedef struct Window id; int x, y; int width, height; - - long *icon_data; } TrayWindow; extern Window net_sel_win; extern Systraybar systray; +extern int refresh_systray; void init_systray(); void cleanup_systray(); -int net_init(); +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); -void icon_remove(TrayWindow *traywin); -void resize_systray (void *obj); +gboolean add_icon(Window id); +void remove_icon(TrayWindow *traywin); + +void refresh_systray_icon(); +void kde_update_icons(); #endif