diff options
Diffstat (limited to 'src/gui/dialogs')
-rw-r--r-- | src/gui/dialogs/preferences.c | 24 | ||||
-rw-r--r-- | src/gui/dialogs/prefs/security-int.h | 4 | ||||
-rw-r--r-- | src/gui/dialogs/prefs/security.c | 4 |
3 files changed, 28 insertions, 4 deletions
diff --git a/src/gui/dialogs/preferences.c b/src/gui/dialogs/preferences.c index aca562a..68e7fd9 100644 --- a/src/gui/dialogs/preferences.c +++ b/src/gui/dialogs/preferences.c @@ -37,6 +37,8 @@ #include "prefs/security.h" #include "../../common/cpp.h" #include "../../gtkext/tweak.h" +#include "../../plugins/pglist.h" +#include "../../plugins/tweakable.h" @@ -133,6 +135,8 @@ static void gtk_preferences_dialog_init(GtkPreferencesDialog *dialog) const tweak_info_t *info; /* Informations à considérer */ GtkListBox *navigation; /* Liste de sections à afficher*/ GtkTweakSection *section; /* Nouvelle section à présenter*/ + tweak_info_t *dyn_infos; /* Informations supplémentaires*/ + size_t dyn_count; /* Quantité de ces informations*/ tweak_info_t infos[] = { TWEAK_SIMPLE_DEF("root", "Basics", @@ -158,6 +162,26 @@ static void gtk_preferences_dialog_init(GtkPreferencesDialog *dialog) } + /* Chargement des sections dynamiques */ + + dyn_infos = get_tweakable_plugins_info(&dyn_count); + + for (i = 0; i < dyn_count; i++) + { + info = &dyn_infos[i]; + + navigation = gtk_preferences_dialog_get_navigation(dialog, info->parent, true); + assert(navigation != NULL); + + section = gtk_tweak_section_new(info); + + gtk_list_box_append(navigation, GTK_WIDGET(section)); + + } + + if (dyn_infos != NULL) + free(dyn_infos); + /* Affichage de la liste racine */ navigation = gtk_preferences_dialog_get_navigation(dialog, "root", false); diff --git a/src/gui/dialogs/prefs/security-int.h b/src/gui/dialogs/prefs/security-int.h index c693fdb..be7867c 100644 --- a/src/gui/dialogs/prefs/security-int.h +++ b/src/gui/dialogs/prefs/security-int.h @@ -30,7 +30,7 @@ -/* Fenêtre d'édition générale de la configuration (instance) */ +/* Composant d'édition des paramètres de sécurité (instance) */ struct _GtkSecurityTweakPanel { GtkBox parent; /* A laisser en premier */ @@ -52,7 +52,7 @@ struct _GtkSecurityTweakPanel }; -/* Fenêtre d'édition générale de la configuration (classe) */ +/* Composant d'édition des paramètres de sécurité (classe) */ struct _GtkSecurityTweakPanelClass { GtkBoxClass parent; /* A laisser en premier */ diff --git a/src/gui/dialogs/prefs/security.c b/src/gui/dialogs/prefs/security.c index cf2f6c8..2b82339 100644 --- a/src/gui/dialogs/prefs/security.c +++ b/src/gui/dialogs/prefs/security.c @@ -1,6 +1,6 @@ /* Chrysalide - Outil d'analyse de fichiers binaires - * security.h - configuration des paramètres liés à la sécurité + * security.c - configuration des paramètres liés à la sécurité * * Copyright (C) 2025 Cyrille Bagard * @@ -82,7 +82,7 @@ static void gtk_security_tweak_panel_on_remove_password_clicked(GtkButton *, Gtk /* ---------------------------------------------------------------------------------- */ -/* Détermine le type du composant d'affichage générique. */ +/* Indique le type du composant d'édition des paramètres de sécurité. */ G_DEFINE_TYPE(GtkSecurityTweakPanel, gtk_security_tweak_panel, GTK_TYPE_BOX); |