summaryrefslogtreecommitdiff
path: root/src/gui/panel-int.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panel-int.h')
-rw-r--r--src/gui/panel-int.h44
1 files changed, 29 insertions, 15 deletions
diff --git a/src/gui/panel-int.h b/src/gui/panel-int.h
index 2f7d876..d54dc16 100644
--- a/src/gui/panel-int.h
+++ b/src/gui/panel-int.h
@@ -33,7 +33,6 @@
#include "item-int.h"
-#include "../common/dllist.h"
#include "../glibext/delayed.h"
@@ -41,6 +40,21 @@
/* ------------------------- 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 *);
+
+/* Indique le chemin initial de la localisation d'un panneau. */
+typedef char * (* get_panel_path_fc) (const GPanelItemClass *);
+
+/* 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 *);
@@ -56,18 +70,11 @@ struct _GPanelItem
{
GEditorItem parent; /* A laisser en premier */
- DL_LIST_ITEM(link); /* Maillon de liste chaînée */
-
- PanelItemPersonality personality; /* Nature de l'élément */
+ bool docked; /* Panneau inscrusté ? */
GNamedWidget *widget; /* Composant avec noms */
GtkWidget *cached_widget; /* Composant GTK récupéré */
- bool dock_at_startup; /* Recommandation au démarrage */
- char *path; /* Chemin vers la place idéale */
-
- bool docked; /* Panneau inscrusté ? */
-
char *filter; /* Eventuel filtre textuel */
cairo_surface_t *surface; /* Copie d'écran préalable */
@@ -82,10 +89,11 @@ struct _GPanelItemClass
{
GEditorItemClass parent; /* A laisser en premier */
- bool unique; /* Panneau instanciable ? */
- const char *bindings; /* Raccourci clavier éventuel */
-
- bool can_search; /* Contenu fouillable ? */
+ 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 */
@@ -102,8 +110,14 @@ struct _GPanelItemClass
};
-#define panels_list_add_tail(new, head) dl_list_add_tail(new, head, GPanelItem, link)
-#define panels_list_for_each(pos, head) dl_list_for_each(pos, head, GPanelItem, link)
+/* 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 *);