[PATCH 1/6] wmspaceweather: Use libdockapp for wmgeneral.

Doug Torrance <[email protected]>
Newsgroups gmane.compw.window-managers.windowmaker.devel
Message-ID <[email protected]>
---
 wmspaceweather/wmSpaceWeather/Makefile         |   5 +-
 wmspaceweather/wmSpaceWeather/wmSpaceWeather.c |   2 +-
 wmspaceweather/wmgeneral/wmgeneral.c           | 366 -------------------------
 wmspaceweather/wmgeneral/wmgeneral.h           |  50 ----
 wmspaceweather/wmgeneral/wmgeneral.o           | Bin 7324 -> 0 bytes
 5 files changed, 3 insertions(+), 420 deletions(-)
 delete mode 100644 wmspaceweather/wmgeneral/wmgeneral.c
 delete mode 100644 wmspaceweather/wmgeneral/wmgeneral.h
 delete mode 100644 wmspaceweather/wmgeneral/wmgeneral.o

diff --git a/wmspaceweather/wmSpaceWeather/Makefile b/wmspaceweather/wmSpaceWeather/Makefile
index 8c2ce30..a4ed61d 100644
--- a/wmspaceweather/wmSpaceWeather/Makefile
+++ b/wmspaceweather/wmSpaceWeather/Makefile
@@ -4,11 +4,10 @@ INCDIR = -I/usr/X11R6/include/X11
 DESTDIR= /usr/X11R6
 LIBDIR = -L/usr/X11R6/lib
 # for linux
-LIBS   = -lXpm -lX11 -lXext
+LIBS   = -lXpm -lX11 -lXext -ldockapp
 # for Solaris
 # LIBS   = -lXpm -lX11 -lXext -lsocket
-OBJS   = wmSpaceWeather.o \
-         ../wmgeneral/wmgeneral.o
+OBJS   = wmSpaceWeather.o
 
 
 .c.o:
diff --git a/wmspaceweather/wmSpaceWeather/wmSpaceWeather.c b/wmspaceweather/wmSpaceWeather/wmSpaceWeather.c
index 5fd6a16..3016d18 100644
--- a/wmspaceweather/wmSpaceWeather/wmSpaceWeather.c
+++ b/wmspaceweather/wmSpaceWeather/wmSpaceWeather.c
@@ -72,7 +72,7 @@
 #include <time.h>
 #include <X11/X.h>
 #include <X11/xpm.h>
-#include "../wmgeneral/wmgeneral.h"
+#include <libdockapp/wmgeneral.h>
 #include "wmSpaceWeather_master.xpm"
 #include "wmSpaceWeather_mask.xbm"
 
diff --git a/wmspaceweather/wmgeneral/wmgeneral.c b/wmspaceweather/wmgeneral/wmgeneral.c
deleted file mode 100644
index 645321c..0000000
--- a/wmspaceweather/wmgeneral/wmgeneral.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
-	Best viewed with vim5, using ts=4
-
-	wmgeneral was taken from wmppp.
-
-	It has a lot of routines which most of the wm* programs use.
-
-	------------------------------------------------------------
-
-	Author: Martijn Pieterse ([email protected])
-
-	---
-	CHANGES:
-	---
-	02/05/1998 (Martijn Pieterse, [email protected])
-		* changed the read_rc_file to parse_rcfile, as suggester by Marcelo E. Magallon
-		* debugged the parse_rc file.
-	30/04/1998 (Martijn Pieterse, [email protected])
-		* Ripped similar code from all the wm* programs,
-		  and put them in a single file.
-
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <stdarg.h>
-
-#include <X11/Xlib.h>
-#include <X11/xpm.h>
-#include <X11/extensions/shape.h>
-
-#include "wmgeneral.h"
-
-  /*****************/
- /* X11 Variables */
-/*****************/
-
-Window		Root;
-int			screen;
-int			x_fd;
-int			d_depth;
-XSizeHints	mysizehints;
-XWMHints	mywmhints;
-Pixel		back_pix, fore_pix;
-char		*Geometry = "";
-Window		iconwin, win;
-GC			NormalGC;
-XpmIcon		wmgen;
-Pixmap		pixmask;
-
-  /*****************/
- /* Mouse Regions */
-/*****************/
-
-typedef struct {
-	int		enable;
-	int		top;
-	int		bottom;
-	int		left;
-	int		right;
-} MOUSE_REGION;
-
-#define MAX_MOUSE_REGION (8)
-MOUSE_REGION	mouse_region[MAX_MOUSE_REGION];
-
-  /***********************/
- /* Function Prototypes */
-/***********************/
-
-static void GetXPM(XpmIcon *, char **);
-static Pixel GetColor(char *);
-void RedrawWindow(void);
-void AddMouseRegion(int, int, int, int, int);
-int CheckMouseRegion(int, int);
-
-/*******************************************************************************\
-|* read_rc_file																   *|
-\*******************************************************************************/
-
-void parse_rcfile(const char *filename, rckeys *keys) {
-
-	char	*p;
-	char	temp[128];
-	char	*tokens = " :\t\n";
-	FILE	*fp;
-	int		i,key;
-
-	fp = fopen(filename, "r");
-	if (fp) {
-		while (fgets(temp, 128, fp)) {
-			key = 0;
-			while (key >= 0 && keys[key].label) {
-				if ((p = strstr(temp, keys[key].label))) {
-					p += strlen(keys[key].label);
-					p += strspn(p, tokens);
-					if ((i = strcspn(p, "#\n"))) p[i] = 0;
-					free(*keys[key].var);
-					*keys[key].var = strdup(p);
-					key = -1;
-				} else key++;
-			}
-		}
-		fclose(fp);
-	}
-}
-
-
-/*******************************************************************************\
-|* GetXPM																	   *|
-\*******************************************************************************/
-
-static void GetXPM(XpmIcon *wmgen, char *pixmap_bytes[]) {
-
-	XWindowAttributes	attributes;
-	int					err;
-
-	/* For the colormap */
-	XGetWindowAttributes(display, Root, &attributes);
-
-	wmgen->attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
-
-	err = XpmCreatePixmapFromData(display, Root, pixmap_bytes, &(wmgen->pixmap),
-					&(wmgen->mask), &(wmgen->attributes));
-
-	if (err != XpmSuccess) {
-		fprintf(stderr, "Not enough free colorcells.\n");
-		exit(1);
-	}
-}
-
-/*******************************************************************************\
-|* GetColor																	   *|
-\*******************************************************************************/
-
-static Pixel GetColor(char *name) {
-
-	XColor				color;
-	XWindowAttributes	attributes;
-
-	XGetWindowAttributes(display, Root, &attributes);
-
-	color.pixel = 0;
-	if (!XParseColor(display, attributes.colormap, name, &color)) {
-		fprintf(stderr, "wm.app: can't parse %s.\n", name);
-	} else if (!XAllocColor(display, attributes.colormap, &color)) {
-		fprintf(stderr, "wm.app: can't allocate %s.\n", name);
-	}
-	return color.pixel;
-}
-
-/*******************************************************************************\
-|* flush_expose																   *|
-\*******************************************************************************/
-
-static int flush_expose(Window w) {
-
-	XEvent 		dummy;
-	int			i=0;
-
-	while (XCheckTypedWindowEvent(display, w, Expose, &dummy))
-		i++;
-
-	return i;
-}
-
-/*******************************************************************************\
-|* RedrawWindow																   *|
-\*******************************************************************************/
-
-void RedrawWindow(void) {
-
-	flush_expose(iconwin);
-	XCopyArea(display, wmgen.pixmap, iconwin, NormalGC,
-				0,0, wmgen.attributes.width, wmgen.attributes.height, 0,0);
-	flush_expose(win);
-	XCopyArea(display, wmgen.pixmap, win, NormalGC,
-				0,0, wmgen.attributes.width, wmgen.attributes.height, 0,0);
-}
-
-/*******************************************************************************\
-|* RedrawWindowXY															   *|
-\*******************************************************************************/
-
-void RedrawWindowXY(int x, int y) {
-
-	flush_expose(iconwin);
-	XCopyArea(display, wmgen.pixmap, iconwin, NormalGC,
-				x,y, wmgen.attributes.width, wmgen.attributes.height, 0,0);
-	flush_expose(win);
-	XCopyArea(display, wmgen.pixmap, win, NormalGC,
-				x,y, wmgen.attributes.width, wmgen.attributes.height, 0,0);
-}
-
-/*******************************************************************************\
-|* AddMouseRegion															   *|
-\*******************************************************************************/
-
-void AddMouseRegion(int index, int left, int top, int right, int bottom) {
-
-	if (index < MAX_MOUSE_REGION) {
-		mouse_region[index].enable = 1;
-		mouse_region[index].top = top;
-		mouse_region[index].left = left;
-		mouse_region[index].bottom = bottom;
-		mouse_region[index].right = right;
-	}
-}
-
-/*******************************************************************************\
-|* CheckMouseRegion															   *|
-\*******************************************************************************/
-
-int CheckMouseRegion(int x, int y) {
-
-	int		i;
-	int		found;
-
-	found = 0;
-
-	for (i=0; i<MAX_MOUSE_REGION && !found; i++) {
-		if (mouse_region[i].enable &&
-			x <= mouse_region[i].right &&
-			x >= mouse_region[i].left &&
-			y <= mouse_region[i].bottom &&
-			y >= mouse_region[i].top)
-			found = 1;
-	}
-	if (!found) return -1;
-	return (i-1);
-}
-
-/*******************************************************************************\
-|* copyXPMArea																   *|
-\*******************************************************************************/
-
-void copyXPMArea(int x, int y, int sx, int sy, int dx, int dy) {
-
-	XCopyArea(display, wmgen.pixmap, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy);
-
-}
-
-/*******************************************************************************\
-|* copyXBMArea																   *|
-\*******************************************************************************/
-
-void copyXBMArea(int x, int y, int sx, int sy, int dx, int dy) {
-
-	XCopyArea(display, wmgen.mask, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy);
-}
-
-
-/*******************************************************************************\
-|* setMaskXY																   *|
-\*******************************************************************************/
-
-void setMaskXY(int x, int y) {
-
-	 XShapeCombineMask(display, win, ShapeBounding, x, y, pixmask, ShapeSet);
-	 XShapeCombineMask(display, iconwin, ShapeBounding, x, y, pixmask, ShapeSet);
-}
-
-/*******************************************************************************\
-|* openXwindow																   *|
-\*******************************************************************************/
-void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bits, int pixmask_width, int pixmask_height) {
-
-	unsigned int	borderwidth = 1;
-	XClassHint		classHint;
-	char			*display_name = NULL;
-	char			*wname = argv[0];
-	XTextProperty	name;
-
-	XGCValues		gcv;
-	unsigned long	gcm;
-
-
-	int				dummy=0;
-	int				i;
-
-	for (i=1; argv[i]; i++) {
-		if (!strcmp(argv[i], "-display"))
-			display_name = argv[i+1];
-	}
-
-	if (!(display = XOpenDisplay(display_name))) {
-		fprintf(stderr, "%s: can't open display %s\n",
-						wname, XDisplayName(display_name));
-		exit(1);
-	}
-	screen  = DefaultScreen(display);
-	Root    = RootWindow(display, screen);
-	d_depth = DefaultDepth(display, screen);
-	x_fd    = XConnectionNumber(display);
-
-	/* Convert XPM to XImage */
-	GetXPM(&wmgen, pixmap_bytes);
-
-	/* Create a window to hold the stuff */
-	mysizehints.flags = USSize | USPosition;
-	mysizehints.x = 0;
-	mysizehints.y = 0;
-
-	back_pix = GetColor("white");
-	fore_pix = GetColor("black");
-
-	XWMGeometry(display, screen, Geometry, NULL, borderwidth, &mysizehints,
-				&mysizehints.x, &mysizehints.y,&mysizehints.width,&mysizehints.height, &dummy);
-
-	mysizehints.width = 64;
-	mysizehints.height = 64;
-
-	win = XCreateSimpleWindow(display, Root, mysizehints.x, mysizehints.y,
-				mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix);
-
-	iconwin = XCreateSimpleWindow(display, win, mysizehints.x, mysizehints.y,
-				mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix);
-
-	/* Activate hints */
-	XSetWMNormalHints(display, win, &mysizehints);
-	classHint.res_name = wname;
-	classHint.res_class = wname;
-	XSetClassHint(display, win, &classHint);
-
-	XSelectInput(display, win, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
-	XSelectInput(display, iconwin, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
-
-	if (XStringListToTextProperty(&wname, 1, &name) == 0) {
-		fprintf(stderr, "%s: can't allocate window name\n", wname);
-		exit(1);
-	}
-
-	XSetWMName(display, win, &name);
-
-	/* Create GC for drawing */
-
-	gcm = GCForeground | GCBackground | GCGraphicsExposures;
-	gcv.foreground = fore_pix;
-	gcv.background = back_pix;
-	gcv.graphics_exposures = 0;
-	NormalGC = XCreateGC(display, Root, gcm, &gcv);
-
-	/* ONLYSHAPE ON */
-
-	pixmask = XCreateBitmapFromData(display, win, pixmask_bits, pixmask_width, pixmask_height);
-
-	XShapeCombineMask(display, win, ShapeBounding, 0, 0, pixmask, ShapeSet);
-	XShapeCombineMask(display, iconwin, ShapeBounding, 0, 0, pixmask, ShapeSet);
-
-	/* ONLYSHAPE OFF */
-
-	mywmhints.initial_state = WithdrawnState;
-	mywmhints.icon_window = iconwin;
-	mywmhints.icon_x = mysizehints.x;
-	mywmhints.icon_y = mysizehints.y;
-	mywmhints.window_group = win;
-	mywmhints.flags = StateHint | IconWindowHint | IconPositionHint | WindowGroupHint;
-
-	XSetWMHints(display, win, &mywmhints);
-
-	XSetCommand(display, win, argv, argc);
-	XMapWindow(display, win);
-
-}
diff --git a/wmspaceweather/wmgeneral/wmgeneral.h b/wmspaceweather/wmgeneral/wmgeneral.h
deleted file mode 100644
index 55b37dd..0000000
--- a/wmspaceweather/wmgeneral/wmgeneral.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef WMGENERAL_H_INCLUDED
-#define WMGENERAL_H_INCLUDED
-
-  /***********/
- /* Defines */
-/***********/
-
-#define MAX_MOUSE_REGION (8)
-
-  /************/
- /* Typedefs */
-/************/
-
-typedef struct _rckeys rckeys;
-
-struct _rckeys {
-	const char	*label;
-	char		**var;
-};
-
-typedef struct {
-	Pixmap			pixmap;
-	Pixmap			mask;
-	XpmAttributes	attributes;
-} XpmIcon;
-
-  /*******************/
- /* Global variable */
-/*******************/
-
-Display		*display;
-
-  /***********************/
- /* Function Prototypes */
-/***********************/
-
-void AddMouseRegion(int index, int left, int top, int right, int bottom);
-int CheckMouseRegion(int x, int y);
-
-void openXwindow(int argc, char *argv[], char **, char *, int, int);
-void RedrawWindow(void);
-void RedrawWindowXY(int x, int y);
-
-void copyXPMArea(int, int, int, int, int, int);
-void copyXBMArea(int, int, int, int, int, int);
-void setMaskXY(int, int);
-
-void parse_rcfile(const char *, rckeys *);
-
-#endif
diff --git a/wmspaceweather/wmgeneral/wmgeneral.o b/wmspaceweather/wmgeneral/wmgeneral.o
deleted file mode 100644
index 29502e5e850e67719a53b8e8fef54427c89bb4c1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 7324
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

-- 
2.7.4


-- 
To unsubscribe, send mail to [email protected].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.