0.8.6claws51
authorChristoph Hohmann <reboot@gmx.ch>
Mon, 2 Dec 2002 23:06:13 +0000 (23:06 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Mon, 2 Dec 2002 23:06:13 +0000 (23:06 +0000)
* src/logwindow.[ch]
* src/common/log.[ch]
        implement logging using a hook function

* src/folderview.c
* src/folder.[ch]
        define hooklist name in header file to avoid
        errors caused by wrong spelling of hooklist names

* src/toolbar.c
        fix warnings

ChangeLog.claws
configure.in
src/common/log.c
src/common/log.h
src/folder.c
src/folder.h
src/folderview.c
src/logwindow.c
src/logwindow.h
src/toolbar.c

index 0dbcd4a..56aba1a 100644 (file)
@@ -1,3 +1,17 @@
+2002-11-30 [christoph] 0.8.6claws51
+
+       * src/logwindow.[ch]
+       * src/common/log.[ch]
+               implement logging using a hook function
+
+       * src/folderview.c
+       * src/folder.[ch]
+               define hooklist name in header file to avoid
+               errors caused by wrong spelling of hooklist names
+
+       * src/toolbar.c
+               fix warnings
+
 2002-11-30 [christoph] 0.8.6claws50
 
        * src/common/Makefile.am
index 5898774..f05661d 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws50
+EXTRA_VERSION=claws51
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 34dc0e4..e9cdc26 100644 (file)
@@ -26,6 +26,8 @@
 
 #include "defs.h"
 #include "utils.h"
+#include "log.h"
+#include "hooks.h"
 
 static FILE *log_fp = NULL;
 
@@ -62,6 +64,7 @@ void log_print(const gchar *format, ...)
        va_list args;
        gchar buf[BUFFSIZE + TIME_LEN];
        time_t t;
+       LogText logtext;
 
        time(&t);
        strftime(buf, TIME_LEN + 1, "[%H:%M:%S] ", localtime(&t));
@@ -71,10 +74,9 @@ void log_print(const gchar *format, ...)
        va_end(args);
 
        if (debug_get_mode()) fputs(buf, stdout);
-/*     FIXME:
-       callback for gui logging
-
-       log_window_append(buf, LOG_NORMAL); */
+       logtext.text = buf;
+       logtext.type = LOG_NORMAL;
+       hooks_invoke(LOG_APPEND_TEXT_HOOKLIST, &logtext);
        if (log_fp) {
                fputs(buf, log_fp);
                fflush(log_fp);
@@ -91,6 +93,7 @@ void log_message(const gchar *format, ...)
        va_list args;
        gchar buf[BUFFSIZE + TIME_LEN];
        time_t t;
+       LogText logtext;
 
        time(&t);
        strftime(buf, TIME_LEN + 1, "[%H:%M:%S] ", localtime(&t));
@@ -100,10 +103,9 @@ void log_message(const gchar *format, ...)
        va_end(args);
 
        if (debug_get_mode()) g_message("%s", buf + TIME_LEN);
-/*     FIXME:
-       callback for gui logging
-
-       log_window_append(buf + TIME_LEN, LOG_MSG); */
+       logtext.text = buf + TIME_LEN;
+       logtext.type = LOG_MSG;
+       hooks_invoke(LOG_APPEND_TEXT_HOOKLIST, &logtext);
        if (log_fp) {
                fwrite(buf, TIME_LEN, 1, log_fp);
                fputs("* message: ", log_fp);
@@ -121,6 +123,7 @@ void log_warning(const gchar *format, ...)
        va_list args;
        gchar buf[BUFFSIZE + TIME_LEN];
        time_t t;
+       LogText logtext;
 
        time(&t);
        strftime(buf, TIME_LEN + 1, "[%H:%M:%S] ", localtime(&t));
@@ -130,10 +133,9 @@ void log_warning(const gchar *format, ...)
        va_end(args);
 
        g_warning("%s", buf);
-/*     FIXME:
-       callback for gui logging
-
-       log_window_append(buf + TIME_LEN, LOG_WARN); */
+       logtext.text = buf + TIME_LEN;
+       logtext.type = LOG_WARN;
+       hooks_invoke(LOG_APPEND_TEXT_HOOKLIST, &logtext);
        if (log_fp) {
                fwrite(buf, TIME_LEN, 1, log_fp);
                fputs("** warning: ", log_fp);
@@ -147,6 +149,7 @@ void log_error(const gchar *format, ...)
        va_list args;
        gchar buf[BUFFSIZE + TIME_LEN];
        time_t t;
+       LogText logtext;
 
        time(&t);
        strftime(buf, TIME_LEN + 1, "[%H:%M:%S] ", localtime(&t));
@@ -156,10 +159,9 @@ void log_error(const gchar *format, ...)
        va_end(args);
 
        g_warning("%s", buf);
-/*     FIXME:
-       callback for gui logging
-
-       log_window_append(buf + TIME_LEN, LOG_ERROR); */
+       logtext.text = buf + TIME_LEN;
+       logtext.type = LOG_ERROR;
+       hooks_invoke(LOG_APPEND_TEXT_HOOKLIST, &logtext);
        if (log_fp) {
                fwrite(buf, TIME_LEN, 1, log_fp);
                fputs("*** error: ", log_fp);
index 2523d65..6ce345e 100644 (file)
 
 #include <glib.h>
 
+#define LOG_APPEND_TEXT_HOOKLIST "log_append_text"
+
+typedef enum
+{
+       LOG_NORMAL,
+       LOG_MSG,
+       LOG_WARN,
+       LOG_ERROR
+} LogType;
+
+typedef struct _LogText LogText;
+
+struct _LogText
+{
+       const gchar     *text;
+       LogType          type;  
+};
+
 /* logging */
 void set_log_file      (const gchar *filename);
 void close_log_file    (void);
index f07919a..b10668e 100644 (file)
@@ -2737,7 +2737,7 @@ void folder_update_item(FolderItem *item, gboolean contentchange)
        
        source.item = item;
        source.content_change = contentchange;
-       hooks_invoke("folder_item_update", &source);
+       hooks_invoke(FOLDER_ITEM_UPDATE_HOOKLIST, &source);
 }
 
 static void folder_update_item_func(FolderItem *item, gpointer contentchange)
@@ -2747,7 +2747,7 @@ static void folder_update_item_func(FolderItem *item, gpointer contentchange)
        if (item->need_update) {
                source.item = item;
                source.content_change = GPOINTER_TO_INT(contentchange);
-               hooks_invoke("folder_item_update", &source);
+               hooks_invoke(FOLDER_ITEM_UPDATE_HOOKLIST, &source);
 
                item->need_update = FALSE;
        }
@@ -2768,14 +2768,14 @@ void folder_update_item_recursive(FolderItem *item, gboolean update_summary)
 
        source.item = item;
        source.content_change = update_summary; 
-       hooks_invoke("folder_item_update", &source);
+       hooks_invoke(FOLDER_ITEM_UPDATE_HOOKLIST, &source);
        while (node != NULL) {
                if (node && node->data) {
                        FolderItem *next_item = (FolderItem*) node->data;
 
                        source.item = next_item;
                        source.content_change = update_summary; 
-                       hooks_invoke("folder_item_update", &source);
+                       hooks_invoke(FOLDER_ITEM_UPDATE_HOOKLIST, &source);
                }
                node = node->next;
        }
index 44be6e1..3472aa9 100644 (file)
@@ -55,6 +55,8 @@ typedef struct _FolderItemUpdateData  FolderItemUpdateData;
 
 #define FOLDER_ITEM(obj)       ((FolderItem *)obj)
 
+#define FOLDER_ITEM_UPDATE_HOOKLIST "folder_item_update"
+
 typedef enum
 {
        F_MH,
index b62bed2..f36e1be 100644 (file)
@@ -506,7 +506,7 @@ FolderView *folderview_create(void)
        folderview->mbox_factory = mbox_factory;
 
        folderview->folder_item_update_callback_id =
-               hooks_register_hook("folder_item_update", folderview_update_item, (gpointer) folderview);
+               hooks_register_hook(FOLDER_ITEM_UPDATE_HOOKLIST, folderview_update_item, (gpointer) folderview);
 
        gtk_widget_show_all(scrolledwin);
 
index 74fbf7e..47875db 100644 (file)
 #include "utils.h"
 #include "gtkutils.h"
 #include "prefs_common.h"
-
-static LogWindow *logwindow;
+#include "log.h"
+#include "hooks.h"
 
 static void hide_cb    (GtkWidget      *widget,
                         LogWindow      *logwin);
 static void key_pressed        (GtkWidget      *widget,
                         GdkEventKey    *event,
                         LogWindow      *logwin);
-void log_window_clear(GtkWidget *text);
+void log_window_append (gpointer        source,
+                        gpointer        data);
+void log_window_clear  (GtkWidget      *text);
 
 LogWindow *log_window_create(void)
 {
@@ -85,8 +87,7 @@ LogWindow *log_window_create(void)
        logwin->window = window;
        logwin->scrolledwin = scrolledwin;
        logwin->text = text;
-
-       logwindow = logwin;
+       logwin->hook_id = hooks_register_hook(LOG_APPEND_TEXT_HOOKLIST, log_window_append, logwin);
 
        return logwin;
 }
@@ -134,19 +135,24 @@ void log_window_show(LogWindow *logwin)
        gtk_widget_show(logwin->window);
 }
 
-void log_window_append(const gchar *str, LogType type)
+void log_window_append(gpointer source, gpointer data)
 {
+       LogText *logtext = (LogText *) source;
+       LogWindow *logwindow = (LogWindow *) data;
        GtkText *text;
        GdkColor *color = NULL;
        gchar *head = NULL;
 
+       g_return_if_fail(logtext != NULL);
+       g_return_if_fail(logtext->text != NULL);
        g_return_if_fail(logwindow != NULL);
+
        if (prefs_common.cliplog && !prefs_common.loglength)
                return;
 
        text = GTK_TEXT(logwindow->text);
 
-       switch (type) {
+       switch (logtext->type) {
        case LOG_MSG:
                color = &logwindow->msg_color;
                head = "* ";
@@ -164,7 +170,7 @@ void log_window_append(const gchar *str, LogType type)
        }
 
        if (head) gtk_text_insert(text, NULL, color, NULL, head, -1);
-       gtk_text_insert(text, NULL, color, NULL, str, -1);
+       gtk_text_insert(text, NULL, color, NULL, logtext->text, -1);
        if (prefs_common.cliplog)
               log_window_clear (GTK_WIDGET (text));
 }
index 48b64a0..a96575e 100644 (file)
 
 typedef struct _LogWindow      LogWindow;
 
-typedef enum
-{
-       LOG_NORMAL,
-       LOG_MSG,
-       LOG_WARN,
-       LOG_ERROR
-} LogType;
-
 struct _LogWindow
 {
        GtkWidget *window;
@@ -42,12 +34,12 @@ struct _LogWindow
        GdkColor msg_color;
        GdkColor warn_color;
        GdkColor error_color;
+
+       guint hook_id;
 };
 
 LogWindow *log_window_create(void);
 void log_window_init(LogWindow *logwin);
 void log_window_show(LogWindow *logwin);
 
-void log_window_append(const gchar *str, LogType type);
-
 #endif /* __LOGWINDOW_H__ */
index b49d7cb..6641592 100644 (file)
@@ -51,6 +51,7 @@
 #include "gtkutils.h"
 #include "toolbar.h"
 #include "prefs_toolbar.h"
+#include "alertpanel.h"
 
 /* elements */
 #define TOOLBAR_TAG_INDEX        "toolbar"
@@ -73,8 +74,6 @@ static void   toolbar_set_default_main       (void);
 static void   toolbar_set_default_compose    (void);
 static void   toolbar_set_default_msgview    (void);
 
-static ToolbarType detect_window(gpointer data);
-
 struct ToolbarText 
 {
        gchar *index_str;
@@ -837,7 +836,6 @@ void common_toolbar_forward_cb(GtkWidget    *widget,
                               gpointer          data)
 {
        ToolbarParent *parent = (ToolbarParent*)data;
-       MessageView *msgview;
 
        g_return_if_fail(parent != NULL);