summaryrefslogtreecommitdiff
path: root/src/gui/editem.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-08-26 22:15:05 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-08-26 22:15:05 (GMT)
commit8ca477e012b11a19363542d171b8e973d637641c (patch)
tree94a4fcde1779f031946eff7a36075f41a17cd73b /src/gui/editem.c
parent4fb2ac107092671fe27fc3ebf9fc86dff7c3ec19 (diff)
Removed most of the functions using the editor items as global access to active items.
Diffstat (limited to 'src/gui/editem.c')
-rw-r--r--src/gui/editem.c404
1 files changed, 0 insertions, 404 deletions
diff --git a/src/gui/editem.c b/src/gui/editem.c
index 0eead32..4848cc9 100644
--- a/src/gui/editem.c
+++ b/src/gui/editem.c
@@ -26,13 +26,9 @@
#include "editem-int.h"
-#include "../analysis/db/items/move.h"
-/* ------------------------- ELEMENT INDIVIDUEL D'INTERFACE ------------------------- */
-
-
/* Initialise la classe des éléments réactifs de l'éditeur. */
static void g_editor_item_class_init(GEditorItemClass *);
@@ -40,36 +36,6 @@ static void g_editor_item_class_init(GEditorItemClass *);
static void g_editor_item_init(GEditorItem *);
-
-/* ---------------------------- MANIPULATION D'ENSEMBLES ---------------------------- */
-
-
-/* Liste des éléments enregistrés */
-static GEditorItem *_editem_list = NULL;
-
-/* Suivi du panneau d'affichage courant */
-static GtkDisplayPanel *_current_view = NULL;
-
-/* Suivi des changements de position */
-static GObject *_caret_instance = NULL;
-
-
-/* Suit les changements de focus des panneaux d'affichage. */
-static gboolean notify_view_panel_focus_change(GtkDisplayPanel *, GdkEventFocus *, void *);
-
-/* Lance une procédure de déplacement de la position courante. */
-static void start_moving_to_address_in_view_panel(GtkDisplayPanel *, const vmpa2t *, void *);
-
-/* Suit les changements de position dans du code d'assembleur. */
-static void track_caret_address_on_view_panel(GtkDisplayPanel *, const vmpa2t *, void *);
-
-
-
-/* ---------------------------------------------------------------------------------- */
-/* ELEMENT INDIVIDUEL D'INTERFACE */
-/* ---------------------------------------------------------------------------------- */
-
-
/* Indique le type défini pour un élément réactif d'éditeur. */
G_DEFINE_TYPE(GEditorItem, g_editor_item, G_TYPE_OBJECT);
@@ -166,373 +132,3 @@ GtkWidget *g_editor_item_get_widget(const GEditorItem *item)
return item->widget;
}
-
-
-/******************************************************************************
-* *
-* Paramètres : item = instance à consulter. *
-* *
-* Description : Fournit le gestionnaire du binaire courant. *
-* *
-* Retour : Instance en place ou NULL si aucune. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GLoadedBinary *g_editor_item_get_current_binary(const GEditorItem *item)
-{
- return g_object_get_data(item->ref, "current_binary");
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : item = instance à consulter. *
-* *
-* Description : Fournit l'affichage de binaire courant. *
-* *
-* Retour : Instance en place ou NULL si aucune. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GtkDisplayPanel *g_editor_item_get_current_view(const GEditorItem *item)
-{
- return _current_view;
-
-}
-
-
-
-/* ---------------------------------------------------------------------------------- */
-/* MANIPULATION D'ENSEMBLES */
-/* ---------------------------------------------------------------------------------- */
-
-
-/******************************************************************************
-* *
-* Paramètres : - *
-* *
-* Description : Procède à l'enregistrement d'un élément reactif de l'éditeur.*
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void register_editor_item(GEditorItem *item)
-{
- editem_list_add_tail(item, &_editem_list);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : ref = espace de référencement global. *
-* binary = nouvelle instance de binaire analysé. *
-* *
-* Description : Lance une actualisation du fait d'un changement de binaire. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void change_editor_items_current_binary(GObject *ref, GLoadedBinary *binary)
-{
- GEditorItem *iter; /* Boucle de parcours */
- GEditorItemClass *klass; /* Classe correspondante */
-
- if (binary == NULL)
- g_object_set_data(ref, "current_binary", NULL);
-
- else
- {
- g_object_ref(G_OBJECT(binary));
- g_object_set_data_full(ref, "current_binary", binary, g_object_unref);
- }
-
- editem_list_for_each(iter, _editem_list)
- {
- klass = G_EDITOR_ITEM_GET_CLASS(iter);
-
- if (klass->update_binary != NULL)
- klass->update_binary(iter, binary);
-
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : panel = composant d'affichage concerné par l'opération. *
-* event = informations liées à l'événement. *
-* data = adresse non utilisée ici. *
-* *
-* Description : Suit les changements de focus des panneaux d'affichage. *
-* *
-* Retour : FALSE pour continuer la propagation. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static gboolean notify_view_panel_focus_change(GtkDisplayPanel *panel, GdkEventFocus *event, void *data)
-{
- GEditorItem *iter; /* Boucle de parcours */
- GEditorItemClass *klass; /* Classe correspondante */
-
- editem_list_for_each(iter, _editem_list)
- {
- klass = G_EDITOR_ITEM_GET_CLASS(iter);
-
- if (klass->notify_focus != NULL)
- klass->notify_focus(iter, event->in ? panel : NULL);
-
- }
-
- return FALSE;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : panel = composant d'affichage parcouru. *
-* addr = adresse de destination du curseur souhaitée. *
-* data = adresse non utilisée ici. *
-* *
-* Description : Lance une procédure de déplacement de la position courante. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void start_moving_to_address_in_view_panel(GtkDisplayPanel *panel, const vmpa2t *addr, void *data)
-{
- const vmpa2t *src; /* Position courante de curseur*/
- GDbMove *move; /* Déplacement à organiser */
- GLoadedBinary *binary; /* Binaire en cours d'étude */
-
- src = gtk_display_panel_get_caret_location(panel);
-
- /* S'il n'y a pas de passif, pas besoin d'historique */
- if (src == NULL)
- gtk_display_panel_scroll_to_address(panel, addr, SPT_CENTER);
-
- else
- {
- move = g_db_move_new(src, addr);
-
- binary = gtk_display_panel_get_binary(panel);
- g_loaded_binary_add_to_collection(binary, G_DB_ITEM(move));
- g_object_unref(G_OBJECT(binary));
-
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : panel = composant d'affichage parcouru. *
-* addr = nouvelle adresse du curseur courant. *
-* data = adresse non utilisée ici. *
-* *
-* Description : Suit les changements de position dans du code d'assembleur. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void track_caret_address_on_view_panel(GtkDisplayPanel *panel, const vmpa2t *addr, void *data)
-{
- GEditorItem *iter; /* Boucle de parcours */
- GEditorItemClass *klass; /* Classe correspondante */
-
- editem_list_for_each(iter, _editem_list)
- {
- klass = G_EDITOR_ITEM_GET_CLASS(iter);
-
- if (klass->track_caret != NULL)
- klass->track_caret(iter, panel, addr);
-
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : ref = espace de référencement global. *
-* panel = nouveau panneau d'affichage actif. *
-* *
-* Description : Lance une actualisation du fait d'un changement de vue. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void change_editor_items_current_view(GObject *ref, GtkDisplayPanel *panel)
-{
- GEditorItem *iter; /* Boucle de parcours */
- GEditorItemClass *klass; /* Classe correspondante */
-
- /* Suivi des affichages */
-
- if (_current_view != NULL)
- {
- g_signal_handlers_disconnect_by_func(_current_view, G_CALLBACK(notify_view_panel_focus_change), NULL);
- g_signal_handlers_disconnect_by_func(_current_view, G_CALLBACK(notify_view_panel_focus_change), NULL);
- }
-
- _current_view = panel;
-
- editem_list_for_each(iter, _editem_list)
- {
- klass = G_EDITOR_ITEM_GET_CLASS(iter);
-
- if (klass->update_view != NULL)
- klass->update_view(iter, panel);
-
- }
-
- if (panel != NULL)
- {
- g_signal_connect(panel, "focus-in-event", G_CALLBACK(notify_view_panel_focus_change), NULL);
- g_signal_connect(panel, "focus-out-event", G_CALLBACK(notify_view_panel_focus_change), NULL);
- }
-
- /* Suivi du curseur */
-
- if (_caret_instance != NULL)
- {
- g_signal_handlers_disconnect_by_func(_caret_instance,
- G_CALLBACK(start_moving_to_address_in_view_panel),
- NULL);
- g_signal_handlers_disconnect_by_func(_caret_instance,
- G_CALLBACK(track_caret_address_on_view_panel),
- NULL);
- g_object_unref(_caret_instance);
- _caret_instance = NULL;
- }
-
- if (panel != NULL)
- {
- g_signal_connect(panel, "move-request",
- G_CALLBACK(start_moving_to_address_in_view_panel),
- NULL);
-
- g_signal_connect(panel, "caret-moved",
- G_CALLBACK(track_caret_address_on_view_panel),
- NULL);
-
- _caret_instance = G_OBJECT(panel);
- g_object_ref(_caret_instance);
-
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : ref = espace de référencement global. *
-* panel = nouveau panneau d'affichage actif. *
-* *
-* Description : Lance une actualisation du fait d'un changement de contenu. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void change_editor_items_current_view_content(GtkDisplayPanel *panel)
-{
- GEditorItem *iter; /* Boucle de parcours */
- GEditorItemClass *klass; /* Classe correspondante */
-
- editem_list_for_each(iter, _editem_list)
- {
- klass = G_EDITOR_ITEM_GET_CLASS(iter);
-
- if (klass->update_content != NULL)
- klass->update_content(iter, panel);
-
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : binary = binaire contenant l'adresse à représenter. *
-* addr = adresse mémoire à mettre en avant. *
-* source = composant à l'origine du changement. *
-* *
-* Description : Concentre l'attention de l'ensemble sur une adresse donnée. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void focus_address_in_editor_items(GLoadedBinary *binary, const vmpa2t *addr, GEditorItem *source)
-{
- GEditorItem *iter; /* Boucle de parcours */
- GEditorItemClass *klass; /* Classe correspondante */
-
- editem_list_for_each(iter, _editem_list)
- {
- klass = G_EDITOR_ITEM_GET_CLASS(iter);
-
- if (klass->focus_addr != NULL && iter != source)
- klass->focus_addr(iter, binary, addr);
-
- }
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : project = projet concerné par l'évolution. *
-* *
-* Description : Lance une actualisation relative à l'étendue du projet. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void update_project_area(GStudyProject *project)
-{
- GEditorItem *iter; /* Boucle de parcours */
- GEditorItemClass *klass; /* Classe correspondante */
-
- editem_list_for_each(iter, _editem_list)
- {
- klass = G_EDITOR_ITEM_GET_CLASS(iter);
-
- if (klass->update_project != NULL)
- klass->update_project(iter, project);
-
- }
-
-}