ttmp.c - ltkx - GUI toolkit for X11 (WIP)
HTML git clone git://lumidify.org/ltkx.git
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
ttmp.c (2346B)
---
1 #include <math.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <stdint.h>
5 #include <X11/Xlib.h>
6 #include <X11/Xutil.h>
7 #include <X11/Xos.h>
8 #include <pango/pangoxft.h>
9
10 int main(int argc, const char * argv[])
11 {
12
13 Display *display;
14 int screen;
15 Window window;
16 GC gc;
17
18 unsigned long black, white;
19 Colormap colormap;
20 display = XOpenDisplay((char *)0);
21 screen = DefaultScreen(display);
22 colormap = DefaultColormap(display, screen);
23 black = BlackPixel(display, screen);
24 white = WhitePixel(display, screen);
25 window = XCreateSimpleWindow(display, DefaultRootWindow(display), 0, 0, 1366, 512, 0, black, white);
26 XSetStandardProperties(display, window, "Random Window", NULL, None, NULL, 0, NULL);
27 XSelectInput(display, window, ExposureMask|ButtonPressMask|KeyPressMask);
28 gc = XCreateGC(display, window, 0, 0);
29 XSetBackground(display, gc, black);
30 XSetForeground(display, gc, black);
31 XClearWindow(display, window);
32 XMapRaised(display, window);
33
34 PangoFontMap *fontmap = pango_xft_get_font_map(display, screen);
35 PangoContext *context = pango_font_map_create_context(fontmap);
36 PangoLayout *layout = pango_layout_new(context);
37 pango_layout_set_text (layout, "jhkashdfkashfaksjfla", -1);
38 /*PangoFontDescription *desc = pango_font_description_from_string ("Sans Bold 27");
39 pango_layout_set_font_description (layout, desc);
40 pango_font_description_free (desc);*/
41
42 XftDraw *draw = XftDrawCreate(display, window, DefaultVisual(display, screen), DefaultColormap(display, screen));
43 XftColor xftcolor;
44 XftColorAllocName(display, DefaultVisual(display, screen), colormap, "red", &xftcolor);
45 pango_xft_render_layout(draw, &xftcolor, layout, 0, 0);
46
47 XEvent event;
48 KeySym key;
49 char text[255];
50
51 while(1)
52 {
53 XNextEvent(display, &event);
54 if (event.type == KeyPress && XLookupString(&event.xkey, text, 255, &key, 0) == 1)
55 {
56 pango_xft_render_layout(draw, &xftcolor, layout, 0, 0);
57 if (text[0] == 'q')
58 {
59 XFreeGC(display, gc);
60 XFreeColormap(display, colormap);
61 XDestroyWindow(display, window);
62 XCloseDisplay(display);
63 exit(0);
64 }
65 }
66 }
67
68 /* free the layout object */
69 g_object_unref (layout);
70
71 return 0;
72 }