diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2024-07-24 22:04:04 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2024-07-24 22:04:04 (GMT) |
commit | 39ead30e3bcb19925946e9e3d752486d6cc1d0cb (patch) | |
tree | f189fa8f301916619aebdcbeac7217928c6ae481 /src/gui/panels/binary.c | |
parent | 1596de25f349ca065422074327e208cfca7d8d3f (diff) |
Display new panels inside the main window when needed.
Diffstat (limited to 'src/gui/panels/binary.c')
-rw-r--r-- | src/gui/panels/binary.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/gui/panels/binary.c b/src/gui/panels/binary.c index 88b19d2..aba0c7f 100644 --- a/src/gui/panels/binary.c +++ b/src/gui/panels/binary.c @@ -26,6 +26,7 @@ #include "binary-int.h" +#include "../window.h" #include "../../analysis/contents/file.h" #include "../../gtkext/helpers.h" #include "../../gtkext/hexview.h" @@ -35,10 +36,10 @@ /* ------------------------- COEUR D'UN PANNEAU D'AFFICHAGE ------------------------- */ -/* Initialise la classe des panneaux d'accueil par défaut. */ +/* Initialise la classe des panneaux pour binaires. */ static void gtk_binary_panel_class_init(GtkBinaryPanelClass *); -/* Initialise une instance de panneau d'accueil par défaut. */ +/* Initialise une instance de panneau pour binaire. */ static void gtk_binary_panel_init(GtkBinaryPanel *); /* Supprime toutes les références externes. */ @@ -86,7 +87,7 @@ static GtkWidget *g_binary_panel_get_launcher(GBinaryPanel *); static GtkWidget *g_binary_panel_get_properties(GBinaryPanel *); /* Ouvre une boîte de dialogue pour récupérer un fichier. */ -static void g_binary_panel_on_new_file_entry_icon_release(GtkEntry *, GtkEntryIconPosition, gpointer); +static void g_binary_panel_on_new_file_entry_icon_release(GtkEntry *, GtkEntryIconPosition, GBinaryPanel *); /* Fournit un composant représentant un panneau graphique. */ static GtkTiledPanel *g_binary_panel_get_panel(GBinaryPanel *, GtkWidget *); @@ -106,7 +107,7 @@ G_DEFINE_TYPE(GtkBinaryPanel, gtk_binary_panel, GTK_TYPE_TILED_PANEL); * * * Paramètres : class = classe à initialiser. * * * -* Description : Initialise la classe des panneaux d'accueil par défaut. * +* Description : Initialise la classe des panneaux pour binaires. * * * * Retour : - * * * @@ -137,7 +138,7 @@ static void gtk_binary_panel_class_init(GtkBinaryPanelClass *class) * * * Paramètres : panel = instance à initialiser. * * * -* Description : Initialise une instance de panneau d'accueil par défaut. * +* Description : Initialise une instance de panneau pour binaire. * * * * Retour : - * * * @@ -196,7 +197,7 @@ static void gtk_binary_panel_finalize(GtkBinaryPanel *panel) * * * Paramètres : content = contenu brut à exposer. * * * -* Description : Crée une nouvelle instance de panneau d'accueil. * +* Description : Crée une nouvelle instance de panneau pour binaire. * * * * Retour : Composant GTK mis en place. * * * @@ -439,6 +440,7 @@ static GtkWidget *g_binary_panel_get_properties(GBinaryPanel *panel) builder = gtk_builder_new(); gtk_builder_set_scope(builder, scope); + gtk_builder_set_current_object(builder, G_OBJECT(panel)); #ifndef NDEBUG status = gtk_builder_add_from_resource(builder, "/re/chrysalide/framework/gui/panels/binary-props.ui", NULL); @@ -460,9 +462,9 @@ static GtkWidget *g_binary_panel_get_properties(GBinaryPanel *panel) /****************************************************************************** * * -* Paramètres : entry = -* icon_pos = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx -* panel = définition de panneau à manipuler. * +* Paramètres : entry = zone de saisie concernée par l'appel. * +* icon_pos = position de l'icone incrustée dans la zone. * +* panel = définition de panneau à manipuler. * * * * Description : Ouvre une boîte de dialogue pour récupérer un fichier. * * * @@ -472,14 +474,16 @@ static GtkWidget *g_binary_panel_get_properties(GBinaryPanel *panel) * * ******************************************************************************/ -static void g_binary_panel_on_new_file_entry_icon_release(GtkEntry *entry, GtkEntryIconPosition icon_pos, gpointer user_data) +static void g_binary_panel_on_new_file_entry_icon_release(GtkEntry *entry, GtkEntryIconPosition icon_pos, GBinaryPanel *panel) { + GtkRoot *root; /* Racine du composant */ + GtkTiledPanel *tiled; /* Panneau d'affichage complet */ + root = gtk_widget_get_root(GTK_WIDGET(entry)); - printf("open...\n"); - - + tiled = g_binary_panel_get_panel(panel, NULL); + gtk_framework_window_add(GTK_FRAMEWORK_WINDOW(root), tiled); } |