From 1895dda4b0fc535741c9aaca412b41571bec5e53 Mon Sep 17 00:00:00 2001 From: hiro Date: Mon, 29 Aug 2005 09:47:39 +0000 Subject: separate LogWindow from utils.c. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@523 ee746299-78ed-0310-b773-934348b2243d --- ChangeLog | 5 +++++ ChangeLog.ja | 5 +++++ src/logwindow.c | 28 ++++++++++++++++++++++++++++ src/utils.c | 27 ++++++++++++++++++++++----- src/utils.h | 2 ++ 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 08815a15..06148d9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-08-29 + + * src/logwindow.c + src/utils.[ch]: separate LogWindow from utils.c. + 2005-08-29 * src/main.[ch] diff --git a/ChangeLog.ja b/ChangeLog.ja index e1bb438f..f7b77994 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,8 @@ +2005-08-29 + + * src/logwindow.c + src/utils.[ch]: LogWindow を utils.c から分離。 + 2005-08-29 * src/main.[ch] diff --git a/src/logwindow.c b/src/logwindow.c index 277adfe3..ccd6b987 100644 --- a/src/logwindow.c +++ b/src/logwindow.c @@ -40,6 +40,11 @@ static LogWindow *logwindow; +static void log_window_print_func (const gchar *str); +static void log_window_message_func (const gchar *str); +static void log_window_warning_func (const gchar *str); +static void log_window_error_func (const gchar *str); + static void hide_cb (GtkWidget *widget, LogWindow *logwin); static gboolean key_pressed (GtkWidget *widget, @@ -136,6 +141,9 @@ void log_window_init(LogWindow *logwin) gtk_text_buffer_create_tag(buffer, "error", "foreground-gdk", &logwindow->error_color, NULL); + + set_log_ui_func(log_window_print_func, log_window_message_func, + log_window_warning_func, log_window_error_func); } void log_window_show(LogWindow *logwin) @@ -214,6 +222,26 @@ void log_window_append(const gchar *str, LogType type) logwindow->lines++; } +static void log_window_print_func(const gchar *str) +{ + log_window_append(str, LOG_NORMAL); +} + +static void log_window_message_func(const gchar *str) +{ + log_window_append(str, LOG_MSG); +} + +static void log_window_warning_func(const gchar *str) +{ + log_window_append(str, LOG_WARN); +} + +static void log_window_error_func(const gchar *str) +{ + log_window_append(str, LOG_ERROR); +} + static void hide_cb(GtkWidget *widget, LogWindow *logwin) { } diff --git a/src/utils.c b/src/utils.c index f35f9075..7bc8e8a5 100644 --- a/src/utils.c +++ b/src/utils.c @@ -53,7 +53,6 @@ #include "utils.h" #include "socket.h" #include "statusbar.h" -#include "logwindow.h" #define BUFFSIZE 8192 @@ -3303,6 +3302,24 @@ void set_debug_mode(gboolean enable) debug_mode = enable; } +void log_dummy_func(const gchar *str) +{ +} + +static LogFunc log_print_ui_func = log_dummy_func; +static LogFunc log_message_ui_func = log_dummy_func; +static LogFunc log_warning_ui_func = log_dummy_func; +static LogFunc log_error_ui_func = log_dummy_func; + +void set_log_ui_func(LogFunc print_func, LogFunc message_func, + LogFunc warning_func, LogFunc error_func) +{ + log_print_ui_func = print_func; + log_message_ui_func = message_func; + log_warning_ui_func = warning_func; + log_error_ui_func = error_func; +} + void debug_print(const gchar *format, ...) { va_list args; @@ -3333,7 +3350,7 @@ void log_print(const gchar *format, ...) va_end(args); if (debug_mode) fputs(buf, stdout); - log_window_append(buf, LOG_NORMAL); + log_print_ui_func(buf); if (log_fp) { fputs(buf, log_fp); fflush(log_fp); @@ -3356,7 +3373,7 @@ void log_message(const gchar *format, ...) va_end(args); if (debug_mode) g_message("%s", buf + TIME_LEN); - log_window_append(buf + TIME_LEN, LOG_MSG); + log_message_ui_func(buf + TIME_LEN); if (log_fp) { fwrite(buf, TIME_LEN, 1, log_fp); fputs("* message: ", log_fp); @@ -3380,7 +3397,7 @@ void log_warning(const gchar *format, ...) va_end(args); g_warning("%s", buf); - log_window_append(buf + TIME_LEN, LOG_WARN); + log_warning_ui_func(buf + TIME_LEN); if (log_fp) { fwrite(buf, TIME_LEN, 1, log_fp); fputs("** warning: ", log_fp); @@ -3403,7 +3420,7 @@ void log_error(const gchar *format, ...) va_end(args); g_warning("%s", buf); - log_window_append(buf + TIME_LEN, LOG_ERROR); + log_error_ui_func(buf + TIME_LEN); if (log_fp) { fwrite(buf, TIME_LEN, 1, log_fp); fputs("*** error: ", log_fp); diff --git a/src/utils.h b/src/utils.h index 4e0c03aa..0ccf2fbf 100644 --- a/src/utils.h +++ b/src/utils.h @@ -176,6 +176,8 @@ gint g_chmod (const gchar *path, perror(func); \ } +typedef void (*LogFunc) (const gchar *str); + /* for macro expansion */ #define Str(x) #x #define Xstr(x) Str(x) -- cgit v1.2.3