commit 809bd045ef627e90e5f062f49fdc44582a901dc8
parent 2a84c41d72caee1321ea6ec0d7bbb05d8727ef9d
Author: lumidify <nobody@lumidify.org>
Date: Sun, 12 Apr 2020 09:40:55 +0200
Change include style
Diffstat:
10 files changed, 64 insertions(+), 70 deletions(-)
diff --git a/button.c b/button.c
@@ -21,13 +21,24 @@
* SOFTWARE.
*/
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include "khash.h"
#include "ltk.h"
+#include "stb_truetype.h"
+#include <fribidi.h>
+#include <harfbuzz/hb.h>
+#include <fontconfig/fontconfig.h>
+#include "text-hb.h"
#include "button.h"
extern Ltk *ltk_global;
void ltk_button_ini_handler(LtkTheme *theme, const char *prop, const char *value)
{
+ if (theme->button == NULL) {
+ theme->button = malloc(sizeof(LtkButtonTheme));
+ }
if (strcmp(prop, "border_width") == 0) {
theme->button->border_width = atoi(value);
} else if (strcmp(prop, "font_size") == 0) {
diff --git a/button.h b/button.h
@@ -24,7 +24,7 @@
#ifndef _LTK_BUTTON_H_
#define _LTK_BUTTON_H_
-#include "text-hb.h"
+/* Requires the following includes: <X11/Xlib.h>, "ltk.h", "text-hb.h" */
typedef struct {
LtkWidget widget;
diff --git a/grid.c b/grid.c
@@ -23,6 +23,10 @@
/* TODO: remove_widget function that also adjusts static width */
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include "khash.h"
+#include "ltk.h"
#include "grid.h"
void ltk_set_row_weight(LtkGrid * grid, int row, int weight)
diff --git a/grid.h b/grid.h
@@ -24,7 +24,7 @@
#ifndef _LTK_GRID_H_
#define _LTK_GRID_H_
-#include "ltk.h"
+/* Requires the following incude: <X11/Xlib.h>, "ltk.h" */
/*
* Struct to represent a grid widget.
diff --git a/ltk.c b/ltk.c
@@ -24,7 +24,15 @@
#include <stdio.h>
#include <stdlib.h>
#include "ini.h"
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include "khash.h"
#include "ltk.h"
+#include "stb_truetype.h"
+#include <fribidi.h>
+#include <harfbuzz/hb.h>
+#include <fontconfig/fontconfig.h>
+#include "text-hb.h"
Ltk *ltk_global;
@@ -88,16 +96,6 @@ void ltk_mainloop(void)
while (1) {
XNextEvent(ltk_global->display, &event);
ltk_handle_event(event);
- /*
- if (event.type == KeyPress && XLookupString(&event.xkey, text, 255, &key, 0) == 1)
- {
- if (text[0] == 'q')
- {
- XCloseDisplay(ltk_global->display);
- exit(0);
- }
- }
- */
}
}
@@ -107,6 +105,7 @@ void ltk_redraw_window(LtkWindow * window)
if (!window) {
return;
}
+ XClearWindow(ltk_global->display, window->xwindow);
if (!window->root_widget) {
return;
}
@@ -178,7 +177,7 @@ void ltk_destroy_window(LtkWindow * window)
void ltk_window_other_event(void *widget, XEvent event)
{
- LtkWindow *window = widget;
+ LtkWindow *window = (LtkWindow *) widget;
LtkWidget *ptr = window->root_widget;
if (event.type == ConfigureNotify) {
unsigned int w, h;
@@ -229,37 +228,11 @@ LtkTheme *ltk_load_theme(const char *path)
{
LtkTheme *theme = malloc(sizeof(LtkTheme));
theme->window = malloc(sizeof(LtkWindowTheme));
- theme->button = malloc(sizeof(LtkButtonTheme));
+ theme->button = NULL;
if (ini_parse(path, ltk_ini_handler, theme) < 0) {
fprintf(stderr, "ERROR: Can't load theme %s\n.", path);
exit(1);
}
- /*
- char *file_contents = ltk_read_file(path);
-
- cJSON *json = cJSON_Parse(file_contents);
- if (!json) {
- printf("Theme error before: [%s]\n", cJSON_GetErrorPtr());
- return NULL;
- }
- cJSON *button_json = cJSON_GetObjectItem(json, "button");
- if (!button_json) {
- printf("Theme error before: [%s]\n", cJSON_GetErrorPtr());
- return NULL;
- }
- cJSON *window_json = cJSON_GetObjectItem(json, "window");
- if (!window_json) {
- printf("Theme error before: [%s]\n", cJSON_GetErrorPtr());
- return NULL;
- }
-
- LtkTheme *theme = malloc(sizeof(LtkTheme));
- theme->button = ltk_parse_button_theme(button_json);
- theme->window = ltk_parse_window_theme(window_json);
-
- free(file_contents);
- cJSON_Delete(json);
- */
return theme;
}
diff --git a/ltk.h b/ltk.h
@@ -24,10 +24,7 @@
#ifndef _LTK_H_
#define _LTK_H_
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include "khash.h"
-#include "text-hb.h"
+/* Requires the following includes: <X11/Xlib.h>, <X11/Xutil.h>, "khash.h" */
typedef struct {
int x;
@@ -82,9 +79,6 @@ typedef struct LtkWidget {
unsigned short sticky;
} LtkWidget;
-/* Window hash */
-KHASH_MAP_INIT_INT(winhash, LtkWindow*)
-
typedef struct LtkWindow {
Window xwindow;
GC gc;
@@ -100,8 +94,7 @@ typedef struct LtkWindowTheme {
XColor bg;
} LtkWindowTheme;
-#include "button.h"
-#include "grid.h"
+typedef struct LtkButtonTheme LtkButtonTheme;
typedef struct {
LtkWindowTheme *window;
@@ -110,6 +103,11 @@ typedef struct {
LtkTheme *ltk_load_theme(const char *path);
+typedef struct LtkTextManager LtkTextManager;
+
+/* Window hash */
+KHASH_MAP_INIT_INT(winhash, LtkWindow*)
+
typedef struct {
LtkTheme *theme;
LtkTextManager *tm;
diff --git a/ltkx.h b/ltkx.h
@@ -0,0 +1,13 @@
+/* This just includes all the other files for convenience */
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include "khash.h"
+#include "ltk.h"
+#include "stb_truetype.h" /* http://nothings.org/stb/stb_truetype.h */
+#include <fontconfig/fontconfig.h>
+#include <fribidi.h>
+#include <harfbuzz/hb.h>
+#include <harfbuzz/hb-ot.h>
+#include "text-hb.h"
+#include "button.h"
+#include "grid.h"
diff --git a/test1.c b/test1.c
@@ -1,4 +1,4 @@
-#include "ltk.h"
+#include "ltkx.h"
void bob1(void)
{
diff --git a/text-hb.c b/text-hb.c
@@ -25,9 +25,16 @@
#include <stdlib.h>
#include <stdint.h>
#include <limits.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
#include "stb_truetype.h" /* http://nothings.org/stb/stb_truetype.h */
-#include "ltk.h"
+#include <fontconfig/fontconfig.h>
+#include "khash.h"
+#include <fribidi.h>
+#include <harfbuzz/hb.h>
+#include <harfbuzz/hb-ot.h>
#include "text-hb.h"
+#include "ltk.h"
extern Ltk *ltk_global;
@@ -297,7 +304,6 @@ ltk_load_font(LtkTextManager *tm, char *path)
uint16_t
ltk_get_font(LtkTextManager *tm, char *path)
{
- printf("%s\n", path);
int ret;
khint_t k;
uint16_t id;
@@ -439,15 +445,6 @@ ltk_create_text_segment(LtkTextManager *tm, uint32_t *text, unsigned int len, ui
LtkFont *font;
khash_t(glyphinfo) *glyph_cache;
khint_t k;
- char bob[4];
- for (int i = 0; i < len; i++) {
- for (int j = 0; j < 3; j++) {
- bob[j] = '\0';
- }
- u8_wc_toutf8(bob, text[i]);
- printf("%s", bob);
- }
- printf("END\n");
k = kh_get(fontstruct, tm->font_cache, fontid);
font = kh_value(tm->font_cache, k);
diff --git a/text-hb.h b/text-hb.h
@@ -24,14 +24,12 @@
#ifndef _TEXT_HB_H_
#define _TEXT_HB_H_
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include "stb_truetype.h" /* http://nothings.org/stb/stb_truetype.h */
-#include <fontconfig/fontconfig.h>
-#include "khash.h"
-#include <fribidi.h>
-#include <harfbuzz/hb.h>
-#include <harfbuzz/hb-ot.h>
+/*
+Requires the following includes:
+<X11/Xlib.h>, <X11/Xutil.h>, "stb_truetype.h",
+"khash.h", <harfbuzz/hb.h>, <fribidi.h>,
+<fontconfig/fontconfig.h>
+*/
typedef struct {
stbtt_fontinfo info;
@@ -106,7 +104,7 @@ KHASH_MAP_INIT_STR(fontid, uint16_t)
/* font id -> font struct */
KHASH_MAP_INIT_INT(fontstruct, LtkFont*)
-typedef struct LtkTextManager_ {
+typedef struct LtkTextManager {
khash_t(fontid) *font_paths;
khash_t(fontstruct) *font_cache;
khash_t(glyphcache) *glyph_cache;