summaryrefslogtreecommitdiff
path: root/tests/xlib-beginner.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/xlib-beginner.c')
-rw-r--r--tests/xlib-beginner.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/xlib-beginner.c b/tests/xlib-beginner.c
new file mode 100644
index 0000000..b31a148
--- /dev/null
+++ b/tests/xlib-beginner.c
@@ -0,0 +1,59 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xos.h>
+#include <X11/Xatom.h>
+#include <X11/keysym.h>
+/*Linux users will need to add -ldl to the Makefile to compile
+ *this example.
+ */
+Display *dis;
+Window win;
+XEvent report;
+GC green_gc;
+XColor green_col;
+Colormap colormap;
+/*
+Try changing the green[] = below to a different color.
+The color can also be from /usr/X11R6/lib/X11/rgb.txt, such as RoyalBlue4.
+A # (number sign) is only needed when using hexadecimal colors.
+*/
+char green[] = "#00FF00";
+
+int main() {
+ dis = XOpenDisplay(NULL);
+ win = XCreateSimpleWindow(dis, RootWindow(dis, 0), 1, 1, 500, 500, 0, BlackPixel (dis, 0), BlackPixel(dis, 0));
+ XMapWindow(dis, win);
+ colormap = DefaultColormap(dis, 0);
+ green_gc = XCreateGC(dis, win, 0, 0);
+ XParseColor(dis, colormap, green, &green_col);
+ XAllocColor(dis, colormap, &green_col);
+ XSetForeground(dis, green_gc, green_col.pixel);
+
+ XSelectInput(dis, win, ExposureMask | KeyPressMask | ButtonPressMask);
+
+ XDrawRectangle(dis, win, green_gc, 1, 1, 497, 497);
+ XDrawRectangle(dis, win, green_gc, 50, 50, 398, 398);
+ XFlush(dis);
+
+ while (1) {
+ XNextEvent(dis, &report);
+ switch (report.type) {
+ case Expose:
+ fprintf(stdout, "I have been exposed.\n");
+ XDrawRectangle(dis, win, green_gc, 1, 1, 497, 497);
+ XDrawRectangle(dis, win, green_gc, 50, 50, 398, 398);
+ XFlush(dis);
+ break;
+ case KeyPress:
+ /*Close the program if q is pressed.*/
+ if (XLookupKeysym(&report.xkey, 0) == XK_q) {
+ exit(0);
+ }
+ break;
+ }
+ }
+
+return 0;
+}