home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume15 / xmail / part06 / global.h < prev    next >
C/C++ Source or Header  |  1991-10-29  |  10KB  |  238 lines

  1. /*
  2.  * xmail - X window system interface to the mail program
  3.  *
  4.  * Copyright 1989 The University of Texas at Austin
  5.  *
  6.  * Author:    Po Cheung
  7.  * Date:    March 10, 1989
  8.  *
  9.  * Permission to use, copy, modify, and distribute this software and
  10.  * its documentation for any purpose and without fee is hereby granted,
  11.  * provided that the above copyright notice appear in all copies and that
  12.  * both that copyright notice and this permission notice appear in
  13.  * supporting documentation.  The University of Texas at Austin makes no 
  14.  * representations about the suitability of this software for any purpose.  
  15.  * It is provided "as is" without express or implied warranty.
  16.  *
  17.  * Copyright 1990,1991 by National Semiconductor Corporation
  18.  *
  19.  * Permission to use, copy, modify, and distribute this software and its
  20.  * documentation for any purpose is hereby granted without fee, provided that
  21.  * the above copyright notice appear in all copies and that both that
  22.  * copyright notice and this permission notice appear in supporting
  23.  * documentation, and that the name of National Semiconductor Corporation not
  24.  * be used in advertising or publicity pertaining to distribution of the
  25.  * software without specific, written prior permission.
  26.  *
  27.  * NATIONAL SEMICONDUCTOR CORPORATION MAKES NO REPRESENTATIONS ABOUT THE
  28.  * SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE.  IT IS PROVIDED "AS IS"
  29.  * WITHOUT EXPRESS OR IMPLIED WARRANTY.  NATIONAL SEMICONDUCTOR CORPORATION
  30.  * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
  31.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO
  32.  * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
  33.  * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  34.  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  35.  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  36.  * PERFORMANCE OF THIS SOFTWARE.
  37.  *
  38.  * Author:  Michael C. Wagnitz - National Semiconductor Corporation
  39.  *
  40.  */
  41.  
  42.  
  43. #include "defs.h"
  44.  
  45. /* HelpText.c */
  46.  
  47. extern String        Autograph_Info[];
  48. extern String        Copy_Info[];
  49. extern String        Default_Status_Info;
  50. extern String        Delete_Info[];
  51. extern String        Deliver_Info[];
  52. extern String        Folder_Info[];
  53. extern String        Hold_Info[];
  54. extern String        NewMail_Info[];
  55. extern String        Print_Info[];
  56. extern String        Quit_Info[];
  57. extern String        Read_Info[];
  58. extern String        Reply_Info[];
  59. extern String        Save_Info[];
  60. extern String        Send_Info[];
  61. extern String        SendMail_Info[];
  62.  
  63. extern String        Abort_Help;
  64. extern String        Bcc_Help;
  65. extern String        Cancel_Help;
  66. extern String        Cc_Help;
  67. extern String        Copy_Help;
  68. extern String        Delete_Help;
  69. extern String        Deliver_Help;
  70. extern String        File_Help;
  71. extern String        Folder_Help;
  72. extern String        Hold_Help;
  73. extern String        Index_Help;
  74. extern String        NewMail_Help;
  75. extern String        Print_Help;
  76. extern String        Quit_Help;
  77. extern String        Read_Help;
  78. extern String        ReEdit_Help;
  79. extern String        Reply_Help;
  80. extern String        Save_Help;
  81. extern String        Send_Help;
  82. extern String        Sign_Help;
  83. extern String        sign_Help;
  84. extern String        Status_Help;
  85. extern String        Subject_Help;
  86. extern String        Text_Help;
  87. extern String        Text2_Help;
  88. extern String        Title_Help;
  89. extern String        To_Help;
  90.  
  91. /* actions.c */
  92.  
  93. extern int        str_compare();        /* for qsort of folder names */
  94. extern XtActionProc    CheckInsert();        /* for the file window */
  95. extern XtActionProc    DeleteChar();        /* for deletes (file window) */
  96. extern XtActionProc    DeleteLine();        /* in the file window */
  97. extern XtActionProc    DeleteWord();        /* also in the file window */
  98. extern XtActionProc    DoCmd();        /* effect specified command */
  99. extern XtActionProc    DoNothing();        /* dummy action routine */
  100. extern XtActionProc    DoReply();        /* invoke reply callback */
  101. extern XtActionProc    DoSave();        /* invoke the save callback */
  102. extern XtActionProc    DoSelected();        /* DoCmd w/ selected message */
  103. extern XtActionProc    Folder();        /* execute folder command */
  104. extern XtActionProc    Iconify();        /* iconification request */
  105. extern XtActionProc    MyNotify();        /* invokes callbacks w/ param */
  106. extern XtActionProc    NextField();        /* warps pointer to data fld */
  107. extern XtActionProc    PrintMsg();        /* send mail to the printer */
  108. extern XtActionProc    Quit();            /* termination procedure */
  109. extern XtActionProc    SetAliases();        /* menu list of alias names */
  110. extern XtActionProc    SetDirectory();        /* create folder files list */
  111. extern XtActionProc    SetFolders();        /* create a list of folders */
  112. extern XtActionProc    SetMenu();        /* Position set_menu popup */
  113. extern XtActionProc    SetPopup();        /* Position relative to owner */
  114. extern XtActionProc    SetSelect();        /* reposition select mark */
  115. extern XtActionProc    ShowHelp();        /* Position help & popup text */
  116.  
  117. /* callbacks.c */
  118.  
  119. extern XtCallbackProc    Autograph();        /* adds Signature to message */
  120. extern int        endDelivery();        /* catch delivery completion */
  121. extern XtCallbackProc    Done();            /* completes mail delivery */
  122. extern XtCallbackProc    DoIt();            /* callback do specified cmd */
  123. extern XtCallbackProc    DoPrint();        /* callback printer execution */
  124. extern XtCallbackProc    DoQuit();        /* callback termination func */
  125. extern XtCallbackProc    DoSet();        /* callback to toggle options */
  126. extern XtCallbackProc    DoWith();        /* do cmd with arguments */
  127. extern XtCallbackProc    DropIt();        /* destroy Folder popup list */
  128. extern XtCallbackProc    GetAliasName();        /* retrieve alias name */
  129. extern XtCallbackProc    GetFolderName();    /* retrieve folder name */
  130. extern XtCallbackProc    ReEdit();        /* re-edit the mail message */
  131. extern XtCallbackProc    Reply();        /* use msg author and subject */
  132. extern XtCallbackProc    Save();            /* callback save routine */
  133. extern XtCallbackProc    SetNewmail();        /* highlight when new mail */
  134. extern XtCallbackProc    UnsetNewmail();        /* remove newmail highlight */
  135.  
  136. /* callMail.c */
  137.  
  138. extern void        callMail();        /* fork child, exec mail */
  139.  
  140. /* confirm.c */
  141.  
  142. extern Bool        Confirm();        /* Confirm destructive acts */
  143.  
  144. /* environs.c */
  145.  
  146. extern char        *GetMailEnv();        /* get value from mail env */
  147. extern char        *GetMailrc();        /* get mailrc item value */
  148. extern char        *alias();        /* get mailrc alias value */
  149.  
  150. /* handler.c */
  151.  
  152. extern int         In_System_Folder();    /* boolean test of folder */
  153. extern XtEventHandler    icon_handler();        /* handle iconify changes */
  154. extern int         index_handler();    /* highlight the msg number */
  155. extern void         info_handler();        /* change content of status */
  156. extern int         file_handler();        /* handle change of folder */
  157.  
  158. /* mail.c */
  159.  
  160. extern int         endEdits();        /* catch exit of edit child */
  161. extern void         editMail();        /* create/compose a message */
  162. extern XtInputCallbackProc readMail();        /* get data from mail */
  163. extern void         sendMail();        /* used by Send/Reply cmds */
  164. extern void         writeMail();        /* send data to mail */
  165.  
  166. /* parser.c */
  167.  
  168. extern void        parser_init();        /* compile patterns */
  169. extern int        match();        /* eval command or output */
  170. extern void        parse();        /* parse mail output */
  171. extern char        *QueryMail();        /* ask mail for info */
  172.  
  173. /* utils.c */
  174.  
  175. extern void         Bell();            /* disp. error and sound bell */
  176. extern int        figureWidth();        /* get figure width for font */
  177. extern void         markIndex();        /* add/replace index marker */
  178. extern int         SelectionNumber();    /* get number of selected msg */
  179. extern void        SetCursor();        /* change between wait & norm */
  180. extern void         SetXY();        /* set widget x/y coordinates */
  181. extern XawTextPosition    TextGetLastPos();    /* get last pos of text */
  182. extern void        UpdateTitleBar();    /* file name and msg count */
  183. extern void         writeText();        /* write text to buffer */
  184. extern void         writeTo();        /* send text data to window */
  185.  
  186. /* windows.c */
  187.  
  188. extern void        AddHelpText();        /* Add help popup to window */
  189. extern void        AddMenuWindow();    /* Add menu popup to window */
  190. extern void        AddButton();        /* Add command to window */
  191. extern void        CreateButtons();    /* make the command buttons */
  192. extern void        CreateCommandPanel();    /* form for command buttons */
  193. extern void        CreateFileWindow();    /* a text input window */
  194. extern void        CreateFolderButton();    /* a special command button */
  195. extern void        CreateHelpWindow();    /* the help window base */
  196. extern void        CreateIndexWindow();    /* a text input window */
  197. extern void        CreateStatusWindow();    /* a text output window */
  198. extern void         CreateSubWindows();    /* all subwindows of xmail */
  199. extern void        CreateTextWindow();    /* another text window */
  200. extern void        CreateTitleBar();    /* a text output window */
  201. extern Widget        CreateInputWindow();    /* To, Subject, Cc, and Bcc */
  202. extern void        ParseIconGeometry();    /* Parse icon geometry */
  203.  
  204. /* xmail.c */
  205.  
  206. extern void        initialize();        /* main initialization code */
  207. extern int        mailoptions();        /* sets up call to mail pgm */
  208.  
  209. /* extern functions */
  210.  
  211. extern char    *strchr(), *strrchr();
  212.  
  213. /* extern variables */
  214.  
  215. extern char    Command[BUFSIZ];    /* xmail command string        */
  216. extern char     InReply[BUFSIZ];    /* reply reference string    */
  217. extern char     tmpName[BUFSIZ];    /* message temporary filename    */
  218. extern char    *mailargv[7];        /* array passed to mail child    */
  219.  
  220. extern Pixmap    hatch;            /* cross_weave, used for Newmail */
  221. extern Boolean    In_Bogus_Mail_File;    /* in bogus folder when we're iconic */
  222. extern Widget    toplevel;         /* top level shell widget    */
  223. extern Atom    wmDeleteWindow;        /* for WM_DELETE_WINDOW property */
  224.  
  225. extern AliasRecPtr    *aliases;    /* array of mail alias strings    */
  226. extern helpList        HelpList;
  227. extern XmailResources    XMail;        /* XMail application resources */
  228.  
  229. extern int    mail_fd;        /* descriptor to mail process i/o */
  230.  
  231. extern int    mailargc;        /* counter passed to mail child    */
  232. extern int    RootWidth, RootHeight;
  233. extern int    mailpid;        /* mail process id */
  234. extern int    Highlighted;        /* state of 'Newmail' highlighting */
  235. extern int    mailInputId;        /* Identity of the XtAddInput call */
  236.  
  237. /* global.h */
  238.