#include #include #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; }