summaryrefslogtreecommitdiff
path: root/src/analysis
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-07-20 16:43:23 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-07-20 16:43:23 (GMT)
commita809d3517eb928d5d7a03d96a85f8af96daa1047 (patch)
tree451decffd5fc20d1a5237b2aa814a62aaba99316 /src/analysis
parent5093663eb4e4aa17edd97cbd864ccb4a3d48a803 (diff)
Included dynamic items in the view menu.
Diffstat (limited to 'src/analysis')
-rw-r--r--src/analysis/binary.c46
-rw-r--r--src/analysis/loaded-int.h4
-rw-r--r--src/analysis/loaded.c29
-rw-r--r--src/analysis/loaded.h3
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);