summaryrefslogtreecommitdiff
path: root/src/gui/panels/welcome.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panels/welcome.c')
-rw-r--r--src/gui/panels/welcome.c113
1 files changed, 83 insertions, 30 deletions
diff --git a/src/gui/panels/welcome.c b/src/gui/panels/welcome.c
index 24674a7..9192d66 100644
--- a/src/gui/panels/welcome.c
+++ b/src/gui/panels/welcome.c
@@ -97,7 +97,13 @@ static void g_welcome_panel_dispose(GWelcomePanel *);
static void g_welcome_panel_finalize(GWelcomePanel *);
/* Fournit le nom interne attribué à l'élément réactif. */
-static char *g_welcome_panel_get_key(const GWelcomePanel *);
+static char *g_welcome_panel_class_get_key(const GWelcomePanelClass *);
+
+/* Fournit une indication sur la personnalité du panneau. */
+static PanelItemPersonality g_welcome_panel_class_get_personality(const GWelcomePanelClass *);
+
+/* Indique le chemin initial de la localisation d'un panneau. */
+static char *g_welcome_panel_class_get_path(const GWelcomePanelClass *);
/* Place un panneau dans l'ensemble affiché. */
static void g_welcome_panel_dock(GWelcomePanel *);
@@ -156,7 +162,7 @@ static void g_welcome_panel_class_init(GWelcomePanelClass *klass)
{
GObjectClass *object; /* Autre version de la classe */
GEditorItemClass *item; /* Encore une autre vision... */
- GPanelItemClass *parent; /* Version parente de classe */
+ GPanelItemClass *panel; /* Version parente de classe */
object = G_OBJECT_CLASS(klass);
@@ -165,11 +171,15 @@ static void g_welcome_panel_class_init(GWelcomePanelClass *klass)
item = G_EDITOR_ITEM_CLASS(klass);
- item->get_key = (get_item_key_fc)g_welcome_panel_get_key;
+ item->get_key = (get_item_key_fc)g_welcome_panel_class_get_key;
- parent = G_PANEL_ITEM_CLASS(klass);
+ panel = G_PANEL_ITEM_CLASS(klass);
- parent->ack_dock = (ack_undock_process_fc)g_welcome_panel_dock;
+ panel->get_personality = (get_panel_personality_fc)g_welcome_panel_class_get_personality;
+ panel->dock_at_startup = gtk_panel_item_class_return_false;
+ panel->get_path = (get_panel_path_fc)g_welcome_panel_class_get_path;
+
+ panel->ack_dock = (ack_undock_process_fc)g_welcome_panel_dock;
}
@@ -196,21 +206,17 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
GtkToggleButton *button; /* Bouton à bascule à traiter */
bool state; /* Etat de la coche à définir */
gchar *filename; /* Chemin d'accès à une image */
+ GtkRecentManager *manager; /* Gestionnaire global */
/* Eléments de base */
pitem = G_PANEL_ITEM(panel);
- pitem->personality = PIP_SINGLETON;
-
pitem->widget = G_NAMED_WIDGET(gtk_built_named_widget_new_for_panel(_("Welcome"),
_("Welcome panel"),
PANEL_WELCOME_ID));
- pitem->dock_at_startup = false;
- pitem->path = strdup("M");
-
- panel->uorigin = !pitem->dock_at_startup;
+ panel->uorigin = !gtk_panel_item_class_dock_at_startup(G_PANEL_ITEM_GET_CLASS(pitem));
/* Représentation graphique */
@@ -259,6 +265,18 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
g_object_unref(G_OBJECT(builder));
+ /* Actualisation du contenu du panneau */
+
+ manager = get_project_manager();
+
+ g_signal_connect(manager, "changed", G_CALLBACK(on_recent_list_changed), panel);
+
+ g_welcome_panel_reload_project_list(panel, manager);
+
+ g_welcome_panel_load_tips(panel);
+
+ g_welcome_panel_check_version(panel);
+
}
@@ -306,55 +324,90 @@ static void g_welcome_panel_finalize(GWelcomePanel *panel)
/******************************************************************************
* *
-* Paramètres : - *
+* Paramètres : class = classe à consulter. *
* *
-* Description : Crée un panneau d'accueil par défaut. *
+* 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_welcome_panel_new(void)
+static char *g_welcome_panel_class_get_key(const GWelcomePanelClass *class)
{
- GWelcomePanel *result; /* Structure à retourner */
- GtkRecentManager *manager; /* Gestionnaire global */
+ char *result; /* Description à renvoyer */
- result = g_object_new(G_TYPE_WELCOME_PANEL, NULL);
+ result = strdup(PANEL_WELCOME_ID);
- manager = get_project_manager();
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : class = classe à consulter. *
+* *
+* Description : Fournit une indication sur la personnalité du panneau. *
+* *
+* Retour : Identifiant lié à la nature unique du panneau. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static PanelItemPersonality g_welcome_panel_class_get_personality(const GWelcomePanelClass *class)
+{
+ PanelItemPersonality result; /* Personnalité à retourner */
- g_signal_connect(manager, "changed", G_CALLBACK(on_recent_list_changed), result);
+ result = PIP_PERSISTENT_SINGLETON;
- g_welcome_panel_reload_project_list(result, manager);
+ 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 : - *
+* *
+******************************************************************************/
- g_welcome_panel_load_tips(result);
+static char *g_welcome_panel_class_get_path(const GWelcomePanelClass *class)
+{
+ char *result; /* Emplacement à retourner */
- g_welcome_panel_check_version(result);
+ result = strdup("M");
- return G_PANEL_ITEM(result);
+ return result;
}
/******************************************************************************
* *
-* Paramètres : panel = instance à consulter. *
+* Paramètres : - *
* *
-* Description : Fournit le nom interne attribué à l'élément réactif. *
+* Description : Crée un panneau d'accueil par défaut. *
* *
-* Retour : Désignation (courte) de l'élément de l'éditeur. *
+* Retour : Adresse de la structure mise en place. *
* *
* Remarques : - *
* *
******************************************************************************/
-static char *g_welcome_panel_get_key(const GWelcomePanel *panel)
+GPanelItem *g_welcome_panel_new(void)
{
- char *result; /* Description à renvoyer */
+ GPanelItem *result; /* Structure à retourner */
- result = strdup(PANEL_WELCOME_ID);
+ result = g_object_new(G_TYPE_WELCOME_PANEL, NULL);
return result;