diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2011-01-05 00:40:05 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2011-01-05 00:40:05 (GMT) |
commit | ee2e35f6dced8340682eab8cb013ba2911858c53 (patch) | |
tree | 382a2dafe360956ef789488916446fa4e8fd8a6a /src | |
parent | 9776f811af66eca56116fe81f77d859fb9b6e8fe (diff) |
Extended the logging system.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@206 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src')
-rw-r--r-- | src/panels/log.c | 24 | ||||
-rw-r--r-- | src/panels/log.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/panels/log.c b/src/panels/log.c index b13119a..175c185 100644 --- a/src/panels/log.c +++ b/src/panels/log.c @@ -78,6 +78,7 @@ GtkWidget *build_log_panel(void) g_object_set_data(G_OBJECT(result), "store", store); treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); + g_object_set_data(G_OBJECT(result), "treeview", treeview); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); gtk_widget_show(treeview); gtk_container_add(GTK_CONTAINER(result), treeview); @@ -124,6 +125,8 @@ void log_simple_message(LogMessageType type, const char *msg) GtkWidget *panel; /* Panneau à traiter */ GtkTreeStore *store; /* Modèle de gestion */ GtkTreeIter iter; /* Point d'insertion */ + GtkTreeView *treeview; /* Affichage de la liste */ + GtkTreePath *path; /* Chemin d'accès à la ligne */ panel = get_panel(PNT_LOG); store = g_object_get_data(G_OBJECT(panel), "store"); @@ -153,6 +156,20 @@ void log_simple_message(LogMessageType type, const char *msg) -1); break; + case LMT_ERROR: + gtk_tree_store_set(store, &iter, + LGC_PICTURE, "gtk-dialog-error", + LGC_STRING, msg, + -1); + break; + + case LMT_WARNING: + gtk_tree_store_set(store, &iter, + LGC_PICTURE, "gtk-dialog-warning", + LGC_STRING, msg, + -1); + break; + default: gtk_tree_store_set(store, &iter, LGC_STRING, msg, @@ -161,6 +178,13 @@ void log_simple_message(LogMessageType type, const char *msg) } + treeview = GTK_TREE_VIEW(g_object_get_data(G_OBJECT(panel), "treeview")); + path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); + + gtk_tree_view_scroll_to_cell(treeview, path, NULL, FALSE, 0.0, 0.0); + + gtk_tree_path_free(path); + } diff --git a/src/panels/log.h b/src/panels/log.h index 5ea95cc..b0fc3e9 100644 --- a/src/panels/log.h +++ b/src/panels/log.h @@ -36,6 +36,8 @@ typedef enum _LogMessageType LMT_INFO, /* Information sur l'exécution */ LMT_BAD_BINARY, /* Binaire malformé */ LMT_PROCESS, /* Début de tâche quelconque */ + LMT_ERROR, /* Erreur de traitement */ + LMT_WARNING, /* Avertissment à remonter */ LMT_COUNT |