xdemo.c
author Markus Bröker<broeker.markus@googlemail.com>
Sun, 10 Feb 2019 13:17:01 +0100
changeset 173 374a86886bc5
parent 77 49e0babccb23
permissions -rw-r--r--
LAST-DIGIT-BUG: INCREMENT before LF

/**
 * xdemo.c
 * Copyright (C) 2008 Markus Broeker
 */

#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>

int main (int argc, char **argv)
{
    Window w = 0;

    Display *dpy = XOpenDisplay (NULL);

    XEvent xev;

    int active;

    if (dpy == NULL) {
        printf ("Error opening localhost:0\n");
        return EXIT_FAILURE;
    }

    XSynchronize (dpy, 1);
    w = XCreateSimpleWindow (dpy, DefaultRootWindow (dpy), 0, 0, 240, 60, 1, 1, 1);

    if (w < 0)
        return EXIT_FAILURE;

    printf ("WINDOW-ID: %ld\n", w);

    XRaiseWindow (dpy, w);
    XMapWindow (dpy, w);

    printf ("Press ESC to quit\n");

    active = 1;
    XSelectInput (dpy, w, KeyPressMask);

    while (active) {
        XNextEvent (dpy, &xev);
        switch (xev.type) {
        case KeyPress:
            if (xev.xkey.keycode == 9)
                active = 0;
            printf ("Keycode = %2u\n", xev.xkey.keycode);
            break;
        default:
            printf ("Unknown Event: %d\n", xev.type);
        }
    }

    XDestroyWindow (dpy, w);
    XCloseDisplay (dpy);

    return EXIT_SUCCESS;
}