diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2024-07-20 23:23:43 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2024-07-20 23:23:43 (GMT) |
commit | e4ccb9e56e822628e299527fee0b7325f0d25662 (patch) | |
tree | 10d5eb35fad4ba01b757d4c403c912f209eacb3e /src/gui/panel-int.h | |
parent | 9d0d5edf372a9f681bbfd0a3639ee8fc367ce96d (diff) |
Prepare a welcome screen.
Diffstat (limited to 'src/gui/panel-int.h')
-rw-r--r-- | src/gui/panel-int.h | 105 |
1 files changed, 19 insertions, 86 deletions
diff --git a/src/gui/panel-int.h b/src/gui/panel-int.h index d54dc16..7e6f7e3 100644 --- a/src/gui/panel-int.h +++ b/src/gui/panel-int.h @@ -2,7 +2,7 @@ /* Chrysalide - Outil d'analyse de fichiers binaires * panel-int.h - prototypes pour les définitions internes liées aux panneaux d'affichage * - * Copyright (C) 2019 Cyrille Bagard + * Copyright (C) 2019-2024 Cyrille Bagard * * This file is part of Chrysalide. * @@ -22,117 +22,50 @@ */ -#ifndef _GUI_PANELS_PANEL_INT_H -#define _GUI_PANELS_PANEL_INT_H +#ifndef _GUI_PANEL_INT_H +#define _GUI_PANEL_INT_H #include "panel.h" -#include <gtk/gtk.h> - - -#include "item-int.h" -#include "../glibext/delayed.h" - - - -/* ------------------------- COEUR DES PANNEAUX D'AFFICHAGE ------------------------- */ - /* Fournit une indication sur la personnalité du panneau. */ -typedef PanelItemPersonality (* get_panel_personality_fc) (const GPanelItemClass *); - -/* Fournit une indication d'accroche du panneau au démarrage. */ -typedef bool (* dock_panel_at_startup_fc) (const GPanelItemClass *); - -/* Détermine si un panneau peut être filtré. */ -typedef bool (* can_search_panel_fc) (const GPanelItemClass *); +typedef PanelItemPersonality (* get_panel_item_personality_cb) (const GPanelItem *); -/* Indique le chemin initial de la localisation d'un panneau. */ -typedef char * (* get_panel_path_fc) (const GPanelItemClass *); +/* Fournit un composant pour lancer l'activité d'un panneau. */ +typedef GtkWidget * (* get_panel_item_widget_cb) (GPanelItem *); -/* Indique la définition d'un éventuel raccourci clavier. */ -typedef char * (* get_panel_bindings_fc) (const GPanelItemClass *); - -/* Place un panneau dans l'ensemble affiché. */ -typedef void (* ack_dock_process_fc) (GPanelItem *); - -/* Supprime un panneau de l'ensemble affiché. */ -typedef void (* ack_undock_process_fc) (GPanelItem *); - -/* Démarre l'actualisation du filtrage du contenu. */ -typedef void (* update_filtered_fc) (GPanelItem *); +/* Fournit un composant représentant un panneau graphique. */ +typedef GtkTiledPanel * (* get_panel_item_panel_cb) (GPanelItem *, GtkWidget *); /* Elément réactif pour panneaux de l'éditeur (instance) */ struct _GPanelItem { - GEditorItem parent; /* A laisser en premier */ - - bool docked; /* Panneau inscrusté ? */ + GObject parent; /* A laisser en premier */ - GNamedWidget *widget; /* Composant avec noms */ - GtkWidget *cached_widget; /* Composant GTK récupéré */ + GtkWidget *launcher; /* Eventuel lanceur associé */ + GtkWidget *properties; /* Propriétés de lancement */ - char *filter; /* Eventuel filtre textuel */ - - cairo_surface_t *surface; /* Copie d'écran préalable */ - gdouble hadj_value; /* Sauvegarde de défilement #1 */ - gdouble vadj_value; /* Sauvegarde de défilement #2 */ - gint switched; /* Mémorise l'état de bascule */ + GtkTiledPanel **panels; /* Instances complètes ouvertes*/ + size_t pcount; /* Quantité de ces instances */ }; /* Elément réactif pour panneaux de l'éditeur (classe) */ struct _GPanelItemClass { - GEditorItemClass parent; /* A laisser en premier */ - - get_panel_personality_fc get_personality; /* Fourniture de nature */ - dock_panel_at_startup_fc dock_at_startup; /* Recommandation d'accroche */ - can_search_panel_fc can_search; /* Contenu fouillable ? */ - get_panel_path_fc get_path; /* Chemin vers la place idéale */ - get_panel_bindings_fc get_bindings; /* Raccourci clavier éventuel */ - - ack_dock_process_fc ack_dock; /* Prise en compte d'accroche */ - ack_undock_process_fc ack_undock; /* Prise en compte de décroche */ + GObjectClass parent; /* A laisser en premier */ - update_filtered_fc update_filtered; /* Lancement du filtrage */ + get_panel_item_personality_cb get_personality; /* Fourniture de nature */ - wgroup_id_t gid; /* Groupe de travail dédié */ - - /* Signaux */ - - void (* dock_request) (GPanelItem); - void (* undock_request) (GPanelItem); + get_panel_item_widget_cb get_launcher; /* Lancement d'une activité */ + get_panel_item_widget_cb get_properties;/* Préparation au lancement */ + get_panel_item_panel_cb get_panel; /* Panneau principal */ }; -/* Fournit une indication sur la personnalité du panneau. */ -PanelItemPersonality gtk_panel_item_class_get_personality_singleton(const GPanelItemClass *); - -/* Renvoie false lors d'une consultation de la classe. */ -bool gtk_panel_item_class_return_false(const GPanelItemClass *); - -/* Renvoie true lors d'une consultation de la classe. */ -bool gtk_panel_item_class_return_true(const GPanelItemClass *); - - - -/* ---------------------- MECANISMES DE MISE A JOUR DE PANNEAU ---------------------- */ - - -/* Obtient le groupe de travail dédié à une mise à jour. */ -wgroup_id_t g_panel_item_get_group(const GPanelItem *); - -/* Bascule l'affichage d'un panneau avant sa mise à jour. */ -void g_panel_item_switch_to_updating_mask(GPanelItem *); - -/* Bascule l'affichage d'un panneau après sa mise à jour. */ -void g_panel_item_switch_to_updated_content(GPanelItem *); - - -#endif /* _GUI_PANELS_PANEL_INT_H */ +#endif /* _GUI_PANEL_INT_H */ |