/* 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-2025 Cyrille Bagard * * This file is part of Chrysalide. * * Chrysalide is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Chrysalide is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _GUI_CORE_PANELS_H #define _GUI_CORE_PANELS_H #include #include #include #include "../../gtkext/panel.h" /* 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_framework_panel_definitions(void); /* Enregistre la définition d'un panneau graphique. */ bool register_framework_panel_definition(const panel_info_t *); /* Met en place (au besoin) un panneau graphique unique. */ GtkTiledPanel *get_framework_panel_singleton(GType); /* Intègre une définition de panneau enregistrée. */ void populate_framework_panel_launcher_list(GtkListBox *); /* Fournit un composant d'édition de paramètres de panneau. */ GtkWidget *get_framework_panel_parameters(GtkListBoxRow *); #endif /* _GUI_CORE_PANELS_H */