add some tests

This commit is contained in:
Dana Jansens 2003-02-03 10:37:16 +00:00
parent c9389a8970
commit 92bc846ce1
8 changed files with 421 additions and 0 deletions

6
tests/Makefile Normal file
View file

@ -0,0 +1,6 @@
files=$(wildcard *.c)
all: $(files:.c=)
%: %.c
$(CC) $(CFLAGS) -o $@ $^ -lX11 -L/usr/X11R6/lib

61
tests/aspect.c Normal file
View file

@ -0,0 +1,61 @@
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
int main () {
XSetWindowAttributes xswa;
unsigned long xswamask;
Display *display;
Window win;
XEvent report;
int x=10,y=10,h=100,w=400;
XSizeHints size;
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
xswa.win_gravity = StaticGravity;
xswamask = CWWinGravity;
win = XCreateWindow(display, RootWindow(display, 0),
x, y, w, h, 10, CopyFromParent, CopyFromParent,
CopyFromParent, xswamask, &xswa);
XSetWindowBackground(display,win,WhitePixel(display,0));
size.flags = PAspect;
size.min_aspect.x = 3;
size.min_aspect.y = 3;
size.max_aspect.x = 3;
size.max_aspect.y = 3;
XSetWMNormalHints(display, win, &size);
XMapWindow(display, win);
XFlush(display);
XSelectInput(display, win, ExposureMask | StructureNotifyMask);
while (1) {
XNextEvent(display, &report);
switch (report.type) {
case Expose:
printf("exposed\n");
break;
case ConfigureNotify:
x = report.xconfigure.x;
y = report.xconfigure.y;
w = report.xconfigure.width;
h = report.xconfigure.height;
printf("confignotify %i,%i-%ix%i\n",x,y,w,h);
break;
}
}
return 1;
}

82
tests/fullscreen.c Normal file
View file

@ -0,0 +1,82 @@
#include <stdio.h>
#include <unistd.h>
#include <X11/Xlib.h>
int main () {
Display *display;
Window win;
XEvent report;
Atom _net_fs, _net_state;
XEvent msg;
int x=10,y=10,h=100,w=400;
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
_net_state = XInternAtom(display, "_NET_WM_STATE", False);
_net_fs = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", False);
win = XCreateWindow(display, RootWindow(display, 0),
x, y, w, h, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, NULL);
XSetWindowBackground(display,win,WhitePixel(display,0));
XMapWindow(display, win);
XFlush(display);
sleep(2);
msg.xclient.type = ClientMessage;
msg.xclient.message_type = _net_state;
msg.xclient.display = display;
msg.xclient.window = win;
msg.xclient.format = 32;
msg.xclient.data.l[0] = 2; // toggle
msg.xclient.data.l[1] = _net_fs;
msg.xclient.data.l[2] = 0l;
msg.xclient.data.l[3] = 0l;
msg.xclient.data.l[4] = 0l;
XSendEvent(display, RootWindow(display, 0), False,
StructureNotifyMask | SubstructureNotifyMask, &msg);
XFlush(display);
sleep(2);
msg.xclient.type = ClientMessage;
msg.xclient.message_type = _net_state;
msg.xclient.display = display;
msg.xclient.window = win;
msg.xclient.format = 32;
msg.xclient.data.l[0] = 2; // toggle
msg.xclient.data.l[1] = _net_fs;
msg.xclient.data.l[2] = 0l;
msg.xclient.data.l[3] = 0l;
msg.xclient.data.l[4] = 0l;
XSendEvent(display, RootWindow(display, 0), False,
StructureNotifyMask | SubstructureNotifyMask, &msg);
XSelectInput(display, win, ExposureMask | StructureNotifyMask);
while (1) {
XNextEvent(display, &report);
switch (report.type) {
case Expose:
printf("exposed\n");
break;
case ConfigureNotify:
x = report.xconfigure.x;
y = report.xconfigure.y;
w = report.xconfigure.width;
h = report.xconfigure.height;
printf("confignotify %i,%i-%ix%i\n",x,y,w,h);
break;
}
}
return 1;
}

52
tests/grav.c Normal file
View file

@ -0,0 +1,52 @@
#include <stdio.h>
#include <X11/Xlib.h>
int main () {
XSetWindowAttributes xswa;
unsigned long xswamask;
Display *display;
Window win;
XEvent report;
int x=10,y=10,h=100,w=400;
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
xswa.win_gravity = StaticGravity;
xswamask = CWWinGravity;
win = XCreateWindow(display, RootWindow(display, 0),
x, y, w, h, 10, CopyFromParent, CopyFromParent,
CopyFromParent, xswamask, &xswa);
XSetWindowBackground(display,win,WhitePixel(display,0));
XMapWindow(display, win);
XFlush(display);
XSelectInput(display, win, ExposureMask | StructureNotifyMask);
while (1) {
XNextEvent(display, &report);
switch (report.type) {
case Expose:
printf("exposed\n");
break;
case ConfigureNotify:
x = report.xconfigure.x;
y = report.xconfigure.y;
w = report.xconfigure.width;
h = report.xconfigure.height;
printf("confignotify %i,%i-%ix%i\n",x,y,w,h);
break;
}
}
return 1;
}

46
tests/modal.c Normal file
View file

@ -0,0 +1,46 @@
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
int main () {
Display *display;
Window parent, child;
XEvent report;
Atom state, modal;
int x=10,y=10,h=400,w=400;
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
state = XInternAtom(display, "_NET_WM_STATE", True);
modal = XInternAtom(display, "_NET_WM_STATE_MODAL", True);
parent = XCreateWindow(display, RootWindow(display, 0),
x, y, w, h, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, 0);
child = XCreateWindow(display, RootWindow(display, 0),
x, y, w/2, h/2, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, 0);
XSetWindowBackground(display,parent,WhitePixel(display,0));
XSetWindowBackground(display,child,BlackPixel(display,0));
XSetTransientForHint(display, child, parent);
XChangeProperty(display, child, state, XA_ATOM, 32,
PropModeReplace, (unsigned char*)&modal, 1);
XMapWindow(display, parent);
XMapWindow(display, child);
XFlush(display);
while (1) {
XNextEvent(display, &report);
}
return 1;
}

56
tests/modal2.c Normal file
View file

@ -0,0 +1,56 @@
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
int main () {
Display *display;
Window parent, child;
XEvent report;
Atom state, modal;
int x=10,y=10,h=400,w=400;
XEvent ce;
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
state = XInternAtom(display, "_NET_WM_STATE", True);
modal = XInternAtom(display, "_NET_WM_STATE_MODAL", True);
parent = XCreateWindow(display, RootWindow(display, 0),
x, y, w, h, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, 0);
child = XCreateWindow(display, RootWindow(display, 0),
x, y, w/2, h/2, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, 0);
XSetWindowBackground(display,parent,WhitePixel(display,0));
XSetWindowBackground(display,child,BlackPixel(display,0));
XSetTransientForHint(display, child, parent);
XMapWindow(display, parent);
XMapWindow(display, child);
XFlush(display);
ce.xclient.type = ClientMessage;
ce.xclient.message_type = state;
ce.xclient.display = display;
ce.xclient.window = child;
ce.xclient.format = 32;
ce.xclient.data.l[0] = 1;
ce.xclient.data.l[1] = modal;
ce.xclient.data.l[2] = 0;
XSendEvent(display, RootWindow(display, DefaultScreen(display)),
False, SubstructureNotifyMask | SubstructureRedirectMask, &ce);
while (1) {
XNextEvent(display, &report);
}
return 1;
}

60
tests/modal3.c Normal file
View file

@ -0,0 +1,60 @@
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
int main () {
Display *display;
Window parent, child;
XEvent report;
Atom state, modal;
int x=10,y=10,h=400,w=400;
XEvent ce;
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
state = XInternAtom(display, "_NET_WM_STATE", True);
modal = XInternAtom(display, "_NET_WM_STATE_MODAL", True);
parent = XCreateWindow(display, RootWindow(display, 0),
x, y, w, h, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, 0);
child = XCreateWindow(display, RootWindow(display, 0),
x, y, w/2, h/2, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, 0);
XSetWindowBackground(display,parent,WhitePixel(display,0));
XSetWindowBackground(display,child,BlackPixel(display,0));
XSetTransientForHint(display, child, parent);
XMapWindow(display, parent);
XMapWindow(display, child);
XFlush(display);
ce.xclient.type = ClientMessage;
ce.xclient.message_type = state;
ce.xclient.display = display;
ce.xclient.window = child;
ce.xclient.format = 32;
ce.xclient.data.l[0] = 1;
ce.xclient.data.l[1] = modal;
ce.xclient.data.l[2] = 0;
XSendEvent(display, RootWindow(display, DefaultScreen(display)),
False, SubstructureNotifyMask | SubstructureRedirectMask, &ce);
ce.xclient.data.l[0] = 0;
XSendEvent(display, RootWindow(display, DefaultScreen(display)),
False, SubstructureNotifyMask | SubstructureRedirectMask, &ce);
while (1) {
XNextEvent(display, &report);
}
return 1;
}

58
tests/urgent.c Normal file
View file

@ -0,0 +1,58 @@
#include <stdio.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
int main () {
Display *display;
Window win;
XEvent report;
Atom _net_fs, _net_state;
XEvent msg;
int x=50,y=50,h=100,w=400;
XWMHints hint;
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
_net_state = XInternAtom(display, "_NET_WM_STATE", False);
_net_fs = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", False);
win = XCreateWindow(display, RootWindow(display, 0),
x, y, w, h, 10, CopyFromParent, CopyFromParent,
CopyFromParent, 0, NULL);
XSetWindowBackground(display,win,WhitePixel(display,0));
XMapWindow(display, win);
XFlush(display);
sleep(2);
hint.flags = XUrgencyHint;
XSetWMHints(display, win, &hint);
XFlush(display);
while (1) {
XNextEvent(display, &report);
switch (report.type) {
case Expose:
printf("exposed\n");
break;
case ConfigureNotify:
x = report.xconfigure.x;
y = report.xconfigure.y;
w = report.xconfigure.width;
h = report.xconfigure.height;
printf("confignotify %i,%i-%ix%i\n",x,y,w,h);
break;
}
}
return 1;
}