aboutsummaryrefslogtreecommitdiffstats
path: root/calmwm.h
diff options
context:
space:
mode:
authorokan2012-07-03 13:49:03 +0000
committerokan2012-07-03 13:49:03 +0000
commitddc2baea991a9aee4b138ed29436fe423d1c4d3e (patch)
tree490e677d510550663ec475c0c1ce96a49c78538a /calmwm.h
parentd9b285478d95868143d2231edca6375c0137aba5 (diff)
downloadcwm-ddc2baea991a9aee4b138ed29436fe423d1c4d3e.tar.gz
re-implement atom handing; makes for a normalized and more consistent
separation between cwm and ewmh. seen by a few.
Diffstat (limited to 'calmwm.h')
-rw-r--r--calmwm.h76
1 files changed, 46 insertions, 30 deletions
diff --git a/calmwm.h b/calmwm.h
index e8f340f..4c6c90f 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: calmwm.h,v 1.146 2012/05/16 01:17:14 okan Exp $
+ * $OpenBSD: calmwm.h,v 1.147 2012/07/03 13:49:03 okan Exp $
*/
#ifndef _CALMWM_H_
@@ -466,6 +466,19 @@ void xu_setstate(struct client_ctx *, int);
void xu_ewmh_net_supported(struct screen_ctx *);
void xu_ewmh_net_supported_wm_check(struct screen_ctx *);
+void xu_ewmh_net_desktop_geometry(struct screen_ctx *);
+void xu_ewmh_net_workarea(struct screen_ctx *);
+void xu_ewmh_net_client_list(struct screen_ctx *);
+void xu_ewmh_net_active_window(struct screen_ctx *, Window);
+void xu_ewmh_net_wm_desktop_viewport(struct screen_ctx *);
+void xu_ewmh_net_wm_number_of_desktops(struct screen_ctx *);
+void xu_ewmh_net_showing_desktop(struct screen_ctx *);
+void xu_ewmh_net_virtual_roots(struct screen_ctx *);
+void xu_ewmh_net_current_desktop(struct screen_ctx *, long);
+void xu_ewmh_net_desktop_names(struct screen_ctx *, unsigned char *, int);
+
+void xu_ewmh_net_wm_desktop(struct client_ctx *);
+
void u_exec(char *);
void u_spawn(char *);
@@ -490,34 +503,37 @@ extern struct conf Conf;
extern int HasXinerama, HasRandr, Randr_ev;
-#define WM_STATE cwm_atoms[0]
-#define WM_DELETE_WINDOW cwm_atoms[1]
-#define WM_TAKE_FOCUS cwm_atoms[2]
-#define WM_PROTOCOLS cwm_atoms[3]
-#define _MOTIF_WM_HINTS cwm_atoms[4]
-#define UTF8_STRING cwm_atoms[5]
-/*
- * please make all hints below this point netwm hints, starting with
- * _NET_SUPPORTED. If you change other hints make sure you update
- * CWM_NETWM_START
- */
-#define _NET_SUPPORTED cwm_atoms[6]
-#define _NET_SUPPORTING_WM_CHECK cwm_atoms[7]
-#define _NET_WM_NAME cwm_atoms[8]
-#define _NET_ACTIVE_WINDOW cwm_atoms[9]
-#define _NET_CLIENT_LIST cwm_atoms[10]
-#define _NET_NUMBER_OF_DESKTOPS cwm_atoms[11]
-#define _NET_CURRENT_DESKTOP cwm_atoms[12]
-#define _NET_DESKTOP_VIEWPORT cwm_atoms[13]
-#define _NET_DESKTOP_GEOMETRY cwm_atoms[14]
-#define _NET_VIRTUAL_ROOTS cwm_atoms[15]
-#define _NET_SHOWING_DESKTOP cwm_atoms[16]
-#define _NET_DESKTOP_NAMES cwm_atoms[17]
-#define _NET_WM_DESKTOP cwm_atoms[18]
-#define _NET_WORKAREA cwm_atoms[19]
-#define CWM_NO_ATOMS 20
-#define CWM_NETWM_START 6
-
-extern Atom cwm_atoms[CWM_NO_ATOMS];
+enum {
+ WM_STATE,
+ WM_DELETE_WINDOW,
+ WM_TAKE_FOCUS,
+ WM_PROTOCOLS,
+ _MOTIF_WM_HINTS,
+ UTF8_STRING,
+ CWMH_NITEMS
+};
+enum {
+ _NET_SUPPORTED,
+ _NET_SUPPORTING_WM_CHECK,
+ _NET_ACTIVE_WINDOW,
+ _NET_CLIENT_LIST,
+ _NET_NUMBER_OF_DESKTOPS,
+ _NET_CURRENT_DESKTOP,
+ _NET_DESKTOP_VIEWPORT,
+ _NET_DESKTOP_GEOMETRY,
+ _NET_VIRTUAL_ROOTS,
+ _NET_SHOWING_DESKTOP,
+ _NET_DESKTOP_NAMES,
+ _NET_WORKAREA,
+ _NET_WM_NAME,
+ _NET_WM_DESKTOP,
+ EWMH_NITEMS
+};
+struct atom_ctx {
+ char *name;
+ Atom atom;
+};
+extern struct atom_ctx cwmh[CWMH_NITEMS];
+extern struct atom_ctx ewmh[EWMH_NITEMS];
#endif /* _CALMWM_H_ */