]> Dogcows Code - chaz/tint2/blobdiff - src/systray/systraybar.h
fixed issue 110 and issue 107
[chaz/tint2] / src / systray / systraybar.h
index 0c5e6249b2f002337ffb8f23e7c214e7d6e2f3e1..03c031362b77b3bd057ffead9c4caf479818ab0a 100644 (file)
@@ -2,19 +2,28 @@
 * 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;
 
 
@@ -22,22 +31,32 @@ typedef struct
 {
    Window id;
    int x, y;
-
-   Window win;
-   long *icon_data;
-   int icon_width;
-   int icon_height;
+   int width, height;
 } 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);
 
-// 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
 
This page took 0.024153 seconds and 4 git commands to generate.