use a tree view for tasks to the best of our ability
authorTravis Reitter <treitter@torizo.(none)>
Sat, 26 Sep 2009 05:18:51 +0000 (22:18 -0700)
committerTravis Reitter <treitter@gmail.com>
Fri, 4 Dec 2009 06:01:12 +0000 (22:01 -0800)
src/milk-main-window.c

index 9778b69..041be52 100644 (file)
@@ -357,6 +357,7 @@ milk_main_window_constructed (GObject* object)
         GtkTreeModel *model;
         GtkCellRenderer *renderer;
         GtkTreeViewColumn *col;
+        GtkTreeSelection *selection;
 
         w = gtk_vbox_new (FALSE, HILDON_MARGIN_DEFAULT);
         gtk_container_add (GTK_CONTAINER (self), w);
@@ -381,19 +382,44 @@ milk_main_window_constructed (GObject* object)
         gtk_box_pack_start (GTK_BOX (priv->main_vbox), w, TRUE, TRUE, 0);
         pannable = w;
 
-        /* FIXME: attach the model (create a new MilkTaskModel class that syncs
-         * with the cached tasks) */
+        /* FIXME: create a new MilkTaskModel class that syncs with the cached
+         * tasks */
         model = create_task_model ();
-        w = gtk_tree_view_new_with_model (model);
+        w = hildon_gtk_tree_view_new_with_model (HILDON_UI_MODE_EDIT, model);
+        gtk_tree_view_set_headers_visible (w, FALSE);
+        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (w));
+        gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
+
+        gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (w), TRUE);
+        gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (w), TRUE);
+
+        col = gtk_tree_view_column_new ();
+        gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
+        gtk_tree_view_column_set_expand (col, TRUE);
+
+        gtk_tree_view_insert_column (GTK_TREE_VIEW (w), col, 0);
+
+        gtk_tree_view_column_set_spacing (col, HILDON_MARGIN_DEFAULT);
 
         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);
+        /* FIXME: unhardcode height */
+        gtk_cell_renderer_set_fixed_size (renderer, -1, 72);
+        gtk_tree_view_column_pack_start (col, renderer, FALSE);
+        gtk_tree_view_column_set_attributes (col, renderer,
+                        "text", TASK_COLUMN_PRIORITY,
+                        NULL);
+
         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);
+        /* FIXME: unhardcode height */
+        gtk_cell_renderer_set_fixed_size (renderer, -1, 72);
+        gtk_tree_view_column_pack_start (col, renderer, TRUE);
+        gtk_tree_view_column_set_attributes (col, renderer,
+                        "text", TASK_COLUMN_TITLE,
+                        NULL);
+        g_object_set (renderer,
+                        "ellipsize", PANGO_ELLIPSIZE_END,
+                        NULL);
+
         g_object_unref (model);
 
         hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (pannable),