X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fsystray%2Fsystraybar.h;h=0ee61ed9362018ad38bfaa2a8c7bf68d9e01454f;hb=f3f6ab62e3242c62e129d56b2a44c19c09303a16;hp=dbe3fbee46671e12d6ddf12ba91362e7a086b30c;hpb=101ed479957ad40d2579faddb858a62a554007a3;p=chaz%2Ftint2 diff --git a/src/systray/systraybar.h b/src/systray/systraybar.h index dbe3fbe..0ee61ed 100644 --- a/src/systray/systraybar.h +++ b/src/systray/systraybar.h @@ -2,7 +2,8 @@ * 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). * **************************************************************************/ @@ -12,22 +13,27 @@ #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; + // always start with area + Area area; GSList *list_icons; + int sort; } Systraybar; typedef struct { - Window id; - int x, y; - int width, height; - - long *icon_data; + Window id; + int x, y; + int width, height; + int hide; } TrayWindow; @@ -38,18 +44,22 @@ 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 +// many tray icon doesn't manage stop/restart of the systray manager int init_net(); void cleanup_net(); void net_message(XClientMessageEvent *e); +gboolean add_icon(Window id); void remove_icon(TrayWindow *traywin); -void draw_systray(void *obj, cairo_t *c, int active); - -void resize_systray(void *obj); - void refresh_systray_icon(); +void kde_update_icons(); + #endif