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;