home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / clients / xmh / globals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-07-18  |  6.4 KB  |  155 lines

  1. /*
  2.  *  $XConsortium: globals.h,v 2.39 91/07/18 21:03:15 converse Exp $
  3.  *
  4.  *
  5.  *               COPYRIGHT 1987, 1989
  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.  
  28. #ifdef MAIN
  29. #define ext
  30. #else
  31. #define ext extern
  32. #endif
  33.  
  34. ext Display    *theDisplay;    /* Display variable. */
  35. ext Widget    toplevel;    /* The top level widget (A hack %%%). */
  36. ext char    *progName;    /* Program name. */
  37. ext char    *homeDir;    /* User's home directory. */
  38. ext Atom    wm_protocols;    /* WM_PROTOCOLS atom for this display */
  39. ext Atom    wm_delete_window;    /* see ICCCM on Window Deletion */
  40. ext Atom    wm_save_yourself;    /* see ICCCM on session management */
  41. ext Atom    protocolList[2];    /* contains the two above */
  42.  
  43. ext struct _resources {
  44.     Boolean    debug;
  45.     char    *mail_path;        /* mh's mail directory. */
  46.     char    *temp_dir;        /* Directory for temporary files. */
  47.     char    *mh_path;        /* Path for mh commands. */
  48.     char    *initial_folder_name;    /* Initial folder to use. */
  49.     char    *initial_inc_file;    /* -file for inc on initial folder */
  50.     char    *insert_filter;        /* Insert message filter command */
  51.     char    *drafts_folder_name;    /* Folder for drafts. */
  52.     int        send_line_width;    /* How long to break lines on send. */
  53.     int        break_send_line_width;    /* Minimum length of a line before
  54.                        we'll break it. */
  55.     char    *print_command;        /* Printing command. */
  56.     int        toc_width;    /* How many characters wide to use in tocs */
  57.     Boolean    skip_deleted;        /* If true, skip over deleted msgs. */
  58.     Boolean    skip_moved;        /* If true, skip over moved msgs. */
  59.     Boolean    skip_copied;        /* If true, skip over copied msgs. */
  60.     Boolean    hide_boring_headers;
  61.     char    *geometry;    /* Default geometry to use for things. */
  62.     char    *toc_geometry;
  63.     char    *view_geometry;
  64.     char    *comp_geometry;
  65.     char    *pick_geometry;
  66.     int        toc_percentage;        /* % of toc and view used by toc */
  67.     Boolean    new_mail_check;        /* should xmh check for new mail? */
  68.     Boolean    make_checkpoints;       /* should xmh save edits in progress?*/
  69.     int        check_frequency;    /* backwards compatibility */
  70.     int        mail_waiting_flag;    /* If true, change icon on new mail */
  71.     int        mail_interval;        /* how often to check for new mail */
  72.     int        rescan_interval;    /* how often to check viewed tocs */
  73.     int        checkpoint_interval;    /* how often to save edits */
  74.     char *    checkpoint_name_format; /* format of checkpoint file name */
  75.     Pixmap    flag_up;        /* folder has new mail */
  76.     Pixmap    flag_down;        /* folder has no new mail */
  77.     Pixmap    new_mail_icon;        /* new mail icon for wm hints */
  78.     Pixmap    no_mail_icon;        /* no mail icon for wm hints */
  79.     Cursor    cursor;            /* application cursor */
  80.     Pixel    pointer_color;        /* application cursor color */
  81.     Boolean    show_on_inc;        /* show 1st new message after inc? */
  82.     Boolean    sticky_menu;        /* command menu entries are sticky? */
  83.     Boolean    prefix_wm_and_icon_name;/* prefix wm names with progName ? */
  84.     Boolean    reverse_read_order;    /* decrement counter to next msg ? */
  85.     Boolean    block_events_on_busy;    /* disallow user input while busy ? */
  86.     Cursor    busy_cursor;        /* the cursor while input blocked */
  87.     Pixel    busy_pointer_color;    /* busy cursor color */
  88.     int        command_button_count;    /* number of buttons in command box */
  89.     int        app_defaults_version;    /* for sanity check */
  90.     char     *banner;        /* defaults to xmh version string */
  91.     XtTranslations wm_protocols_translations; /* for all shells seen by WM */
  92. } app_resources;
  93.  
  94. ext char    *draftFile;    /* Filename of draft. */
  95. ext char    *xmhDraftFile;    /* Filename for sending. */
  96. ext Toc        *folderList;    /* Array of folders. */
  97. ext int        numFolders;    /* Number of entries in above array. */
  98. ext Toc        InitialFolder;    /* Toc containing initial folder. */
  99. ext Toc        DraftsFolder;    /* Toc containing drafts. */
  100. ext Scrn    *scrnList;    /* Array of scrns in use. */
  101. ext int        numScrns;    /* Number of scrns in above array. */
  102. ext Widget    NoMenuForButton;/* Flag menu widget value: no menu */
  103. ext Widget    LastMenuButtonPressed;    /* to `toggle' menu buttons */
  104. ext Widget      NullSource;    /* null text widget source */
  105. ext Dimension    rootwidth;    /* Dimensions of root window.  */
  106. ext Dimension    rootheight;
  107. ext Pixmap    MenuItemBitmap;    /* Options menu item checkmark */
  108. ext XtTranslations NoTextSearchAndReplace; /* no-op ^S and ^R in Text */
  109.  
  110. ext struct _LastInput {
  111.     Window win;
  112.     int x;
  113.     int y;
  114. } lastInput;
  115.  
  116. ext Boolean    subProcessRunning; /* interlock for DoCommand/CheckMail */
  117.  
  118. #define PNullSource (NullSource != NULL ? NullSource : \
  119. (NullSource = (Widget)  CreateFileSource(scrn->viewlabel, "/dev/null", False)))
  120.  
  121.  
  122. typedef struct _XmhMenuEntry {
  123.     char    *name;            /* menu entry name */
  124.     void       (*function)();        /* menu entry callback function */
  125. } XmhMenuEntryRec, *XmhMenuEntry;    
  126.  
  127.  
  128. typedef struct _XmhMenuButtonDesc {
  129.     char    *button_name;        /* menu button name */
  130.     char    *menu_name;        /* menu name */
  131.     int        id;            /* an internal key */
  132.     XmhMenuEntry entry;            /* list of menu entries */
  133.     Cardinal    num_entries;        /* count of menu entries in list */
  134. } XmhMenuButtonDescRec, *XmhMenuButtonDesc;
  135.  
  136.  
  137. extern XmhMenuEntryRec    folderMenu[];
  138. extern XmhMenuEntryRec    tocMenu[];
  139. extern XmhMenuEntryRec    messageMenu[];
  140. extern XmhMenuEntryRec    sequenceMenu[];
  141. extern XmhMenuEntryRec    viewMenu[];
  142. extern XmhMenuEntryRec    optionMenu[];
  143.  
  144. extern XmhMenuButtonDescRec    MenuBoxButtons[];
  145.  
  146. /* Used as indices into MenuBoxButtons; these must correspond. */
  147.  
  148. #define XMH_FOLDER    0
  149. #define XMH_TOC        1
  150. #define XMH_MESSAGE    2
  151. #define    XMH_SEQUENCE    3
  152. #define XMH_VIEW    4
  153. #define XMH_OPTION    5
  154.  
  155.