home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / s / stex2-18.zip / SeeTeX / Xtex / widgets.c < prev    next >
C/C++ Source or Header  |  1992-05-05  |  7KB  |  217 lines

  1. /*
  2.  * Copyright 1989 Dirk Grunwald
  3.  * 
  4.  * Permission to use, copy, modify, distribute, and sell this software
  5.  * and its documentation for any purpose is hereby granted without fee,
  6.  * provided that the above copyright notice appear in all copies and that
  7.  * both that copyright notice and this permission notice appear in
  8.  * supporting documentation, and that the name of Dirk Grunwald or M.I.T.
  9.  * not be used in advertising or publicity pertaining to distribution of
  10.  * the software without specific, written prior permission.  Dirk
  11.  * Grunwald and M.I.T. makes no representations about the suitability of
  12.  * this software for any purpose.  It is provided "as is" without express
  13.  * or implied warranty.
  14.  * 
  15.  * DIRK GRUNWALD AND M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
  16.  * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  17.  * FITNESS, IN NO EVENT SHALL M.I.T.  BE LIABLE FOR ANY SPECIAL, INDIRECT
  18.  * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  19.  * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  20.  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  21.  * OR PERFORMANCE OF THIS SOFTWARE.
  22.  * 
  23.  * Author:
  24.  *     Dr. Dirk Grunwald
  25.  *     Dept. of Computer Science
  26.  *     Campus Box 430
  27.  *     Univ. of Colorado, Boulder
  28.  *     Boulder, CO 80309
  29.  * 
  30.  *     grunwald@colorado.edu
  31.  *     
  32.  */ 
  33. #include "xtex.h"
  34. #include <errno.h>
  35. #include <sys/param.h>
  36. #include <assert.h>
  37. #include "widgets.h"
  38.  
  39. Widget topPane;
  40.  
  41. /*
  42.  *    Widgets related to file I/O
  43.  */
  44. Widget fileNameText;
  45. Widget openButton;
  46. Widget copyButton;
  47. Widget cdButton;
  48. Widget closeButton;
  49. Widget quitButton;
  50. Widget directoryLabel;
  51. Widget fileLabel;
  52. #ifdef SELFILE
  53. Widget selectButton;
  54. #endif
  55.  
  56. /*
  57.  *    Widgets related to the pages table
  58.  */
  59. Widget pageButton;
  60. Widget printAllButton;
  61. Widget printMarkedButton;
  62. Widget printUnmarkedButton;
  63.  
  64. Widget clearMarksButton;
  65. Widget markMenuViewPort;
  66. Widget markMenuList;
  67.  
  68. /*
  69.  *    Error dialog widgets
  70.  */
  71.  
  72. Widget errorText;
  73.  
  74. void
  75.   BuildTopLevelWidget(topLevel)
  76. Widget topLevel;
  77. {
  78.  
  79.   Arg argList[20];
  80.   Cardinal args;
  81.  
  82.   args = 0;
  83.   XtSetArg(argList[args], XtNresize, True); args++;
  84.  
  85.   topPane = 
  86.     XtCreateManagedWidget("topLevel",
  87.               formWidgetClass, topLevel,
  88.               argList, args);
  89.   BuildFileLevel();
  90.   BuildErrorBox();
  91.  
  92.   args = 0;
  93.   XtSetArg(argList[args], XtNtop, XtChainTop); args++;
  94.   XtSetArg(argList[args], XtNleft, XtChainLeft); args++;
  95.   XtSetValues(fileNameText, argList, args);
  96.  
  97.   args = 0;
  98.   XtSetArg(argList[args], XtNfromVert, fileNameText); args++;
  99.   XtSetArg(argList[args], XtNleft, XtChainLeft); args++;
  100.   XtSetValues(quitButton, argList, args);
  101.  
  102. #ifdef SELFILE
  103.   args = 0;
  104.   XtSetArg(argList[args], XtNfromVert, fileNameText); args++;
  105.   XtSetArg(argList[args], XtNfromHoriz, quitButton); args++;
  106.   XtSetValues(selectButton, argList, args);
  107. #endif
  108.  
  109.   args = 0;
  110.   XtSetArg(argList[args], XtNfromVert, fileNameText); args++;
  111. #ifdef SELFILE
  112.   XtSetArg(argList[args], XtNfromHoriz, selectButton); args++;
  113. #else
  114.   XtSetArg(argList[args], XtNfromHoriz, quitButton); args++;
  115. #endif
  116.   XtSetValues(openButton, argList, args);
  117.  
  118.   args = 0;
  119.   XtSetArg(argList[args], XtNfromVert, fileNameText); args++;
  120.   XtSetArg(argList[args], XtNfromHoriz, openButton); args++;
  121.   XtSetValues(copyButton, argList, args);
  122.  
  123.   args = 0;
  124.   XtSetArg(argList[args], XtNfromVert, fileNameText); args++;
  125.   XtSetArg(argList[args], XtNfromHoriz, copyButton); args++;
  126.   XtSetValues(closeButton, argList, args);
  127.  
  128.   args = 0;
  129.   XtSetArg(argList[args], XtNfromVert, fileNameText); args++;
  130.   XtSetArg(argList[args], XtNfromHoriz, closeButton); args++;
  131.   XtSetValues(cdButton, argList, args);
  132.  
  133.   args = 0;
  134.   XtSetArg(argList[args], XtNfromVert, openButton); args++;
  135.   XtSetArg(argList[args], XtNfromHoriz, quitButton); args++;
  136.   XtSetValues(pageButton, argList, args);
  137.  
  138.   args = 0;
  139.   XtSetArg(argList[args], XtNfromVert, quitButton); args++;
  140.   XtSetArg(argList[args], XtNfromHoriz, pageButton); args++;
  141.   XtSetValues(printAllButton, argList, args);
  142.  
  143.   args = 0;
  144.   XtSetArg(argList[args], XtNfromVert, quitButton); args++;
  145.   XtSetArg(argList[args], XtNfromHoriz, printAllButton); args++;
  146.   XtSetValues(printMarkedButton, argList, args);
  147.  
  148.   args = 0;
  149.   XtSetArg(argList[args], XtNfromVert, quitButton); args++;
  150.   XtSetArg(argList[args], XtNfromHoriz, printMarkedButton); args++;
  151.   XtSetValues(printUnmarkedButton, argList, args);
  152.  
  153.   args = 0;
  154.   XtSetArg(argList[args], XtNfromVert, quitButton); args++;
  155.   XtSetArg(argList[args], XtNfromHoriz, printUnmarkedButton); args++;
  156.   XtSetArg(argList[args], XtNresize, False); args++;
  157.   XtSetArg(argList[args], XtNresizable, False); args++;
  158.   XtSetValues(clearMarksButton, argList, args);
  159.  
  160.   args = 0;
  161.   XtSetArg(argList[args], XtNfromVert, pageButton); args++;
  162.   XtSetArg(argList[args], XtNleft, XtChainLeft); args++;
  163.   XtSetArg(argList[args], XtNresizable, True); args++;
  164.   XtSetArg(argList[args], XtNresize, True); args++;
  165.   XtSetValues(directoryLabel, argList, args);
  166.  
  167.   args = 0;
  168.   XtSetArg(argList[args], XtNfromVert, directoryLabel); args++;
  169.   XtSetArg(argList[args], XtNleft, XtChainLeft); args++;
  170.   XtSetArg(argList[args], XtNresizable, True); args++;
  171.   XtSetArg(argList[args], XtNresize, True); args++;
  172.   XtSetValues(fileLabel, argList, args);
  173.  
  174.   args = 0;
  175.   XtSetArg(argList[args], XtNfromVert, fileLabel); args++;
  176.  
  177.   XtSetArg(argList[args], XtNleft, XtChainLeft); args++;
  178.   XtSetArg(argList[args], XtNresizable, True); args++;
  179.   XtSetValues(errorText, argList, args);
  180.  
  181.   /* don't manage the mark menu viewport until the list is built, or 
  182.      it'll be oddly sized */
  183.  
  184.   args = 0;
  185.   XtSetArg(argList[args], XtNresize, True); args++;
  186.   XtSetArg(argList[args], XtNmappedWhenManaged, False); args++;
  187.   XtSetArg(argList[args], XtNfromVert, errorText); args++;
  188.   XtSetArg(argList[args], XtNleft, XtChainLeft); args++;
  189.   
  190.   markMenuViewPort =
  191.     XtCreateWidget("markMenuViewPort",
  192.            viewportWidgetClass, topPane,
  193.            argList, args);
  194.   {
  195.     extern void TeXMarkMenuSelect();
  196.     XtCallbackRec menuCallBacks [2];
  197.     char ** foo[2];
  198.     foo[0] = foo[1] = 0;
  199.  
  200.     menuCallBacks[0].callback = TeXMarkMenuSelect;
  201.     menuCallBacks[0].closure = NULL;
  202.     menuCallBacks[1].callback = NULL;
  203.     menuCallBacks[1].closure = NULL;
  204.  
  205.     args = 0;
  206.     XtSetArg(argList[args], XtNresize, True); args++;
  207.     XtSetArg(argList[args], XtNcallback, (caddr_t) menuCallBacks); args++;
  208.     XtSetArg(argList[args], XtNlist, foo); args++;
  209.     markMenuList =
  210.       XtCreateManagedWidget("markMenuList", listWidgetClass, markMenuViewPort,
  211.                 argList, args);
  212.   }
  213.   
  214.   BuildMarkMenuPopUp( );
  215.   XtManageChild( markMenuViewPort );
  216. }
  217.