home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pine / imap-3.0 / MailManager / MailManager.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-02-11  |  8.3 KB  |  271 lines

  1. /*
  2.  * Program:    Distributed Electronic Mail Manager (MailManager object)
  3.  *
  4.  * Author:    Mark Crispin
  5.  *        Networks and Distributed Computing
  6.  *        Computing & Communications
  7.  *        University of Washington
  8.  *        Administration Building, AG-44
  9.  *        Seattle, WA  98195
  10.  *        Internet: MRC@CAC.Washington.EDU
  11.  *
  12.  * Date:    17 February 1989
  13.  * Last Edited:    11 February 1993
  14.  *
  15.  * Copyright 1993 by the University of Washington
  16.  *
  17.  *  Permission to use, copy, modify, and distribute this software and its
  18.  * documentation for any purpose and without fee is hereby granted, provided
  19.  * that the above copyright notice appears in all copies and that both the
  20.  * above copyright notice and this permission notice appear in supporting
  21.  * documentation, and that the name of the University of Washington not be
  22.  * used in advertising or publicity pertaining to distribution of the software
  23.  * without specific, written prior permission.  This software is made
  24.  * available "as is", and
  25.  * THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
  26.  * WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED
  27.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN
  28.  * NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL,
  29.  * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  30.  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT
  31.  * (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION
  32.  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  33.  *
  34.  */
  35.  
  36. // Preliminary definitions
  37.  
  38. #define TMPLEN 1024
  39. #define STREAMPROP struct stream_prop
  40. #define SEQUENCE struct msg_sequence
  41.  
  42.  
  43. // Everything we snarf from elsewhere
  44.  
  45. #import <appkit/appkit.h>
  46. #import <sound/sound.h>
  47. #import <soundkit/soundkit.h>
  48. #import "../c-client/mail.h"
  49. #import "../c-client/smtp.h"
  50. #import "../c-client/rfc822.h"
  51. #import "../c-client/misc.h"
  52. #import "../c-client/osdep.h"
  53. #import "ReadWindow.h"
  54. #import "SendWindow.h"
  55. #import "MBoxWindow.h"
  56. #import "AddressBook.h"
  57. #import "AddressBookCell.h"
  58. #import "AttachedPanel.h"
  59. #import "BrowserCell.h"
  60. #import "PullOutMenu.h"
  61. #import "ReplyWindow.h"
  62. #import "Utilities.h"
  63. #import <netdb.h>
  64. #import <pwd.h>
  65. #import <time.h>
  66. #import <sys/types.h>
  67. #import <sys/stat.h>
  68. #import <sys/time.h>
  69. #import <sys/timeb.h>
  70.  
  71. // Linkages to MAIL drivers
  72.  
  73. extern DRIVER imapdriver,bezerkdriver,tenexdriver,mboxdriver,mhdriver,
  74.     newsdriver,nntpdriver,dummydriver;
  75.  
  76.  
  77. // Prototypes of functions certain individuals would rather we not use
  78.  
  79. void ftime (struct timeb *tb);
  80. char *timezone (int zone,int dst);
  81.  
  82.  
  83. // Mailbox formats
  84.  
  85. #define MBOX 0            // Bezerkley format
  86. #define MTXT 1            // Tenex format
  87.  
  88.  
  89. // Alias global variable names
  90.  
  91. #define mtpserver hostlist[0]
  92. #define domainname hostlist[1]
  93.  
  94.  
  95. // Global variables
  96.  
  97. extern const char *defaultbcc,*defaultcc,*outbox;
  98. extern const char *personalname,*repository,*username;
  99. extern BOOL autoexpunge,autologin,autoopen,autoread,autozoom;
  100. extern BOOL closefinalkill,literaldisplay,nolinebreaking,nopersonal;
  101. extern BOOL lockedopen,lockedread;
  102. extern BOOL readbboards;
  103. extern short debug,format;
  104. extern double interval;
  105. extern char *localhost,*localuser,*localpersonal,*lastlogin;
  106. extern Font *defaultfont;
  107. extern const char *hostlist[],*months[];
  108. extern id xtext_action;        // mdd: xtext dispatch action
  109. extern id read_action;        // mdd: readWindow dispatch action
  110.  
  111.  
  112. @interface MailManager : Application
  113. {
  114.   id telemetryView;        // view to draw telemetry in
  115.   id prefDomainName;        // domain name (for sending)
  116.   id prefMTPServer;        // preferred SMTP server
  117.   id prefPersonalName;        // personal name (for sending)
  118.   id prefRepository;        // preferred repository
  119.   id prefUserName;        // preferred user name (for sending)
  120.   id defaultBccList;        // default bcc list (for sending)
  121.   id defaultCcList;        // default cc list (for sending)
  122.   id outBox;            // saved messages file
  123.   id mailboxFormat;        // mailbox format
  124.   id automaticExpunge;        // automatic expunge when mailbox closed
  125.   id automaticLogin;        // automatic login with previous password
  126.   id automaticRead;        // automatic read when open
  127.   id automaticOpen;        // automatic open of default mailbox
  128.   id automaticZoom;        // automatic zoom on open
  129.   id closeFinalKill;        // close read window on final kill
  130.   id debugging;            // default debugging state
  131.   id literalDisplay;        // default display state (filtered vs. literal)
  132.   id noLineBreaking;        // suppress send window line breaking
  133.   id noPersonalNames;        // suppress personal names in recipient lists
  134.   id checkInterval;        // interval between implicit checks
  135.   id mailboxSelection;        // mailbox selection panel
  136.   id mailboxes;            // view of mailbox browser
  137.   id browser;            // matrix of mailbox browser
  138.   id mailboxResponder;        // new mailbox responder
  139.   id mailboxHost;        // new mailbox host name
  140.   id mailboxMailbox;        // new mailbox mailbox name
  141.   id login;            // login panel
  142.   id loginBox;            // box that encloses login responder
  143.   id loginResponder;        // login responder
  144.   id password;            // login password
  145.   id userName;            // login user name
  146.   id printer;            // printer view
  147.   id opener;            // created mailbox window
  148.   id fileDestination;        // destination file string
  149.   id fileLocal;            // local file desired
  150.   id filePanel;            // panel for Move/Copy commands
  151.   id helpPanel;            // panel for menu help
  152.   id addressHelpPanel;        // address book help panel
  153.   id mboxHelpPanel;        // mailbox help panel
  154.   id selectHelpPanel;        // select help panel
  155.   id readHelpPanel;        // read help panel
  156.   id sendHelpPanel;        // send help panel
  157.   id infoPanel;            // panel for program ID
  158.   id preferencesPanel;        // panel for preferences
  159.   id preferencesHelp;        // panel for preferences help
  160.   id book;            // address book
  161.   id pasteboard;        // pasteboard
  162.   id windowMenu;        // mdd: menu containing show/hide telemetry item
  163.   id telemetryMenuItem;    // mdd: show/hide telemetry menu item
  164.   BOOL OK;            // OK flag
  165. }
  166.  
  167. + new;
  168. - run;
  169.  
  170. - appDidInit:sender;    // mdd
  171.  
  172. - compose:sender;
  173. - open:sender;
  174. - reOpen:(MAILSTREAM *) stream window:old;
  175. - close;
  176. - addMailboxToBrowser:(char *) name;
  177. - setMailboxSelection:anObject;
  178. - setMailboxes:anObject;
  179. - setMailboxResponder:anObject;
  180. - setMailboxHost:anObject;
  181. - setMailboxMailbox:anObject;
  182. - selectLoad:sender;
  183. - mailboxCancel:sender;
  184. - mailboxOK:sender;
  185. - setLogin:anObject;
  186. - setLoginBox:anObject;
  187. - setLoginResponder:anObject;
  188. - setUserName:anObject;
  189. - setPassword:anObject;
  190. - login:(char *) host user:(char *) user password:(char *) pwd force:(BOOL) f;
  191. - loginOK:sender;
  192. - setTelemetryView:anObject;
  193. - telemetry:(char *) string;
  194. - setPrinter:anObject;
  195. - startPrint;
  196. - printText:(char *) text;
  197. - print;
  198. - setFilePanel:anObject;
  199. - setFileDestination:anObject;
  200. - setFileLocal:anObject;
  201. - (char *) getFile;
  202. - fileCancel:sender;
  203. - fileOK:sender;
  204. - setHelpPanel:anObject;
  205. - help:sender;
  206. - setAddressHelpPanel:anObject;
  207. - addressHelp:sender;
  208. - setMboxHelpPanel:anObject;
  209. - mboxHelp:sender;
  210. - setSelectHelpPanel:anObject;
  211. - selectHelp:sender;
  212. - setReadHelpPanel:anObject;
  213. - readHelp:sender;
  214. - setSendHelpPanel:anObject;
  215. - sendHelp:sender;
  216. - setInfoPanel:anObject;
  217. - info:sender;
  218.  
  219. - setPreferencesPanel:anObject;
  220. - setPreferencesHelp:anObject;
  221. - setPrefDomainName:anObject;
  222. - setPrefMTPServer:anObject;
  223. - setPrefPersonalName:anObject;
  224. - setPrefRepository:anObject;
  225. - setPrefUserName:anObject;
  226. - setDefaultBccList:anObject;
  227. - setDefaultCcList:anObject;
  228. - setOutBox:anObject;
  229. - setMailboxFormat:anObject;
  230. - setAutomaticExpunge:anObject;
  231. - setAutomaticLogin:anObject;
  232. - setAutomaticRead:anObject;
  233. - setAutomaticOpen:anObject;
  234. - setAutomaticZoom:anObject;
  235. - setCloseFinalKill:anObject;
  236. - setDebugging:anObject;
  237. - setLiteralDisplay:anObject;
  238. - setNoLineBreaking:anObject;
  239. - setNoPersonalNames:anObject;
  240. - setCheckInterval:anObject;
  241. - setPreferencesHelp:anObject;
  242. - domainName:sender;
  243. - mtpServer:sender;
  244. - personalName:sender;
  245. - repository:sender;
  246. - userName:sender;
  247. - defaultBccList:sender;
  248. - defaultCcList:sender;
  249. - outBox:sender;
  250. - mailboxFormat:sender;
  251. - automaticExpunge:sender;
  252. - automaticLogin:sender;
  253. - automaticRead:sender;
  254. - automaticOpen:sender;
  255. - automaticZoom:sender;
  256. - closeFinalKill:sender;
  257. - debug:sender;
  258. - literalDisplay:sender;
  259. - noLineBreaking:sender;
  260. - noPersonalNames:sender;
  261. - checkInterval:sender;
  262. - preferences:sender;
  263. - helpPreferences:sender;
  264. - savePreferences:sender;
  265. - addressBook:sender;
  266. - setPasteboard:(char *) text;
  267. - terminate:sender;
  268. - toggleTelemetry:sender;                    // mdd
  269. - (BOOL)updateTelemetryMenu:menuCell;        // mdd
  270. @end
  271.