+
+static void add_to_menu (ModestMsgEditWindow *self,
+ HildonAppMenu *menu,
+ gchar *label,
+ GCallback callback,
+ ModestDimmingRulesGroup *group,
+ GCallback dimming_callback)
+{
+ GtkWidget *button;
+
+ button = gtk_button_new_with_label (label);
+ g_signal_connect_after (G_OBJECT (button), "clicked",
+ callback, (gpointer) self);
+ if (dimming_callback)
+ modest_dimming_rules_group_add_widget_rule (group,
+ button,
+ dimming_callback,
+ MODEST_WINDOW (self));
+ hildon_app_menu_append (menu, GTK_BUTTON (button));
+}
+
+static void
+setup_menu (ModestMsgEditWindow *self, ModestDimmingRulesGroup *group)
+{
+ ModestMsgEditWindowPrivate *priv = NULL;
+
+ g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW(self));
+
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self);
+
+ priv->app_menu = hildon_app_menu_new ();
+
+ /* Settings menu buttons */
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("mcen_me_editor_checknames"),
+ G_CALLBACK (modest_ui_actions_on_check_names),
+ group, NULL);
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("mcen_me_inbox_undo"),
+ G_CALLBACK (modest_ui_actions_on_undo),
+ group, NULL);
+
+ /* TODO: Show/Hide CC/BCC check buttons */
+
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("mcen_me_editor_attach_inlineimage"),
+ G_CALLBACK (modest_ui_actions_on_insert_image),
+ group, NULL);
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("mcen_me_inbox_remove_attachments"),
+ G_CALLBACK (modest_ui_actions_on_remove_attachments),
+ group, NULL);
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("TODO: Message settings..."),
+ G_CALLBACK (on_message_settings),
+ group, NULL);
+
+ /* TODO: find in toolbar check button */
+
+ hildon_stackable_window_set_main_menu (HILDON_STACKABLE_WINDOW (self),
+ HILDON_APP_MENU (priv->app_menu));
+}
+
+static gboolean
+modest_msg_edit_window_toggle_menu (HildonWindow *window,
+ guint button,
+ guint32 time)
+{
+ ModestMsgEditWindowPrivate *priv = NULL;
+
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
+
+ modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (window));
+
+ gtk_widget_queue_resize (priv->app_menu);
+
+ return HILDON_WINDOW_CLASS (parent_class)->toggle_menu (window, button, time);
+}
+