1 /* 2 * $XConsortium: xmh.h,v 2.32 93/09/08 15:31:11 kaleb Exp $ 3 * 4 * 5 * COPYRIGHT 1987 6 * DIGITAL EQUIPMENT CORPORATION 7 * MAYNARD, MASSACHUSETTS 8 * ALL RIGHTS RESERVED. 9 * 10 * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND 11 * SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. 12 * DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR 13 * ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. 14 * 15 * IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT 16 * RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN 17 * ADDITION TO THAT SET FORTH ABOVE. 18 * 19 * Permission to use, copy, modify, and distribute this software and its 20 * documentation for any purpose and without fee is hereby granted, provided 21 * that 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 Digital Equipment Corporation not be 24 * used in advertising or publicity pertaining to distribution of the software 25 * without specific, written prior permission. 26 */ 27 /* $XFree86$ */ 28 29 #ifndef _xmh_h 30 #define _xmh_h 31 32 #include "config.h" 33 #define XMH_VERSION PACKAGE_STRING 34 #define _CONST_X_STRING 35 36 #include <X11/Intrinsic.h> 37 #include <X11/StringDefs.h> 38 #include <X11/Shell.h> 39 #include <X11/Xos.h> 40 #include <X11/Xfuncs.h> 41 #include <X11/Xutil.h> 42 #include <X11/cursorfont.h> 43 #include <X11/Xaw/AsciiText.h> 44 #include <X11/Xaw/SmeBSB.h> 45 #include <X11/Xaw/Box.h> 46 #include <X11/Xaw/Command.h> 47 #include <X11/Xaw/Dialog.h> 48 #include <X11/Xaw/Form.h> 49 #include <X11/Xaw/Label.h> 50 #include <X11/Xaw/SmeLine.h> 51 #include <X11/Xaw/MenuButton.h> 52 #include <X11/Xaw/SimpleMenu.h> 53 #include <X11/Xaw/Toggle.h> 54 #include <X11/Xaw/Viewport.h> 55 #include <X11/Xaw/Paned.h> 56 #if defined(sun) && defined(SVR4) 57 #define _XOPEN_SOURCE 58 #include <stdio.h> 59 #undef _XOPEN_SOURCE 60 #else 61 #include <stdio.h> 62 #endif 63 64 #define DELETEABORTED -1 65 #define NEEDS_CONFIRMATION -1 66 #define MARKPOS 4 67 68 #define xMargin 2 69 #define yMargin 2 70 71 #define DEBUG(msg) \ 72 if (app_resources.debug) \ 73 {(void)fputs(msg, stderr); (void)fflush(stderr);} 74 75 #define DEBUG1(msg, arg) \ 76 if (app_resources.debug) \ 77 {(void)fprintf(stderr, msg, arg); (void)fflush(stderr);} 78 79 #define DEBUG2(msg, arg1, arg2) \ 80 if (app_resources.debug) \ 81 {(void)fprintf(stderr,msg,arg1,arg2); (void)fflush(stderr);} 82 83 typedef int * dp; /* For debugging. */ 84 85 typedef FILE* FILEPTR; 86 87 typedef struct _ButtonRec *Button; 88 typedef struct _XmhButtonBoxRec *ButtonBox; 89 typedef struct _TocRec *Toc; 90 typedef struct _MsgRec *Msg; 91 typedef struct _PickRec *Pick; 92 93 typedef enum { 94 Fignore, Fmove, Fcopy, Fdelete 95 } FateType; 96 97 typedef enum { 98 STtocAndView, 99 STview, 100 STcomp, 101 STpick 102 } ScrnKind; 103 104 typedef struct _StackRec { 105 const char *data; 106 struct _StackRec *next; 107 } StackRec, *Stack; 108 109 110 typedef struct _ScrnRec { 111 Widget parent; /* The parent widget of the scrn */ 112 Widget widget; /* The pane widget for the scrn */ 113 int mapped; /* TRUE only if we've mapped this screen. */ 114 ScrnKind kind; /* What kind of scrn we have. */ 115 ButtonBox mainbuttons; /* Main xmh control buttons. */ 116 Widget folderlabel; /* Folder titlebar */ 117 ButtonBox folderbuttons; /* Folder buttons. */ 118 Widget toclabel; /* Toc titlebar. */ 119 Widget tocwidget; /* Toc text. */ 120 ButtonBox miscbuttons; /* optional miscellaneous command buttons */ 121 Widget viewlabel; /* View titlebar. */ 122 Widget viewwidget; /* View text. */ 123 ButtonBox viewbuttons; /* View control buttons. */ 124 const char * curfolder; /* Currently selected folder name */ 125 Toc toc; /* The table of contents. */ 126 Msg msg; /* The message being viewed. */ 127 Pick pick; /* Pick in this screen. */ 128 XtTranslations edit_translations; /* Text widget translations */ 129 XtTranslations read_translations; /* overridden by accelerators */ 130 Msg assocmsg; /* Associated message for reply, etc. */ 131 Window wait_window; /* InputOnly window with busy cursor */ 132 Stack folder_stack; /* Stack of folder names */ 133 } ScrnRec, *Scrn; 134 135 136 typedef struct { 137 int nummsgs; 138 Msg *msglist; 139 } MsgListRec, *MsgList; 140 141 142 typedef struct { 143 const char *name; /* Name of this sequence. */ 144 MsgList mlist; /* Messages in this sequence. */ 145 } SequenceRec, *Sequence; 146 147 #define XMH_CB_ARGS Widget, XtPointer, XtPointer 148 149 #include "globals.h" 150 #include "externs.h" 151 #include "mlist.h" 152 #include "bbox.h" 153 #include "msg.h" 154 #include "toc.h" 155 156 #endif /* _xmh_h */ 157