diff options
Diffstat (limited to 'src/gui/core/panels.h')
-rw-r--r-- | src/gui/core/panels.h | 55 |
1 files changed, 42 insertions, 13 deletions
diff --git a/src/gui/core/panels.h b/src/gui/core/panels.h index aaea9e6..4d0ce41 100644 --- a/src/gui/core/panels.h +++ b/src/gui/core/panels.h @@ -2,7 +2,7 @@ /* Chrysalide - Outil d'analyse de fichiers binaires * panels.h - prototypes pour la gestion d'ensemble de tous les panneaux graphiques du framework * - * Copyright (C) 2016-2024 Cyrille Bagard + * Copyright (C) 2016-2025 Cyrille Bagard * * This file is part of Chrysalide. * @@ -26,30 +26,59 @@ #define _GUI_CORE_PANELS_H +#include <glib-object.h> #include <stdbool.h> +#include <gtk/gtk.h> -#include "../panel.h" +#include "../../gtkext/panel.h" -/* Charge les principaux panneaux graphiques du framework. */ -bool load_main_panels(void); +/* Types de panneaux pour éditeur */ +typedef enum _FrameworkPanelPersonality +{ + FPP_NONE = (0 << 0), /* Pas de particularité */ + + FPP_MAIN_PANEL = (1 << 0), /* Panneau principal */ + FPP_SINGLETON = (1 << 1), /* Instance unique */ + +} FrameworkPanelPersonality; + +/* Définition générique d'un panneau */ +typedef struct _panel_info_t +{ + const char *category; /* Groupe de rassemblement */ + + const char *image; /* Eventuelle image associée */ + const char *title; /* Désignation humaine */ + const char *desc; /* Description humaine */ + + FrameworkPanelPersonality personality; /* Comportement attendu */ + + GType panel_type; /* Type du panneau représenté */ + GType params_type; /* Composant de paramètre */ + +} panel_info_t; + + +/* Charge les définitions des principaux panneaux du framework. */ +bool load_main_framework_panel_definitions(void); /* Décharge tous les panneaux graphiques du framework. */ -void unload_all_panels(void); +void unload_all_framework_panel_definitions(void); -/* Enregistre un panneau comme partie intégrante de l'éditeur. */ -void register_panel_item(/* __steal */ GPanelItem *); +/* Enregistre la définition d'un panneau graphique. */ +bool register_framework_panel_definition(const panel_info_t *); -/* Retrouve la définition d'un type de panneau. */ -GPanelItem *find_item_panel_by_type(GType); +/* Met en place (au besoin) un panneau graphique unique. */ +GtkTiledPanel *get_framework_panel_singleton(GType); -/* Réalise un traitement sur un panneau de l'éditeur. */ -typedef bool (* handle_panel_item_fc) (GPanelItem *, void *); +/* Intègre une définition de panneau enregistrée. */ +void populate_framework_panel_launcher_list(GtkListBox *); -/* Effectue le parcours de tous les panneaux chargés. */ -bool browse_all_item_panels(bool, handle_panel_item_fc, void *); +/* Fournit un composant d'édition de paramètres de panneau. */ +GtkWidget *get_framework_panel_parameters(GtkListBoxRow *); |