From a8dbe887ff0dd069a36bcd7946d3d5ab73ed1413 Mon Sep 17 00:00:00 2001 From: Travis Reitter Date: Thu, 24 Sep 2009 19:35:20 -0700 Subject: [PATCH] create hard-coded list store for the tree model to see how it works out --- src/milk-main-window.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/src/milk-main-window.c b/src/milk-main-window.c index e9bb64e..9778b69 100644 --- a/src/milk-main-window.c +++ b/src/milk-main-window.c @@ -40,6 +40,30 @@ struct _MilkMainWindowPrivate GtkWidget *action_bar; }; +/* FIXME: cut this */ +enum { + TASK_COLUMN_ID, + TASK_COLUMN_PRIORITY, + TASK_COLUMN_TITLE, + N_COLUMNS +}; + +/* FIXME: relocate this */ +typedef struct { + gint id; + gint priority; + char *title; +} MilkTask; + +/* FIXME: don't hard-code this */ +static MilkTask tasks[] = { + { 0, 1, "Remember the milk"}, + { 2, 1, "File taxes"}, + { 6, 3, "Get a haircut"}, + { 9, 2, "Keep it real"}, + { 5, 3, "Invent smellovision"}, +}; + static void milk_main_window_get_property (GObject *object, guint property_id, @@ -297,6 +321,32 @@ contact_column_render_func (GtkCellLayout *cell_layout, g_object_unref (task); } +/* FIXME: set up a MilkListStore instead */ +static GtkTreeModel* +create_task_model () +{ + GtkListStore *list_store; + GtkTreeIter iter; + gint i; + + list_store = gtk_list_store_new (N_COLUMNS, + G_TYPE_INT, + G_TYPE_INT, + G_TYPE_STRING); + + /* Populate model */ + for (i = 0; i < G_N_ELEMENTS (tasks); i++) { + gtk_list_store_append (list_store, &iter); + gtk_list_store_set (list_store, &iter, + TASK_COLUMN_ID, tasks[i].id, + TASK_COLUMN_PRIORITY, tasks[i].priority, + TASK_COLUMN_TITLE, tasks[i].title, + -1); + } + + return GTK_TREE_MODEL (list_store); +} + static void milk_main_window_constructed (GObject* object) { @@ -304,6 +354,9 @@ milk_main_window_constructed (GObject* object) MilkMainWindowPrivate *priv = MILK_MAIN_WINDOW_PRIVATE (object); GtkWidget *w; GtkWidget *pannable; + GtkTreeModel *model; + GtkCellRenderer *renderer; + GtkTreeViewColumn *col; w = gtk_vbox_new (FALSE, HILDON_MARGIN_DEFAULT); gtk_container_add (GTK_CONTAINER (self), w); @@ -330,7 +383,19 @@ milk_main_window_constructed (GObject* object) /* FIXME: attach the model (create a new MilkTaskModel class that syncs * with the cached tasks) */ - w = gtk_tree_view_new (); + model = create_task_model (); + w = gtk_tree_view_new_with_model (model); + + renderer = gtk_cell_renderer_text_new (); + col = gtk_tree_view_column_new_with_attributes ("Priority", renderer, + "text", TASK_COLUMN_PRIORITY, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (w), col); + renderer = gtk_cell_renderer_text_new (); + col = gtk_tree_view_column_new_with_attributes ("Title", renderer, + "text", TASK_COLUMN_TITLE, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (w), col); + g_object_unref (model); + hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (pannable), w); gtk_widget_grab_focus (w); -- 1.7.9.5