summaryrefslogtreecommitdiff
path: root/src/logger.c
diff options
context:
space:
mode:
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;
+}