X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-msg-edit-window.c;h=14538699428b995630c00f5e8954f3d8f5809860;hp=71ca3b27f66639f2cb233515e9ea4f76bb1575dc;hb=882c7684fc9fe0b7e011b78da855a59f941a90f1;hpb=afa6ecf77ada7b00594a0960872620c72bdb323c diff --git a/src/hildon2/modest-msg-edit-window.c b/src/hildon2/modest-msg-edit-window.c index 71ca3b2..1453869 100644 --- a/src/hildon2/modest-msg-edit-window.c +++ b/src/hildon2/modest-msg-edit-window.c @@ -92,7 +92,7 @@ #define IMAGE_MAX_WIDTH 560 #define DEFAULT_FONT_SCALE 1.5 #define ATTACHMENT_BUTTON_WIDTH 118 -#define MAX_FROM_VALUE 48 +#define MAX_FROM_VALUE 36 #define MAX_BODY_LENGTH 4096 static gboolean is_wp_text_buffer_started = FALSE; @@ -267,7 +267,7 @@ struct _ModestMsgEditWindowPrivate { GtkWidget *attachments_view; GtkWidget *priority_icon; GtkWidget *subject_box; - GtkWidget *add_attachment_button; + GtkWidget *send_button; GtkWidget *cc_caption; GtkWidget *bcc_caption; @@ -738,8 +738,6 @@ connect_signals (ModestMsgEditWindow *obj) g_signal_connect_swapped (G_OBJECT (priv->bcc_field), "open-addressbook", G_CALLBACK (modest_msg_edit_window_open_addressbook), obj); - g_signal_connect (G_OBJECT (priv->add_attachment_button), "clicked", - G_CALLBACK (modest_msg_edit_window_add_attachment_clicked), obj); g_signal_connect (G_OBJECT (priv->from_field), "value-changed", G_CALLBACK (from_field_changed), obj); @@ -789,7 +787,6 @@ init_window (ModestMsgEditWindow *obj) { GtkWidget *to_caption, *subject_caption; GtkWidget *main_vbox; - GtkWidget *add_attachment_align; ModestMsgEditWindowPrivate *priv; GtkActionGroup *action_group; ModestWindowPrivate *parent_priv; @@ -798,12 +795,13 @@ init_window (ModestMsgEditWindow *obj) GtkSizeGroup *title_size_group; GtkSizeGroup *value_size_group; - GtkWidget *attachment_icon; GtkWidget *window_box; GtkWidget *window_align; #if (GTK_MINOR_VERSION >= 10) GdkAtom deserialize_type; #endif + GtkWidget *from_send_hbox; + GtkWidget *send_icon; priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE(obj); parent_priv = MODEST_WINDOW_GET_PRIVATE (obj); @@ -870,13 +868,18 @@ init_window (ModestMsgEditWindow *obj) HILDON_BUTTON_ARRANGEMENT_HORIZONTAL, NULL, g_str_equal); modest_selector_picker_set_value_max_chars (MODEST_SELECTOR_PICKER (priv->from_field), MAX_FROM_VALUE); - modest_maemo_utils_set_hbutton_layout (title_size_group, value_size_group, + modest_maemo_utils_set_hbutton_layout (title_size_group, NULL, _("mail_va_from"), priv->from_field); - hildon_button_set_title_alignment (HILDON_BUTTON (priv->from_field), 0.5, 0.5); + hildon_button_set_alignment (HILDON_BUTTON (priv->from_field), 0.0, 0.5, 1.0, 1.0); + hildon_button_set_title_alignment (HILDON_BUTTON (priv->from_field), 0.0, 0.5); + hildon_button_set_value_alignment (HILDON_BUTTON (priv->from_field), 1.0, 0.5); priv->to_field = modest_recpt_editor_new (); priv->cc_field = modest_recpt_editor_new (); priv->bcc_field = modest_recpt_editor_new (); + modest_recpt_editor_set_show_abook_button (MODEST_RECPT_EDITOR (priv->to_field), FALSE); + modest_recpt_editor_set_show_abook_button (MODEST_RECPT_EDITOR (priv->cc_field), FALSE); + modest_recpt_editor_set_show_abook_button (MODEST_RECPT_EDITOR (priv->bcc_field), FALSE); priv->subject_box = gtk_hbox_new (FALSE, MODEST_MARGIN_NONE); priv->priority_icon = gtk_image_new (); gtk_box_pack_start (GTK_BOX (priv->subject_box), priv->priority_icon, FALSE, FALSE, 0); @@ -886,16 +889,6 @@ init_window (ModestMsgEditWindow *obj) hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->subject_field), HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_AUTOCAP); gtk_box_pack_start (GTK_BOX (priv->subject_box), priv->subject_field, TRUE, TRUE, 0); - priv->add_attachment_button = hildon_button_new (MODEST_EDITABLE_SIZE, HILDON_BUTTON_ARRANGEMENT_VERTICAL); - gtk_widget_set_size_request (priv->add_attachment_button, ATTACHMENT_BUTTON_WIDTH, -1); - GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (priv->add_attachment_button), GTK_CAN_FOCUS); - gtk_button_set_focus_on_click (GTK_BUTTON (priv->add_attachment_button), FALSE); - attachment_icon = gtk_image_new_from_icon_name (MODEST_HEADER_ICON_ATTACH, HILDON_ICON_SIZE_FINGER); - hildon_button_set_image (HILDON_BUTTON (priv->add_attachment_button), attachment_icon); - add_attachment_align = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); - gtk_alignment_set_padding (GTK_ALIGNMENT (add_attachment_align), 0, 0, MODEST_MARGIN_DEFAULT, 0); - gtk_container_add (GTK_CONTAINER (add_attachment_align), priv->add_attachment_button); - gtk_box_pack_start (GTK_BOX (priv->subject_box), add_attachment_align, FALSE, FALSE, 0); priv->attachments_view = modest_attachments_view_new (NULL); modest_attachments_view_set_style (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), MODEST_ATTACHMENTS_VIEW_STYLE_NO_FOCUS); @@ -919,13 +912,19 @@ init_window (ModestMsgEditWindow *obj) priv->attachments_view, HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_AUTO_HEIGHT); - /* modest_recpt_editor_set_field_size_group (MODEST_RECPT_EDITOR (priv->to_field), value_size_group); */ - /* modest_recpt_editor_set_field_size_group (MODEST_RECPT_EDITOR (priv->cc_field), value_size_group); */ - /* modest_recpt_editor_set_field_size_group (MODEST_RECPT_EDITOR (priv->bcc_field), value_size_group); */ + priv->send_button = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT); + send_icon = gtk_image_new_from_icon_name (MODEST_TOOLBAR_ICON_MAIL_SEND, HILDON_ICON_SIZE_FINGER); + gtk_container_add (GTK_CONTAINER (priv->send_button), send_icon); + gtk_widget_set_size_request (GTK_WIDGET (priv->send_button), 118, -1); + g_object_unref (title_size_group); g_object_unref (value_size_group); - gtk_box_pack_start (GTK_BOX (priv->header_box), priv->from_field, FALSE, FALSE, 0); + from_send_hbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (from_send_hbox), priv->from_field, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (from_send_hbox), priv->send_button, FALSE, FALSE, 0); + + gtk_box_pack_start (GTK_BOX (priv->header_box), from_send_hbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (priv->header_box), to_caption, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (priv->header_box), priv->cc_caption, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (priv->header_box), priv->bcc_caption, FALSE, FALSE, 0); @@ -1644,6 +1643,9 @@ modest_msg_edit_window_new (TnyMsg *msg, const gchar *account_name, const gchar modest_dimming_rules_group_add_widget_rule (toolbar_rules_group, priv->font_face_toolitem, G_CALLBACK (modest_ui_dimming_rules_on_set_style), MODEST_WINDOW (obj)); + modest_dimming_rules_group_add_widget_rule (toolbar_rules_group, priv->send_button, + G_CALLBACK (modest_ui_dimming_rules_on_send), + MODEST_WINDOW (obj)); /* Insert dimming rules group for this window */ modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, toolbar_rules_group); modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, clipboard_rules_group); @@ -1892,16 +1894,20 @@ modest_msg_edit_window_set_format (ModestMsgEditWindow *self, ModestMsgEditFormat format) { ModestMsgEditWindowPrivate *priv; + ModestWindowPrivate *parent_priv; g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (self)); priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self); + parent_priv = MODEST_WINDOW_GET_PRIVATE (self); switch (format) { case MODEST_MSG_EDIT_FORMAT_HTML: wp_text_buffer_enable_rich_text (WP_TEXT_BUFFER (priv->text_buffer), TRUE); + if (parent_priv->toolbar) gtk_widget_show (parent_priv->toolbar); break; case MODEST_MSG_EDIT_FORMAT_TEXT: wp_text_buffer_enable_rich_text (WP_TEXT_BUFFER (priv->text_buffer), FALSE); + if (parent_priv->toolbar) gtk_widget_hide (parent_priv->toolbar); break; default: g_return_if_reached (); @@ -2929,17 +2935,27 @@ modest_msg_edit_window_show_toolbar (ModestWindow *self, gboolean show_toolbar) { ModestWindowPrivate *parent_priv; + ModestMsgEditWindowPrivate *priv; g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (self)); + priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self); parent_priv = MODEST_WINDOW_GET_PRIVATE(self); /* We can not just use the code of modest_msg_edit_window_setup_toolbar because it has a mixture of both initialization and creation code. */ - if (show_toolbar) - gtk_widget_show (GTK_WIDGET (parent_priv->toolbar)); - else + if (show_toolbar) { + gint current_format; + current_format = wp_text_buffer_is_rich_text (WP_TEXT_BUFFER (priv->text_buffer)) + ? MODEST_FILE_FORMAT_FORMATTED_TEXT : MODEST_FILE_FORMAT_PLAIN_TEXT; + if (current_format == MODEST_FILE_FORMAT_PLAIN_TEXT) { + gtk_widget_hide (GTK_WIDGET (parent_priv->toolbar)); + } else { + gtk_widget_show (GTK_WIDGET (parent_priv->toolbar)); + } + } else { gtk_widget_hide (GTK_WIDGET (parent_priv->toolbar)); + } } void @@ -3004,6 +3020,12 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window, current_format = wp_text_buffer_is_rich_text (WP_TEXT_BUFFER (priv->text_buffer)) ? MODEST_FILE_FORMAT_FORMATTED_TEXT : MODEST_FILE_FORMAT_PLAIN_TEXT; + gtk_widget_set_no_show_all (GTK_WIDGET (parent_priv->toolbar), TRUE); + + if (file_format == MODEST_FILE_FORMAT_PLAIN_TEXT) { + if (parent_priv->toolbar) gtk_widget_hide (parent_priv->toolbar); + } + if (current_format != file_format) { switch (file_format) { case MODEST_FILE_FORMAT_FORMATTED_TEXT: @@ -3019,6 +3041,7 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window, gtk_widget_destroy (dialog); if (response == GTK_RESPONSE_OK) { wp_text_buffer_enable_rich_text (WP_TEXT_BUFFER (priv->text_buffer), FALSE); + if (parent_priv->toolbar) gtk_widget_hide (parent_priv->toolbar); } else { GtkToggleAction *action = GTK_TOGGLE_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/FileFormatFormattedTextMenu")); modest_utils_toggle_action_set_active_block_notify (action, TRUE); @@ -4245,6 +4268,9 @@ setup_menu (ModestMsgEditWindow *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), _("TODO: add attachment"), NULL, + APP_MENU_CALLBACK (modest_msg_edit_window_add_attachment_clicked), + NULL); 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)); @@ -4256,6 +4282,13 @@ setup_menu (ModestMsgEditWindow *self) NULL); } +static void +emit_open_addressbook (GtkButton *button, + ModestRecptEditor *editor) +{ + g_signal_emit_by_name (G_OBJECT (editor), "open-addressbook"); +} + static GtkWidget * _create_addressbook_box (GtkSizeGroup *title_size_group, GtkSizeGroup *value_size_group, const gchar *label, GtkWidget *control) @@ -4263,6 +4296,7 @@ _create_addressbook_box (GtkSizeGroup *title_size_group, GtkSizeGroup *value_siz GtkWidget *abook_button; GtkWidget *align; GtkWidget *box; + GtkWidget *label_widget; box = gtk_hbox_new (FALSE, 0); @@ -4270,15 +4304,20 @@ _create_addressbook_box (GtkSizeGroup *title_size_group, GtkSizeGroup *value_siz gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, 0, MODEST_MARGIN_DEFAULT); abook_button = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT); - gtk_button_set_label (GTK_BUTTON (abook_button), label); + label_widget = gtk_label_new (label); + gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (abook_button), label_widget); gtk_container_add (GTK_CONTAINER (align), abook_button); gtk_box_pack_start (GTK_BOX (box), align, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (box), control, TRUE, TRUE, 0); if (title_size_group) - gtk_size_group_add_widget (title_size_group, abook_button); + gtk_size_group_add_widget (title_size_group, label_widget); if (value_size_group) gtk_size_group_add_widget (value_size_group, control); + + g_signal_connect (G_OBJECT (abook_button), "clicked", + G_CALLBACK (emit_open_addressbook), control); return box; }