From: Andy Spencer Date: Mon, 6 Apr 2015 23:57:58 +0000 (+0000) Subject: Move common types to a separate file X-Git-Url: http://pileus.org/git/?p=wmpus;a=commitdiff_plain;h=186168fe43a21434c71c25b3a6cb203ff4355cdf Move common types to a separate file --- diff --git a/main.c b/main.c index 8ac32d0..f512b24 100644 --- a/main.c +++ b/main.c @@ -19,6 +19,7 @@ #include "util.h" #include "conf.h" +#include "types.h" #include "sys.h" #include "wm.h" diff --git a/sys-win32.c b/sys-win32.c index 012a017..96d0f20 100644 --- a/sys-win32.c +++ b/sys-win32.c @@ -26,6 +26,7 @@ #include "util.h" #include "conf.h" +#include "types.h" #include "sys.h" #include "wm.h" diff --git a/sys-x11.c b/sys-x11.c index 7f17292..2f0087f 100644 --- a/sys-x11.c +++ b/sys-x11.c @@ -26,6 +26,7 @@ #include "util.h" #include "conf.h" +#include "types.h" #include "sys.h" #include "wm.h" diff --git a/sys.h b/sys.h index adc0247..5dc2374 100644 --- a/sys.h +++ b/sys.h @@ -23,84 +23,6 @@ * The sys also provides the API used by the wm to position * and control windows. */ - -/* Window states */ -typedef enum { - ST_HIDE, // completely hidden - ST_SHOW, // show as regular window - ST_FULL, // fullscreen (without decorations) - ST_MAX, // maximized (with decorations) - ST_SHADE, // show titlebar only - ST_ICON, // iconified/minimized - ST_CLOSE, // close the window -} state_t; - -/* Window types */ -typedef enum { - TYPE_NORMAL, - TYPE_DIALOG, - TYPE_TOOLBAR, -} type_t; - -/* Basic window type */ -typedef struct win_sys win_sys_t; -typedef struct win_wm win_wm_t; -typedef struct win { - int x, y, z; - int w, h; - state_t state; - type_t type; - struct win *parent; - win_sys_t *sys; - win_wm_t *wm; -} win_t; - -/* Generic key codes, also used for some other events - * Keys map to their Unicode value */ -typedef int event_t; -enum { - EV_ALERT = '\a', - EV_BACKSPACE = '\b', - EV_FORMFEED = '\f', - EV_NEWLINE = '\n', - EV_RETURN = '\r', - EV_TAB = '\t', - EV_VTAB = '\v', - EV_SINGLEQUOTE = '\'', - EV_DOUBLEQUOTE = '\"', - EV_BACKSLASH = '\\', - EV_QUESTION = '\?', - EV_NONE = 0xF0000, // unused Unicode space - EV_MOUSE0, EV_MOUSE1, EV_MOUSE2, EV_MOUSE3, - EV_MOUSE4, EV_MOUSE5, EV_MOUSE6, EV_MOUSE7, - EV_LEFT, EV_RIGHT, EV_UP, EV_DOWN, - EV_HOME, EV_END, EV_PAGEUP, EV_PAGEDOWN, - EV_F1, EV_F2, EV_F3, EV_F4, - EV_F5, EV_F6, EV_F7, EV_F8, - EV_F9, EV_F10, EV_F11, EV_F12, - EV_ALT, EV_CTRL, EV_SHIFT, EV_WIN, - EV_ENTER, EV_LEAVE, EV_FOCUS, EV_UNFOCUS, -}; - -/* Key modifiers, up is for button release */ -typedef struct { - unsigned char alt : 1; - unsigned char ctrl : 1; - unsigned char shift : 1; - unsigned char win : 1; - unsigned char up : 1; -} mod_t; -#define MOD(...) ((mod_t){__VA_ARGS__}) -#define mod2int(mod) (*((unsigned char*)&(mod))) - -/* Mouse movement */ -typedef struct { - int x, y; - int rx, ry; -} ptr_t; -#define PTR(...) ((ptr_t){__VA_ARGS__}) - - /* Move the window to the specified location and set it's * geometry. The position and size include borders and * window decorations. */ diff --git a/types.h b/types.h new file mode 100644 index 0000000..033d010 --- /dev/null +++ b/types.h @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2015 Andy Spencer + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + */ + +/* Forward definitions for sys and wm */ +typedef struct win_sys win_sys_t; +typedef struct win_wm win_wm_t; + +/* Window states */ +typedef enum { + ST_HIDE, // completely hidden + ST_SHOW, // show as regular window + ST_FULL, // fullscreen (without decorations) + ST_MAX, // maximized (with decorations) + ST_SHADE, // show titlebar only + ST_ICON, // iconified/minimized + ST_CLOSE, // close the window +} state_t; + +/* Window types */ +typedef enum { + TYPE_NORMAL, + TYPE_DIALOG, + TYPE_TOOLBAR, +} type_t; + +/* Basic window type */ +typedef struct win { + int x, y, z; + int w, h; + state_t state; + type_t type; + struct win *parent; + win_sys_t *sys; + win_wm_t *wm; +} win_t; + +/* Generic key codes, also used for some other events + * Keys map to their Unicode value */ +typedef int event_t; +enum { + EV_ALERT = '\a', + EV_BACKSPACE = '\b', + EV_FORMFEED = '\f', + EV_NEWLINE = '\n', + EV_RETURN = '\r', + EV_TAB = '\t', + EV_VTAB = '\v', + EV_SINGLEQUOTE = '\'', + EV_DOUBLEQUOTE = '\"', + EV_BACKSLASH = '\\', + EV_QUESTION = '\?', + EV_NONE = 0xF0000, // unused Unicode space + EV_MOUSE0, EV_MOUSE1, EV_MOUSE2, EV_MOUSE3, + EV_MOUSE4, EV_MOUSE5, EV_MOUSE6, EV_MOUSE7, + EV_LEFT, EV_RIGHT, EV_UP, EV_DOWN, + EV_HOME, EV_END, EV_PAGEUP, EV_PAGEDOWN, + EV_F1, EV_F2, EV_F3, EV_F4, + EV_F5, EV_F6, EV_F7, EV_F8, + EV_F9, EV_F10, EV_F11, EV_F12, + EV_ALT, EV_CTRL, EV_SHIFT, EV_WIN, + EV_ENTER, EV_LEAVE, EV_FOCUS, EV_UNFOCUS, +}; + +/* Key modifiers, up is for button release */ +typedef struct { + unsigned char alt : 1; + unsigned char ctrl : 1; + unsigned char shift : 1; + unsigned char win : 1; + unsigned char up : 1; +} mod_t; + +/* Mouse movement */ +typedef struct { + int x, y; + int rx, ry; +} ptr_t; + +/* Creation functions */ +#define MOD(...) ((mod_t){__VA_ARGS__}) +#define PTR(...) ((ptr_t){__VA_ARGS__}) + +/* Conversion functions */ +#define mod2int(mod) (*((unsigned char*)&(mod))) diff --git a/wm-mono.c b/wm-mono.c index fb52c88..4cce155 100644 --- a/wm-mono.c +++ b/wm-mono.c @@ -18,6 +18,7 @@ #include #include "util.h" +#include "types.h" #include "sys.h" #include "wm.h" diff --git a/wm-tags.c b/wm-tags.c index a8756f4..ed3ea79 100644 --- a/wm-tags.c +++ b/wm-tags.c @@ -18,6 +18,7 @@ #include #include "util.h" +#include "types.h" #include "sys.h" #include "wm.h" diff --git a/wm-wmii.c b/wm-wmii.c index b5b0980..b8c6d3d 100644 --- a/wm-wmii.c +++ b/wm-wmii.c @@ -19,6 +19,7 @@ #include "util.h" #include "conf.h" +#include "types.h" #include "sys.h" #include "wm.h"