all repos — tint2 @ 3926a0026cd1087c1ab5880dcf6ecfe3b44d6c16

fork of the tint2 desktop panel for my custom setup - only minimized windows across all desktops for the taskbar

src/systray/systraybar.h (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/**************************************************************************
* 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;
   int width, height;
} TrayWindow;


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);

gboolean add_icon(Window id);
void remove_icon(TrayWindow *traywin);

void refresh_systray_icon();

void kde_update_icons();

#endif