URI: 
       main1.c - ltkx - GUI toolkit for X11 (old)
  HTML git clone git://lumidify.org/ltkx.git (fast, but not encrypted)
  HTML git clone https://lumidify.org/ltkx.git (encrypted, but very slow)
  HTML git clone git://4kcetb7mo7hj6grozzybxtotsub5bempzo4lirzc3437amof2c2impyd.onion/ltkx.git (over tor)
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       main1.c (2972B)
       ---
            1 #include <stdio.h>
            2 #include <stdlib.h>
            3 #include <X11/Xlib.h>
            4 #include <X11/Xutil.h>
            5 #include <X11/Xos.h>
            6 
            7 int main(int argc, char *argv[])
            8 {
            9     Display *display;
           10     int screen;
           11     Window window;
           12     GC gc;
           13 
           14     unsigned long black, white;
           15     XColor green;
           16     Colormap colormap;
           17     display = XOpenDisplay((char *)0);
           18     screen = DefaultScreen(display);
           19     colormap = DefaultColormap(display, screen);
           20     black = BlackPixel(display, screen);
           21     white = WhitePixel(display, screen);
           22     XParseColor(display, colormap, "#00FF00", &green);
           23     XAllocColor(display, colormap, &green);
           24     window = XCreateSimpleWindow(display, DefaultRootWindow(display), 0, 0, 200, 300, 0, white, white);
           25     XSetStandardProperties(display, window, "Random Window", NULL, None, NULL, 0, NULL);
           26     XSelectInput(display, window, ExposureMask|ButtonPressMask|KeyPressMask);
           27     gc = XCreateGC(display, window, 0, 0);
           28     XSetBackground(display, gc, black);
           29     XSetForeground(display, gc, black);
           30     XClearWindow(display, window);
           31     XMapRaised(display, window);
           32 
           33     XEvent event;
           34     KeySym key;
           35     char text[255];
           36 
           37 
           38 
           39 /* this pointer will hold the returned font structure. */
           40 XFontStruct* font_info;
           41 
           42 /* try to load the given font. */
           43 char* font_name = "*";
           44 font_info = XLoadQueryFont(display, font_name);
           45 if (!font_info) {
           46     fprintf(stderr, "XLoadQueryFont: failed loading font '%s'\n", font_name);
           47 }
           48 
           49 XSetFont(display, gc, font_info->fid);
           50 /* assume that win_width contains the width of our window, win_height        */
           51 /* contains the height of our window, and 'win' is the handle of our window. */
           52 
           53 /* some temporary variables used for the drawing. */
           54 int x, y;
           55 
           56 /* draw a "hello world" string on the top-left side of our window. */
           57 x = 0;
           58 y = 0;
           59 XDrawString(display, window, gc, x, y, "hello world", strlen("hello world"));
           60 
           61 /* draw a "middle of the road" string in the middle of our window. */
           62 char* text_string = "middle of the road";
           63 /* find the width, in pixels, of the text that will be drawn using */
           64 /* the given font.                                                 */
           65 int string_width = XTextWidth(font_info, text_string, strlen(text_string));
           66 /* find the height of the characters drawn using this font.        */
           67 int font_height = font_info->ascent + font_info->descent;
           68 /*
           69 x = (win_width - string_width) / 2;
           70 y = (win_width - font_height) / 2;
           71 */
           72 x = 0;
           73 y = 0;
           74 XDrawString(display, window, gc, x, y, "hello world", strlen("hello world"));
           75 
           76     while(1)
           77     {
           78         XNextEvent(display, &event);
           79         if (event.type == KeyPress && XLookupString(&event.xkey, text, 255, &key, 0) == 1)
           80         {
           81             if (text[0] == 'q')
           82             {
           83 XDrawString(display, window, gc, x, y, "hello world", strlen("hello world"));
           84 /*
           85                 XFreeGC(display, gc);
           86                 XFreeColormap(display, colormap);
           87                 XDestroyWindow(display, window);
           88                 XCloseDisplay(display);
           89                 exit(0);
           90                 */
           91             }
           92         }
           93     }
           94 }