00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef UI_H
00021 #define UI_H
00022
00023 #ifdef HAVE_CONFIG_H
00024 #include "config.h"
00025 #endif
00026
00027 #include <clist.h>
00028
00029 #include "ui-types.h"
00030 #include "xetpan.h"
00031
00032 #ifdef USE_GTKUI
00033 #include "gtk-ui.h"
00034 #include "gtk-messageview.h"
00035 #include "gtk-composewindow.h"
00036 #endif
00037 #ifdef USE_TTYUI
00038 #include "tty-ui.h"
00039 #endif
00040
00041 #include "message-types.h"
00042 #include "mta.h"
00043
00044
00045
00046 typedef struct XePUIMessageViewAny_s XePUIMessageViewAny;
00047
00048 struct XePUIMessageViewAny_s
00049 {
00050 XePUIType type;
00051 XePUID uid;
00052 int editable;
00053 XetPan *xetpan;
00054 XePUIMain *uimain;
00055 XePFolder *folder;
00056 XePMessage *message;
00057 uint32_t muid;
00061 clist *inlined_list;
00064 char *body_text;
00065 char *default_charset;
00067 };
00068
00069 union XePUIMessageView_u
00070 {
00071 XePUIMessageViewAny any;
00072 #ifdef USE_GTKUI
00073 XePGTKMessageView gtk_mview;
00074 #endif
00075 #ifdef USE_TTYUI
00076 XePTTYMessageView tty_mview;
00077 #endif
00078 };
00079
00080
00081
00082 typedef struct XePUIComposeWindowAny_s XePUIComposeWindowAny;
00083
00084 struct XePUIComposeWindowAny_s
00085 {
00086 XePUIType type;
00087 XetPan *xetpan;
00088 XePUIMain *uimain;
00089 XePMTA *mta;
00090 XePUIMessageView *messageview;
00091 char *sent_folder;
00092
00093 };
00094
00095 union XePUIComposeWindow_u
00096 {
00097 XePUIComposeWindowAny any;
00098 #ifdef USE_GTKUI
00099 XePGTKComposeWindow gtk;
00100 #endif
00101 #ifdef USE_TTYUI
00102 XePTTYComposeWindow tty;
00103 #endif
00104 };
00105
00106 extern const char *A_UI_ABOUT_AUTHORS;
00107 extern const char *A_UI_ABOUT_LICENSE;
00108 extern const char *A_UI_ABOUT_HOME_PAGE;
00109 extern const char *A_UI_ABOUT_COPYRIGHT;
00110
00117 XePUI *
00118 a_UI_new(void);
00119
00121 void
00122 a_UI_free(XePUI *ui);
00123
00127 int
00128 a_UI_id_editor_is_locked(void);
00129
00133 int
00134 a_UI_id_editor_lock(void);
00135
00139 void
00140 a_UI_id_editor_unlock(void);
00141
00152 int
00153 a_UI_init(XetPan *xetpan, int *argc, char ***argv);
00154
00163 void
00164 a_UI_main(XetPan *xetpan);
00165
00171 void
00172 a_UI_main_quit(XetPan *xetpan);
00173
00195 int
00196 a_UI_main_switch(XetPan *xetpan, const char *terminal, int uitype);
00197
00203 int
00204 a_UI_events_pending(XetPan *xetpan);
00205
00211 void
00212 a_UI_main_iteration(XetPan *xetpan);
00213
00222 void
00223 a_UI_wait_until(XetPan *xetpan, int *semaphore, int value);
00224
00234 void
00235 a_UI_first_launch(XetPan *xetpan);
00236
00237 void
00238 a_UI_compose_pending_requests(XetPan *xetpan);
00239
00244 XePUIMain *
00245 a_UI_mainview_new(void);
00246
00253 XePUIComposeWindow *
00254 a_UI_composewindow_new(void);
00255
00261 XePUIMessageView *
00262 a_UI_messageview_new(void);
00263
00288 XePUIMain *
00289 a_UI_mainview_create(XetPan *xetpan, char *terminal, int type);
00290
00300 int
00301 a_UI_close_all(XetPan *xetpan, int uitype);
00302
00310 int
00311 a_UI_mainview_close(XePUIMain *uimain);
00312
00320 int
00321 a_UI_mainview_close_all(XetPan *xetpan, int uitype);
00322
00326 void
00327 a_UI_foldersview_list_updated(void);
00328
00330 void
00331 a_UI_foldersview_list_refresh(void);
00332
00341 void
00342 a_UI_expunge_folder(const char *ref);
00343
00352 void
00353 a_UI_update_folder(const char *ref);
00354
00363 void
00364 a_UI_folder_updated(void *anull, void *afolder);
00365
00366 void
00367 a_UI_refresh_folder(const char *ref);
00368
00374 void
00375 a_UI_message_updated(XePMessage* message);
00376
00390 XePUIComposeWindow *
00391 a_UI_composewindow_create(XetPan *xetpan, char *terminal, int type);
00392
00405 XePUIComposeWindow *
00406 a_UI_composewindow_compose(XetPan *xetpan, char *terminal, int type,
00407 const char *mailto);
00408
00409
00426 XePUIComposeWindow *
00427 a_UI_composewindow_reply(XetPan *xetpan,
00428 char *terminal,
00429 int uitype,
00430 XePMessage *message,
00431 const char *reply_text,
00432 const char *reply_charset);
00433
00434 XePUIComposeWindow *
00435 a_UI_composewindow_forward(XetPan *xetpan,
00436 char *terminal,
00437 int uitype,
00438 XePMessage *message);
00439
00440 XePUIComposeWindow *
00441 a_UI_composewindow_redirect(XetPan *xetpan,
00442 char *terminal,
00443 int uitype,
00444 XePMessage *message);
00449 void
00450 a_UI_composewindow_set_message(XePUIComposeWindow *uicompose,
00451 XePMessage *message);
00452
00453 void
00454 a_UI_composewindow_set_mailto(XePUIComposeWindow *uicompose,
00455 const char *mailto);
00456
00457 void
00458 a_UI_composewindow_set_body_text(XePUIComposeWindow *uicompose,
00459 const char *text,
00460 size_t text_size,
00461 const char *text_charset);
00462
00463 void
00464 a_UI_composewindow_add_header(XePUIComposeWindow *uicompose,
00465 XePMessageHeaderType header_type,
00466 const char *header_name,
00467 const char *header_value);
00468
00469 int
00470 a_UI_composewindow_close(XePUIComposeWindow *uicompose);
00471
00472 int
00473 a_UI_composewindow_close_all(XetPan *xetpan, int uitype);
00474
00475
00477 XePUIMessageView *
00478 a_UI_messageview_create(XetPan *xetpan,
00479 char *terminal,
00480 int uitype);
00481
00482 int
00483 a_UI_messageview_close(XePUIMessageView *viewer);
00484
00485 int
00486 a_UI_messageview_close_all(XetPan *xetpan, int uitype);
00487
00489 void
00490 a_UI_messageview_view_file(XePUIMessageView *mview, char *filename);
00491
00492
00493 void
00494 a_UI_notify_error(XetPan *xetpan);
00495
00496 void
00497 a_UI_notify_error_reset(XetPan *xetpan);
00498
00504 void
00505 a_UI_folder_messages_change_flags(XePFolder *folder, carray *messages);
00506
00509 void
00510 a_UI_messageview_show_message(XePUIMessageView *mview,
00511 XePMessage *message);
00512
00520 void
00521 a_UI_messageview_fetch_show_async(XePUIMessageView *mview,
00522 XePMessage *message);
00523
00524 void
00525 a_UI_messageview_finalize(XePUIMessageView *mview, XePMessage *message);
00526
00540 void
00541 a_UI_messageview_flags_change_async(XePUIMessageView *mview,
00542 XePMessage *message);
00543
00544
00552 void
00553 a_UI_messageview_mime_view_show(XetPan *xetpan,
00554 XePMessage *message);
00555
00556
00564 void
00565 a_UI_messageview_mime_view_block(XetPan *xetpan,
00566 XePMessage *message);
00567
00568
00576 void
00577 a_UI_messageview_mime_view_unblock(XetPan *xetpan,
00578 XePMessage *message);
00579
00580
00589 void
00590 a_UI_messageview_mime_fetch_show_selected_async(XePUIMessageView *mview,
00591 XePMessage *message);
00592
00593
00600 void
00601 a_UI_messageview_mime_show_selected(XePUIMessageView *mview,
00602 XePMessage *message);
00603
00604
00607 void
00608 a_UI_send_cmd_result(XetPan *xetpan);
00609
00610
00622 unsigned int
00623 a_UI_add_io_watch(XetPan *xetpan,
00624 int fd,
00625 short int condition,
00626 void (*callback)(int afd, short int acondition, void *adata),
00627 void *data);
00628
00631 int
00632 a_UI_remove_io_watch(XetPan *xetpan, unsigned int watch_id);
00633
00634 #endif