#ifndef MODEL_H
#define MODEL_H
#include "../ui/toolkit.h"
#include "../common/context.h"
#include "../ui/tree.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct UiListModel UiListModel;
struct UiListModel {
GObject object;
UiObject *obj;
UiModel *model;
UiVar *var;
GType *columntypes;
int numcolumns;
int stamp;
};
void ui_list_init();
UiListModel* ui_list_model_new(UiObject *obj, UiVar *var, UiModel *info);
void ui_list_model_dispose(GObject *obj);
void ui_list_model_finalize(GObject *obj);
GtkTreeModelFlags ui_list_model_get_flags(GtkTreeModel *tree_model);
gint ui_list_model_get_n_columns(GtkTreeModel *tree_model);
GType ui_list_model_get_column_type(GtkTreeModel *tree_model, gint index);
gboolean ui_list_model_get_iter(
GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreePath *path);
GtkTreePath* ui_list_model_get_path(
GtkTreeModel *tree_model,
GtkTreeIter *iter);
void ui_list_model_get_value(
GtkTreeModel *tree_model,
GtkTreeIter *iter,
gint column,
GValue *value);
gboolean ui_list_model_iter_next(
GtkTreeModel *tree_model,
GtkTreeIter *iter);
gboolean ui_list_model_iter_children(
GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreeIter *parent);
gboolean ui_list_model_iter_has_child(
GtkTreeModel *tree_model,
GtkTreeIter *iter);
gint ui_list_model_iter_n_children(
GtkTreeModel *tree_model,
GtkTreeIter *iter);
gboolean ui_list_model_iter_nth_child(
GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreeIter *parent,
gint n);
gboolean ui_list_model_iter_parent(
GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreeIter *child);
gboolean ui_list_model_drag_data_received(
GtkTreeDragDest *drag_dest,
GtkTreePath *dest,
GtkSelectionData *selection_data);
gboolean ui_list_model_row_drop_possible(
GtkTreeDragDest *drag_dest,
GtkTreePath *dest_path,
GtkSelectionData *selection_data);
gboolean ui_list_model_row_draggable(
GtkTreeDragSource *drag_source,
GtkTreePath *path);
gboolean ui_list_model_drag_data_get(
GtkTreeDragSource *drag_source,
GtkTreePath *path,
GtkSelectionData *selection_data);
gboolean ui_list_model_drag_data_delete(
GtkTreeDragSource *drag_source,
GtkTreePath *path);
#ifdef __cplusplus
}
#endif
#endif