summaryrefslogtreecommitdiff
path: root/src/gui/panels/bookmarks.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panels/bookmarks.c')
-rw-r--r--src/gui/panels/bookmarks.c69
1 files changed, 54 insertions, 15 deletions
diff --git a/src/gui/panels/bookmarks.c b/src/gui/panels/bookmarks.c
index 8b029d0..fe69f35 100644
--- a/src/gui/panels/bookmarks.c
+++ b/src/gui/panels/bookmarks.c
@@ -48,6 +48,7 @@
#include "../../gtkext/easygtk.h"
#include "../../gtkext/gtkdisplaypanel.h"
#include "../../gtkext/gtkdockable-int.h"
+#include "../../gtkext/named.h"
@@ -106,6 +107,9 @@ static void g_bookmarks_panel_dispose(GBookmarksPanel *);
/* Procède à la libération totale de la mémoire. */
static void g_bookmarks_panel_finalize(GBookmarksPanel *);
+/* Fournit le nom interne attribué à l'élément réactif. */
+static char *g_bookmarks_panel_get_key(const GBookmarksPanel *);
+
/* Réagit à un changement d'affichage principal de contenu. */
static void change_bookmarks_panel_current_content(GBookmarksPanel *, GLoadedContent *, GLoadedContent *);
@@ -199,7 +203,7 @@ G_DEFINE_TYPE(GBookmarksPanel, g_bookmarks_panel, G_TYPE_PANEL_ITEM);
static void g_bookmarks_panel_class_init(GBookmarksPanelClass *klass)
{
GObjectClass *object; /* Autre version de la classe */
- GEditorItemClass *editem; /* Encore une autre vision... */
+ GEditorItemClass *item; /* Encore une autre vision... */
GPanelItemClass *panel; /* Version parente de la classe*/
gchar *filename; /* Chemin d'accès à utiliser */
@@ -208,9 +212,11 @@ static void g_bookmarks_panel_class_init(GBookmarksPanelClass *klass)
object->dispose = (GObjectFinalizeFunc/* ! */)g_bookmarks_panel_dispose;
object->finalize = (GObjectFinalizeFunc)g_bookmarks_panel_finalize;
- editem = G_EDITOR_ITEM_CLASS(klass);
+ item = G_EDITOR_ITEM_CLASS(klass);
+
+ item->get_key = (get_item_key_fc)g_bookmarks_panel_get_key;
- editem->change_content = (change_item_content_fc)change_bookmarks_panel_current_content;
+ item->change_content = (change_item_content_fc)change_bookmarks_panel_current_content;
panel = G_PANEL_ITEM_CLASS(klass);
@@ -244,27 +250,26 @@ static void g_bookmarks_panel_class_init(GBookmarksPanelClass *klass)
static void g_bookmarks_panel_init(GBookmarksPanel *panel)
{
- GEditorItem *base; /* Version basique d'instance */
GPanelItem *pitem; /* Version parente du panneau */
GtkBuilder *builder; /* Constructeur utilisé */
GtkTreeSortable *sortable; /* Autre vision de la liste */
/* Eléments de base */
- base = G_EDITOR_ITEM(panel);
-
- base->name = PANEL_BOOKMARKS_ID;
-
pitem = G_PANEL_ITEM(panel);
pitem->personality = PIP_SINGLETON;
- pitem->lname = _("Bookmarks");
+
+ pitem->widget = G_NAMED_WIDGET(gtk_built_named_widget_new_for_panel(_("Bookmarks"),
+ _("Bookmarks for the current binary"),
+ PANEL_BOOKMARKS_ID));
+
pitem->dock_at_startup = false;
pitem->path = strdup("Ms");
/* Représentation graphique */
- builder = g_panel_item_build(pitem, "bookmarks");
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(pitem->widget));
/* Tri de la liste */
@@ -295,6 +300,8 @@ static void g_bookmarks_panel_init(GBookmarksPanel *panel)
gtk_builder_connect_signals(builder, panel);
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -371,6 +378,29 @@ GPanelItem *g_bookmarks_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_bookmarks_panel_get_key(const GBookmarksPanel *panel)
+{
+ char *result; /* Description à renvoyer */
+
+ result = strdup(PANEL_BOOKMARKS_ID);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : panel = panneau à mettre à jour. *
* old = ancien contenu chargé analysé. *
* new = nouveau contenu chargé à analyser. *
@@ -455,7 +485,7 @@ static void reload_bookmarks_into_treeview(GBookmarksPanel *panel, GLoadedBinary
}
- 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"));
@@ -505,6 +535,8 @@ static void reload_bookmarks_into_treeview(GBookmarksPanel *panel, GLoadedBinary
g_db_collection_runlock(collec);
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -541,7 +573,7 @@ static void on_collection_content_changed(GDbCollection *collec, DBAction action
GDbBookmark *displayed; /* Elément de collection */
- 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"));
@@ -596,6 +628,7 @@ static void on_collection_content_changed(GDbCollection *collec, DBAction action
}
+ g_object_unref(G_OBJECT(builder));
}
@@ -662,7 +695,7 @@ static void on_config_param_modified(GCfgParam *param, GBookmarksPanel *panel)
gboolean looping; /* Autorisation de bouclage */
GCfgParam *item; /* Elément de la liste */
- builder = G_PANEL_ITEM(panel)->builder;
+ builder = gtk_built_named_widget_get_builder(GTK_BUILT_NAMED_WIDGET(G_PANEL_ITEM(panel)->widget));
model = GTK_TREE_MODEL(gtk_builder_get_object(builder, "store"));
@@ -680,6 +713,8 @@ static void on_config_param_modified(GCfgParam *param, GBookmarksPanel *panel)
}
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -1139,7 +1174,7 @@ static void mcb_bookmarks_panel_edit(GtkMenuItem *menuitem, GBookmarksPanel *pan
GtkTreeModel *model; /* Gestionnaire de données */
GtkTreePath *path; /* Chemin d'accès à ce point */
- 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"));
@@ -1157,6 +1192,8 @@ static void mcb_bookmarks_panel_edit(GtkMenuItem *menuitem, GBookmarksPanel *pan
g_object_unref(G_OBJECT(mark));
+ g_object_unref(G_OBJECT(builder));
+
}
@@ -1179,7 +1216,7 @@ static void mcb_bookmarks_panel_delete(GtkMenuItem *menuitem, GBookmarksPanel *p
GtkTreeView *treeview; /* Affichage de la liste */
GDbBookmark *mark; /* Signet sélectionné */
- 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"));
@@ -1190,6 +1227,8 @@ static void mcb_bookmarks_panel_delete(GtkMenuItem *menuitem, GBookmarksPanel *p
g_object_unref(G_OBJECT(mark));
+ g_object_unref(G_OBJECT(builder));
+
}