X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-msg-edit-window.h;h=54055fbf1514b3110bfe89be32ecc051452fa895;hp=f3fafaaa9de8679528aee42dc6c8185e4ed7f104;hb=HEAD;hpb=af98a92476ea30f9cf8fe033a59065b2b27d5ff3 diff --git a/src/widgets/modest-msg-edit-window.h b/src/widgets/modest-msg-edit-window.h index f3fafaa..54055fb 100644 --- a/src/widgets/modest-msg-edit-window.h +++ b/src/widgets/modest-msg-edit-window.h @@ -31,6 +31,12 @@ #define __MODEST_MSG_EDIT_WINDOW_H__ #include +#include +#ifdef MODEST_TOOLKIT_HILDON2 +#include +#else +#include +#endif #include G_BEGIN_DECLS @@ -47,12 +53,20 @@ typedef struct _ModestMsgEditWindow ModestMsgEditWindow; typedef struct _ModestMsgEditWindowClass ModestMsgEditWindowClass; struct _ModestMsgEditWindow { - ModestWindow parent; +#ifdef MODEST_TOOLKIT_HILDON2 + ModestHildon2Window parent; +#else + ModestShellWindow parent; +#endif /* insert public members, if any */ }; struct _ModestMsgEditWindowClass { - ModestWindowClass parent_class; +#ifdef MODEST_TOOLKIT_HILDON2 + ModestHildon2WindowClass parent_class; +#else + ModestShellWindowClass parent_class; +#endif /* insert signal callback declarations, eg. */ /* void (* my_event) (ModestMsgEditWindow* obj); */ }; @@ -70,15 +84,28 @@ typedef enum { MODEST_MSG_EDIT_FORMAT_HTML } ModestMsgEditFormat; +typedef enum { + MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_BODY, + MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_TO, + MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_CC, + MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_BCC, + MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_SUBJECT, + MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_ATTACHMENTS, + MODEST_MSG_EDIT_WINDOW_WIDGET_TYPE_NUM, +} ModestMsgEditWindowWidgetType; + /** Get these with modest_msg_edit_window_get_msg_data() * and free them with modest_msg_edit_window_free_msg_data(). */ typedef struct { gchar *from, *to, *cc, *bcc, *subject, *plain_body, *html_body; + gchar *references, *in_reply_to; GList *attachments; + GList *images; TnyHeaderFlags priority_flags; TnyMsg *draft_msg; gchar *account_name; + TnyList *custom_header_pairs; } MsgData; typedef struct { @@ -104,14 +131,19 @@ GType modest_msg_edit_window_get_type (void) G_GNUC_CONST; /** * modest_msg_edit_window_new: - * #msg: a #TnyMsg instance - * #account_name: the account this message applies to + * @msg: a #TnyMsg instance + * @account_name: the account this message applies to + * @mailbox: the mailbox (if any) + * @preserve_is_rich: if @msg is not rich, open the message as plain text * * instantiates a new #ModestMsgEditWindow widget * * Returns: a new #ModestMsgEditWindow, or NULL in case of error */ -ModestWindow* modest_msg_edit_window_new (TnyMsg *msg, const gchar *account_name); +ModestWindow* modest_msg_edit_window_new (TnyMsg *msg, + const gchar *account_name, + const gchar *mailbox, + gboolean preserve_is_rich); /** @@ -203,12 +235,25 @@ void modest_msg_edit_window_select_background_color void modest_msg_edit_window_insert_image (ModestMsgEditWindow *window); /** - * modest_msg_edit_window_attach_file: + * modest_msg_edit_window_offer_attach_file: * @self: a #ModestMsgEditWindow * * show a file selection dialog to attach a file */ -void modest_msg_edit_window_attach_file (ModestMsgEditWindow *window); +void modest_msg_edit_window_offer_attach_file (ModestMsgEditWindow *window); + +/** + * modest_msg_edit_window_attach_file_one: + * @self: a #ModestMsgEditWindow + * @file_uri: The URI of a file to attach to the email message. + * @allowed_size: max size allowed for this attachment, 0 for unlimited + * + * attach a file to a MsgEditWindow non interactively, + * without file dialog. This is needed by dbus callbacks. + * + * Returns: the filesize (if available) + */ +GnomeVFSFileSize modest_msg_edit_window_attach_file_one (ModestMsgEditWindow *window, const gchar *file_uri, GnomeVFSFileSize allowed_size); /** * modest_msg_edit_window_remove_attachments: @@ -218,7 +263,26 @@ void modest_msg_edit_window_attach_file (ModestMsgE * remove attachments in @att_list, with a confirmation dialog */ void modest_msg_edit_window_remove_attachments (ModestMsgEditWindow *window, - GList *att_list); + TnyList *att_list); + +/** + * modest_msg_edit_window_get_parts_size: + * @window: a #ModestMsgEditWindow + * @parts_count: number of attachments and images attached to the message + * @parts_size: sum of sizes of attachments and images + */ +void modest_msg_edit_window_get_parts_size (ModestMsgEditWindow *window, + gint *parts_count, + guint64 *parts_size); +/** + * modest_msg_edit_window_add_part: + * @self: a #ModestMsgEditWindow + * @part: a #TnyMimePart + * + * Adds @part as an attachment + */ +void modest_msg_edit_window_add_part (ModestMsgEditWindow *window, + TnyMimePart *part); /** * modest_msg_edit_window_show_cc: @@ -239,14 +303,6 @@ void modest_msg_edit_window_show_cc (ModestMsgE void modest_msg_edit_window_show_bcc (ModestMsgEditWindow *window, gboolean show); /** - * modest_msg_edit_window_toggle_fullscreen: - * @window: a #ModestMsgEditWindow - * - * toggles the current fullscreen status - */ -void modest_msg_edit_window_toggle_fullscreen (ModestMsgEditWindow *window); - -/** * modest_msg_edit_window_set_priority_flags: * @window: a #ModestMsgEditWindow * @priority_flags: a #TnyHeaderFlags with priority information @@ -284,6 +340,34 @@ void modest_msg_edit_window_select_font (ModestMsgEditWindow * void modest_msg_edit_window_undo (ModestMsgEditWindow *window); /** + * modest_msg_edit_window_can_undo: + * @window: a #ModestMsgEditWindow + * + * Checks if an undo operation is available + * + * Returns: %TRUE if undo can be done, %FALSE otherwise. + */ +gboolean modest_msg_edit_window_can_undo (ModestMsgEditWindow *window); + +/** + * modest_msg_edit_window_redo: + * @window: a #ModestMsgEditWindow + * + * Revert last undo + */ +void modest_msg_edit_window_redo (ModestMsgEditWindow *window); + +/** + * modest_msg_edit_window_can_redo: + * @window: a #ModestMsgEditWindow + * + * Checks if a redp operation is available + * + * Returns: %TRUE if redo can be done, %FALSE otherwise. + */ +gboolean modest_msg_edit_window_can_redo (ModestMsgEditWindow *window); + +/** * modest_msg_edit_window_select_contacts: * @window: a #ModestMsgEditWindow * @@ -293,17 +377,133 @@ void modest_msg_edit_window_undo (ModestMsgEditWindow * void modest_msg_edit_window_select_contacts (ModestMsgEditWindow *window); /** + * modest_msg_edit_window_add_to_contacts: + * @self: a #ModestMsgEditWindow + * + * activates the add to contacts use. It shows the add to contacts + * dialog to select the recipient to add. + */ +void modest_msg_edit_window_add_to_contacts (ModestMsgEditWindow *self); + +/** * modest_msg_edit_window_check_names: * @window: a #ModestMsgEditWindow + * @add_to_addressbook: if TRUE, add valid addresses to the addressbook * * Validates all the recipients, and shows (if required) dialogs for adding contacts * or fixing problems in specific fields. * * Returns: %TRUE if all fields were validated, %FALSE otherwise */ -gboolean modest_msg_edit_window_check_names (ModestMsgEditWindow *window); +gboolean modest_msg_edit_window_check_names (ModestMsgEditWindow *window, + gboolean add_to_addressbook); + +/** + * modest_msg_edit_window_has_pending_addresses: + * @window: a #ModestMsgEditWindow + * @add_to_addressbook: if TRUE, add valid addresses to the addressbook + * + * Validates all the recipients, and checks if there are addresses in + * any field that could be added to the addressbook + * + * Returns: %TRUE if there are valid pending addresses, %FALSE otherwise + */ +gboolean modest_msg_edit_window_has_pending_addresses (ModestMsgEditWindow *window); + +/** + * modest_msg_edit_window_toggle_isearch_toolbar: + * @window: a #ModestMsgEditWindow + * @show: a #gboolean + * + * Shows/Hides the isearch toolbar + */ +void modest_msg_edit_window_toggle_isearch_toolbar (ModestMsgEditWindow *window, + gboolean show); + + +/** + * modest_msg_edit_window_is_modified: + * @window: a #ModestMsgEditWindow + * + * Examines whether or not the message has been modified + * + * Returns: %TRUE if any field has been modified, %FALSE otherwise + */ +gboolean modest_msg_edit_window_is_modified (ModestMsgEditWindow *window); + +/** + * modest_msg_edit_window_reset_modified: + * @window: a #ModestMsgEditWindow + * @modified: wheter or not we want to make the buffer as modified or not + * + * Sets the message as modified or not + */ +void modest_msg_edit_window_set_modified (ModestMsgEditWindow *window, + gboolean modified); + + +gboolean modest_msg_edit_window_get_sent (ModestMsgEditWindow *window); +void modest_msg_edit_window_set_sent (ModestMsgEditWindow *window, + gboolean sent); + +/** + * modest_msg_edit_window_set_draft: + * @window: a #ModestMsgEditWindow + * @draft: a #TnyMsg, or %NULL + * + * Set @draft as the original draft message of the editor. This + * message will be removed on saving or sending the message. + */ +void modest_msg_edit_window_set_draft (ModestMsgEditWindow *window, + TnyMsg *draft); +/** + * modest_msg_edit_window_get_message_uid: + * @msg: an #ModestMsgEditWindow instance + * + * gets the unique identifier for the message in this msg editor. + * This is the identifier of the draft or outbox message the editor was + * opened from. If it's a new message, then it returns %NULL + * + * Returns: the id of the #TnyMsg being shown, or NULL in case of error + */ +const gchar* modest_msg_edit_window_get_message_uid (ModestMsgEditWindow *window); + +/** + * modest_msg_edit_window_get_child_widget: + * @win: a #ModestMsgEditWindow + * @widget_type: the type of the child to obtain + * + * Obtain the child widget of @win of type @widget_type + * + * Returns: a #GtkWidget, or %NULL + */ +GtkWidget * +modest_msg_edit_window_get_child_widget (ModestMsgEditWindow *win, + ModestMsgEditWindowWidgetType widget_type); + +/** + * modest_msg_edit_window_get_clipboard_text: + * @win: a #ModestMsgEditWindow + * + * Obtains the currently selected text in selection clipboard + * + * Returns: a string + */ +const gchar * +modest_msg_edit_window_get_clipboard_text (ModestMsgEditWindow *win); + +/** + * modest_msg_edit_window_set_custom_header_pairs: + * @win: a #ModestMsgEditWindow + * @header_pairs: a #TnyList of #TnyPair + * + * sets a list of custom header pairs that will be added to the created + * #TnyMsg. + */ +void +modest_msg_edit_window_set_custom_header_pairs (ModestMsgEditWindow *self, + TnyList *header_pairs); G_END_DECLS #endif /* __MODEST_MSG_EDIT_WINDOW_H__ */ -