diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2020-12-05 00:39:57 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2020-12-05 00:39:57 (GMT) | 
| commit | 1e3fa9b79ebe55698e2aa7d5484baec7e8400a8f (patch) | |
| tree | c3581ceb7f8586f2f6822de563927a1246dd33a5 /src/gui/panels/log.c | |
| parent | 6122bb7f34b178d4c07285adae16afcc55294b1f (diff) | |
Rewritten the whole API dealing with panels.
Diffstat (limited to 'src/gui/panels/log.c')
| -rw-r--r-- | src/gui/panels/log.c | 126 | 
1 files changed, 100 insertions, 26 deletions
| diff --git a/src/gui/panels/log.c b/src/gui/panels/log.c index 43021cf..d11fbd2 100644 --- a/src/gui/panels/log.c +++ b/src/gui/panels/log.c @@ -89,7 +89,16 @@ static void g_log_panel_dispose(GLogPanel *);  static void g_log_panel_finalize(GLogPanel *);  /* Fournit le nom interne attribué à l'élément réactif. */ -static char *g_log_panel_get_key(const GLogPanel *); +static char *g_log_panel_class_get_key(const GLogPanelClass *); + +/* Fournit une indication sur la personnalité du panneau. */ +static PanelItemPersonality g_log_panel_class_get_personality(const GLogPanelClass *); + +/* Indique le chemin initial de la localisation d'un panneau. */ +static char *g_log_panel_class_get_path(const GLogPanelClass *); + +/* Indique la définition d'un éventuel raccourci clavier. */ +static char *g_log_panel_class_get_key_bindings(const GLogPanelClass *);  /* Affiche un message dans le journal des messages système. */  static gboolean log_message(log_data *); @@ -102,7 +111,7 @@ G_DEFINE_TYPE(GLogPanel, g_log_panel, G_TYPE_PANEL_ITEM);  /******************************************************************************  *                                                                             * -*  Paramètres  : klass = classe à initialiser.                                * +*  Paramètres  : class = classe à initialiser.                                *  *                                                                             *  *  Description : Initialise la classe des panneaux d'affichage des messages.  *  *                                                                             * @@ -112,25 +121,26 @@ G_DEFINE_TYPE(GLogPanel, g_log_panel, G_TYPE_PANEL_ITEM);  *                                                                             *  ******************************************************************************/ -static void g_log_panel_class_init(GLogPanelClass *klass) +static void g_log_panel_class_init(GLogPanelClass *class)  {      GObjectClass *object;                   /* Autre version de la classe  */      GEditorItemClass *item;                 /* Encore une autre vision...  */      GPanelItemClass *panel;                 /* Version parente de la classe*/ -    object = G_OBJECT_CLASS(klass); +    object = G_OBJECT_CLASS(class);      object->dispose = (GObjectFinalizeFunc/* ! */)g_log_panel_dispose;      object->finalize = (GObjectFinalizeFunc)g_log_panel_finalize; -    item = G_EDITOR_ITEM_CLASS(klass); +    item = G_EDITOR_ITEM_CLASS(class); -    item->get_key = (get_item_key_fc)g_log_panel_get_key; +    item->get_key = (get_item_key_fc)g_log_panel_class_get_key; -    panel = G_PANEL_ITEM_CLASS(klass); +    panel = G_PANEL_ITEM_CLASS(class); -    panel->unique = true; -    panel->bindings = "<Shift>F1"; +    panel->get_personality = (get_panel_personality_fc)g_log_panel_class_get_personality; +    panel->get_path = (get_panel_path_fc)g_log_panel_class_get_path; +    panel->get_bindings = (get_panel_bindings_fc)g_log_panel_class_get_key_bindings;  } @@ -155,15 +165,10 @@ static void g_log_panel_init(GLogPanel *panel)      pitem = G_PANEL_ITEM(panel); -    pitem->personality = PIP_SINGLETON; -      pitem->widget = G_NAMED_WIDGET(gtk_built_named_widget_new_for_panel(_("Messages"),                                                                          _("Misc information"),                                                                          PANEL_LOG_ID)); -    pitem->dock_at_startup = true; -    pitem->path = strdup("Ms"); -  } @@ -207,21 +212,21 @@ static void g_log_panel_finalize(GLogPanel *panel)  /******************************************************************************  *                                                                             * -*  Paramètres  : -                                                            * +*  Paramètres  : class = classe à consulter.                                  *  *                                                                             * -*  Description : Crée un panneau d'affichage des messages système.            * +*  Description : Fournit le nom interne attribué à l'élément réactif.         *  *                                                                             * -*  Retour      : Adresse de la structure mise en place.                       * +*  Retour      : Désignation (courte) de l'élément de l'éditeur.              *  *                                                                             *  *  Remarques   : -                                                            *  *                                                                             *  ******************************************************************************/ -GPanelItem *g_log_panel_new(void) +static char *g_log_panel_class_get_key(const GLogPanelClass *class)  { -    GPanelItem *result;                     /* Structure à retourner       */ +    char *result;                           /* Description à renvoyer      */ -    result = g_object_new(G_TYPE_LOG_PANEL, NULL); +    result = strdup(PANEL_LOG_ID);      return result; @@ -230,21 +235,90 @@ GPanelItem *g_log_panel_new(void)  /******************************************************************************  *                                                                             * -*  Paramètres  : panel = instance à consulter.                                * +*  Paramètres  : class = classe à consulter.                                  *  *                                                                             * -*  Description : Fournit le nom interne attribué à l'élément réactif.         * +*  Description : Fournit une indication sur la personnalité du panneau.       *  *                                                                             * -*  Retour      : Désignation (courte) de l'élément de l'éditeur.              * +*  Retour      : Identifiant lié à la nature unique du panneau.               *  *                                                                             *  *  Remarques   : -                                                            *  *                                                                             *  ******************************************************************************/ -static char *g_log_panel_get_key(const GLogPanel *panel) +static PanelItemPersonality g_log_panel_class_get_personality(const GLogPanelClass *class)  { -    char *result;                           /* Description à renvoyer      */ +    PanelItemPersonality result;            /* Personnalité à retourner    */ -    result = strdup(PANEL_LOG_ID); +    result = PIP_PERSISTENT_SINGLETON; + +    return result; + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : class = classe à consulter.                                  * +*                                                                             * +*  Description : Indique le chemin initial de la localisation d'un panneau.   * +*                                                                             * +*  Retour      : Chemin fixé associé à la position initiale.                  * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +static char *g_log_panel_class_get_path(const GLogPanelClass *class) +{ +    char *result;                           /* Emplacement à retourner     */ + +    result = strdup("Ms"); + +    return result; + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : class = classe à consulter.                                  * +*                                                                             * +*  Description : Indique la définition d'un éventuel raccourci clavier.       * +*                                                                             * +*  Retour      : Description d'un raccourci ou NULL si aucun de défini.       * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +static char *g_log_panel_class_get_key_bindings(const GLogPanelClass *class) +{ +    char *result;                           /* Emplacement à retourner     */ + +    result = strdup("<Shift>F1"); + +    return result; + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : -                                                            * +*                                                                             * +*  Description : Crée un panneau d'affichage des messages système.            * +*                                                                             * +*  Retour      : Adresse de la structure mise en place.                       * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +GPanelItem *g_log_panel_new(void) +{ +    GPanelItem *result;                     /* Structure à retourner       */ + +    result = g_object_new(G_TYPE_LOG_PANEL, NULL);      return result; | 
