summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-12-07 11:45:21 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-12-07 12:24:02 +1000
commit49a4fcaa604a728730a3d593a5c738d07028d12c (patch)
treebf643bfdcc399a3afd69c18fed9349f80f874d83
parent3ede882724c4d8ca80653382f1aad64ff05836e8 (diff)
Deduplicate window creation code
Use some variables instead of hardcoded values. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--multitouch.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/multitouch.c b/multitouch.c
index 8e0f613..edcff1c 100644
--- a/multitouch.c
+++ b/multitouch.c
@@ -22,6 +22,7 @@
#include <X11/extensions/XInput2.h>
#define MAX_TOUCHES 10
+#define NWINDOWS 4 /* 4 windows on sidebar */
static void usage(void)
{
@@ -136,31 +137,29 @@ static void sighandler(int signal)
static void init_windows(struct multitouch *mt, enum Mode mode)
{
- Window win, subwin;
+ Window win;
XEvent event;
XIEventMask evmask;
unsigned char mask[XIMaskLen(XI_LASTEVENT)];
XIGrabModifiers modifiers;
+ int xoff = 0, yoff = 0;
+ unsigned long black = BlackPixel(mt->dpy, mt->screen_no),
+ white = WhitePixel(mt->dpy, mt->screen_no);
+ int w = 50,
+ h = mt->height/NWINDOWS;
win = XCreateSimpleWindow(mt->dpy, mt->root, 0, 0, mt->width, mt->height,
0, 0, WhitePixel(mt->dpy, mt->screen_no));
mt->win = win;
- subwin = XCreateSimpleWindow(mt->dpy, win, 0, 0, 50, mt->height/4, 0, 0,
- BlackPixel(mt->dpy, mt->screen_no));
- mt->blackbar = subwin;
-
- subwin = XCreateSimpleWindow(mt->dpy, win, 0, mt->height/4, 50, mt->height/4, 0, 0,
- WhitePixel(mt->dpy, mt->screen_no));
- mt->whitebar = subwin;
-
- subwin = XCreateSimpleWindow(mt->dpy, win, 0, mt->height/2, 50, mt->height/4, 0, 0,
- BlackPixel(mt->dpy, mt->screen_no));
- mt->blackbar_os = subwin;
-
- subwin = XCreateSimpleWindow(mt->dpy, win, 0, 3 * mt->height/4, 50, mt->height/4, 0, 0,
- WhitePixel(mt->dpy, mt->screen_no));
- mt->whitebar_os = subwin;
+ mt->blackbar = XCreateSimpleWindow(mt->dpy, win, xoff, yoff, w, h, 0, 0, black);
+ yoff += h;
+ mt->whitebar = XCreateSimpleWindow(mt->dpy, win, xoff, yoff, w, h, 0, 0, white);
+ yoff += h;
+ mt->blackbar_os = XCreateSimpleWindow(mt->dpy, win, xoff, yoff, w, h, 0, 0, black);
+ yoff += h;
+ mt->whitebar_os = XCreateSimpleWindow(mt->dpy, win, xoff, yoff, w, h, 0, 0, white);
+ yoff += h;
XSelectInput(mt->dpy, win, ExposureMask);
XMapSubwindows(mt->dpy, win);
@@ -458,7 +457,7 @@ static void paint_grabs(struct multitouch *mt)
} else if (grab->grab_window == mt->whitebar)
{
r = 1; g = 0; b = 0;
- offset = mt->height/4;
+ offset = mt->height/NWINDOWS;
} else if (grab->grab_window == mt->blackbar_os)
{
r = 0; g = 1; b = 0;
@@ -466,7 +465,7 @@ static void paint_grabs(struct multitouch *mt)
} else
{
r = 0; g = 1; b = 1;
- offset = 3 * mt->height/4;
+ offset = 3 * mt->height/NWINDOWS;
}
cairo_save(mt->cr_grabs);