diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile | 4 | ||||
-rw-r--r-- | src/color.c | 83 |
2 files changed, 87 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..5a84d7c --- /dev/null +++ b/src/Makefile @@ -0,0 +1,4 @@ +make: + gcc color.c -lX11 -o ../color +debug: + gcc color.c -lX11 -Wall -o ../color -ggdb diff --git a/src/color.c b/src/color.c new file mode 100644 index 0000000..8721140 --- /dev/null +++ b/src/color.c @@ -0,0 +1,83 @@ +#include <X11/Xlib.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> + +//TODO: fix your ugly ass vim colors, I don't care if it's part of the code + + +int main(void) { + + char text_prompt_buffer[32] = "testing"; //TODO: everything + + Display *display; + Window window; + XEvent event; + Colormap colormap; + int screen; + + XColor background_color; + XTextItem text_prompt; + XGCValues text_prompt_formatting; + GC text_prompt_gc; + + + + + + if((display = XOpenDisplay(NULL)) == NULL) { + printf("Couldn't open display due to fatal error: %s\n", strerror(errno)); + exit(errno); + } + + screen = DefaultScreen(display); + colormap = DefaultColormap(display, screen); + + background_color.red = 0; + background_color.green = 65535; + background_color.blue = 0; + + XAllocColor(display, colormap, &background_color); + + + window = XCreateSimpleWindow(display, RootWindow(display, screen), + 10, 10, + 100, 100, + 0, + background_color.pixel, + background_color.pixel); //last arg is color + + XMapWindow(display, window); + XSelectInput(display, window, KeyPressMask | ExposureMask); + + + //text struct + text_prompt.chars = text_prompt_buffer; + text_prompt.nchars = strlen(text_prompt_buffer); + text_prompt.delta = 0; //what? + text_prompt.font = None; + + //text formatting struct + text_prompt_formatting.foreground = BlackPixel(display, screen); + text_prompt_gc = XCreateGC(display, window, GCForeground | GCBackground, &text_prompt_formatting); + + + for(;;) { + XNextEvent(display, &event); + switch (event.type) { + case KeyPress: + printf("Key press\n"); + break; + case Expose: + XDrawText(display, window, text_prompt_gc, 10, 10, &text_prompt, 1); //TODO learn inverting math, move to bottom right of window + break; + default: + printf("wot\n"); + break; + } + } + + + return 0; +} |