diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-11-28 13:03:25 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-11-28 13:03:25 (GMT) |
commit | f2d479c16a427696790441fa1459e7194f49bb6a (patch) | |
tree | c9c5f7b6d75bec1ab22932f36ca7f4142b29d4b9 /src/gui/editem.c | |
parent | 6ceb627a1d7c0752124563c636cd9ef6241e8a3a (diff) |
Loaded all buffers of decompiled files.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@195 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gui/editem.c')
-rw-r--r-- | src/gui/editem.c | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/src/gui/editem.c b/src/gui/editem.c new file mode 100644 index 0000000..694591b --- /dev/null +++ b/src/gui/editem.c @@ -0,0 +1,171 @@ + +/* OpenIDA - Outil d'analyse de fichiers binaires + * editem.c - gestion des différents éléments réactifs de l'éditeurs + * + * Copyright (C) 2010 Cyrille Bagard + * + * This file is part of OpenIDA. + * + * OpenIDA is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * OpenIDA is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include "editem.h" + + +#include "editem-int.h" + + + +/* ------------------------- ELEMENT INDIVIDUEL D'INTERFACE ------------------------- */ + + +/* Initialise la classe des éléments réactifs de l'éditeur. */ +static void g_editor_item_class_init(GEditorItemClass *); + +/* Initialise une instance d'élément réactif pour l'éditeur. */ +static void g_editor_item_init(GEditorItem *); + + + +/* ---------------------------- MANIPULATION D'ENSEMBLES ---------------------------- */ + + +/* liste des éléments enregistrés */ +static GEditorItem *_editem_list = NULL; + + + +/* ---------------------------------------------------------------------------------- */ +/* 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); + + +/****************************************************************************** +* * +* Paramètres : klass = classe à initialiser. * +* * +* Description : Initialise la classe des éléments réactifs de l'éditeur. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void g_editor_item_class_init(GEditorItemClass *klass) +{ + +} + + +/****************************************************************************** +* * +* Paramètres : item = instance à initialiser. * +* * +* Description : Initialise une instance d'élément réactif pour l'éditeur. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void g_editor_item_init(GEditorItem *item) +{ + DL_LIST_ITEM_INIT(&item->link); + +} + + + +/* ---------------------------------------------------------------------------------- */ +/* 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, GOpenidaBinary *binary) +{ + GEditorItem *iter; /* Boucle de parcours */ + + g_object_set_data(ref, "current_binary", binary); + + editem_list_for_each(iter, _editem_list) + if (iter->update_binary != NULL) + iter->update_binary(iter, binary); + +} + + +/****************************************************************************** +* * +* Paramètres : ref = espace de référencement global. * +* view = 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, GtkViewPanel *view) +{ + GEditorItem *iter; /* Boucle de parcours */ + + g_object_set_data(ref, "current_view", view); + + editem_list_for_each(iter, _editem_list) + if (iter->update_binary != NULL) + iter->update_view(iter, view); + +} |