X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fsystray%2Fsystraybar.h;h=9e3b99012c4a5ac073692e22ef7ac2c78a68d1df;hb=f704f3350599d7f71afd0fb827c0948dec67ede3;hp=5222dd6b3d36b8bb22c5404c089470d8796b4a89;hpb=e9f82fb210675167061fd45697f49e6eb733c732;p=chaz%2Ftint2 diff --git a/src/systray/systraybar.h b/src/systray/systraybar.h index 5222dd6..9e3b990 100644 --- a/src/systray/systraybar.h +++ b/src/systray/systraybar.h @@ -2,49 +2,67 @@ * 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; + // 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; + // TODO: manage icon's show/hide + int hide; } TrayWindow; +// net_sel_win != None when protocol started extern Window net_sel_win; - +extern Systraybar systray; +extern int refresh_systray; +extern int systray_enabled; void init_systray(); +void init_systray_panel(void *p); void cleanup_systray(); -int net_init(); +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 +void start_net(); +void stop_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