32 lines
826 B
C++
32 lines
826 B
C++
#include "service/window.h"
|
|
#include <X11/Xlib.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
window_service_t::status_t window_service_t::create_window() {
|
|
Display *d;
|
|
Window w;
|
|
XEvent e;
|
|
const char *msg = "Hello, World!";
|
|
int s;
|
|
d = XOpenDisplay(NULL);
|
|
if (d == NULL) {
|
|
return window_service_t::status_t::error;
|
|
}
|
|
s = DefaultScreen(d);
|
|
w = XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 100, 100, 1, BlackPixel(d, s), WhitePixel(d, s));
|
|
XSelectInput(d, w, ExposureMask | KeyPressMask);
|
|
XMapWindow(d, w);
|
|
while (true) {
|
|
XNextEvent(d, &e);
|
|
if (e.type == Expose) {
|
|
XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
|
|
XDrawString(d, w, DefaultGC(d, s), 10, 50, msg, strlen(msg));
|
|
}
|
|
if (e.type == KeyPress)
|
|
break;
|
|
}
|
|
XCloseDisplay(d);
|
|
return window_service_t::status_t::ok;
|
|
}
|