summaryrefslogtreecommitdiff
path: root/src/gui/panels/errors.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panels/errors.c')
-rw-r--r--src/gui/panels/errors.c74
1 files changed, 58 insertions, 16 deletions
diff --git a/src/gui/panels/errors.c b/src/gui/panels/errors.c
index b2300eb..17eabef 100644
--- a/src/gui/panels/errors.c
+++ b/src/gui/panels/errors.c
@@ -42,6 +42,7 @@
#include "../../format/format.h"
#include "../../glibext/signal.h"
#include "../../gtkext/gtkdisplaypanel.h"
+#include "../../gtkext/named.h"
@@ -134,6 +135,9 @@ static void g_error_panel_dispose(GErrorPanel *);
/* Procède à la libération totale de la mémoire. */
static void g_error_panel_finalize(GErrorPanel *);
+/* Fournit le nom interne attribué à l'élément réactif. */
+static char *g_error_panel_get_key(const GErrorPanel *);
+
/* Organise le tri des erreurs présentées. */
static gint sort_errors_in_panel(GtkTreeModel *, GtkTreeIter *, GtkTreeIter *, gpointer);
@@ -208,7 +212,7 @@ G_DEFINE_TYPE_WITH_CODE(GErrorPanel, g_error_panel, G_TYPE_PANEL_ITEM,
static void g_error_panel_class_init(GErrorPanelClass *klass)
{
GObjectClass *object; /* Autre version de la classe */
- GEditorItemClass *editem; /* Encore une autre vision... */
+ GEditorItemClass *item; /* Encore une autre vision... */
gchar *filename; /* Chemin d'accès à utiliser */
GPanelItemClass *panel; /* Version parente de la classe*/
@@ -217,9 +221,11 @@ static void g_error_panel_class_init(GErrorPanelClass *klass)
object->dispose = (GObjectFinalizeFunc/* ! */)g_error_panel_dispose;
object->finalize = (GObjectFinalizeFunc)g_error_panel_finalize;
- editem = G_EDITOR_ITEM_CLASS(klass);
+ item = G_EDITOR_ITEM_CLASS(klass);
+
+ item->get_key = (get_item_key_fc)g_error_panel_get_key;
- editem->change_content = (change_item_content_fc)change_error_panel_current_content;
+ item->change_content = (change_item_content_fc)change_error_panel_current_content;
filename = find_pixmap_file("error_file.png");
assert(filename != NULL);
@@ -261,7 +267,6 @@ static void g_error_panel_class_init(GErrorPanelClass *klass)
static void g_error_panel_init(GErrorPanel *panel)
{
- GEditorItem *base; /* Version basique d'instance */
GPanelItem *pitem; /* Version parente du panneau */
GtkBuilder *builder; /* Constructeur utilisé */
GtkTreeSortable *store; /* Gestionnaire des données */
@@ -272,14 +277,14 @@ static void g_error_panel_init(GErrorPanel *panel)
/* Eléments de base */
- base = G_EDITOR_ITEM(panel);
-
- base->name = PANEL_ERRORS_ID;
-
pitem = G_PANEL_ITEM(panel);
pitem->personality = PIP_SINGLETON;
- pitem->lname = _("Disassembling errors");
+
+ pitem->widget = G_NAMED_WIDGET(gtk_built_named_widget_new_for_panel(_("Errors"),
+ _("Disassembling errors"),
+ PANEL_ERRORS_ID));
+
pitem->dock_at_startup = true;
pitem->path = strdup("Ms");
@@ -289,7 +294,7 @@ static void g_error_panel_init(GErrorPanel *panel)
/* Représentation graphique */
- builder = g_panel_item_build(pitem, "errors");
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(pitem->widget));
store = GTK_TREE_SORTABLE(gtk_builder_get_object(builder, "store"));
gtk_tree_sortable_set_sort_func(store, ETC_ADDR, sort_errors_in_panel, NULL, NULL);
@@ -340,6 +345,8 @@ static void g_error_panel_init(GErrorPanel *panel)
gtk_builder_connect_signals(builder, panel);
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -432,6 +439,29 @@ GPanelItem *g_error_panel_new(void)
/******************************************************************************
* *
+* Paramètres : panel = instance à consulter. *
+* *
+* Description : Fournit le nom interne attribué à l'élément réactif. *
+* *
+* Retour : Désignation (courte) de l'élément de l'éditeur. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static char *g_error_panel_get_key(const GErrorPanel *panel)
+{
+ char *result; /* Description à renvoyer */
+
+ result = strdup(PANEL_ERRORS_ID);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : model = gestionnaire de données. *
* a = premier élément à traiter. *
* b = second élément à traiter. *
@@ -499,12 +529,14 @@ static void change_error_panel_current_content(GErrorPanel *panel, GLoadedConten
if (panel->binary != NULL)
g_object_ref(G_OBJECT(panel->binary));
- builder = G_PANEL_ITEM(panel)->builder;
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(G_PANEL_ITEM(panel)->widget));
store = GTK_LIST_STORE(gtk_builder_get_object(builder, "store"));
gtk_list_store_clear(store);
+ g_object_unref(G_OBJECT(builder));
+
/* Actualisation de l'affichage */
panel->count = 0;
@@ -550,7 +582,7 @@ static void update_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
bool ret; /* Bilan d'une récupération */
#endif
- builder = G_PANEL_ITEM(panel)->builder;
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(G_PANEL_ITEM(panel)->widget));
store = GTK_LIST_STORE(gtk_builder_get_object(builder, "store"));
@@ -772,6 +804,8 @@ static void update_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
}
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -824,7 +858,7 @@ static void filter_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
guint errno; /* Code d'erreur associé */
gboolean state; /* Bilan d'un filtrage */
- builder = G_PANEL_ITEM(panel)->builder;
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(G_PANEL_ITEM(panel)->widget));
store = GTK_TREE_MODEL(gtk_builder_get_object(builder, "store"));
@@ -890,6 +924,8 @@ static void filter_error_panel(const GErrorPanel *panel, GtkStatusStack *status,
}
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -911,7 +947,7 @@ static void update_error_panel_summary(const GErrorPanel *panel)
GtkLabel *summary; /* Etiquette à mettre à jour */
char *msg; /* Bilan à faire afficher */
- builder = G_PANEL_ITEM(panel)->builder;
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(G_PANEL_ITEM(panel)->widget));
summary = GTK_LABEL(gtk_builder_get_object(builder, "summary"));
@@ -929,6 +965,8 @@ static void update_error_panel_summary(const GErrorPanel *panel)
}
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -1081,7 +1119,7 @@ static void g_error_panel_introduce(const GErrorPanel *panel, unsigned int uid,
g_panel_item_switch_to_updating_mask(G_PANEL_ITEM(panel));
- builder = G_PANEL_ITEM(panel)->builder;
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(G_PANEL_ITEM(panel)->widget));
treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
@@ -1093,6 +1131,8 @@ static void g_error_panel_introduce(const GErrorPanel *panel, unsigned int uid,
gtk_tree_view_set_model(treeview, NULL);
}
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -1163,7 +1203,7 @@ static void g_error_panel_conclude(GErrorPanel *panel, unsigned int uid, error_u
/* Basculement de l'affichage en ligne */
- builder = G_PANEL_ITEM(panel)->builder;
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(G_PANEL_ITEM(panel)->widget));
treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
@@ -1184,6 +1224,8 @@ static void g_error_panel_conclude(GErrorPanel *panel, unsigned int uid, error_u
g_object_ref(G_OBJECT(model));
gtk_tree_view_set_model(treeview, model);
+ g_object_unref(G_OBJECT(builder));
+
skip_this_step:
g_panel_item_switch_to_updated_content(G_PANEL_ITEM(panel));