Files
amiwm-neo/icc.h
Lucas de Sena 0c5a2c7648 separate _NET atoms at the end of the array
So when setting the list of supported _NET atoms, we can just pass a
pointer to ATOM[_NET_SUPPORTED] as the beginning of the array of
supported atoms, and NATOMS - _NET_SUPPORTED as its length.
2026-02-19 20:24:51 +00:00

67 lines
1.4 KiB
C

#ifndef ICC_H
#define ICC_H
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include "client.h"
extern void init_atoms(void);
extern void setsupports(Window, Window);
extern void sendcmessage(Window, Atom, long);
extern void getproto(Client *c);
extern void getwmstate(Client *c);
extern void setwmstate(Client *c);
extern void setstringprop(Window, Atom, char *);
extern void propertychange(Client *, Atom);
extern long _getprop(Window, Atom, Atom, long, char **);
extern void getwflags(Client *);
extern Window get_transient_for(Window);
#define Pdelete 1
#define Ptakefocus 2
#define Psizebottom 4
#define Psizeright 8
#define Psizetrans 16
#define mkcmessage(w, a, x, ...) (&(XEvent){.xclient = { \
.type = ClientMessage, \
.window = (w), \
.message_type = (a), \
.format = 32, \
.data.l = {(long)(x), CurrentTime, __VA_ARGS__}, \
}})
#define NET_ATOMS \
X(_NET_SUPPORTING_WM_CHECK) \
X(_NET_WM_NAME) \
X(_NET_WM_STATE) \
X(_NET_WM_STATE_FULLSCREEN) \
#define ATOMS_TABLE(X) \
X(__SWM_VROOT) \
X(AMIWM_APPICONMSG) \
X(AMIWM_APPWINDOWMSG) \
X(AMIWM_SCREEN) \
X(AMIWM_WFLAGS) \
X(UTF8_STRING) \
X(WM_CHANGE_STATE) \
X(WM_CLASS) \
X(WM_COLORMAP_WINDOWS) \
X(WM_DELETE_WINDOW) \
X(WM_PROTOCOLS) \
X(WM_STATE) \
X(WM_TAKE_FOCUS) \
X(_NET_SUPPORTED) \
NET_ATOMS /* this must come last */
enum {
#define X(atom) atom,
ATOMS_TABLE(X)
NATOMS
#undef X
};
extern Atom ATOMS[NATOMS];
#endif