1 /* Copyright (c) 2006,2007 Nokia Corporation
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * * Neither the name of the Nokia Corporation nor the names of its
14 * contributors may be used to endorse or promote products derived from
15 * this software without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 #ifndef __MODEST_MSG_VIEW_WINDOW_H__
31 #define __MODEST_MSG_VIEW_WINDOW_H__
34 #include <widgets/modest-window.h>
35 #include <gtk/gtktreemodel.h>
39 /* convenience macros */
40 #define MODEST_TYPE_MSG_VIEW_WINDOW (modest_msg_view_window_get_type())
41 #define MODEST_MSG_VIEW_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_MSG_VIEW_WINDOW,ModestMsgViewWindow))
42 #define MODEST_MSG_VIEW_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_MSG_VIEW_WINDOW,ModestWindow))
43 #define MODEST_IS_MSG_VIEW_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_MSG_VIEW_WINDOW))
44 #define MODEST_IS_MSG_VIEW_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_MSG_VIEW_WINDOW))
45 #define MODEST_MSG_VIEW_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_MSG_VIEW_WINDOW,ModestMsgVIewWindowClass))
50 } ModestMsgViewWindow;
53 ModestWindowClass parent_class;
54 /* insert signal callback declarations, eg. */
55 /* void (* my_event) (ModestEditMsgWindow* obj); */
56 } ModestMsgViewWindowClass;
59 * modest_msg_view_window_get_type:
61 * get the GType for the #ModestMsgViewWindow class
63 * Returns: a GType for #ModestMsgViewWindow
65 GType modest_msg_view_window_get_type (void) G_GNUC_CONST;
69 * modest_msg_view_window_new:
70 * @msg: an #TnyMsg instance
71 * @account: the account name
73 * instantiates a new #ModestMsgViewWindow widget. The account name is used to
74 * set the proper account when choosing reply/forward from the msg view window
76 * Returns: a new #ModestMsgViewWindow, or NULL in case of error
78 ModestWindow* modest_msg_view_window_new (TnyMsg *msg,
80 const gchar *msg_uid);
83 * modest_msg_view_window_new_with_header_model:
84 * @msg: an #TnyMsg instance
85 * @account: the account name
86 * @model: a #GtkTreeModel, with the format used by #ModestHeaderView
87 * @iter: a #GtkTreeIter, pointing to the position of @msg in @model.
89 * instantiates a new #ModestMsgViewWindow widget. The account name is used to
90 * set the proper account when choosing reply/forward from the msg view window.
91 * This constructor also passes a reference to the @model of the header view
92 * to allow selecting previous/next messages.
94 * Returns: a new #ModestMsgViewWindow, or NULL in case of error
96 ModestWindow* modest_msg_view_window_new_with_header_model (TnyMsg *msg,
100 GtkTreeRowReference *row_reference);
104 * modest_msg_view_window_get_header:
105 * @window: an #ModestMsgViewWindow instance
107 * get the message header in this msg view. Header instance is get
108 * from tree_model of headers list.
110 * Returns: a new #TnyHeader instance, or NULL in case of error
113 modest_msg_view_window_get_header (ModestMsgViewWindow *self);
116 * modest_msg_view_window_get_message:
117 * @window: an #ModestMsgViewWindow instance
119 * get a new reference to the message in this msg view. The caller
120 * must free this new reference
122 * Returns: a new #TnyMsg instance, or NULL in case of error
124 TnyMsg* modest_msg_view_window_get_message (ModestMsgViewWindow *window);
127 * modest_msg_view_window_get_message_uid:
128 * @msg: an #ModestMsgViewWindow instance
130 * gets the unique identifier for the message in this msg view. The
131 * returned value *must* not be freed
133 * Returns: the id of the #TnyMsg being shown, or NULL in case of error
135 const gchar* modest_msg_view_window_get_message_uid (ModestMsgViewWindow *window);
138 * modest_msg_view_window_select_first_message:
139 * @window: a #ModestMsgViewWindow instance
141 * select the first message obtained from the header view this view
144 * Returns: %TRUE if a new message is shown.
146 gboolean modest_msg_view_window_select_first_message (ModestMsgViewWindow *window);
149 * modest_msg_view_window_select_next_message:
150 * @window: a #ModestMsgViewWindow instance
152 * select the next message obtained from the header view this view
155 * Returns: %TRUE if a new message is shown.
157 gboolean modest_msg_view_window_select_next_message (ModestMsgViewWindow *window);
160 * modest_msg_view_window_select_previous_message:
161 * @window: a #ModestMsgViewWindow instance
163 * select the previous message obtained from the header view this view
166 * Returns: %TRUE if a new message is shown.
168 gboolean modest_msg_view_window_select_previous_message (ModestMsgViewWindow *window);
171 * modest_msg_view_window_toggle_fullscreen:
172 * @window: a #ModestMsgViewWindow
174 * toggles the current fullscreen status
176 void modest_msg_view_window_toggle_fullscreen (ModestMsgViewWindow *window);
179 * modest_msg_view_window_view_attachment:
180 * @window: a #ModestMsgViewWindow
181 * @mime_part: a #TnyMimePart
183 * Opens @mime_part, or the currently selected attachment if @mime_part is %NULL.
184 * If it's a message, it opens it for viewing. Otherwise it opens a temporary file
185 * with the contents of the attachment.
187 void modest_msg_view_window_view_attachment (ModestMsgViewWindow *window,
188 TnyMimePart *mime_part);
191 * modest_msg_view_window_get_attachments:
192 * @window: a #ModestMsgViewWindow
194 * Get selected attachments from #ModetMsgView private object.
196 GList * modest_msg_view_window_get_attachments (ModestMsgViewWindow *win);
199 * modest_msg_view_window_save_attachments:
200 * @window: a #ModestMsgViewWindow
201 * @mime_parts: a #GList of #TnyMimePart
203 * Save the #TnyMimePart attachments in @mime_parts, or currently selected attachments
204 * if @mime_parts is %NULL, offering a dialog to the user to choose the location.
206 void modest_msg_view_window_save_attachments (ModestMsgViewWindow *window,
210 * modest_msg_view_window_remove_attachments:
211 * @window: a #ModestMsgViewWindow
212 * @mime_parts: a #GList of #TnyMimePart
214 * Removes the attachments in @mime_parts, or currently selected attachments
215 * if @mime_parts is %NULL, from local storage.
217 void modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window,
222 * modest_msg_view_window_toolbar_on_transfer_mode:
223 * @window: a #ModestMsgViewWindow
225 * Check if toolbar is in transfer mode, which determines whether a
226 * transfer operation is being processed.
228 gboolean modest_msg_view_window_toolbar_on_transfer_mode (ModestMsgViewWindow *self);
232 * modest_msg_view_window_last_message_selected:
233 * @window: a #ModestMsgViewWindow
235 * Check message currently viewed is the last message into folder .
237 gboolean modest_msg_view_window_last_message_selected (ModestMsgViewWindow *window);
241 * modest_msg_view_window_first_message_selected:
242 * @window: a #ModestMsgViewWindow
244 * Check message currently viewed is the last message into folder .
246 gboolean modest_msg_view_window_first_message_selected (ModestMsgViewWindow *window);
249 * modest_msg_view_window_has_headers_model:
250 * @window: a #ModestMsgViewWindow
252 * Check if window has been created with a full headers model.
254 gboolean modest_msg_view_window_has_headers_model (ModestMsgViewWindow *window);
257 * modest_msg_view_window_get_folder_type:
258 * @window: a #ModestMsgViewWindow
260 * Gets folder type of message currently viewed .
263 modest_msg_view_window_get_folder_type (ModestMsgViewWindow *window);
267 #endif /* __MODEST_MSG_VIEW_WINDOW_H__ */