create hard-coded list store for the tree model to see how it works out
authorTravis Reitter <treitter@torizo.(none)>
Fri, 25 Sep 2009 02:35:20 +0000 (19:35 -0700)
committerTravis Reitter <treitter@gmail.com>
Fri, 4 Dec 2009 06:01:12 +0000 (22:01 -0800)
src/milk-main-window.c

index e9bb64e..9778b69 100644 (file)
@@ -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);