summaryrefslogtreecommitdiff
path: root/src/panels
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2011-01-05 00:40:05 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2011-01-05 00:40:05 (GMT)
commitee2e35f6dced8340682eab8cb013ba2911858c53 (patch)
tree382a2dafe360956ef789488916446fa4e8fd8a6a /src/panels
parent9776f811af66eca56116fe81f77d859fb9b6e8fe (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/panels')
-rw-r--r--src/panels/log.c24
-rw-r--r--src/panels/log.h2
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