changeset:   2063:8cdb3c2708d1
user:        Kris Maglione <jg_AT_suckless.org>
date:        Sat Apr 07 01:28:49 2007 -0400
summary:     Cleanup in mouse.c, 9menu.
diff -r cde18e949e86 -r 8cdb3c2708d1 cmd/wmii/mouse.c
--- a/cmd/wmii/mouse.c	Fri Apr 06 15:29:24 2007 -0400
+++ b/cmd/wmii/mouse.c	Sat Apr 07 01:28:49 2007 -0400
@@ -289,6 +289,16 @@ querypointer(Window w, int *x, int *y) {
         XQueryPointer(blz.dpy, w, &dummy, &dummy, &i, &i, x, y, &ui);
 }
 
+void
+warppointer(int x, int y) {
+	XWarpPointer(blz.dpy,
+		/* src_w */	None,
+		/* dest_w */	blz.root,
+		/* src_rect */	0, 0, 0, 0,
+		/* target */	x, y
+		);
+}
+
 static void
 do_managed_move(Client *c) {
         XRectangle frect, ofrect;
@@ -403,34 +413,21 @@ do_mouse_resize(Client *c, Bool opaque, 
                 if(align&WEST) dx -= hr_x;
 
                 XTranslateCoordinates(blz.dpy,
-			/* src_w */	c->framewin,
-			/* dst w */	blz.root,
+			/* src, dst */	c->framewin, blz.root,
                         /* src x,y */	dx, dy,
                         /* dest x,y */	&pt_x, &pt_y,
                         /* child */	&dummy
                         );
-		XWarpPointer(blz.dpy,
-			/* src_w */	None,
-			/* dest_w */	blz.root,
-			/* src_rect */	0, 0, 0, 0,
-			/* target */	pt_x, pt_y
-			);
+		warppointer(pt_x, pt_y);
         }
         else if(f->client->fullscreen)
                 return;
         else if(!opaque) {
                 hr_x = screen->rect.width / 2;
                 hr_y = screen->rect.height / 2;
-
-		XWarpPointer(blz.dpy,
-			/* src_w */	None,
-			/* dest_w */	blz.root,
-			/* src_rect */	0, 0, 0, 0,
-			/* target */	hr_x, hr_y
-			);
+		warppointer(hr_x, hr_y);
                 flushevents(PointerMotionMask, False);
         }
-
 
         XSync(blz.dpy, False);
         if(!opaque) {
@@ -454,8 +451,7 @@ do_mouse_resize(Client *c, Bool opaque, 
                         if(!opaque) {
                                 if(align != CENTER)
                                         XTranslateCoordinates(blz.dpy,
-						/* src_w */	c->framewin,
-						/* dst w */	blz.root,
+						/* src, dst */	c->framewin, blz.root,
                                                 /* src_x */	(frect.width * rx),
                                                 /* src_y */	(frect.height * ry),
                                                 /* dest x,y */	&pt_x, &pt_y,
@@ -463,12 +459,7 @@ do_mouse_resize(Client *c, Bool opaque, 
                                                 );
                                 if(pt_y > screen->brect.y)
                                         pt_y = screen->brect.y - 1;
-				XWarpPointer(blz.dpy,
-					/* src_w */	None,
-					/* dest_w */	blz.root,
-					/* src_rect */	0, 0, 0, 0,
-					/* target */	pt_x, pt_y
-					);
+				warppointer(pt_x, pt_y);
                                 XUngrabServer(blz.dpy);
                         }else
                                 map_client(c);
@@ -486,12 +477,7 @@ do_mouse_resize(Client *c, Bool opaque, 
                         if(align == CENTER && !opaque) {
                                 if(dx == hr_x && dy == hr_y)
                                         continue;
-				XWarpPointer(blz.dpy,
-					/* src_w */	None,
-					/* dest_w */	blz.root,
-					/* src_rect */	0, 0, 0, 0,
-					/* target */	hr_x, hr_y
-					);
+				warppointer(hr_x, hr_y);
                                 dx -= hr_x;
                                 dy -= hr_y;
                         }else{
diff -r cde18e949e86 -r 8cdb3c2708d1 cmd/wmii9menu.c
--- a/cmd/wmii9menu.c	Fri Apr 06 15:29:24 2007 -0400
+++ b/cmd/wmii9menu.c	Sat Apr 07 01:28:49 2007 -0400
@@ -53,9 +53,9 @@ XFontStruct *font;
 XFontStruct *font;
 GC gc;
 
-unsigned long selfg, selbg;
-unsigned long normfg, normbg;
-unsigned long border;
+ulong selfg, selbg;
+ulong normfg, normbg;
+ulong border;
 char *sfgname, *sbgname;
 char *nfgname, *nbgname;
 char *brcname;
@@ -63,10 +63,6 @@ char *brcname;
 /* for XSetWMProperties to use */
 int g_argc;
 char **g_argv;
-
-/* for labels read from files */
-int f_argc;
-char **f_argv;
 
 char *initial = "";
 int cur;
@@ -85,7 +81,6 @@ char *progname;		/* my name */
 char *progname;		/* my name */
 char *displayname;	/* X display */
 char *fontname;		/* font */
-char *filename;		/* file to read options or labels from */
 
 char **labels;		/* list of labels and commands */
 char **commands;
@@ -105,7 +100,6 @@ struct {
         char *name, **var;
 } argtab[] = {
         {"display", &displayname},
-	{"file", &filename},
         {"initial", &initial},
         {"font", &fontname},
         {"nb", &nbgname},
@@ -116,34 +110,9 @@ struct {
         {0, },
 }, *ap;
 
-int
-args(int argc, char **argv)
-{
-	int i, n;
-	for (i = 0; i < argc && argv[i][0] == '-'; i++) {
-		if(strcmp(argv[i], "-version") == 0) {
-			printf("%s\n", version);
-			exit(0);
-		}
-		if(i+1 >= argc)
-			usage();
-
-		for(ap = argtab; ap->name; ap++) {
-			n = strlen(ap->name);
-			if(strncmp(ap->name, &argv[i][1], n) == 0) {
-				*ap->var = argv[i][n+1] ? &argv[i][n+1] : argv[++i];
-				break;
-			}
-		}
-		if(ap->name == 0)
-			usage();
-	}
-	return i;
-}
-
-unsigned long
-getcolor(char *name, unsigned long def) {
-	if ((name != nil)
+ulong
+getcolor(char *name, ulong def) {
+	if((name != nil)
          && (XParseColor(dpy, defcmap, name, &color) != 0)
          && (XAllocColor(dpy, defcmap, &color) != 0))
                 return color.pixel;
@@ -156,127 +125,73 @@ int
 int
 main(int argc, char **argv)
 {
-	int i, j;
+	int i, n;
         char *cp;
         XGCValues gv;
-	unsigned long mask;
-	int nlabels = 0;
+	ulong mask;
 
         g_argc = argc;
         g_argv = argv;
 
         /* set default label name */
-	if ((cp = strrchr(argv[0], '/')) == nil)
+	if((cp = strrchr(argv[0], '/')) != nil)
+		progname = ++cp;
+	else
                 progname = argv[0];
-	else
-		progname = ++cp;
-
-	++argv;
-	--argc;
-
-	i = args(argc, argv);
-
-	numitems = argc - i;
-
-	if (numitems <= 0 && filename == nil)
+
+	for(i = 1; i < argc && argv[i][0] == '-'; i++) {
+		if(strcmp(argv[i], "-version") == 0) {
+			printf("%s\n", version);
+			exit(0);
+		}
+
+		for(ap = argtab; ap->name; ap++) {
+			n = strlen(ap->name);
+			if(strncmp(ap->name, argv[i]+1, n) == 0)
+				break;
+		}
+		if(ap->name == 0)
+			usage();
+
+		if(argv[i][n+1] != '\0')
+			*ap->var = &argv[i][n+1];
+		else {
+			if(argc <= i+1)
+				usage();
+			*ap->var = argv[++i];
+		}
+	}
+	argc -= i, argv += i;
+
+	if(argc == 0)
                 usage();
 
-	if (filename) {
-		/* Read options and labels from file */
-		char fbuf[1024];
-		FILE *fp;
-
-		fp = fopen(filename, "r");
-		if (fp == nil) {
-			fprintf(stderr, "%s: couldn't open '%s'\n", progname,
-				filename);
-			exit(1);
-		}
-		while (fgets(fbuf, sizeof fbuf, fp)) {
-			char *s = fbuf;
-			strtok(s, "\n");
-			if (s[0] == '-') {
-				char *temp[2];
-
-				temp[0] = s;
-				s = strchr(s, ' ');
-				if (s) {
-					*s++ = '\0';
-					s = estrdup(s);
-					temp[1] = s;
-				}
-				args(s ? 2 : 1, temp);
-				continue;
-			}
-			if (s[0] == '#')
-				continue;
-			/* allow - in menu items to be escaped */
-			if (s[0] == '\\')
-				++s;
-			/* allocate space */
-			if (f_argc < nlabels + 1) {
-				int k;
-				char **temp;
-				
-				temp = emalloc(sizeof(char *) * (f_argc + 5));
-				for (k = 0; k < nlabels; k++)
-					temp[k] = f_argv[k];
-
-				free(f_argv);
-				f_argv = temp;
-				f_argc += 5;
-			}
-			f_argv[nlabels] = estrdup(s);
-			++nlabels;
-		}
-	}
-
-	labels = emalloc((numitems + nlabels) * sizeof(char *));
-	commands = emalloc((numitems + nlabels) * sizeof(char *));
-
-	for (j = 0; j < numitems; j++) {
-		labels[j] = argv[i + j];
-		if ((cp = strchr(labels[j], ':')) != nil) {
+	numitems = argc;
+
+	labels = emalloc(numitems * sizeof(*labels));
+	commands = emalloc(numitems * sizeof(*labels));
+
+	for(i = 0; i < numitems; i++) {
+		labels[i] = argv[i];
+		if((cp = strchr(labels[i], ':')) != nil) {
                         *cp++ = '\0';
-			commands[j] = cp;
+			commands[i] = cp;
                 } else
-			commands[j] = labels[j];
-		if(strcmp(labels[j], initial) == 0)
-			cur = j;
-	}
-
-	/*
-	 * Now we no longer need i (our offset into argv) so we recycle it,
-	 * while keeping the old value of j!
-	 */
-	for (i = 0; i < nlabels; i++) {
-		labels[j] = f_argv[i];
-		if ((cp = strchr(labels[j], ':')) != nil) {
-			*cp++ = '\0';
-			commands[j] = cp;
-		} else
-			commands[j] = labels[j];
-		++j;
-	}
-
-	/* And now we merge the totals */
-	numitems += nlabels;
+			commands[i] = labels[i];
+		if(strcmp(labels[i], initial) == 0)
+			cur = i;
+	}
 
         dpy = XOpenDisplay(displayname);
-	if (dpy == nil) {
+	if(dpy == nil) {
                 fprintf(stderr, "%s: cannot open display", progname);
-		if (displayname != nil)
+		if(displayname != nil)
                         fprintf(stderr, " %s", displayname);
                 fprintf(stderr, "\n");
                 exit(1);
         }
         screen = DefaultScreen(dpy);
         root = RootWindow(dpy, screen);
-	/*
-	 * This used to be
-	 * black = BlackPixel(dpy, screen);
-	 * white = WhitePixel(dpy, screen);
-	 */
         defcmap = DefaultColormap(dpy, screen);
 
         selbg = getcolor(sbgname, BlackPixel(dpy, screen));
@@ -286,23 +201,23 @@ main(int argc, char **argv)
         border = getcolor(brcname, selbg);
 
         /* try user's font first */
-	if (fontname != nil) {
+	if(fontname != nil) {
                 font = XLoadQueryFont(dpy, fontname);
-		if (font == nil)
+		if(font == nil)
                         fprintf(stderr, "%s: warning: can't load font %s\n",
                                 progname, fontname);
         }
 
         /* if no user font, try one of our default fonts */
-	if (font == nil) {
-		for (i = 0; fontlist[i] != nil; i++) {
+	if(font == nil) {
+		for(i = 0; fontlist[i] != nil; i++) {
                         font = XLoadQueryFont(dpy, fontlist[i]);
-			if (font != nil)
+			if(font != nil)
                                 break;
                 }
         }
 
-	if (font == nil) {
+	if(font == nil) {
                 fprintf(stderr, "%s: fatal: cannot load a font\n", progname);
                 exit(1);
         }
@@ -326,7 +241,6 @@ usage()
 usage()
 {
         fprintf(stderr, "usage: %s [-display <displayname>] [-font <fontname>] ", progname);
-	fprintf(stderr, "[-file filename] ");
         fprintf(stderr, "[-{n,s}{f,b} <color>] [-br <color>] ");
         fprintf(stderr, "[-version] menitem[:command] ...\n");
         exit(0);
@@ -341,9 +255,9 @@ run_menu()
         int i, old, wide, high, dx, dy;
 
         dx = 0;
-	for (i = 0; i < numitems; i++) {
+	for(i = 0; i < numitems; i++) {
                 wide = XTextWidth(font, labels[i], strlen(labels[i])) + 4;
-		if (wide > dx)
+		if(wide > dx)
                         dx = wide;
         }
         wide = dx;
@@ -372,7 +286,7 @@ run_menu()
 
         i = 0;		/* save menu Item position */
 
-	for (;;) {
+	for(;;) {
                 XNextEvent(dpy, &ev);
                 switch (ev.type) {
                 default:
@@ -381,9 +295,9 @@ run_menu()
                         break;
                 case ButtonRelease:
                         i = ev.xbutton.y/high;
-			if (ev.xbutton.x < 0 || ev.xbutton.x > wide)
+			if(ev.xbutton.x < 0 || ev.xbutton.x > wide)
                                 return;
-			else if (i < 0 || i >= numitems)
+			else if(i < 0 || i >= numitems)
                                 return;
 
                         printf("%s\n", commands[i]);
@@ -392,9 +306,9 @@ run_menu()
                 case MotionNotify:
                         old = cur;
                         cur = ev.xbutton.y/high;
-			if (ev.xbutton.x < 0 || ev.xbutton.x > wide)
+			if(ev.xbutton.x < 0 || ev.xbutton.x > wide)
                                 cur = ~0;
-			if (cur == old)
+			if(cur == old)
                                 break;
                         redraw(high, wide);
                         break;
@@ -421,7 +335,7 @@ create_window(int wide, int high)
 create_window(int wide, int high)
 {
         XSetWindowAttributes wa = { 0 };
-	unsigned int h;
+	uint h;
         int x, y, dummy;
         Window wdummy;
         
@@ -430,15 +344,15 @@ create_window(int wide, int high)
         XQueryPointer(dpy, root, &wdummy, &wdummy, &x, &y,
                                 &dummy, &dummy, (uint*)&dummy);
         x -= wide / 2;
-	if (x < 0)
+	if(x < 0)
                 x = 0;
-	else if (x + wide > DisplayWidth(dpy, screen))
+	else if(x + wide > DisplayWidth(dpy, screen))
                 x = DisplayWidth(dpy, screen) - wide;
 
         y -= cur * high + high / 2;
-	if (y < 0)
+	if(y < 0)
                 y = 0;
-	else if (y + h > DisplayHeight(dpy, screen))
+	else if(y + h > DisplayHeight(dpy, screen))
                 y = DisplayHeight(dpy, screen) - h;
 
         wa.override_redirect = True;
@@ -463,15 +377,15 @@ redraw(int high, int wide)
 {
         int tx, ty, i;
 
-	for (i = 0; i < numitems; i++) {
+	for(i = 0; i < numitems; i++) {
                 tx = (wide - XTextWidth(font, labels[i], strlen(labels[i]))) / 2;
                 ty = i*high + font->ascent + 1;
-		if (cur == i)
+		if(cur == i)
                         XSetForeground(dpy, gc, selbg);
                 else
                         XSetForeground(dpy, gc, normbg);
                 XFillRectangle(dpy, menuwin, gc, 0, i*high, wide, high);
-		if (cur == i)
+		if(cur == i)
                         XSetForeground(dpy, gc, selfg);
                 else
                         XSetForeground(dpy, gc, normfg);
Received on Sat Apr 07 2007 - 08:44:58 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:56:34 UTC