X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-msg-edit-window.h;h=54055fbf1514b3110bfe89be32ecc051452fa895;hp=e8a9a64dbfc98bddcce8cc0f2867bb94e48dc29b;hb=HEAD;hpb=326ddf804e1bc2542650028660f4eb5cc82af96a diff --git a/src/widgets/modest-msg-edit-window.h b/src/widgets/modest-msg-edit-window.h index e8a9a64..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,10 +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 { @@ -99,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); /** @@ -198,6 +235,56 @@ void modest_msg_edit_window_select_background_color void modest_msg_edit_window_insert_image (ModestMsgEditWindow *window); /** + * modest_msg_edit_window_offer_attach_file: + * @self: a #ModestMsgEditWindow + * + * show a file selection dialog to attach a file + */ +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: + * @self: a #ModestMsgEditWindow + * @att_list: a #GList of #TnyMimePart + * + * remove attachments in @att_list, with a confirmation dialog + */ +void modest_msg_edit_window_remove_attachments (ModestMsgEditWindow *window, + 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: * @window: a #ModestMsgEditWindow * @show: a #gboolean @@ -216,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 @@ -233,7 +312,198 @@ void modest_msg_edit_window_toggle_fullscreen (ModestMsgEditWindow *w void modest_msg_edit_window_set_priority_flags (ModestMsgEditWindow *window, TnyHeaderFlags priority_flags); +/** + * modest_msg_edit_window_set_file_format: + * @window: a #ModestMsgEditWindow + * @file_format: %MODEST_FILE_FORMAT_PLAIN_TEXT or %MODEST_FILE_FORMAT_FORMATTED_TEXT + * + * Changes the current file format. + */ +void modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window, + gint file_format); + +/** + * modest_msg_edit_window_select_font: + * @window: a #ModestMsgEditWindow + * + * Show the dialog to select the editor font and update the + * used font in the editor. + */ +void modest_msg_edit_window_select_font (ModestMsgEditWindow *window); + +/** + * modest_msg_edit_window_undo: + * @window: a #ModestMsgEditWindow + * + * Undoes the last operation. + */ +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 + * + * Shows the dialog to add contacts to the currently focused recipient list, + * or to To: recipient if no recipient list is focused. + */ +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 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__ */ -