ocarina/gui/model.c

85 lines
1.8 KiB
C
Raw Normal View History

/*
* Copyright 2016 (c) Anna Schumaker.
*/
#include <gui/model.h>
static const GTypeInfo queue_type_info;
static const GInterfaceInfo queue_tree_model;
static GObjectClass *parent_class = NULL;
static GtkTreeModelFlags _queue_model_get_flags(GtkTreeModel *model)
{
return GTK_TREE_MODEL_LIST_ONLY;
}
static void _queue_model_init(GuiQueueModel *model)
{
model->gqm_stamp = g_random_int();
}
static void _queue_model_finalize(GObject *object)
{
parent_class->finalize(object);
}
static void _queue_model_class_init(GuiQueueModelClass *class)
{
GObjectClass *object_class;
parent_class = g_type_class_peek_parent(class);
object_class = (GObjectClass *)class;
object_class->finalize = _queue_model_finalize;
}
static void _queue_tree_model_init(GtkTreeModelIface *iface)
{
iface->get_flags = _queue_model_get_flags;
}
GuiQueueModel *gui_queue_model_new()
{
GuiQueueModel *model = g_object_new(GUI_QUEUE_MODEL_TYPE, NULL);
g_assert(model != NULL);
return model;
}
GType gui_queue_model_get_type()
{
static GType queue_type = 0;
if (queue_type == 0) {
queue_type = g_type_register_static(G_TYPE_OBJECT,
"GuiQueueModel",
&queue_type_info,
(GTypeFlags)0);
g_type_add_interface_static(queue_type,
GTK_TYPE_TREE_MODEL,
&queue_tree_model);
}
return queue_type;
}
static const GTypeInfo queue_type_info = {
.class_size = sizeof(GuiQueueModelClass),
.base_init = NULL,
.base_finalize = NULL,
.class_init = (GClassInitFunc)_queue_model_class_init,
.class_finalize = NULL,
.class_data = NULL,
.instance_size = sizeof(GuiQueueModel),
.n_preallocs = 0,
.instance_init = (GInstanceInitFunc)_queue_model_init,
};
static const GInterfaceInfo queue_tree_model = {
.interface_init = (GInterfaceInitFunc)_queue_tree_model_init,
.interface_finalize = NULL,
.interface_data = NULL,
};