aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comet.c3
-rw-r--r--log.c26
-rw-r--r--log.h27
-rw-r--r--x11.c4
4 files changed, 59 insertions, 1 deletions
diff --git a/comet.c b/comet.c
index 5a64235..b125d78 100644
--- a/comet.c
+++ b/comet.c
@@ -2,10 +2,13 @@
#include <glib-unix.h>
#include "x11.h"
+#include "log.h"
#include "draw.h"
int main(int argc, char **argv)
{
+ log_init(G_LOG_LEVEL_DEBUG);
+
Window *win = window_create();
draw(win);
diff --git a/log.c b/log.c
new file mode 100644
index 0000000..f4c529f
--- /dev/null
+++ b/log.c
@@ -0,0 +1,26 @@
+#include <glib.h>
+
+#include "log.h"
+
+static void log_handler(const char *log_domain,
+ GLogLevelFlags level,
+ const char *message,
+ gpointer log_level)
+{
+ GLogLevelFlags message_level = level & G_LOG_LEVEL_MASK;
+
+ if ((GLogLevelFlags)log_level < message_level)
+ return;
+
+ if (message_level <= G_LOG_LEVEL_WARNING)
+ g_printerr("%s\n", message);
+ else
+ g_print("%s\n", message);
+}
+
+void log_init(GLogLevelFlags level)
+{
+ g_log_set_default_handler(log_handler, (void *)level);
+}
+
+// vim: ts=4 sw=4 et
diff --git a/log.h b/log.h
new file mode 100644
index 0000000..28dbf14
--- /dev/null
+++ b/log.h
@@ -0,0 +1,27 @@
+#ifndef COMET_LOG_H
+#define COMET_LOG_H
+
+#include <stdio.h>
+
+#define DEBUG_FORMAT(format, ...) \
+ "[%s] \x1b[1mdebug\x1b[0m: " format, __func__, ## __VA_ARGS__
+
+#define INFO_FORMAT(format, ...) \
+ "[%s] \x1b[1;96minfo\x1b[0m: " format, __func__, ## __VA_ARGS__
+
+#define WARNING_FORMAT(format, ...) \
+ "[%s] \x1b[1;33mwarning\x1b[0m: " format, __func__, ## __VA_ARGS__
+
+#define ERROR_FORMAT(format, ...) \
+ "[%s] \x1b[1;31merror\x1b[0m: " format, __func__, ## __VA_ARGS__
+
+#define log_debug(...) g_debug(DEBUG_FORMAT(__VA_ARGS__))
+#define log_info(...) g_info(INFO_FORMAT(__VA_ARGS__))
+#define log_warning(...) g_warning(WARNING_FORMAT(__VA_ARGS__))
+#define log_error(...) g_error(ERROR_FORMAT(__VA_ARGS__))
+
+void log_init(GLogLevelFlags level);
+
+#endif
+
+// vim: ts=4 sw=4 et
diff --git a/x11.c b/x11.c
index 26ae535..032b6d4 100644
--- a/x11.c
+++ b/x11.c
@@ -60,7 +60,7 @@ Window *window_create(void)
y, x, h, w, 0,
XCB_WINDOW_CLASS_INPUT_OUTPUT,
win->screen->root_visual,
- XCB_CW_BACK_PIXEL,
+ XCB_CW_BACK_PIXEL,
//XCB_CW_BACK_PIXEL | XCB_CW_BACK_PIXMAP | XCB_CW_OVERRIDE_REDIRECT |
// XCB_CW_BORDER_PIXEL | XCB_CW_EVENT_MASK | XCB_CW_COLORMAP,
&win->screen->white_pixel);
@@ -89,6 +89,8 @@ done:
win->surface = cairo_xcb_surface_create(win->connection, win->window, win->visual_type, w, h);
win->cr = cairo_create(win->surface);
+ log_debug("Cairo initialized");
+
return win;
}