Questa appendice è una piccola introduzione alla gerarchia degli oggetti di GTK+ e Gnome. Include GtkObject e tutte le sue sottoclassi di entrambe le librerie, una breve descrizioni di ciascuna, e il file header in cui sono dichiarate. Include inoltre le immagini dei widget, puó facilitare la scelta di questi in base alle necessità. Gli applicativi testgtk e test-gnome, forniti dalle due librerie, sono inoltre un buon metodo per scoprire i widget. La maggior parte delle immagini presenti in questa appendice provengono infatti da questi due applicativi.
È mostrato anche il file header dove è dichiarato ciascun oggetto. Tuttavia, tutti i file header possono essere inclusi attraverso gtk/gtk.h. Tutti i file header di GTK+ e Gnome possono essere inclusi facilmente utilizzando il file gnome.h.
Alcuni oggetti vengono descritti come "classi astratte di base". Questo significa che è possibile creare delle istanze unicamente delle sottoclassi dell'oggetto, ma che tutte queste possono essere manipolate attraverso l'interfaccia della classe di base.
Come regola generale, dovete cercare di utilizzare l'oggetto più specifico possibile. In poche parole, potete utilizzare GtkWindow per la finestra principale dell'applicazione, ma GnomeApp risulta essere una scelta migliore. Potete scrivere la vostra finestra informativa utilizzando GnomeDialog, ma la scelta migliore è comunque GnomeAbout. Questo rafforza la coerenza dell'interfaccia grafica e riduce il vostro lavoro.
Come detto, sia GTK+ che Gnome forniscono un programma "test", chiamati, rispettivamente, testgtk e test-gnome. Questi applicativi vengono utilizzati per provare i widget e altre caratteristiche della libreria. Sono inoltre una eccellente risorsa per codice di esempio, e un ottimo metodo per visualizzare tutti i widget disponibili per cercare quello più adatto alle proprie esigenze.
GtkBin | +GtkButton | +GnomeColorPicker | +GnomeFontPicker | +GnomeHRef | +GtkToggleButton | +GtkOptionMenu |
Questa è la gerarchia per GtkButton. L'oggetto padre (se esiste) viene mostrato, quindi l'oggetto stesso (possibilmente evidenziato o in neretto), quindi i figli immediati dell'oggetto in questione, se esistono. Un altro elemento interessante: alcuni degli oggetti possono essere ancora "instabili", quindi è consigliato non utilizzarli ancora all'interno dei propri applicativi.
GtkObject | +GtkWidget | | | +GtkContainer | | | | | +GtkBin | | | | | | | +GtkWindow | | | | | | | | | +GnomeDialog | | | | | | | | | | | +GnomeAbout | | | | | | | | | | | +GnomeMessageBox | | | | | | | | | | | +GnomePropertyBox | | | | | | | | | | | `GnomeScores | | | | | | | | | +GnomeApp | | | | | | | | | +GtkDialog | | | | | | | | | | | +GnomeFontSelector | | | | | | | | | | | `GtkInputDialog | | | | | | | | | +GtkColorSelectionDialog | | | | | | | | | +GtkFileSelection | | | | | | | | | +GtkFontSelectionDialog | | | | | | | | | `GtkPlug | | | | | | | +GtkButton | | | | | | | | | +GnomeColorPicker | | | | | | | | | +GnomeFontPicker | | | | | | | | | +GnomeHRef | | | | | | | | | +GtkToggleButton | | | | | | | | | | | `GtkCheckButton | | | | | | | | | | | `GtkRadioButton | | | | | | | | | `GtkOptionMenu | | | | | | | +GnomeDockItem | | | | | | | +GtkAlignment | | | | | | | +GtkFrame | | | | | | | | | `GtkAspectFrame | | | | | | | +GtkItem | | | | | | | | | +GtkMenuItem | | | | | | | | | | | +GtkCheckMenuItem | | | | | | | | | | | | | `GtkRadioMenuItem | | | | | | | | | | | +GtkPixmapMenuItem | | | | | | | | | | | `GtkTearoffMenuItem | | | | | | | | | +GtkListItem | | | | | | | | | `GtkTreeItem | | | | | | | +GtkEventBox | | | | | | | +GtkHandleBox | | | | | | | +GtkScrolledWindow | | | | | | | `GtkViewport | | | | | +GtkBox | | | | | | | +GtkHBox | | | | | | | | | +GnomeAppBar | | | | | | | | | +GnomeDateEdit | | | | | | | | | +GtkCombo | | | | | | | | | | | `GnomeEntry | | | | | | | | | +GnomeFileEntry | | | | | | | | | +GnomeNumberEntry | | | | | | | | | +GnomeProcBar | | | | | | | | | `GtkStatusbar | | | | | | | +GtkVBox | | | | | | | | | +GnomeCalculator | | | | | | | | | +GnomeGuru | | | | | | | | | +GnomeIconEntry | | | | | | | | | +GnomeIconSelection | | | | | | | | | +GnomeLess | | | | | | | | | +GnomePaperSelector | | | | | | | | | +GnomePixmapEntry | | | | | | | | | +GnomeSpell | | | | | | | | | +GtkColorSelection | | | | | | | | | `GtkGammaCurve | | | | | | | `GtkButtonBox | | | | | | | +GtkHButtonBox | | | | | | | `GtkVButtonBox | | | | | +GtkLayout | | | | | | | `GnomeCanvas | | | | | | | `GnomeIconList | | | | | +GnomeDockBand | | | | | +GnomeDock | | | | | +GtkCList | | | | | | | `GtkCTree | | | | | +GtkFixed | | | | | +GtkNotebook | | | | | | | `GtkFontSelection | | | | | +GtkPaned | | | | | | | +GtkHPaned | | | | | | | `GtkVPaned | | | | | +GtkList | | | | | +GtkMenuShell | | | | | | | +GtkMenuBar | | | | | | | `GtkMenu | | | | | +GtkPacker | | | | | +GtkSocket | | | | | +GtkTable | | | | | | | `GtkTed | | | | | +GtkToolbar | | | | | `GtkTree | | | +GnomeAnimator | | | +GnomePixmap | | | | | `GnomeStock | | | +GtkMisc | | | | | +GtkLabel | | | | | | | +GtkAccelLabel | | | | | | | +GtkClock | | | | | | | `GtkTipsQuery | | | | | +GtkArrow | | | | | +GtkImage | | | | | `GtkPixmap | | | +GtkCalendar | | | +GtkDrawingArea | | | | | `GtkCurve | | | +GtkDial | | | +GtkEditable | | | | | +GtkEntry | | | | | | | `GtkSpinButton | | | | | `GtkText | | | +GtkRuler | | | | | +GtkHRuler | | | | | `GtkVRuler | | | +GtkRange | | | | | +GtkScale | | | | | | | +GtkHScale | | | | | | | `GtkVScale | | | | | `GtkScrollbar | | | | | +GtkHScrollbar | | | | | `GtkVScrollbar | | | +GtkSeparator | | | | | +GtkHSeparator | | | | | `GtkVSeparator | | | +GtkPreview | | | +GtkProgress | | | | | `GtkProgressBar | | | `ZvtTerm | +GnomeCanvasItem | | | +GnomeCanvasRE | | | | | +GnomeCanvasEllipse | | | | | `GnomeCanvasRect | | | +GnomeCanvasGroup | | | +GnomeCanvasImage | | | +GnomeCanvasLine | | | +GnomeCanvasPolygon | | | +GnomeCanvasText | | | +GnomeCanvasWidget | | | `GnomeIconTextItem | +GnomeClient | +GnomeDEntryEdit | +GnomeDockLayout | +GnomeMDIChild | | | `GnomeMDIGenericChild | +GnomeMDI | +GtkData | | | +GtkAdjustment | | | `GtkTooltips | `GtkItemFactory |