Dieser Schritt wird ganz einfach: Wir definieren unsere privaten Strukturen und geben GObject den Namen unseres GObject an.
Zuerst füllen wir unsere .c
mit etwas Inhalt:
tutorial-tier.c
/* * Copyright- und Lizenzinformationen */ #include "tutorial-tier.h"
Das sollte jedem von euch klar sein.
Weiter geht es mit der Definition der privaten Struktur.
Wir erinnern uns: C ist keine objektorientierte Sprache. Daher sind alle Member einer Struktur jederzeit von jedem veränderbar. Allerdings gehört Information Hiding zu den Grundprinzipien des klassenbasierten Programmierens. Da behilft man sich eines Tricks: Man definiert eine eigene Struktur für die privaten Member static in der .c Datei.
tutorial-tier.c
static struct _TutorialTierPrivate { gint alter; gchar *ruf; };
Damit hätten wir unsere private Struktur definiert.
Doch ist es damit noch nicht getan:
tutorial-tier.c
#define TUTORIAL_TIER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TUTORIAL_TYPE_TIER, TutorialTierPrivate))
Dieses Makro werden wir im nächsten Kapitel einsetzen.
Auch dieser Schritt ist schnell erledigt: 1 Zeile Code.
tutorial-tier.c
G_DEFINE_TYPE(TutorialTier, tutorial_tier, G_TYPE_OBJECT);
Zuerst geben wir den Namen unserer Klasse an, dann das Präfix für Methoden (siehe vorheriges Kapitel). Schließlich bestimmen wir das Basisobjekt.
Hinweis: Jede Klasse muss mindestens von GObject abgeleitet werden!
Doch was tut dieses Makro?
tutorial_tier_get_type
Funktion_TutorialTier
im Header)Damit wäre dieser (zugegeben sehr kleine) Schritt vollendet. Im nächsten Kapitel definieren wir die Erstellungsroutinen für unser GObject.