Datamodellen
Datamodellen är en klass som implementerar Gio::ListModel-gränssnittet. Exempel på sådana klasser är Gio::ListStore (inte att förväxlas med de föråldrade Gtk::ListStore), Gtk:StringList, Gtk:DirectoryList och Pango::FontMap.
Elementen i en modell kallas objekt. Alla objekt är instanser av en underklass till Glib::Object. Exempelvis kan du ha en ColumnView med ett heltal och en textkolumn, så här:
class ModelColumns : public Glib::Object
{
public:
int m_col_id;
Glib::ustring m_col_name;
static Glib::RefPtr<ModelColumns> create(
int col_id, const Glib::ustring& col_name)
{
return Glib::make_refptr_for_instance<ModelColumns>(
new ModelColumns(col_id, col_name));
}
protected:
ModelColumns(int col_id, const Glib::ustring& col_name)
: m_col_id(col_id), m_col_name(col_name)
{}
};
Glib::RefPtr<Gio::ListStore<ModelColumns>> m_ListStore;
Varje objekt i en modell har en position vilken är det teckenlösa heltalet som beskriver var i modellen som objektet finns. Det första objektet i en modell har position 0. Positionen för ett objekt kan förstås ändras då andra objekt läggs till eller tas bort från modellen.