+
+
+static void add_button_to_menu (ModestMsgEditWindow *self,
+ HildonAppMenu *menu,
+ GtkButton *button,
+ ModestDimmingRulesGroup *group,
+ GCallback dimming_callback)
+{
+ if (dimming_callback)
+ modest_dimming_rules_group_add_widget_rule (group,
+ GTK_WIDGET (button),
+ dimming_callback,
+ MODEST_WINDOW (self));
+ hildon_app_menu_append (menu, GTK_BUTTON (button));
+}
+
+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);
+ add_button_to_menu (self, menu, GTK_BUTTON (button), group, dimming_callback);
+}
+
+static void
+on_cc_button_toggled (HildonCheckButton *button,
+ ModestMsgEditWindow *window)
+{
+ g_return_if_fail (MODEST_MSG_EDIT_WINDOW (window));
+
+ modest_msg_edit_window_show_cc (MODEST_MSG_EDIT_WINDOW (window),
+ hildon_check_button_get_active (button));
+}
+
+static void
+on_bcc_button_toggled (HildonCheckButton *button,
+ ModestMsgEditWindow *window)
+{
+ g_return_if_fail (MODEST_MSG_EDIT_WINDOW (window));
+
+ modest_msg_edit_window_show_bcc (MODEST_MSG_EDIT_WINDOW (window),
+ hildon_check_button_get_active (button));
+}
+
+static void
+on_find_toolbar_button_toggled (HildonCheckButton *button,
+ ModestMsgEditWindow *window)
+{
+ g_return_if_fail (MODEST_MSG_EDIT_WINDOW (window));
+ modest_msg_edit_window_toggle_find_toolbar (MODEST_MSG_EDIT_WINDOW (window),
+ hildon_check_button_get_active (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, G_CALLBACK (modest_ui_dimming_rules_on_undo));
+
+ priv->cc_button = hildon_check_button_new (0);
+ gtk_button_set_label (GTK_BUTTON (priv->cc_button), _("mcen_me_editor_showcc"));
+ hildon_check_button_set_active (HILDON_CHECK_BUTTON (priv->cc_button),
+ FALSE);
+ add_button_to_menu (self, HILDON_APP_MENU (priv->app_menu), GTK_BUTTON (priv->cc_button),
+ group, NULL);
+ g_signal_connect (G_OBJECT (priv->cc_button), "toggled",
+ G_CALLBACK (on_cc_button_toggled), (gpointer) self);
+ priv->bcc_button = hildon_check_button_new (0);
+ gtk_button_set_label (GTK_BUTTON (priv->bcc_button), _("mcen_me_editor_showbcc"));
+ hildon_check_button_set_active (HILDON_CHECK_BUTTON (priv->bcc_button),
+ FALSE);
+ add_button_to_menu (self, HILDON_APP_MENU (priv->app_menu), GTK_BUTTON (priv->bcc_button),
+ group, NULL);
+ g_signal_connect (G_OBJECT (priv->bcc_button), "toggled",
+ G_CALLBACK (on_bcc_button_toggled), (gpointer) self);
+
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("mcen_me_editor_attach_inlineimage"),
+ G_CALLBACK (modest_ui_actions_on_insert_image),
+ group, G_CALLBACK (modest_ui_dimming_rules_on_set_style));
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("mcen_me_inbox_remove_attachments"),
+ G_CALLBACK (modest_ui_actions_on_remove_attachments),
+ group, G_CALLBACK (modest_ui_dimming_rules_on_editor_remove_attachment));
+ add_to_menu (self, HILDON_APP_MENU (priv->app_menu), _("TODO: Message settings..."),
+ G_CALLBACK (on_message_settings),
+ group, NULL);
+ priv->find_toolbar_button = hildon_check_button_new (0);
+ gtk_button_set_label (GTK_BUTTON (priv->find_toolbar_button), _("mcen_me_viewer_find"));
+ hildon_check_button_set_active (HILDON_CHECK_BUTTON (priv->find_toolbar_button),
+ FALSE);
+ add_button_to_menu (self, HILDON_APP_MENU (priv->app_menu), GTK_BUTTON (priv->find_toolbar_button),
+ group, NULL);
+ g_signal_connect (G_OBJECT (priv->find_toolbar_button), "toggled",
+ G_CALLBACK (on_find_toolbar_button_toggled), (gpointer) self);
+
+ 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);
+}
+