Use an app menu for the actions instead of a row of buttons
authorTravis Reitter <treitter@torizo.(none)>
Sun, 27 Sep 2009 22:22:54 +0000 (15:22 -0700)
committerTravis Reitter <treitter@gmail.com>
Fri, 4 Dec 2009 06:01:12 +0000 (22:01 -0800)
src/milk-main-window.c

index 2b0dfee..8e4d593 100644 (file)
@@ -37,7 +37,6 @@ struct _MilkMainWindowPrivate
 
         GtkWidget *new_task_entry;
         GtkWidget *task_view;
-        GtkWidget *action_bar;
 };
 
 /* FIXME: cut this */
@@ -353,6 +352,59 @@ create_task_model ()
         return GTK_TREE_MODEL (list_store);
 }
 
+static HildonAppMenu*
+create_menu (gpointer user_data)
+{
+        HildonAppMenu *menu;
+        GtkWidget *w;
+
+        menu = HILDON_APP_MENU (hildon_app_menu_new ());
+
+        w = hildon_button_new_with_text (
+                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
+                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+                        _("Complete"), "");
+        g_signal_connect (w, "clicked", G_CALLBACK (complete_clicked_cb),
+                        user_data);
+        hildon_app_menu_append (menu, GTK_BUTTON (w));
+
+        w = hildon_button_new_with_text (
+                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
+                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+                        _("Edit"), "");
+        g_signal_connect (w, "clicked", G_CALLBACK (edit_clicked_cb),
+                        user_data);
+        hildon_app_menu_append (menu, GTK_BUTTON (w));
+
+        w = hildon_button_new_with_text (
+                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
+                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+                        _("Priority +"), "");
+        g_signal_connect (w, "clicked", G_CALLBACK (priority_plus_clicked_cb),
+                        user_data);
+        hildon_app_menu_append (menu, GTK_BUTTON (w));
+
+        w = hildon_button_new_with_text (
+                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
+                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+                        _("Priority -"), "");
+        g_signal_connect (w, "clicked", G_CALLBACK (priority_minus_clicked_cb),
+                        user_data);
+        hildon_app_menu_append (menu, GTK_BUTTON (w));
+
+        w = hildon_button_new_with_text (
+                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
+                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+                        _("Delete"), "");
+        g_signal_connect (w, "clicked", G_CALLBACK (delete_clicked_cb),
+                        user_data);
+        hildon_app_menu_append (menu, GTK_BUTTON (w));
+
+        gtk_widget_show_all (menu);
+
+        return menu;
+}
+
 static void
 milk_main_window_constructed (GObject* object)
 {
@@ -412,60 +464,7 @@ milk_main_window_constructed (GObject* object)
         gtk_widget_grab_focus (w);
         priv->task_view = w;
 
-        /*
-         * Action Bar
-         */
-        w = gtk_hbox_new (TRUE, HILDON_MARGIN_DEFAULT);
-        gtk_box_pack_start (GTK_BOX (priv->main_vbox), w, FALSE, FALSE, 0);
-        priv->action_bar = w;
-
-        /* FIXME: these are probably better off being icons, for width reasons
-         */
-        w = hildon_button_new_with_text (
-                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
-                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
-                        _("Complete"), "");
-        gtk_container_add (GTK_CONTAINER (priv->action_bar), w);
-        g_signal_connect (w, "clicked", G_CALLBACK (complete_clicked_cb), self);
-
-        w = hildon_button_new_with_text (
-                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
-                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
-                        _("Delete"), "");
-        gtk_container_add (GTK_CONTAINER (priv->action_bar), w);
-        g_signal_connect (w, "clicked", G_CALLBACK (delete_clicked_cb), self);
-
-        w = hildon_button_new_with_text (
-                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
-                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
-                        _("Priority +"), "");
-        gtk_container_add (GTK_CONTAINER (priv->action_bar), w);
-        g_signal_connect (w, "clicked", G_CALLBACK (priority_plus_clicked_cb),
-                        self);
-
-        w = hildon_button_new_with_text (
-                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
-                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
-                        _("Priority -"), "");
-        gtk_container_add (GTK_CONTAINER (priv->action_bar), w);
-        g_signal_connect (w, "clicked", G_CALLBACK (priority_minus_clicked_cb),
-                        self);
-
-        w = hildon_button_new_with_text (
-                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
-                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
-                        _("Edit"), "");
-        gtk_container_add (GTK_CONTAINER (priv->action_bar), w);
-        g_signal_connect (w, "clicked", G_CALLBACK (edit_clicked_cb),
-                        self);
-
-        w = hildon_button_new_with_text (
-                        HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
-                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
-                        _("Edit Tags"), "");
-        gtk_container_add (GTK_CONTAINER (priv->action_bar), w);
-        g_signal_connect (w, "clicked", G_CALLBACK (edit_tags_clicked_cb),
-                        self);
+        hildon_window_set_app_menu (HILDON_WINDOW (self), create_menu (self));
 }
 
 static void