diff options
Diffstat (limited to 'src/gui/status.c')
-rw-r--r-- | src/gui/status.c | 58 |
1 files changed, 5 insertions, 53 deletions
diff --git a/src/gui/status.c b/src/gui/status.c index de80049..8db4f3a 100644 --- a/src/gui/status.c +++ b/src/gui/status.c @@ -46,9 +46,6 @@ struct _GStatusInfo { GEditorItem parent; /* A laisser en premier */ - GObject *caret_instance; /* Dernier émetteur de signaux */ - bstatus_id_t msg_id; /* Identifiant du dernier msg. */ - }; @@ -72,11 +69,8 @@ static void g_status_info_dispose(GStatusInfo *); /* Procède à la libération totale de la mémoire. */ static void g_status_info_finalize(GStatusInfo *); -/* Lance une actualisation du fait d'un changement de vue. */ -static void update_status_info_for_view(GStatusInfo *, GtkViewPanel *); - /* Imprime la position du parcours courant dans le statut. */ -static void track_caret_address_on_buffer_views(GtkBufferView *, const vmpa2t *, GStatusInfo *); +static void track_caret_address_for_status_info(GStatusInfo *, GtkBufferView *, const vmpa2t *); /* Concentre l'attention de l'ensemble sur une adresse donnée. */ static void focus_address_in_status_info(GStatusInfo *, GLoadedBinary *, const vmpa2t *); @@ -111,7 +105,7 @@ static void g_status_info_class_init(GStatusInfoClass *klass) editem = G_EDITOR_ITEM_CLASS(klass); - editem->update_view = (update_item_view_fc)update_status_info_for_view; + editem->track_caret = (track_caret_in_view_fc)track_caret_address_for_status_info; editem->focus_addr = (focus_addr_fc)focus_address_in_status_info; } @@ -157,14 +151,6 @@ static void g_status_info_init(GStatusInfo *bar) static void g_status_info_dispose(GStatusInfo *info) { - if (info->caret_instance != NULL) - { - g_signal_handlers_disconnect_by_func(info->caret_instance, - G_CALLBACK(track_caret_address_on_buffer_views), - info); - g_object_unref(info->caret_instance); - } - G_OBJECT_CLASS(g_status_info_parent_class)->dispose(G_OBJECT(info)); } @@ -222,43 +208,9 @@ GEditorItem *g_status_info_new(GObject *ref) /****************************************************************************** * * -* Paramètres : info = barre de statut à actualiser. * -* view = nouveau panneau d'affichage actif. * -* * -* Description : Lance une actualisation du fait d'un changement de vue. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -static void update_status_info_for_view(GStatusInfo *info, GtkViewPanel *view) -{ - if (info->caret_instance != NULL) - { - g_signal_handlers_disconnect_by_func(info->caret_instance, - G_CALLBACK(track_caret_address_on_buffer_views), - info); - g_object_unref(info->caret_instance); - } - - if (GTK_IS_BLOCK_VIEW(view)) - g_signal_connect(view, "caret-moved", - G_CALLBACK(track_caret_address_on_buffer_views), - info); - - info->caret_instance = G_OBJECT(view); - g_object_ref(info->caret_instance); - -} - - -/****************************************************************************** -* * -* Paramètres : view = composant d'affichage parcouru. * +* Paramètres : info = barre de statut présentant les informations. * +* view = composant d'affichage parcouru. * * addr = nouvelle adresse du curseur courant. * -* info = barre de statut présentant les informations. * * * * Description : Imprime la position du parcours courant dans le statut. * * * @@ -268,7 +220,7 @@ static void update_status_info_for_view(GStatusInfo *info, GtkViewPanel *view) * * ******************************************************************************/ -static void track_caret_address_on_buffer_views(GtkBufferView *view, const vmpa2t *addr, GStatusInfo *info) +static void track_caret_address_for_status_info(GStatusInfo *info, GtkBufferView *view, const vmpa2t *addr) { GEditorItem *item; /* Autre version de l'élément */ GLoadedBinary *binary; /* Binaire courant */ |