summaryrefslogtreecommitdiff
path: root/src/gui/panels/welcome.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-02-18 21:27:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-02-18 21:27:51 (GMT)
commit1eadace09a51cd93aaf78d91f0d601730728dfd5 (patch)
tree8d40ab473acf2823b2f66ff99f94f8ea97764df4 /src/gui/panels/welcome.c
parent412251e72f33525c3f5d0a1a3ec3843b9b79131e (diff)
Moved the resource builder as part of panel base.
Diffstat (limited to 'src/gui/panels/welcome.c')
-rw-r--r--src/gui/panels/welcome.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/gui/panels/welcome.c b/src/gui/panels/welcome.c
index 0edeb41..eeff152 100644
--- a/src/gui/panels/welcome.c
+++ b/src/gui/panels/welcome.c
@@ -53,7 +53,6 @@ struct _GWelcomePanel
{
GPanelItem parent; /* A laisser en premier */
- GtkBuilder *builder; /* Constructeur utilisé */
cairo_surface_t *background; /* Fond pour astuces */
char **tips; /* Liste de toutes les astuces */
@@ -181,6 +180,7 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
{
GEditorItem *base; /* Version basique d'instance */
GPanelItem *pitem; /* Version parente du panneau */
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkTreeView *treeview; /* Affichage de la liste */
GtkCellRenderer *renderer; /* Moteur de rendu de colonne */
GtkTreeViewColumn *column; /* Colonne de la liste */
@@ -205,15 +205,11 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
/* Représentation graphique */
- panel->builder = gtk_builder_new_from_resource("/org/chrysalide/gui/panels/welcome.ui");
-
- base->widget = GTK_WIDGET(gtk_builder_get_object(panel->builder, "box"));
- g_object_ref(G_OBJECT(base->widget));
- gtk_widget_unparent(base->widget);
+ builder = g_panel_item_build(pitem, "welcome");
/* Liste des projets récents */
- treeview = GTK_TREE_VIEW(gtk_builder_get_object(panel->builder, "treeview"));
+ treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
column = gtk_tree_view_column_new();
gtk_tree_view_append_column(treeview, column);
@@ -225,7 +221,7 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
/* Affichage au démarrage ? */
- button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(panel->builder, "startup"));
+ button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "startup"));
g_generic_config_get_value(get_main_configuration(), MPK_WELCOME_STARTUP, &state);
@@ -241,7 +237,7 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
/* Connexion des signaux */
- gtk_builder_add_callback_symbols(panel->builder,
+ gtk_builder_add_callback_symbols(builder,
"on_tip_background_draw", G_CALLBACK(on_tip_background_draw),
"on_new_binary_clicked", G_CALLBACK(on_new_binary_clicked),
"on_row_activated_for_projects", G_CALLBACK(on_row_activated_for_projects),
@@ -250,7 +246,7 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
"on_tip_next_clicked", G_CALLBACK(on_tip_next_clicked),
NULL);
- gtk_builder_connect_signals(panel->builder, panel);
+ gtk_builder_connect_signals(builder, panel);
}
@@ -269,8 +265,6 @@ static void g_welcome_panel_init(GWelcomePanel *panel)
static void g_welcome_panel_dispose(GWelcomePanel *panel)
{
- g_object_unref(G_OBJECT(panel->builder));
-
free(panel->tips);
G_OBJECT_CLASS(g_welcome_panel_parent_class)->dispose(G_OBJECT(panel));
@@ -513,6 +507,7 @@ static void on_recent_list_changed(GtkRecentManager *manager, GWelcomePanel *pan
static void g_welcome_panel_reload_project_list(GWelcomePanel *panel, GtkRecentManager *manager)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkListStore *store; /* Modèle de gestion */
bool empty; /* Liste vide ? */
GList *recents; /* Liste des fichiers récents */
@@ -522,7 +517,9 @@ static void g_welcome_panel_reload_project_list(GWelcomePanel *panel, GtkRecentM
/* Réinitialisation */
- store = GTK_LIST_STORE(gtk_builder_get_object(panel->builder, "store"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ store = GTK_LIST_STORE(gtk_builder_get_object(builder, "store"));
gtk_list_store_clear(store);
@@ -668,6 +665,7 @@ static void g_welcome_panel_check_version(GWelcomePanel *panel)
size_t got; /* Quantité de données reçues */
char *version; /* Version récupérée */
int available; /* Version disponible */
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkLabel *label; /* Etiquette à éditer */
char *msg; /* Message à faire paraître */
@@ -711,7 +709,9 @@ static void g_welcome_panel_check_version(GWelcomePanel *panel)
/* Affichage */
- label = GTK_LABEL(gtk_builder_get_object(panel->builder, "version"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ label = GTK_LABEL(gtk_builder_get_object(builder, "version"));
if (skip)
asprintf(&msg,
@@ -818,11 +818,14 @@ static void on_tip_next_clicked(GtkButton *button, GWelcomePanel *panel)
static void g_welcome_panel_refresh_tip(GWelcomePanel *panel)
{
+ GtkBuilder *builder; /* Constructeur utilisé */
GtkLabel *label; /* Etiquette de présentation */
assert(panel->current < panel->count);
- label = GTK_LABEL(gtk_builder_get_object(panel->builder, "tip"));
+ builder = G_PANEL_ITEM(panel)->builder;
+
+ label = GTK_LABEL(gtk_builder_get_object(builder, "tip"));
gtk_label_set_markup(label, panel->tips[panel->current]);