summaryrefslogtreecommitdiff
path: root/src/gui/panel-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2024-07-20 23:23:43 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2024-07-20 23:23:43 (GMT)
commite4ccb9e56e822628e299527fee0b7325f0d25662 (patch)
tree10d5eb35fad4ba01b757d4c403c912f209eacb3e /src/gui/panel-int.h
parent9d0d5edf372a9f681bbfd0a3639ee8fc367ce96d (diff)
Prepare a welcome screen.
Diffstat (limited to 'src/gui/panel-int.h')
-rw-r--r--src/gui/panel-int.h105
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 */