GtkWidget *font_dialog;
GtkWidget *pannable;
+ guint correct_scroll_idle;
guint scroll_drag_timeout_id;
gdouble last_upper;
priv->sent = FALSE;
priv->scroll_drag_timeout_id = 0;
+ priv->correct_scroll_idle = 0;
priv->last_upper = 0.0;
priv->font_dialog = NULL;
return FALSE;
}
-static void
-correct_scroll_without_drag_check (ModestMsgEditWindow *w, gboolean only_if_focused)
+static gboolean
+correct_scroll_without_drag_check_idle (gpointer userdata)
{
+ ModestMsgEditWindow *w = (ModestMsgEditWindow *) userdata;
ModestMsgEditWindowPrivate *priv;
- GtkTextMark *insert;
GtkTextIter iter;
GdkRectangle rectangle;
gdouble new_value;
gint offset;
+ GtkTextMark *insert;
priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE(w);
-
- if (only_if_focused && !gtk_widget_is_focus (priv->msg_body))
- return;
-
+
insert = gtk_text_buffer_get_insert (priv->text_buffer);
gtk_text_buffer_get_iter_at_mark (priv->text_buffer, &iter, insert);
new_value = (offset + rectangle.y);
hildon_pannable_area_jump_to (HILDON_PANNABLE_AREA (priv->pannable), -1, new_value);
+
+ priv->correct_scroll_idle = 0;
+ return FALSE;
+}
+
+static void
+correct_scroll_without_drag_check (ModestMsgEditWindow *w, gboolean only_if_focused)
+{
+ ModestMsgEditWindowPrivate *priv;
+
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE(w);
+
+ if (only_if_focused && !gtk_widget_is_focus (priv->msg_body))
+ return;
+
+ if (priv->correct_scroll_idle > 0) {
+ return;
+ }
+
+ priv->correct_scroll_idle = g_idle_add ((GSourceFunc) correct_scroll_without_drag_check_idle,
+ (gpointer) w);
}
static void
to_caption = modest_maemo_utils_create_captioned_with_size_type
(title_size_group, value_size_group,
- _("mail_va_to"), priv->to_field,
+ _("mail_va_to"), FALSE, priv->to_field,
HILDON_SIZE_AUTO_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
priv->cc_caption = modest_maemo_utils_create_captioned_with_size_type
(title_size_group, value_size_group,
- _("mail_va_cc"), priv->cc_field,
+ _("mail_va_cc"), FALSE, priv->cc_field,
HILDON_SIZE_AUTO_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
priv->bcc_caption = modest_maemo_utils_create_captioned_with_size_type
(title_size_group, value_size_group,
- _("mail_va_hotfix1"), priv->bcc_field,
+ _("mail_va_hotfix1"), FALSE, priv->bcc_field,
HILDON_SIZE_AUTO_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
subject_caption = modest_maemo_utils_create_captioned (title_size_group, value_size_group,
- _("mail_va_subject"), subject_box);
+ _("mail_va_subject"), FALSE, subject_box);
priv->attachments_caption = modest_maemo_utils_create_captioned_with_size_type (title_size_group, value_size_group,
_("mail_va_attachment"),
+ FALSE,
priv->attachments_view,
HILDON_SIZE_AUTO_WIDTH |
HILDON_SIZE_AUTO_HEIGHT);
gtk_box_pack_start (GTK_BOX(main_vbox), priv->frame, TRUE, TRUE, 0);
hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (priv->pannable), main_vbox);
+ gtk_container_set_focus_vadjustment (GTK_CONTAINER (main_vbox),
+ hildon_pannable_area_get_vadjustment (HILDON_PANNABLE_AREA (priv->pannable)));
gtk_widget_show_all (GTK_WIDGET(priv->pannable));
window_box = gtk_vbox_new (FALSE, 0);
g_object_unref (priv->outbox_msg);
priv->outbox_msg = NULL;
}
+ if (priv->correct_scroll_idle > 0) {
+ g_source_remove (priv->correct_scroll_idle);
+ priv->correct_scroll_idle = 0;
+ }
if (priv->scroll_drag_timeout_id > 0) {
g_source_remove (priv->scroll_drag_timeout_id);
priv->scroll_drag_timeout_id = 0;
mime_part = tny_platform_factory_new_mime_part
(modest_runtime_get_platform_factory ());
-
+
TnyStream *stream = create_stream_for_uri (uri);
if (stream == NULL) {
- modest_platform_information_banner (NULL, NULL, dgettext("hildon-fm", "sfil_ib_opening_not_allowed"));
-
+ modest_platform_information_banner (NULL, NULL,
+ _FM("sfil_ib_opening_not_allowed"));
+
g_object_unref (mime_part);
gnome_vfs_file_info_unref (info);
continue;
}
tny_mime_part_construct (mime_part, stream, mime_type, "base64");
-
+
content_id = g_strdup_printf ("%d", priv->next_cid);
tny_mime_part_set_content_id (mime_part, content_id);
g_free (content_id);
priv->next_cid++;
-
+
basename = g_path_get_basename (filename);
tny_mime_part_set_filename (mime_part, basename);
g_free (basename);
pixbuf = pixbuf_from_stream (stream, mime_type, &stream_size);
-
+
if (pixbuf != NULL) {
priv->images_size += stream_size;
priv->images_count ++;
g_slist_foreach (uris, (GFunc) g_free, NULL);
g_slist_free (uris);
- gtk_widget_destroy (dialog);
+ gtk_widget_destroy (GTK_WIDGET (dialog));
}
void
size = info->size;
if (size > allowed_size) {
modest_platform_information_banner (NULL, NULL,
- dgettext("hildon-fm", "sfil_ib_opening_not_allowed"));
+ _FM("sfil_ib_opening_not_allowed"));
return 0;
}
} else
if (stream == NULL) {
- modest_platform_information_banner (NULL, NULL, dgettext("hildon-fm", "sfil_ib_opening_not_allowed"));
+ modest_platform_information_banner (NULL, NULL, _FM("sfil_ib_opening_not_allowed"));
g_object_unref (mime_part);
gnome_vfs_file_info_unref (info);
} else {
filename = g_strdup ("");
}
- message = g_strdup_printf (ngettext("emev_nc_delete_attachment", "emev_nc_delete_attachments",
+ message = g_strdup_printf (ngettext("emev_nc_delete_attachment",
+ "emev_nc_delete_attachments",
tny_list_get_length (att_list)), filename);
g_free (filename);
- dialog_response = modest_platform_run_confirmation_dialog (GTK_WINDOW (window), message);
+ dialog_response = modest_platform_run_confirmation_dialog (GTK_WINDOW (window),
+ message);
g_free (message);
if (dialog_response != GTK_RESPONSE_OK) {
g_object_unref (att_list);
return;
}
- hildon_banner_show_information (NULL, NULL, _("mcen_me_inbox_remove_attachments"));
-
+
for (iter = tny_list_create_iterator (att_list);
!tny_iterator_is_done (iter);
tny_iterator_next (iter)) {
if (result_len + old_length > 1000) {
hildon_banner_show_information (GTK_WIDGET (window), NULL,
- dgettext("hildon-common-strings",
- "ckdg_ib_maximum_characters_reached"));
+ _CS("ckdg_ib_maximum_characters_reached"));
}
g_string_free (result, TRUE);
}
g_free (priv->last_search);
priv->last_search = NULL;
/* Information banner about empty search */
- hildon_banner_show_information (NULL, NULL, dgettext ("hildon-common-strings", "ecdg_ib_find_rep_enter_text"));
+ hildon_banner_show_information (NULL, NULL, _CS("ecdg_ib_find_rep_enter_text"));
return;
}
result = gtk_text_iter_forward_search_insensitive (&selection_end, current_search,
&match_start, &match_end);
if (!result)
- hildon_banner_show_information (NULL, NULL, dgettext ("hildon-libs", "ckct_ib_find_search_complete"));
+ hildon_banner_show_information (NULL, NULL, _HL("ckct_ib_find_search_complete"));
} else {
GtkTextIter buffer_start;
gtk_text_buffer_get_start_iter (priv->text_buffer, &buffer_start);
result = gtk_text_iter_forward_search_insensitive (&buffer_start, current_search,
&match_start, &match_end);
if (!result)
- hildon_banner_show_information (NULL, NULL, dgettext ("hildon-libs", "ckct_ib_find_no_matches"));
+ hildon_banner_show_information (NULL, NULL, _HL("ckct_ib_find_no_matches"));
}
/* Mark as selected the string found in search */
typedef struct _MessageSettingsHelper {
ModestMsgEditWindow *window;
GSList *priority_group;
- GtkWidget *align_picker;
+ GSList *format_group;
} MessageSettingsHelper;
static void
gtk_toggle_button_get_active (node_button)) {
gtk_toggle_button_set_active (node_button, FALSE);
}
- if (priv->priority_flags != (TnyHeaderFlags) g_object_get_data (G_OBJECT (button), "priority"))
- modest_msg_edit_window_set_priority_flags (helper->window,
- (TnyHeaderFlags)
- g_object_get_data (G_OBJECT (button),
- "priority"));
}
-
+ if (priv->priority_flags != (TnyHeaderFlags) g_object_get_data (G_OBJECT (button), "priority"))
+ modest_msg_edit_window_set_priority_flags (helper->window,
+ (TnyHeaderFlags)
+ g_object_get_data (G_OBJECT (button),
+ "priority"));
} else {
gboolean found = FALSE;
}
static void
-on_format_picker_value_changed (HildonPickerButton *button,
- MessageSettingsHelper *helper)
+on_format_toggle (GtkToggleButton *button,
+ MessageSettingsHelper *helper)
{
- ModestMsgEditFormat new_format, old_format;
- gint file_format;
-
- switch (hildon_picker_button_get_active (button)) {
- case 1:
- new_format = MODEST_MSG_EDIT_FORMAT_HTML;
- file_format = MODEST_FILE_FORMAT_FORMATTED_TEXT;
- break;
- case 0:
- default:
- new_format = MODEST_MSG_EDIT_FORMAT_TEXT;
- file_format = MODEST_FILE_FORMAT_PLAIN_TEXT;
- break;
- }
+ GSList *node;
+ ModestMsgEditWindowPrivate *priv;
+ ModestMsgEditFormat old_format;
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (helper->window);
old_format = modest_msg_edit_window_get_format (helper->window);
- if (new_format != old_format) {
- modest_msg_edit_window_set_file_format (MODEST_MSG_EDIT_WINDOW (helper->window), file_format);
+ if (gtk_toggle_button_get_active (button)) {
- switch (modest_msg_edit_window_get_format (helper->window)) {
- case MODEST_MSG_EDIT_FORMAT_TEXT:
- hildon_picker_button_set_active (button, 0);
- gtk_widget_set_sensitive (helper->align_picker, FALSE);
- break;
- case MODEST_MSG_EDIT_FORMAT_HTML:
- default:
- hildon_picker_button_set_active (button, 1);
- gtk_widget_set_sensitive (helper->align_picker, TRUE);
- break;
+ for (node = helper->format_group; node != NULL; node = g_slist_next (node)) {
+ GtkToggleButton *node_button = (GtkToggleButton *) node->data;
+ if ((node_button != button) &&
+ gtk_toggle_button_get_active (node_button)) {
+ gtk_toggle_button_set_active (node_button, FALSE);
+ }
+ }
+ if (old_format != (ModestMsgEditFormat) g_object_get_data (G_OBJECT (button), "format")) {
+ modest_msg_edit_window_set_file_format (MODEST_MSG_EDIT_WINDOW (helper->window),
+ GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "file-format")));
+ }
+
+ } else {
+ gboolean found = FALSE;
+ /* If no one is active, activate it again */
+ for (node = helper->format_group; node != NULL; node = g_slist_next (node)) {
+ GtkToggleButton *node_button = (GtkToggleButton *) node->data;
+ if (gtk_toggle_button_get_active (node_button)) {
+ found = TRUE;
+ break;
+ }
+ }
+ if (!found) {
+ gtk_toggle_button_set_active (button, TRUE);
}
- }
-}
-
-static void
-on_align_picker_value_changed (HildonPickerButton *button,
- MessageSettingsHelper *helper)
-{
- GtkJustification new_justify;
- ModestMsgEditFormatState *format_state = NULL;
-
- switch (hildon_picker_button_get_active (button)) {
- case 1:
- new_justify = GTK_JUSTIFY_CENTER;
- break;
- case 2:
- new_justify = GTK_JUSTIFY_RIGHT;
- break;
- case 0:
- default:
- new_justify = GTK_JUSTIFY_LEFT;
- break;
}
- format_state = modest_msg_edit_window_get_format_state (helper->window);
- if (format_state->justification != new_justify)
- format_state->justification = new_justify;
- modest_msg_edit_window_set_format_state (helper->window, format_state);
- g_free (format_state);
}
static void
GtkWidget *high_toggle, *medium_toggle, *low_toggle;
GtkWidget *captioned;
GtkSizeGroup *title_sizegroup, *value_sizegroup;
- GtkWidget *format_picker;
- GtkWidget *format_selector;
+ GtkWidget *format_hbox;
+ GtkWidget *html_toggle, *text_toggle;
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);
title_sizegroup = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
value_sizegroup = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
- dialog = gtk_dialog_new ();
+ dialog = gtk_dialog_new_with_buttons (_("mcen_me_message_settings"), NULL,
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ _HL("wdgt_bd_done"), GTK_RESPONSE_ACCEPT, NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox);
gtk_widget_show (vbox);
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);
+ _("mcen_me_editor_message_priority"), FALSE, 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);
+ /* format toggles */
+ format_hbox = gtk_hbox_new (TRUE, 0);
+ html_toggle = hildon_gtk_toggle_button_new (HILDON_SIZE_FINGER_HEIGHT);
+ gtk_button_set_label (GTK_BUTTON (html_toggle), _("mcen_me_editor_formatted_text"));
+ helper.format_group = g_slist_prepend (helper.format_group, html_toggle);
+ g_object_set_data (G_OBJECT (html_toggle), "format", GINT_TO_POINTER (MODEST_MSG_EDIT_FORMAT_HTML));
+ g_object_set_data (G_OBJECT (html_toggle), "file-format", GINT_TO_POINTER (MODEST_FILE_FORMAT_FORMATTED_TEXT));
+ text_toggle = hildon_gtk_toggle_button_new (HILDON_SIZE_FINGER_HEIGHT);
+ gtk_button_set_label (GTK_BUTTON (text_toggle), _("mcen_me_editor_plain_text"));
+ helper.format_group = g_slist_prepend (helper.format_group, text_toggle);
+ g_object_set_data (G_OBJECT (text_toggle), "format", GINT_TO_POINTER (MODEST_MSG_EDIT_FORMAT_TEXT));
+ g_object_set_data (G_OBJECT (text_toggle), "file-format", GINT_TO_POINTER (MODEST_FILE_FORMAT_PLAIN_TEXT));
+ gtk_box_pack_start (GTK_BOX (format_hbox), html_toggle, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (format_hbox), text_toggle, TRUE, TRUE, 0);
+ gtk_widget_show_all (format_hbox);
+ gtk_widget_show (format_hbox);
+ gtk_box_pack_start (GTK_BOX (vbox), format_hbox, 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) {
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);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (text_toggle), TRUE);
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);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (html_toggle), 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);
-
+ g_signal_connect (G_OBJECT (html_toggle), "toggled", G_CALLBACK (on_format_toggle), &helper);
+ g_signal_connect (G_OBJECT (text_toggle), "toggled", G_CALLBACK (on_format_toggle), &helper);
+
+ /* Show */
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)
+static void
+on_message_settings (GtkAction *action,
+ ModestMsgEditWindow *window)
{
modest_msg_edit_window_show_msg_settings_dialog (window);
}