00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GTKUI_H
00021 #define GTKUI_H
00022
00023 #include <sys/types.h>
00024 #include <regex.h>
00025
00026 #include <gtk/gtkwidget.h>
00027 #include <gtk/gtktreestore.h>
00028
00029 #include "xetpan.h"
00030 #include "ui-types.h"
00031 #include "manager.h"
00032 #include "message.h"
00033
00034 #define XEP_STOCK_ICON "xetpan-icon"
00035 #define XEP_STOCK_STATUS "xetpan-status"
00036 #define XEP_STOCK_FLAG "xetpan-flag"
00037 #define XEP_STOCK_REPLY "xetpan-reply"
00038 #define XEP_STOCK_FORWARD "xetpan-forward"
00039 #define XEP_STOCK_REPLIED "xetpan-replied"
00040 #define XEP_STOCK_FORWARDED "xetpan-forwarded"
00041 #define XEP_STOCK_REPLIED_FORWARDED "xetpan-replied-forwarded"
00042 #define XEP_STOCK_UNSEEN GTK_STOCK_NO
00043 #define XEP_STOCK_NEW GTK_STOCK_YES
00044 #define XEP_STOCK_DELETED GTK_STOCK_DELETE
00045
00046 typedef struct XePGTKFoldersView_s XePGTKFoldersView;
00047
00048 struct XePGTKFoldersView_s
00049 {
00050 GtkWidget *widget;
00051 GtkWidget *optmenu;
00052 GtkTreeStore *store;
00053 GtkWidget *tree;
00054 XePFoldersViewsList *foldersviewslist;
00055 XePFoldersView *currentfoldersview;
00056 XePUIMain *uimain;
00057 gint pane_position;
00058 };
00059
00060 typedef struct XePGTKSummaryView_s XePGTKSummaryView;
00061
00062 struct XePGTKSummaryView_s
00063 {
00064 GtkWidget *widget;
00065 GtkWidget *tree;
00066 GtkWidget *search_box;
00067 GtkWidget *search_icon;
00068 GtkWidget *search_entry;
00069 regex_t preg;
00070 gboolean valid_preg;
00071 XePFolderRef *folder_ref;
00072 XePUIMain *uimain;
00073 gint pane_position;
00074 };
00075
00076 #define a_GtkUI_foldersview_show(fview) gtk_widget_show(fview->widget)
00077 #define a_GtkUI_foldersview_widget(fview) GTK_WIDGET(fview->widget)
00078 #define a_GtkUI_summaryview_show(sview) gtk_widget_show(sview->widget)
00079 #define a_GtkUI_summaryview_widget(sview) GTK_WIDGET(sview->widget)
00080
00081 void
00082 a_GtkUI_init(XetPan *xetpan, int *argc, char ***argv);
00083
00084 int
00085 a_GtkUI_init_check(XetPan *xetpan, int *argc, char ***argv);
00086
00087 void
00088 a_GtkUI_main(XetPan *xetpan);
00089
00090 void
00091 a_GtkUI_main_quit(XetPan *xetpan);
00092
00093 int
00094 a_GtkUI_events_pending(XetPan *xetpan);
00095
00096 void
00097 a_GtkUI_main_iteration(XetPan *xetpan);
00098
00099 void
00100 a_GtkUI_first_launch(XetPan *xetpan);
00101
00102 void
00103 a_GtkUI_compose_pending_requests(XetPan *xetpan);
00104
00105 XePUIMain*
00106 a_GtkUI_mainview_create(XetPan *xetpan, char *terminal);
00107
00111 void
00112 a_GtkUI_mainview_close(XePUIMain *uimain);
00113
00114 void
00115 a_GtkUI_mainview_reply(XePUIMain *uimain);
00116
00117 void
00118 a_GtkUI_mainview_forward(XePUIMain *uimain);
00119
00120 void
00121 a_GtkUI_mainview_redirect(XePUIMain *uimain);
00122
00123
00129 XePGTKFoldersView *
00130 a_GtkUI_foldersview_new(XePUIMain *uimain,
00131 XePFoldersViewsList *foldersviewslist);
00132
00133 void
00134 a_GtkUI_foldersview_set_list(XePGTKFoldersView *fview,
00135 XePFoldersViewsList *list);
00136
00141 void
00142 a_GtkUI_foldersview_set_view(XePGTKFoldersView *fview,
00143 const char *foldersview_id);
00144
00145
00151 void
00152 a_GtkUI_foldersview_list_updated(XePUIMain *uimain);
00153
00154 void
00155 a_GtkUI_foldersview_list_refresh(XePUIMain *uimain);
00156
00157 void
00158 a_GtkUI_summaryview_set_view(XePGTKSummaryView *sview,
00159 XePFolderRef *folder_ref);
00160
00165 void
00166 a_GtkUI_summaryview_set_view_async(XePGTKSummaryView *sview,
00167 XePFolderRef *folder_ref);
00168
00169 void
00170 a_GtkUI_summaryview_selection_delete(XePUIMain *uimain, XePMessageFlagsOp flag_op);
00171
00172 void
00173 a_GtkUI_summaryview_selection_flag(XePUIMain *uimain, XePMessageFlagsOp flag_op);
00174
00175 void
00176 a_GtkUI_summaryview_selection_seen(XePUIMain *uimain, XePMessageFlagsOp flag_op);
00177
00178 void
00179 a_GtkUI_summaryview_find_match(XePGTKSummaryView *sview,
00180 gboolean forward);
00181
00182 void
00183 a_GtkUI_summaryview_expunge(XePUIMain *uimain);
00184
00185 void
00186 a_GtkUI_folder_updated(XePUIMain *uimain, XePFolder *folder);
00187
00188 void
00189 a_GtkUI_folder_refresh(XePUIMain *uimain, XePFolder *folder);
00190
00191 void
00192 a_GtkUI_messageview_finalize(XePUIMessageView *mview, XePMessage *message);
00193
00194 void
00195 a_GtkUI_messageview_mime_view_show(XePUIMessageView *mview,
00196 XePMessage *message);
00197
00198 void
00199 a_GtkUI_messageview_mime_view_block(XePUIMessageView *mview,
00200 XePMessage *message);
00201
00202 void
00203 a_GtkUI_messageview_mime_view_unblock(XePUIMessageView *mview,
00204 XePMessage *message);
00205
00206 void
00207 a_GtkUI_messageview_mime_show_selected(XePUIMessageView *mview,
00208 XePMessage *message);
00209
00210 XePUIComposeWindow *
00211 a_GtkUI_composewindow_create(XetPan *xetpan, char *terminal);
00212
00213 void
00214 a_GtkUI_composewindow_set_message(XePUIComposeWindow *uicompose,
00215 XePMessage *message);
00216
00217 void
00218 a_GtkUI_composewindow_set_body_text(XePUIComposeWindow *uicompose,
00219 const char *text,
00220 size_t text_size,
00221 const char *text_charset);
00222
00223 void
00224 a_GtkUI_composewindow_add_header(XePUIComposeWindow *uicompose,
00225 XePMessageHeaderType header_type,
00226 const char *header_name,
00227 const char *header_value);
00228
00229 void
00230 a_GtkUI_composewindow_close(XePUIComposeWindow *uicompose);
00231
00232 XePUIMessageView *
00233 a_GtkUI_messageview_create_standalone(XetPan *xetpan,
00234 char *terminal);
00235 void
00236 a_GtkUI_messageview_close(XePUIMessageView *mview);
00237
00239 void
00240 a_GtkUI_about(XePUIMain *uimain);
00241
00242 void
00243 a_GtkUI_notify_error(XePUIMain *uimain);
00244
00245 void
00246 a_GtkUI_notify_error_reset(XePUIMain *uimain);
00247
00255 void
00256 a_GtkUI_message_updated(XePUIMain *uimain, XePMessage *message);
00257
00258 int
00259 a_GtkUI_create_io_watch(XePUI *ui, XePUIIOWatcher *watcher);
00260
00261 void
00262 a_GtkUI_delete_io_watch(XePUI *ui, XePUIIOWatcher *watcher);
00263
00264 #endif