diff options
-rw-r--r-- | Makefile | 2 | ||||
-rwxr-xr-x | color | bin | 16968 -> 17160 bytes | |||
-rw-r--r-- | color.c | 76 |
3 files changed, 67 insertions, 11 deletions
@@ -1,4 +1,4 @@ make: gcc color.c -lX11 -o color debug: - gcc color.c -lX11 -o color -ggdb + gcc color.c -lX11 -Wall -o color -ggdb Binary files differ@@ -2,27 +2,83 @@ #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; + + + + - d = XOpenDisplay(NULL); - if (d == NULL) { - fprintf(stderr, "Cannot open display\n"); - exit(1); + if((display = XOpenDisplay(NULL)) == NULL) { + printf("Couldn't open display due to fatal error: %s\n", strerror(errno)); + exit(errno); } screen = DefaultScreen(display); - w = XCreateSimpleWindow(display, RootWindow(display, screen), + 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, - 1, - BlackPixel(d, s), - WhitePixel(d, s)); //last arg is color + 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_formatting.background = WhitePixel(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 formatting, textprompt + break; + default: + printf("wot\n"); + break; + } + } return 0; -} +} |