La finesta principale: GnomeApp

Questo capitolo descrive la creazione della finestra principale di una applicazione con Gnome, completa di barra dei menu e pulsanti.

Il widget GnomeApp

Tutte le applicazioni Gnome, esclusi alcuni casi molto particolari, utilizzano il widget GnomeApp per la finestra principale. GnomeApp è una sotto-classe di GtkWindow, che estende la semplicità della finestra con una facile gestione delle barre di menu e pulsanti. Una finestra GnomeApp è configurabile, da parte dell'utente, in svariati modi:

Moltre altre opzioni saranno implementate in futuro.

Figura 1. Il foglio di calcolo Gnumeric, che utilizza il widget GnomeApp

GnomeApp fornisce l'usuale funzione di costrutto, mostrata in Figura 2. Il primo argomento, app_id, è il nome interno che Gnome può utilizzare per lavorare con questa applicazione. Deve essere lo stesso app_id che passate a gnome_init(). Il nome dell'eseguibile è solitamente la scelta consigliata. Il secondo argomento è il titolo della finestra dell'applicazione. Se utilizzate NULL, il titolo non verrà impostato.

#include <libgnomeui/gnome-app.h>

GtkWidget* gnome_app_new(gchar* app_id, gchar* title);

Figura 2. Il costruttore per GnomeApp

GnomeApp ha un singolo contenitore al suo interno, posto al centro, dove dovrete inserire le le componenti principali della vostra applicazione. Ai quattro lati della finestra potete aggiungere barre di pulsanti, menu e barre di stato. Una lista delle funzionalità di rilievo è disponibile nella Figura 3.

Queste funzioni dovrebbero essere abbastanza intuitive da utilizzare, collocano semplicemente all'interno di GnomeApp i vostri widget. Esistono funzioni altrettanto semplici per creare menu, barre di pulsanti e barre di stato.

#include <libgnomeui/gnome-app.h>

void gnome_app_set_contents(GnomeApp* app, GtkWidget* contents);

void gnome_app_set_menus(GnomeApp* app, GtkMenuBar* menubar);

void gnome_app_set_toolbar(GnomeApp* app, GtkToolbar* toolbar);

void gnome_app_set_statusbar(GnomeApp* app, GtkWidget* statusbar);

Figura 3. Inserire widget all'interno GnomeApp