+ GtkWidget *dialog;
+ GtkWidget *vbox;
+ GtkWidget *priority_hbox;
+ GtkWidget *high_toggle, *medium_toggle, *low_toggle;
+ GtkWidget *captioned;
+ GtkSizeGroup *title_sizegroup, *value_sizegroup;
+ GtkWidget *format_picker;
+ GtkWidget *format_selector;
+ ModestMsgEditWindowPrivate *priv;
+ MessageSettingsHelper helper = {0,};
+ ModestMsgEditFormatState *format_state = NULL;
+
+ g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
+ helper.window = window;
+ helper.priority_group = NULL;
+
+ title_sizegroup = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+ value_sizegroup = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+
+ dialog = gtk_dialog_new ();
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox);
+ gtk_widget_show (vbox);
+
+ /* Priority toggles */
+ priority_hbox = gtk_hbox_new (TRUE, 0);
+ high_toggle = hildon_gtk_toggle_button_new (HILDON_SIZE_FINGER_HEIGHT);
+ gtk_button_set_label (GTK_BUTTON (high_toggle), _("mcen_me_editor_priority_high"));
+ helper.priority_group = g_slist_prepend (helper.priority_group, high_toggle);
+ g_object_set_data (G_OBJECT (high_toggle), "priority", GINT_TO_POINTER (TNY_HEADER_FLAG_HIGH_PRIORITY));
+ medium_toggle = hildon_gtk_toggle_button_new (HILDON_SIZE_FINGER_HEIGHT);
+ gtk_button_set_label (GTK_BUTTON (medium_toggle), _("mcen_me_editor_priority_normal"));
+ helper.priority_group = g_slist_prepend (helper.priority_group, medium_toggle);
+ g_object_set_data (G_OBJECT (medium_toggle), "priority", GINT_TO_POINTER (TNY_HEADER_FLAG_NORMAL_PRIORITY));
+ low_toggle = hildon_gtk_toggle_button_new (HILDON_SIZE_FINGER_HEIGHT);
+ gtk_button_set_label (GTK_BUTTON (low_toggle), _("mcen_me_editor_priority_low"));
+ helper.priority_group = g_slist_prepend (helper.priority_group, low_toggle);
+ g_object_set_data (G_OBJECT (low_toggle), "priority", GINT_TO_POINTER (TNY_HEADER_FLAG_LOW_PRIORITY));
+ gtk_box_pack_start (GTK_BOX (priority_hbox), low_toggle, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (priority_hbox), medium_toggle, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (priority_hbox), high_toggle, TRUE, TRUE, 0);
+ gtk_widget_show_all (priority_hbox);
+ captioned = modest_maemo_utils_create_captioned (title_sizegroup, value_sizegroup,
+ _("mcen_me_editor_message_priority"), priority_hbox);
+ gtk_widget_show (captioned);
+ gtk_box_pack_start (GTK_BOX (vbox), captioned, FALSE, FALSE, 0);
+
+ /* format selector */
+ format_selector = hildon_touch_selector_new_text ();
+ hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (format_selector), _("mcen_me_editor_plain_text"));
+ hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (format_selector), _("mcen_me_editor_formatted_text"));
+ format_picker = hildon_picker_button_new (MODEST_EDITABLE_SIZE,
+ HILDON_BUTTON_ARRANGEMENT_HORIZONTAL);
+ hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (format_picker), HILDON_TOUCH_SELECTOR (format_selector));
+ modest_maemo_utils_set_hbutton_layout (title_sizegroup, value_sizegroup,
+ _("mcen_me_editor_format"), format_picker);
+ gtk_widget_show_all (format_picker);
+ gtk_box_pack_start (GTK_BOX (vbox), format_picker, FALSE, FALSE, 0);
+
+
+ g_object_unref (title_sizegroup);
+ g_object_unref (value_sizegroup);
+ gtk_window_set_title (GTK_WINDOW (dialog), _("mcen_me_message_settings"));
+
+ /* Set current values */
+ switch (priv->priority_flags) {
+ case TNY_HEADER_FLAG_HIGH_PRIORITY:
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (high_toggle), TRUE);
+ break;
+ case TNY_HEADER_FLAG_LOW_PRIORITY:
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (low_toggle), TRUE);
+ break;
+ default:
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (medium_toggle), TRUE);
+ break;
+ }
+
+ switch (modest_msg_edit_window_get_format (window)) {
+ case MODEST_MSG_EDIT_FORMAT_TEXT:
+ hildon_picker_button_set_active (HILDON_PICKER_BUTTON (format_picker), 0);
+ gtk_widget_set_sensitive (helper.align_picker, FALSE);
+ break;
+ case MODEST_MSG_EDIT_FORMAT_HTML:
+ default:
+ hildon_picker_button_set_active (HILDON_PICKER_BUTTON (format_picker), 1);
+ gtk_widget_set_sensitive (helper.align_picker, TRUE);
+ break;
+ }
+
+ format_state = modest_msg_edit_window_get_format_state (window);
+ switch (format_state->justification) {
+ case GTK_JUSTIFY_RIGHT:
+ hildon_picker_button_set_active (HILDON_PICKER_BUTTON (helper.align_picker), 2);
+ break;
+ case GTK_JUSTIFY_CENTER:
+ hildon_picker_button_set_active (HILDON_PICKER_BUTTON (helper.align_picker), 1);
+ break;
+ default:
+ hildon_picker_button_set_active (HILDON_PICKER_BUTTON (helper.align_picker), 0);
+ break;
+
+ }
+ g_free (format_state);
+
+ /* Signal connects */
+ g_signal_connect (G_OBJECT (high_toggle), "toggled", G_CALLBACK (on_priority_toggle), &helper);
+ g_signal_connect (G_OBJECT (medium_toggle), "toggled", G_CALLBACK (on_priority_toggle), &helper);
+ g_signal_connect (G_OBJECT (low_toggle), "toggled", G_CALLBACK (on_priority_toggle), &helper);
+ g_signal_connect (G_OBJECT (format_picker), "value-changed", G_CALLBACK (on_format_picker_value_changed), &helper);
+ g_signal_connect (G_OBJECT (helper.align_picker), "value-changed",
+ G_CALLBACK (on_align_picker_value_changed), &helper);
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+
+ /* Read new values */
+
+ gtk_widget_destroy (dialog);
+ g_slist_free (helper.priority_group);
+
+}
+
+static void on_message_settings (GtkAction *action,
+ ModestMsgEditWindow *window)
+{
+ modest_msg_edit_window_show_msg_settings_dialog (window);
+}
+
+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
+setup_menu (ModestMsgEditWindow *self)
+{
+ ModestMsgEditWindowPrivate *priv = NULL;
+
+ g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW(self));
+
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self);
+
+ /* Settings menu buttons */
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_editor_checknames"), NULL,
+ APP_MENU_CALLBACK (modest_ui_actions_on_check_names),
+ NULL);
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_undo"), "<Ctrl>z",
+ APP_MENU_CALLBACK (modest_ui_actions_on_undo),
+ MODEST_DIMMING_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);
+ modest_hildon2_window_add_button_to_menu (MODEST_HILDON2_WINDOW (self), GTK_BUTTON (priv->cc_button),
+ 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);
+ modest_hildon2_window_add_button_to_menu (MODEST_HILDON2_WINDOW (self), GTK_BUTTON (priv->bcc_button),
+ NULL);
+ g_signal_connect (G_OBJECT (priv->bcc_button), "toggled",
+ G_CALLBACK (on_bcc_button_toggled), (gpointer) self);
+
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_editor_attach_inlineimage"), NULL,
+ APP_MENU_CALLBACK (modest_ui_actions_on_insert_image),
+ MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_set_style));
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_remove_attachments"), NULL,
+ APP_MENU_CALLBACK (modest_ui_actions_on_remove_attachments),
+ MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_editor_remove_attachment));
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_message_settings"), NULL,
+ APP_MENU_CALLBACK (on_message_settings),
+ NULL);
+ modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_viewer_find"), "<Ctrl>f",
+ APP_MENU_CALLBACK (modest_ui_actions_on_toggle_find_in_page),
+ NULL);