switch to a touch selector list for the tasks
authorTravis Reitter <treitter@torizo.(none)>
Sun, 27 Sep 2009 21:56:43 +0000 (14:56 -0700)
committerTravis Reitter <treitter@gmail.com>
Fri, 4 Dec 2009 06:01:12 +0000 (22:01 -0800)
src/milk-main-window.c

index 041be52..2b0dfee 100644 (file)
@@ -42,10 +42,16 @@ struct _MilkMainWindowPrivate
 
 /* FIXME: cut this */
 enum {
-        TASK_COLUMN_ID,
-        TASK_COLUMN_PRIORITY,
-        TASK_COLUMN_TITLE,
-        N_COLUMNS
+        TASK_MODEL_COLUMN_ID,
+        TASK_MODEL_COLUMN_PRIORITY,
+        TASK_MODEL_COLUMN_TITLE,
+        N_MODEL_COLUMNS
+};
+
+/* FIXME: cut this */
+enum {
+        TASK_VIEW_COLUMN_TITLE,
+        N_VIEW_COLUMNS
 };
 
 /* FIXME: relocate this */
@@ -329,7 +335,7 @@ create_task_model ()
         GtkTreeIter iter;
         gint i;
 
-        list_store = gtk_list_store_new (N_COLUMNS,
+        list_store = gtk_list_store_new (N_MODEL_COLUMNS,
                                          G_TYPE_INT,
                                          G_TYPE_INT,
                                          G_TYPE_STRING);
@@ -338,9 +344,9 @@ create_task_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,
+                                    TASK_MODEL_COLUMN_ID, tasks[i].id,
+                                    TASK_MODEL_COLUMN_PRIORITY, tasks[i].priority,
+                                    TASK_MODEL_COLUMN_TITLE, tasks[i].title,
                                    -1);
         }
 
@@ -353,11 +359,9 @@ milk_main_window_constructed (GObject* object)
         MilkMainWindow *self = MILK_MAIN_WINDOW (object);
         MilkMainWindowPrivate *priv = MILK_MAIN_WINDOW_PRIVATE (object);
         GtkWidget *w;
-        GtkWidget *pannable;
         GtkTreeModel *model;
         GtkCellRenderer *renderer;
-        GtkTreeViewColumn *col;
-        GtkTreeSelection *selection;
+        HildonTouchSelectorColumn *col;
 
         w = gtk_vbox_new (FALSE, HILDON_MARGIN_DEFAULT);
         gtk_container_add (GTK_CONTAINER (self), w);
@@ -378,52 +382,33 @@ milk_main_window_constructed (GObject* object)
         /*
          * Task List
          */
-        w = hildon_pannable_area_new ();
-        gtk_box_pack_start (GTK_BOX (priv->main_vbox), w, TRUE, TRUE, 0);
-        pannable = w;
-
         /* FIXME: create a new MilkTaskModel class that syncs with the cached
          * tasks */
         model = create_task_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);
+        w = hildon_touch_selector_new ();
 
         renderer = gtk_cell_renderer_text_new ();
-        /* 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 ();
-        /* 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);
-
+        col = hildon_touch_selector_append_column (HILDON_TOUCH_SELECTOR (w),
+                        model, renderer,
+                        "text", TASK_MODEL_COLUMN_TITLE,
+                        NULL);
         g_object_unref (model);
 
-        hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (pannable),
-                        w);
+        hildon_touch_selector_column_set_text_column (col,
+                        TASK_MODEL_COLUMN_TITLE);
+        hildon_touch_selector_set_column_selection_mode (
+                        HILDON_TOUCH_SELECTOR (w),
+                        HILDON_TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE);
+        hildon_touch_selector_set_hildon_ui_mode (HILDON_TOUCH_SELECTOR (w),
+                        HILDON_UI_MODE_EDIT);
+        hildon_touch_selector_unselect_all (HILDON_TOUCH_SELECTOR (w),
+                        TASK_VIEW_COLUMN_TITLE);
+
+        gtk_box_pack_start (GTK_BOX (priv->main_vbox), w, TRUE, TRUE, 0);
+        g_object_set (w, "can-focus", TRUE, NULL);
         gtk_widget_grab_focus (w);
         priv->task_view = w;