ltkx

GUI toolkit for X11 (WIP)
git clone git://lumidify.org/ltkx.git
Log | Files | Refs | README | LICENSE

commit 93dfd2ced8dc537d2a667857f39b07bcc8307892
parent 6ffac25b7bc13b37867c6e52c6519389b46d951a
Author: lumidify <nobody@lumidify.org>
Date:   Tue, 28 Apr 2020 16:30:49 +0200

Fix Makefile; add pango test

Diffstat:
MMakefile | 6+++---
Mtext/Makefile | 4++--
Atext/tmp.c | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 77 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,12 +1,12 @@ LIBS = -lm `pkg-config --libs x11 harfbuzz fontconfig fribidi` STD = -std=c99 -CFLAGS = -g -w -fcommon -Wall -Werror -Wextra `pkg-config --cflags x11 harfbuzz fontconfig fribidi`#-pedantic +CFLAGS = -g -w -fcommon -Wall -Werror -Wextra `pkg-config --cflags x11 harfbuzz fontconfig fribidi` -pedantic OBJ = stb_truetype.o text-hb.o ltk.o ini.o grid.o button.o test1.o test1: $(OBJ) - gcc $(STD) -o $@ $> $(CFLAGS) $(LIBS) + gcc $(STD) -o $@ $(OBJ) $(LIBS) -%.o: %.c $(DEPS) +%.o: %.c $(CC) -c -o $@ $< $(CFLAGS) .PHONY: clean diff --git a/text/Makefile b/text/Makefile @@ -1,2 +1,2 @@ -all: text-hb.ubernew.c - gcc text-hb.uberubernew.c -g -std=c99 -o test `pkg-config --cflags --libs x11 harfbuzz` -lm +all: + gcc tmp.c -g -std=c99 -o tmp `pkg-config --cflags --libs pangoxft` -lm diff --git a/text/tmp.c b/text/tmp.c @@ -0,0 +1,72 @@ +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <X11/Xlib.h> +#include <X11/Xutil.h> +#include <X11/Xos.h> +#include <pango/pangoxft.h> + +int main(int argc, const char * argv[]) +{ + + Display *display; + int screen; + Window window; + GC gc; + + unsigned long black, white; + Colormap colormap; + display = XOpenDisplay((char *)0); + screen = DefaultScreen(display); + colormap = DefaultColormap(display, screen); + black = BlackPixel(display, screen); + white = WhitePixel(display, screen); + window = XCreateSimpleWindow(display, DefaultRootWindow(display), 0, 0, 1366, 512, 0, black, white); + XSetStandardProperties(display, window, "Random Window", NULL, None, NULL, 0, NULL); + XSelectInput(display, window, ExposureMask|ButtonPressMask|KeyPressMask); + gc = XCreateGC(display, window, 0, 0); + XSetBackground(display, gc, black); + XSetForeground(display, gc, black); + XClearWindow(display, window); + XMapRaised(display, window); + + PangoFontMap *fontmap = pango_xft_get_font_map(display, screen); + PangoContext *context = pango_font_map_create_context(fontmap); + PangoLayout *layout = pango_layout_new(context); + pango_layout_set_text (layout, "jhkashdfkashfaksjfla", -1); + /*PangoFontDescription *desc = pango_font_description_from_string ("Sans Bold 27"); + pango_layout_set_font_description (layout, desc); + pango_font_description_free (desc);*/ + + XftDraw *draw = XftDrawCreate(display, window, DefaultVisual(display, screen), DefaultColormap(display, screen)); + XftColor xftcolor; + XftColorAllocName(display, DefaultVisual(display, screen), colormap, "red", &xftcolor); + pango_xft_render_layout(draw, &xftcolor, layout, 0, 0); + + XEvent event; + KeySym key; + char text[255]; + + while(1) + { + XNextEvent(display, &event); + if (event.type == KeyPress && XLookupString(&event.xkey, text, 255, &key, 0) == 1) + { + pango_xft_render_layout(draw, &xftcolor, layout, 0, 0); + if (text[0] == 'q') + { + XFreeGC(display, gc); + XFreeColormap(display, colormap); + XDestroyWindow(display, window); + XCloseDisplay(display); + exit(0); + } + } + } + + /* free the layout object */ + g_object_unref (layout); + + return 0; +}