Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

ui.h

Go to the documentation of this file.
00001 /*
00002  * XetPan: a libEtPan! based Mail User Agent
00003  * Copyright (C) 2002 Melvin Hadasht
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
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" /* XePGTKMessageView */
00035 #include "gtk-composewindow.h" /* XePGTKComposeWindow */
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 /* Message View */
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 /* Compose Window */
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   /* The rest of the union is private to the UI */
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

Generated on Wed Oct 22 15:50:44 2003 for XetPan by doxygen 1.3.2