win32

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit e7be9552b798a7772e4016fd65aeb80187f2c7ec
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Tue, 16 Dec 2025 12:10:51 +0900

create window

Diffstat:
AMakefile | 5+++++
Awin32.c | 42++++++++++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile @@ -0,0 +1,5 @@ +all: + $(CC) -I/usr/X11R6/include win32.c -L/usr/X11R6/lib -lX11 -o win32 + +clean: + rm -f win32 diff --git a/win32.c b/win32.c @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> +#include <X11/Xlib.h> + +void fatal(char *msg); + +int main(void) { + Display *display = XOpenDisplay(NULL); + if (!display) { + fatal("can't open display"); + } + int screen = DefaultScreen(display); + XSetWindowAttributes attr = { + .event_mask = KeyPressMask | ExposureMask, + }; + + Window window = XCreateWindow(display, DefaultRootWindow(display), + 0, 0, 800, 600, 0, + DefaultDepth(display, screen), + InputOutput, + DefaultVisual(display, screen), + CWEventMask, + &attr); + XMapWindow(display, window); + XSync(display, window); + + int quit = 0; + XEvent event; + while (!quit) { + XNextEvent(display, &event); + if (event.type == KeyPress && event.xkey.keycode == 49) { + quit = 1; + } + } + + XCloseDisplay(display); +} + +void fatal(char *msg) { + fprintf(stderr, "%s\n", msg); + exit(1); +}