/* --- Xtest.c --- */

#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/X.h>
#include <X11/Xutil.h>

main() {
	Display *display;
	Window window;
	XSetWindowAttributes attr;
	XSizeHints *sz;
	
	/* «Ø¥ß¤@­Ó display ªº connection */
	display = XOpenDisplay(0);

	/* «Ø¥ß©M³]©w window ªºÄÝ©Ê */
	window = XCreateWindow(display, XDefaultRootWindow(display),
		100, 100, 300, 300, 2, XDefaultDepth(display, 0),
		InputOutput, CopyFromParent, 0, &attr);

	/* ©M Window Manager ¶i¦æ·¾³q */
	XStoreName(display, window, "hello!! world!!");
	sz = XAllocSizeHints();
	sz->x = 100;
	sz->y = 100;
	sz->width = 300;
	sz->height = 300;
	sz->flags = USPosition | USSize;
	XSetNormalHints(display, window, sz);

	/* Mapping Window  ¥¿¦¡¼v®g¨ìÅã¥Ü¾¹µe­±*/
	printf("Map window\n");
	XMapWindow(display, window);
	getchar();	/* ¦Ü¦¹¡Aµøµ¡¤w°õ¦æ Map ªº°Ê§@¤F¡A¦ý
			   Åã¥Ü¾¹¤W¡A«o¥i¯à¬Ý¤£¨ì¡C*/
	
	printf("XFlush\n");
	XFlush(display);
	getchar();	/* ³oùØ¡A§AÀ³¸Ó´N¬Ý¨ìÅã¥Ü¾¹¤WªºÅÜ¤Æ¤F */
	
	/*
	   .................
	   .... µ{¦¡³B²z³¡¤À ..
	   ....................
	*/

	/* Ãö³¬µøµ¡ */
	printf("Destory Window\n");
	XDestroyWindow(display, window);
	getchar();
	
	printf("XFlush\n");
	XFlush(display);
	getchar();

	/* Ãö³¬ display */
	printf("close display\n");
	XCloseDisplay(display);
	getchar();
}

