summaryrefslogtreecommitdiff
path: root/src/logger.c
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2023-07-25 09:27:26 +0800
committerMole Shang <[email protected]>2023-08-05 23:19:46 +0800
commited8f6df90b0c39835198d5b7af4bbd391362f180 (patch)
tree907ba31bac854eb5dc8a2781825e24c049b10580 /src/logger.c
downloadhinata-ed8f6df90b0c39835198d5b7af4bbd391362f180.tar.gz
hinata-ed8f6df90b0c39835198d5b7af4bbd391362f180.tar.bz2
hinata-ed8f6df90b0c39835198d5b7af4bbd391362f180.zip
hinata: initial commit
Diffstat (limited to 'src/logger.c')
-rw-r--r--src/logger.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/logger.c b/src/logger.c
new file mode 100644
index 0000000..0fef20a
--- /dev/null
+++ b/src/logger.c
@@ -0,0 +1,32 @@
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "logger.h"
+#include "nuklear.h"
+
+static struct logger logger = {0};
+
+struct logger *setup_logger(void) {
+ return &logger;
+}
+
+void append_log(const char *fmt, ...) {
+ va_list ap1;
+ va_start(ap1, fmt);
+ va_list ap2;
+ va_copy(ap2, ap1);
+ char buf[vsnprintf(NULL, 0, fmt, ap1) + 1];
+ va_end(ap1);
+ vsnprintf(buf, sizeof(buf), fmt, ap2);
+ va_end(ap2);
+ nk_str_append_str_char(&logger.text_edit->string, buf);
+ logger.box_lines++;
+ logger.scrollbar->y += logger.extend_box ? (logger.font_height + 2) : 0;
+ DEBUG_PRINT("scrollbar w: %u, h: %u\n", logger.scrollbar->x,
+ logger.scrollbar->y);
+}
+
+void clear_log() {
+ nk_textedit_delete(logger.text_edit, 0, logger.text_edit->string.len);
+ logger.box_lines = 0;
+}