aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tsar.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/tsar.c b/src/tsar.c
index 7277d28..869d73c 100644
--- a/src/tsar.c
+++ b/src/tsar.c
@@ -14,6 +14,9 @@ Display* display;
Window win;
GC gc;
+XftFont* font;
+XftColor fg_color;
+
static int height = 17;
static int width = 1000;
static float width_ratio = 1;
@@ -67,14 +70,40 @@ void init_x(void) {
gc = XCreateGC(display, win, 0, NULL);
XSetForeground(display, gc, 0xFFFFFF);
+ const char font_name[] = "CommitMono:style=Regular:antialias=true";
+ font = XftFontOpenName(display, DefaultScreen(display), font_name);
+
+ XftColorAllocName(
+ display,
+ DefaultVisual(display, DefaultScreen(display)),
+ DefaultColormap(display, DefaultScreen(display)),
+ "#FFFFFF",
+ &fg_color
+ );
+
XFlush(display);
}
void deinit_x(void) {
+ XftFontClose(display, font);
XUnmapWindow(display, win);
XDestroyWindow(display, win);
}
+void draw_text(const char* text, int x, int y) {
+ XftDraw* xft_draw = XftDrawCreate(
+ display,
+ win,
+ DefaultVisual(display, DefaultScreen(display)),
+ DefaultColormap(display, DefaultScreen(display))
+ );
+
+ int dy = y + (height - font->height) / 2 + font->ascent;
+ XftDrawString8(xft_draw, &fg_color, font, x, dy, (const FcChar8*)text, strlen(text));
+
+ XftDrawDestroy(xft_draw);
+}
+
int main(void) {
init_pipe();
init_x();
@@ -83,7 +112,9 @@ int main(void) {
XEvent ev;
XNextEvent(display, &ev);
- XDrawLine(display, win, gc, 0, 0, width, height);
+ XClearWindow(display, win);
+
+ draw_text("Hello, world!", 0, 0);
XFlush(display);
await_change();