From c38209886b128952641236506b3f3a549b9e602e Mon Sep 17 00:00:00 2001 From: Travis Reitter Date: Sun, 27 Sep 2009 14:56:43 -0700 Subject: [PATCH] switch to a touch selector list for the tasks --- src/milk-main-window.c | 79 ++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 47 deletions(-) diff --git a/src/milk-main-window.c b/src/milk-main-window.c index 041be52..2b0dfee 100644 --- a/src/milk-main-window.c +++ b/src/milk-main-window.c @@ -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; -- 1.7.9.5