diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-07-20 16:43:23 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-07-20 16:43:23 (GMT) |
commit | a809d3517eb928d5d7a03d96a85f8af96daa1047 (patch) | |
tree | 451decffd5fc20d1a5237b2aa814a62aaba99316 /src/analysis | |
parent | 5093663eb4e4aa17edd97cbd864ccb4a3d48a803 (diff) |
Included dynamic items in the view menu.
Diffstat (limited to 'src/analysis')
-rw-r--r-- | src/analysis/binary.c | 46 | ||||
-rw-r--r-- | src/analysis/loaded-int.h | 4 | ||||
-rw-r--r-- | src/analysis/loaded.c | 29 | ||||
-rw-r--r-- | src/analysis/loaded.h | 3 |
4 files changed, 78 insertions, 4 deletions
diff --git a/src/analysis/binary.c b/src/analysis/binary.c index 89370b2..44dfe6c 100644 --- a/src/analysis/binary.c +++ b/src/analysis/binary.c @@ -165,6 +165,9 @@ static const char *g_loaded_binary_describe(const GLoadedBinary *, bool); /* Détermine le nombre de vues disponibles pour un contenu. */ static unsigned int g_loaded_binary_count_views(const GLoadedBinary *); +/* Fournit le nom d'une vue donnée d'un contenu chargé. */ +static const char *g_loaded_binary_get_view_name(const GLoadedBinary *, unsigned int); + /* Met en place la vue demandée pour un contenu binaire. */ static GtkWidget *g_loaded_binary_build_view(GLoadedBinary *, unsigned int); @@ -278,6 +281,7 @@ static void g_loaded_binary_interface_init(GLoadedContentInterface *iface) iface->describe = (describe_loaded_fc)g_loaded_binary_describe; iface->count_views = (count_loaded_views_fc)g_loaded_binary_count_views; + iface->get_view_name = (get_loaded_view_name_fc)g_loaded_binary_get_view_name; iface->build_view = (build_loaded_view_fc)g_loaded_binary_build_view; iface->get_view_index = (get_loaded_view_index_fc)g_loaded_binary_get_view_index; @@ -1641,6 +1645,44 @@ static unsigned int g_loaded_binary_count_views(const GLoadedBinary *binary) * Paramètres : binary = contenu chargé à consulter. * * index = indice de la vue ciblée. * * * +* Description : Fournit le nom d'une vue donnée d'un contenu chargé. * +* * +* Retour : Désignation humainement lisible. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static const char *g_loaded_binary_get_view_name(const GLoadedBinary *binary, unsigned int index) +{ + const char *result; /* Désignation à retourner */ + + switch (index) + { + case BVW_BLOCK: + result = _("Text view"); + break; + + case BVW_GRAPH: + result = _("Graph view"); + break; + + default: + assert(false); + result = NULL; + break; + } + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : binary = contenu chargé à consulter. * +* index = indice de la vue ciblée. * +* * * Description : Met en place la vue demandée pour un contenu binaire. * * * * Retour : Composant graphique nouveau. * @@ -1654,8 +1696,6 @@ static GtkWidget *g_loaded_binary_build_view(GLoadedBinary *binary, unsigned int GtkWidget *result; /* Support à retourner */ GtkWidget *display; /* Composant d'affichage */ - assert(index < g_loaded_binary_count_views(binary)); - switch (index) { case BVW_BLOCK: @@ -1735,8 +1775,6 @@ static GDisplayOptions *g_loaded_binary_get_display_options(const GLoadedBinary { GDisplayOptions *result; /* Instance à renvoyer */ - assert(index < BVW_COUNT); - if (index < BVW_COUNT) result = binary->options[index]; else diff --git a/src/analysis/loaded-int.h b/src/analysis/loaded-int.h index 044dad7..ed7d84a 100644 --- a/src/analysis/loaded-int.h +++ b/src/analysis/loaded-int.h @@ -51,6 +51,9 @@ typedef const char * (* describe_loaded_fc) (const GLoadedContent *, bool); /* Détermine le nombre de vues disponibles pour un contenu. */ typedef unsigned int (* count_loaded_views_fc) (const GLoadedContent *); +/* Fournit le nom d'une vue donnée d'un contenu chargé. */ +typedef const char * (* get_loaded_view_name_fc) (const GLoadedContent *, unsigned int); + /* Met en place la vue demandée pour un contenu chargé. */ typedef GtkWidget * (* build_loaded_view_fc) (GLoadedContent *, unsigned int); @@ -79,6 +82,7 @@ struct _GLoadedContentIface describe_loaded_fc describe; /* Description de contenu */ count_loaded_views_fc count_views; /* Compteur de vues */ + get_loaded_view_name_fc get_view_name; /* Désignation d'une vue donnée*/ build_loaded_view_fc build_view; /* Mise en place de vues */ get_loaded_view_index_fc get_view_index;/* Récupération d'indice de vue*/ diff --git a/src/analysis/loaded.c b/src/analysis/loaded.c index 28aea43..4f8cfea 100644 --- a/src/analysis/loaded.c +++ b/src/analysis/loaded.c @@ -403,6 +403,35 @@ unsigned int g_loaded_content_count_views(const GLoadedContent *content) * Paramètres : content = contenu chargé à consulter. * * index = indice de la vue ciblée. * * * +* Description : Fournit le nom d'une vue donnée d'un contenu chargé. * +* * +* Retour : Désignation humainement lisible. * +* * +* Remarques : - * +* * +******************************************************************************/ + +const char *g_loaded_content_get_view_name(const GLoadedContent *content, unsigned int index) +{ + const char *result; /* Désignation à retourner */ + GLoadedContentIface *iface; /* Interface utilisée */ + + iface = G_LOADED_CONTENT_GET_IFACE(content); + + assert(index <= g_loaded_content_count_views(content)); + + result = iface->get_view_name(content, index); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : content = contenu chargé à consulter. * +* index = indice de la vue ciblée. * +* * * Description : Met en place la vue demandée pour un contenu chargé. * * * * Retour : Composant graphique nouveau. * diff --git a/src/analysis/loaded.h b/src/analysis/loaded.h index 66d448a..71e1ff6 100644 --- a/src/analysis/loaded.h +++ b/src/analysis/loaded.h @@ -87,6 +87,9 @@ const char *g_loaded_content_describe(const GLoadedContent *, bool); /* Détermine le nombre de vues disponibles pour un contenu. */ unsigned int g_loaded_content_count_views(const GLoadedContent *); +/* Fournit le nom d'une vue donnée d'un contenu chargé. */ +const char *g_loaded_content_get_view_name(const GLoadedContent *, unsigned int); + /* Met en place la vue demandée pour un contenu chargé. */ GtkWidget *g_loaded_content_build_view(GLoadedContent *, unsigned int); |