🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: vmsnet.sources
Article #19

Ghostview for VMS 09/14

#19
From: Terry Poot
Date: Thu, 29 Oct 1992 18:49
1180 lines
49412 bytes
Submitted-by: Terry Poot <tp@mccall.com>
Posting-number: Volume 3, Issue 227
Archive-name: ghostview/part09

-+-+-+-+-+-+-+-+ START OF PART 9 -+-+-+-+-+-+-+-+
Xalong with this program; if not, write to the Free Software\n\
XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
X\n\
X  Author: Tim Theisen           Systems Programmer\n\
XInternet: tim@cs.wisc.edu       Department of Computer Sciences\n\
X    UUCP: uwvax!tim             University of Wisconsin-Madison\n\
X   Phone: (608)262-0438         1210 West Dayton Street\n\
X     FAX: (608)262-9777         Madison, WI   53706";
X
Xstatic void Syntax();
X
Xfloat`09default_xdpi;`09/* default xdpi from ghostview widget */
Xfloat`09default_ydpi;`09/* default ydpi from ghostview widget */
X
Xint`09num_ghosts;`09/* number of ghostview widgets active */
XFILE`09*psfile;`09/* file to display */
XString`09filename;`09/* its filename */
XString`09oldfilename;`09/* previous filename */
Xint`09current_page;`09/* current page being displayed */
Xint`09current_magstep;/* current magnification */
XXtPageOrientation`09current_orientation; /* current orientation */
Xint`09default_pagemedia;`09/* index into document media or papersizes */
Xint`09current_pagemedia;`09/* index into document media or papersizes */
XBoolean`09force_document_media;`09/* Whether to force a document media */
Xint`09document_media;`09`09/* document media being forced */
Xint`09current_llx;`09`09/* current bounding box */
Xint`09current_lly;
Xint`09current_urx;
Xint`09current_ury;
Xint`09base_papersize;`09`09/* tells where papersizes begins */
XBoolean`09info_up;`09`09/* tells if information window is up */
Xint`09force_setting;`09`09/* tells if new setting override %%comments */
XPixmap`09dot_bitmap;`09`09/* bitmap used to mark default setting */
XPixmap`09menu16_bitmap;`09`09/* bitmap used to mark document setting */
XPixmap`09tie_fighter_bitmap;`09/* bitmap used to mark forced setting */
XString`09toc_text;`09/* page labels (Table of Contents) */
Xint`09toc_length;`09/* length of page label text */
Xint`09toc_entry_length; /* length of one entry */
Xint`09info_length;`09/* number of bytes in infotext window */
Xint`09mode;`09/* tells what type of popup */
Xtime_t`09mtime;`09`09/* last modified time of input file */
Xstruct document *doc;`09/* document structure */
Xstruct document *olddoc;`09/* document structure */
XColormap`09cmap;`09/* colormap being used */
XBoolean`09special_cmap;`09/* Is cmap not the Default Colormap */
XPixel`09white;`09`09/* white pixel in above colormap */
XPixel`09black;`09`09/* black pixel in above colormap */
XAtom`09wm_delete_window;`09/* Atom sent to destroy a window */
XXErrorHandler`09old_Xerror;`09/* standard error handler */
XBoolean`09dying;`09`09/* whether an X error caused our exit */
XXErrorEvent`09bomb;`09/* what the error was */
X
XXtAppContext app_con;
XAppResources app_res;
X
X/* Widgets used.  Indentation indicates hierarchy */
X        Widget toplevel;
X        Widget     form;
X        Widget         titlebutton;
X        Widget             titlemenu;
X        Widget         datebutton;
X        Widget             datemenu;
X        Widget         locator;
X        Widget         box;
X        Widget             filebutton;
X        Widget                 filemenu;
X        Widget                     openbutton;
X        Widget                     reopenbutton;
X        Widget                     printwholebutton;
X        Widget                     printmarkedbutton;
X        Widget                     savebutton;
X        Widget                     copyrightbutton;
X        Widget                     quitbutton;
X        Widget             pagebutton;
X        Widget                 pagemenu;
X        Widget                     nextbutton;
X        Widget                     showbutton;
X        Widget                     prevbutton;
X        Widget                     centerbutton;
X        Widget                     markbutton;
X        Widget                     unmarkbutton;
X        Widget             magstepbutton;
X        Widget                 magstepmenu;
X        Widget                     *magstepentry;
X        Widget             orientationbutton;
X        Widget                 orientationmenu;
X        Widget                     portraitbutton;
X        Widget                     landscapebutton;
X        Widget                     upsidedownbutton;
X        Widget                     seascapebutton;
X        Widget                     swapbutton;
X        Widget             pagemediabutton;
X        Widget                 pagemediamenu;
X        Widget                     *pagemediaentry;
X        Widget         toc;
X        Widget         pageview;
X        Widget             page;
X
X/* Popup children */
X        Widget infopopup;
X        Widget     infoform;
X        Widget         infotext;
X        Widget         infodismiss;
X        Widget copyrightpopup;
X        Widget     copyrightform;
X        Widget         copyrighttext;
X        Widget         copyrightdismiss;
X        Widget dialogpopup;
X        Widget     dialog;
X
Xint
Xmain(argc, argv)
Xint argc;
Xchar *argv`5B`5D;
X`7B
X    struct stat sbuf;
X    Display *dpy;
X    Screen *scr;
X    Arg args`5B20`5D;
X    Cardinal num_args;
X    Widget above_toc;
X    Widget left_of_page;
X    Widget line;
X    int i;
X    Boolean set_vert_dist;
X    String s1, s2;
X    XFontStruct *font;
X    XTextProperty nameprop;
X    Dimension bottomMargin, leftMargin, rightMargin, topMargin;
X    Dimension width, height;
X    Dimension button_width;
X    static String nothing = "";
X    static XawTextSelectType sarry`5B`5D =
X`09    `7BXawselectLine, XawselectAll, XawselectNull`7D;
X
X    XtToolkitInitialize();
X    XtSetTypeConverter(XtRString, XtRPageOrientation,
X`09`09       XmuCvtStringToPageOrientation, NULL, 0,
X`09`09       XtCacheAll, NULL);
X    app_con = XtCreateApplicationContext();
X    XtAppAddActions(app_con, actions, XtNumber(actions));
X    XtAppSetFallbackResources(app_con, fallback_resources);
X    dpy = XtOpenDisplay(app_con, NULL, NULL, "Ghostview",
X`09`09`09options, XtNumber(options), &argc, argv);
X    if (dpy == NULL) `7B
X`09fprintf(stderr, "%s: cannot open DISPLAY.\n", argv`5B0`5D);
X`09exit(1);
X    `7D
X    if (argc > 2) Syntax(argv`5B0`5D);
X    if (argc == 2) `7B
X`09filename = XtNewString(argv`5B1`5D);
X`09if (strcmp(filename, "-")) `7B
X#ifdef VMS
X`09    if ((psfile = fopen(argv`5B1`5D, "r", "mbc=100")) == NULL) `7B
X#else
X`09    if ((psfile = fopen(argv`5B1`5D, "r")) == NULL) `7B
X#endif
X`09`09fprintf(stderr, "Cannot open ");
X`09`09perror(argv`5B1`5D);
X`09`09exit(1);
X`09    `7D
X`09    stat(filename, &sbuf);
X`09    mtime = sbuf.st_mtime;
X`09`7D
X    `7D
X
X    old_Xerror = XSetErrorHandler(catch_Xerror);
X    scr = DefaultScreenOfDisplay(dpy);
X    wm_delete_window = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
X
X    toplevel = XtAppCreateShell(NULL, "Ghostview", applicationShellWidgetCla
Vss,
X`09`09`09`09dpy, NULL, ZERO);
X
X    XtGetApplicationResources(toplevel, (XtPointer) &app_res,
X`09`09`09      resources, XtNumber(resources), NULL, ZERO);
X    if (s1 = getenv(app_res.printer_variable)) app_res.default_printer = s1;
X    SetStandardColormap(toplevel);
X
X    /* Open Windows sometimes hands me a bad bitmap */
X    if (app_res.openwindows) `7B
X`09dot_bitmap = menu16_bitmap = tie_fighter_bitmap = None;
X    `7D else `7B
X`09dot_bitmap = XCreateBitmapFromData(dpy, RootWindowOfScreen(scr),
X`09`09`09`09`09   dot_bits, dot_width, dot_height);
X`09menu16_bitmap = XCreateBitmapFromData(dpy, RootWindowOfScreen(scr),
X`09`09`09`09`09      menu16_bits, menu16_width,
X`09`09`09`09`09      menu16_height);
X`09tie_fighter_bitmap = XCreateBitmapFromData(dpy, RootWindowOfScreen(scr),
X`09`09`09`09`09`09   tie_fighter_bits,
X`09`09`09`09`09`09   tie_fighter_width,
X`09`09`09`09`09`09   tie_fighter_height);
X    `7D
X   `20
X    /* Instantiate Popup children */
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNcolormap, cmap);`09num_args++;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    infopopup = XtCreatePopupShell("information", topLevelShellWidgetClass,
X`09`09`09`09   toplevel, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    infoform = XtCreateManagedWidget("form", formWidgetClass,
X`09`09`09`09     infopopup, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNright, XtChainRight);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNscrollHorizontal, XawtextScrollWhenNeede
Vd);
X`09`09`09`09`09`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNscrollVertical, XawtextScrollWhenNeeded)
V;
X`09`09`09`09`09`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNdisplayCaret, False);`09num_args++;
X    infotext = XtCreateManagedWidget("text", asciiTextWidgetClass,
X`09`09`09`09     infoform, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNfromVert, infotext);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNright, XtChainRight);`09num_args++;
X    infodismiss = XtCreateManagedWidget("dismiss", commandWidgetClass,
X`09`09`09`09       infoform, args, num_args);
X    XtAddCallback(infodismiss, XtNcallback, dismiss, (XtPointer)infopopup);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNfont, &font);`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottomMargin, &bottomMargin);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleftMargin, &leftMargin);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNrightMargin, &rightMargin);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNtopMargin, &topMargin);`09num_args++;
X    XtGetValues(infotext, args, num_args);
X
X    width = font->max_bounds.width * 80 + leftMargin + rightMargin;
X    height = (font->ascent + font->descent) * ROWS + topMargin + bottomMargi
Vn;
X
X    XtSetArg(args`5B0`5D, XtNwidth, width);
X    XtSetArg(args`5B1`5D, XtNheight, height);
X    XtSetValues(infotext, args, TWO);
X    XtSetValues(infodismiss, args, ONE);
X    XtRealizeWidget(infopopup);
X    XSetWMProtocols(dpy, XtWindow(infopopup), &wm_delete_window, 1);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNcolormap, cmap);`09num_args++;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    copyrightpopup = XtCreatePopupShell("copyright", topLevelShellWidgetClas
Vs,
X`09`09`09`09`09toplevel, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    copyrightform = XtCreateManagedWidget("form", formWidgetClass,
X`09`09`09`09`09  copyrightpopup, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNright, XtChainRight);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNscrollHorizontal, XawtextScrollWhenNeede
Vd);
X`09`09`09`09`09`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNscrollVertical, XawtextScrollWhenNeeded)
V;
X`09`09`09`09`09`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNdisplayCaret, False);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNuseStringInPlace, True);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNlength, strlen(copyright));num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNstring, copyright);`09num_args++;
X    copyrighttext = XtCreateManagedWidget("text", asciiTextWidgetClass,
X`09`09`09`09`09  copyrightform, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNfromVert, copyrighttext);
X`09`09`09`09`09`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNright, XtChainRight);`09num_args++;
X    copyrightdismiss = XtCreateManagedWidget("dismiss", commandWidgetClass,
X`09`09`09`09`09     copyrightform, args, num_args);
X    XtAddCallback(copyrightdismiss, XtNcallback, dismiss,
X`09`09  (XtPointer)copyrightpopup);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNfont, &font);`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottomMargin, &bottomMargin);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleftMargin, &leftMargin);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNrightMargin, &rightMargin);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNtopMargin, &topMargin);`09num_args++;
X    XtGetValues(copyrighttext, args, num_args);
X
X    width = font->max_bounds.width * COLS + leftMargin + rightMargin;
X    height = (font->ascent + font->descent) * ROWS + topMargin + bottomMargi
Vn;
X
X    XtSetArg(args`5B0`5D, XtNwidth, width);
X    XtSetArg(args`5B1`5D, XtNheight, height);
X    XtSetValues(copyrighttext, args, TWO);
X    XtSetValues(copyrightdismiss, args, ONE);
X    XtRealizeWidget(copyrightpopup);
X    XSetWMProtocols(dpy, XtWindow(copyrightpopup), &wm_delete_window, 1);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNcolormap, cmap);`09num_args++;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    dialogpopup = XtCreatePopupShell("popup", transientShellWidgetClass,
X`09`09`09`09     toplevel, args, num_args);
X
X    dialog = CreateDialog(dialogpopup, "dialog", okay, dismiss);
X    XtRealizeWidget(dialogpopup);
X    XSetWMProtocols(dpy, XtWindow(dialogpopup), &wm_delete_window, 1);
X
X
X    /* Instantiate Widgets */
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    form = XtCreateManagedWidget("form", formWidgetClass,
X`09`09`09`09 toplevel, args, num_args);
X
X    above_toc = NULL;
X    left_of_page = NULL;
X    set_vert_dist = False;
X    if (app_res.show_title) `7B
X`09`09`09`09`09`09`09num_args = 0;
X`09if (special_cmap) `7B
X`09    XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09    XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X`09`7D
X`09XtSetArg(args`5Bnum_args`5D, XtNfromVert, above_toc);num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainTop);num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNright, XtChainLeft);num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNresizable, True);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNborderWidth, 0);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNlabel, " ");`09num_args++;
X`09titlebutton = XtCreateManagedWidget("titleButton",
X`09`09`09`09`09    menuButtonWidgetClass,
X`09`09`09`09            form, args, num_args);
X`09above_toc = titlebutton;
X`09if (!left_of_page) left_of_page = titlebutton;
X`09set_vert_dist = True;
X    `7D
X
X    if (app_res.show_date) `7B
X`09`09`09`09`09`09`09num_args = 0;
X`09if (special_cmap) `7B
X`09    XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09    XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X`09`7D
X`09XtSetArg(args`5Bnum_args`5D, XtNfromVert, above_toc);num_args++;
X`09if (set_vert_dist) `7B
X`09    XtSetArg(args`5Bnum_args`5D, XtNvertDistance, 0);num_args++;
X`09`7D
X`09XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainTop);num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNright, XtChainLeft);num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNresizable, True);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNborderWidth, 0);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNlabel, " ");`09num_args++;
X`09datebutton = XtCreateManagedWidget("dateButton", menuButtonWidgetClass,
X`09`09`09`09`09   form, args, num_args);
X`09above_toc = datebutton;
X`09if (!left_of_page) left_of_page = datebutton;
X`09set_vert_dist = True;
X    `7D
X
X    if (app_res.show_locator) `7B
X`09`09`09`09`09`09`09num_args = 0;
X`09if (special_cmap) `7B
X`09    XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09    XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X`09`7D
X`09XtSetArg(args`5Bnum_args`5D, XtNfromVert, above_toc);num_args++;
X`09if (set_vert_dist) `7B
X`09    XtSetArg(args`5Bnum_args`5D, XtNvertDistance, 0);num_args++;
X`09`7D
X`09XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainTop);num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNright, XtChainLeft);num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNresizable, True);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNborderWidth, 0);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNlabel, " ");`09num_args++;
X`09locator = XtCreateManagedWidget("locator", labelWidgetClass,
X`09`09`09`09`09form, args, num_args);
X`09above_toc = locator;
X`09if (!left_of_page) left_of_page = locator;
X    `7D
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNfromVert, above_toc);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainTop);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNright, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNresizable, True);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNallowVert, True);`09num_args++;
X    box = XtCreateManagedWidget("box", boxWidgetClass, form, args, num_args)
V;
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X    filebutton = XtCreateManagedWidget("fileButton", menuButtonWidgetClass,
X`09`09`09`09       box, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNcolormap, cmap);`09num_args++;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    filemenu = XtCreatePopupShell("menu", simpleMenuWidgetClass,
X`09`09`09`09  filebutton, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    openbutton = XtCreateManagedWidget("open", smeBSBObjectClass,
X`09`09`09`09       filemenu, args, num_args);
X    XtAddCallback(openbutton, XtNcallback, popup_dialog, (XtPointer)OPEN);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    reopenbutton = XtCreateManagedWidget("reopen", smeBSBObjectClass,
X`09`09`09`09         filemenu, args, num_args);
X    XtAddCallback(reopenbutton, XtNcallback, reopen_file, (XtPointer)NULL);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    printwholebutton = XtCreateManagedWidget("printwhole", smeBSBObjectClass
V,
X`09`09`09`09             filemenu, args, num_args);
X    XtAddCallback(printwholebutton, XtNcallback, popup_dialog,
X`09`09  (XtPointer)PRINT_WHOLE);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    printmarkedbutton = XtCreateManagedWidget("printmarked", smeBSBObjectCla
Vss,
X`09`09`09`09              filemenu, args, num_args);
X    XtAddCallback(printmarkedbutton, XtNcallback, popup_dialog,
X`09`09  (XtPointer)PRINT_MARKED);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    savebutton = XtCreateManagedWidget("save", smeBSBObjectClass,
X`09`09`09`09       filemenu, args, num_args);
X    XtAddCallback(savebutton, XtNcallback, popup_dialog, (XtPointer)SAVE);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    line = XtCreateManagedWidget("line", smeLineObjectClass,
X`09`09`09`09 filemenu, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    copyrightbutton = XtCreateManagedWidget("copyright", smeBSBObjectClass,
X`09`09`09`09`09    filemenu, args, num_args);
X    XtAddCallback(copyrightbutton, XtNcallback, popup,
X`09`09  (XtPointer)copyrightpopup);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    quitbutton = XtCreateManagedWidget("quit", smeBSBObjectClass,
X`09`09`09`09       filemenu, args, num_args);
X    XtAddCallback(quitbutton, XtNcallback, quit_ghostview, (XtPointer)0);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X    pagebutton = XtCreateManagedWidget("pageButton", menuButtonWidgetClass,
X`09`09`09`09       box, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNcolormap, cmap);`09num_args++;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    pagemenu = XtCreatePopupShell("menu", simpleMenuWidgetClass,
X`09`09`09`09  pagebutton, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    nextbutton = XtCreateManagedWidget("next", smeBSBObjectClass,
X`09`09`09`09       pagemenu, args, num_args);
X    XtAddCallback(nextbutton, XtNcallback, next_page, (XtPointer)0);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    showbutton = XtCreateManagedWidget("show", smeBSBObjectClass,
X`09`09`09`09       pagemenu, args, num_args);
X    XtAddCallback(showbutton, XtNcallback, this_page, (XtPointer)0);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    prevbutton = XtCreateManagedWidget("prev", smeBSBObjectClass,
X`09`09`09`09       pagemenu, args, num_args);
X    XtAddCallback(prevbutton, XtNcallback, prev_page, (XtPointer)0);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    line = XtCreateManagedWidget("line", smeLineObjectClass,
X`09`09`09`09 pagemenu, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    centerbutton = XtCreateManagedWidget("center", smeBSBObjectClass,
X`09`09`09`09       pagemenu, args, num_args);
X    XtAddCallback(centerbutton, XtNcallback, center_page, (XtPointer)0);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    line = XtCreateManagedWidget("line", smeLineObjectClass,
X`09`09`09`09 pagemenu, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    markbutton = XtCreateManagedWidget("mark", smeBSBObjectClass,
X`09`09`09`09       pagemenu, args, num_args);
X    XtAddCallback(markbutton, XtNcallback, mark_page, (XtPointer)0);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    unmarkbutton = XtCreateManagedWidget("unmark", smeBSBObjectClass,
X`09`09`09`09         pagemenu, args, num_args);
X    XtAddCallback(unmarkbutton, XtNcallback, unmark_page, (XtPointer)0);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X    magstepbutton = XtCreateManagedWidget("magstepButton",
X`09`09`09`09`09  menuButtonWidgetClass,
X`09`09`09`09`09  box, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNcolormap, cmap);`09num_args++;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    magstepmenu = XtCreatePopupShell("menu", simpleMenuWidgetClass,
X`09`09`09`09     magstepbutton, args, num_args);
X
X    magstepentry = (Widget *) XtMalloc(
X`09    (app_res.maximum_magstep - app_res.minimum_magstep + 1) *
X`09    sizeof(Widget));
X    for (i = app_res.minimum_magstep; i <= app_res.maximum_magstep; i++) `7B
X`09char buf`5B16`5D;
X`09sprintf(buf, "%d", i);
X`09`09`09`09`09`09`09num_args = 0;
X`09if (special_cmap) `7B
X`09    XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09    XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X`09`7D
X`09XtSetArg(args`5Bnum_args`5D, XtNleftMargin, 20);`09num_args++;
X`09magstepentry`5Bi-app_res.minimum_magstep`5D =
X`09`09XtCreateManagedWidget(buf, smeBSBObjectClass,
X`09`09`09`09      magstepmenu, args, num_args);
X`09XtAddCallback(magstepentry`5Bi-app_res.minimum_magstep`5D, XtNcallback,
X`09`09      set_magstep, (XtPointer)i);
X    `7D
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X    orientationbutton = XtCreateManagedWidget("orientationButton",
X`09`09`09`09`09      menuButtonWidgetClass,
X`09`09`09`09`09      box, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNcolormap, cmap);`09num_args++;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    orientationmenu = XtCreatePopupShell("menu", simpleMenuWidgetClass,
X`09`09`09`09         orientationbutton, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNleftMargin, 20);`09num_args++;
X    portraitbutton = XtCreateManagedWidget("portrait", smeBSBObjectClass,
X`09`09`09`09           orientationmenu, args, num_args);
X    XtAddCallback(portraitbutton, XtNcallback,
X`09`09  set_orientation, (XtPointer)XtPageOrientationPortrait);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNleftMargin, 20);`09num_args++;
X    landscapebutton = XtCreateManagedWidget("landscape", smeBSBObjectClass,
X`09`09`09`09            orientationmenu, args, num_args);
X    XtAddCallback(landscapebutton, XtNcallback,
X`09`09  set_orientation, (XtPointer)XtPageOrientationLandscape);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNleftMargin, 20);`09num_args++;
X    upsidedownbutton = XtCreateManagedWidget("upsidedown", smeBSBObjectClass
V,
X`09`09`09`09             orientationmenu, args, num_args);
X    XtAddCallback(upsidedownbutton, XtNcallback,
X`09`09  set_orientation, (XtPointer)XtPageOrientationUpsideDown);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNleftMargin, 20);`09num_args++;
X    seascapebutton = XtCreateManagedWidget("seascape", smeBSBObjectClass,
X`09`09`09`09             orientationmenu, args, num_args);
X    XtAddCallback(seascapebutton, XtNcallback,
X`09`09  set_orientation, (XtPointer)XtPageOrientationSeascape);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    line = XtCreateManagedWidget("line", smeLineObjectClass,
X`09`09`09`09 orientationmenu, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNleftMargin, 20);`09num_args++;
X    swapbutton = XtCreateManagedWidget("swap", smeBSBObjectClass,
X`09`09`09`09       orientationmenu, args, num_args);
X    XtAddCallback(swapbutton, XtNcallback, swap_landscape, (XtPointer)0);
X
X    if (app_res.swap_landscape) `7B
X`09XtSetArg(args`5B0`5D, XtNlabel, &s1);
X`09XtGetValues(landscapebutton, args, ONE);
X`09s1 = XtNewString(s1);
X`09XtSetArg(args`5B0`5D, XtNlabel, &s2);
X`09XtGetValues(seascapebutton, args, ONE);
X`09s2 = XtNewString(s2);
X`09XtSetArg(args`5B0`5D, XtNlabel, s2);
X`09XtSetValues(landscapebutton, args, ONE);
X`09XtSetArg(args`5B0`5D, XtNlabel, s1);
X`09XtSetValues(seascapebutton, args, ONE);
X`09XtFree(s1);
X`09XtFree(s2);
X    `7D
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNresize, False);`09num_args++;
X    pagemediabutton = XtCreateManagedWidget("pagemediaButton",
X`09`09`09`09`09    menuButtonWidgetClass,
X`09`09`09`09`09    box, args, num_args);
X
X    default_pagemedia = 0;
X    for (i = 0; papersizes`5Bi`5D.name; i++) `7B
X        if (!strcmp(app_res.pagemedia, papersizes`5Bi`5D.name)) `7B
X`09    default_pagemedia = i;
X            break;
X        `7D
X    `7D
X
X#ifndef max
X#define max(a,b) ((a)>(b)?(a):(b))
X#endif
X
X    /* Line up all the menu buttons */
X    XtSetArg(args`5B0`5D, XtNwidth, &width);
X    XtGetValues(filebutton, args, ONE);
X    button_width = width;
X    XtGetValues(pagebutton, args, ONE);
X    button_width = max(button_width, width);
X    XtGetValues(magstepbutton, args, ONE);
X    button_width = max(button_width, width);
X    XtGetValues(orientationbutton, args, ONE);
X    button_width = max(button_width, width);
X    XtGetValues(pagemediabutton, args, ONE);
X    button_width = max(button_width, width);
X
X    XtSetArg(args`5B0`5D, XtNwidth, button_width);
X    XtSetValues(filebutton, args, ONE);
X    XtSetValues(pagebutton, args, ONE);
X    XtSetValues(magstepbutton, args, ONE);
X    XtSetValues(orientationbutton, args, ONE);
X    XtSetValues(pagemediabutton, args, ONE);
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNforeground, black);`09num_args++;
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNfromVert, above_toc);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNfromHoriz, box);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNright, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNresizable, True);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNdisplayCaret, False);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNuseStringInPlace, True);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNlength, 0);`09`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNstring, nothing);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNselectTypes, sarry);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNscrollVertical, XawtextScrollAlways);num
V_args++;
X    toc = XtCreateManagedWidget("toc", asciiTextWidgetClass,
X`09`09`09`09form, args, num_args);
X    if (!left_of_page) left_of_page = toc;
X
X`09`09`09`09`09`09`09num_args = 0;
X    if (special_cmap) `7B
X`09XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    `7D
X    XtSetArg(args`5Bnum_args`5D, XtNfromHoriz, left_of_page);num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNtop, XtChainTop);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNbottom, XtChainBottom);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNleft, XtChainLeft);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNright, XtChainRight);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNresizable, True);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNallowHoriz, True);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNallowVert, True);`09num_args++;
X    pageview = XtCreateManagedWidget("pageview", viewportWidgetClass,
X`09`09`09`09     form, args, num_args);
X
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNbackground, white);`09num_args++;
X    page = XtCreateManagedWidget("page", ghostviewWidgetClass,
X`09`09`09`09 pageview, args, num_args);
X    num_ghosts++;
X    XtAddCallback(page, XtNcallback, track_and_zoom, (XtPointer)0);
X    XtAddCallback(page, XtNdestroyCallback, destroy_ghost, (XtPointer)page);
X    XtAddCallback(page, XtNmessageCallback, message, (XtPointer)page);
X    XtAddCallback(page, XtNoutputCallback, output, (XtPointer)0);
X`09`09`09`09`09`09`09num_args = 0;
X    XtSetArg(args`5Bnum_args`5D, XtNxdpi, &default_xdpi);`09num_args++;
X    XtSetArg(args`5Bnum_args`5D, XtNydpi, &default_ydpi);`09num_args++;
X    XtGetValues(page, args, num_args);
X
X    /* This sets most of the window sizes.  This keeps X server traffic
X     * down during realization.
X     */
X    GhostviewDisableInterpreter(page);
X    setup_ghostview();
X    i = find_page(app_res.page);
X
X    /* Coerce page number to fall in range */
X    if (toc_text) `7B
X`09if (i >= doc->numpages) i = doc->numpages - 1;
X`09if (i < 0) i = 0;
X    `7D
X    /* Coerce magstep to fall in range */
X    if (app_res.magstep < app_res.minimum_magstep)
X`09app_res.magstep = app_res.minimum_magstep;
X    if (app_res.magstep > app_res.maximum_magstep)
X`09app_res.magstep = app_res.maximum_magstep;
X    set_new_magstep();
X    set_new_orientation(i);
X    set_new_pagemedia(i);
X    layout_ghostview();
X
X    XtSetMappedWhenManaged(toplevel, False);
X    XtRealizeWidget(toplevel);
X    XtSetArg(args`5B0`5D, XtNtransientFor, toplevel);
X    XtSetValues(dialogpopup, args, ONE);
X    XSetWMProtocols(dpy, XtWindow(toplevel), &wm_delete_window, 1);
X    if (XStringListToTextProperty(&version, 1, &nameprop)) `7B
X`09XSetWMName(dpy, XtWindow(toplevel), &nameprop);
X    `7D
X
X    /* This sets the sizes on widget that were created during the realize. *
V/
X    layout_ghostview();
X    XtMapWidget(toplevel);
X
X    show_page(i);
X    XtAppMainLoop(app_con);
X
X    /* should never get here */
X    return 1;
X`7D
X
Xstatic void
XSyntax(call)
Xchar *call;
X`7B
X    XtDestroyApplicationContext(app_con);
X    fprintf(stderr, "Usage: %s\n", call);
X    fprintf(stderr,
X`09`09"    `5B-staticgray`5D `5B-grayscale`5D `5B-staticcolor`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-pseudocolor`5D `5B-truecolor`5D `5B-directcolor`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-`5Bno`5Dinstall`5D `5B-`5Bno`5Dprivate`5D `5B-`5Bno`5Dcenter`
V5D\n");
X    fprintf(stderr,
X`09`09"    `5B-`5Bno`5Dtitle`5D `5B-`5Bno`5Ddate`5D `5B-`5Bno`5Dlocator`5D `
V5B-`5Bno`5Dlabels`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-resolution <dpi>`5D `5B-dpi <dpi>`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-xdpi <dpi>`5D `5B-ydpi <dpi>`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-`5Bno`5Dquiet`5D `5B-preload <file>`5D `5B-magstep <n>`5D\n")
V;
X    fprintf(stderr,
X`09`09"    `5B-portrait`5D `5B-landscape`5D `5B-upsidedown`5D `5B-seascape`5
VD\n");
X    fprintf(stderr,
X`09`09"    `5B-letter`5D `5B-tabloid`5D `5B-ledger`5D `5B-legal`5D `5B-state
Vment`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-executive`5D `5B-a3`5D `5B-a4`5D `5B-a5`5D `5B-b4`5D `5B-b5`5
VD\n");
X    fprintf(stderr,
X`09`09"    `5B-folio`5D `5B-quarto`5D `5B-10x14`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-force`5D `5B-forceorientation`5D `5B-forcemedia`5D\n");
X    fprintf(stderr,
X`09`09"    `5B-`5Bno`5Dswap`5D `5B-`5Bno`5Dopenwindows`5D `5B-`5Bno`5Dncdwm`
V5D\n");
X    fprintf(stderr,
X`09`09"    `5B-page <label>`5D `5Btoolkitoption`5D\n");
X    fprintf(stderr,
X`09`09"    `5Bfilename`5D\n");
X    exit(1);
X`7D
$ CALL UNPACK MAIN.C;1 476593152
$ create 'f'
X# Makefile generated by imake - do not edit!
X# $XConsortium: imake.c,v 1.65 91/07/25 17:50:17 rws Exp $
X
X# -------------------------------------------------------------------------
X# Makefile generated from "Imake.tmpl" and </tmp/IIf.026475>
X# $XConsortium: Imake.tmpl,v 1.139 91/09/16 08:52:48 rws Exp $
X#
X# Platform-specific parameters may be set in the appropriate <vendor>.cf
X# configuration files.  Site-specific parameters should be set in the file
X# site.def.  Full rebuilds are recommended if any parameters are changed.
X#
X# If your C preprocessor does not define any unique symbols, you will need
X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
X# "make World" the first time).
X#
X
X# -------------------------------------------------------------------------
X# site-specific configuration parameters that need to come before
X# the platform-specific parameters - edit site.def to change
X
X# site:  $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $
X
X# -------------------------------------------------------------------------
X# platform-specific configuration parameters - edit ibm.cf to change
X
X# platform:  $XConsortium: ibm.cf,v 1.29 91/07/28 22:39:58 rws Exp $
X
X# operating system:  `09AOS 4.3
X
X            PCC = pcc
X
X# -------------------------------------------------------------------------
X# site-specific configuration parameters that go after
X# the platform-specific parameters - edit site.def to change
X
X# site:  $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $
X
X            SHELL = /bin/sh
X
X              TOP = .
X      CURRENT_DIR = .
X
X               AR = ar cq
X  BOOTSTRAPCFLAGS =
X               CC = cc
X               AS = as
X
X         COMPRESS = compress
X              CPP = /lib/cpp $(STD_CPP_DEFINES)
X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
X          INSTALL = install
X               LD = ld
X             LINT = lint
X      LINTLIBFLAG = -C
X         LINTOPTS = -ax
X               LN = ln -s
X             MAKE = make
X               MV = mv
X               CP = cp
X
X           RANLIB = ranlib
X  RANLIBINSTFLAGS =
X
X               RM = rm -f
X            TROFF = psroff
X         MSMACROS = -ms
X              TBL = tbl
X              EQN = eqn
X     STD_INCLUDES =
X  STD_CPP_DEFINES =
X      STD_DEFINES =
X EXTRA_LOAD_FLAGS =
X  EXTRA_LIBRARIES =
X             TAGS = ctags
X
X    PROTO_DEFINES =
X
X     INSTPGMFLAGS = -s
X
X     INSTBINFLAGS = -m 0755
X     INSTUIDFLAGS = -m 4755
X     INSTLIBFLAGS = -m 0644
X     INSTINCFLAGS = -m 0444
X     INSTMANFLAGS = -m 0444
X     INSTDATFLAGS = -m 0444
X    INSTKMEMFLAGS = -m 4755
X
X      PROJECTROOT =
X
X     TOP_INCLUDES = -I$(INCROOT)
X
X      CDEBUGFLAGS = -O
X        CCOPTIONS =
X
X      ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCL
VUDES)
X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_D
VEFINES) $(DEFINES)
X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
X
X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
X
X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -L$(USRLIBD
VIR)
X
X   LDCOMBINEFLAGS = -X -r
X      DEPENDFLAGS =
X
X        MACROFILE = ibm.cf
X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *`7E *.a .
Vemacs_* tags TAGS make.log MakeOut
X
X    IMAKE_DEFINES =
X
X         IRULESRC = $(CONFIGDIR)
X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
X
X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
X`09`09`09$(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
X`09`09`09$(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
X
X# -------------------------------------------------------------------------
X# X Window System Build Parameters
X# $XConsortium: Project.tmpl,v 1.138 91/09/10 09:02:12 rws Exp $
X
X# -------------------------------------------------------------------------
X# X Window System make variables; this need to be coordinated with rules
X
X          PATHSEP = /
X        USRLIBDIR = /usr/lib
X           BINDIR = /usr/bin
X          INCROOT = /usr/include
X     BUILDINCROOT = $(TOP)
X      BUILDINCDIR = $(BUILDINCROOT)/X11
X      BUILDINCTOP = ..
X           INCDIR = $(INCROOT)/X11
X           ADMDIR = /usr/adm
X           LIBDIR = $(USRLIBDIR)/X11
X        CONFIGDIR = $(LIBDIR)/config
X       LINTLIBDIR = $(USRLIBDIR)/lint
X
X          FONTDIR = $(LIBDIR)/fonts
X         XINITDIR = $(LIBDIR)/xinit
X           XDMDIR = $(LIBDIR)/xdm
X           TWMDIR = $(LIBDIR)/twm
X          MANPATH = /usr/man
X    MANSOURCEPATH = $(MANPATH)/man
X        MANSUFFIX = 1
X     LIBMANSUFFIX = 3
X           MANDIR = $(MANSOURCEPATH)$(MANSUFFIX)
X        LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSUFFIX)
X           NLSDIR = $(LIBDIR)/nls
X        PEXAPIDIR = $(LIBDIR)/PEX
X      XAPPLOADDIR = $(LIBDIR)/app-defaults
X       FONTCFLAGS = -t
X
X     INSTAPPFLAGS = $(INSTDATFLAGS)
X
X            IMAKE = imake
X           DEPEND = makedepend
X              RGB = rgb
X
X            FONTC = bdftopcf
X
X        MKFONTDIR = mkfontdir
X        MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier
X
X        CONFIGSRC = $(TOP)/config
X       DOCUTILSRC = $(TOP)/doc/util
X        CLIENTSRC = $(TOP)/clients
X          DEMOSRC = $(TOP)/demos
X           LIBSRC = $(TOP)/lib
X          FONTSRC = $(TOP)/fonts
X       INCLUDESRC = $(TOP)/X11
X        SERVERSRC = $(TOP)/server
X          UTILSRC = $(TOP)/util
X        SCRIPTSRC = $(UTILSRC)/scripts
X       EXAMPLESRC = $(TOP)/examples
X       CONTRIBSRC = $(TOP)/../contrib
X           DOCSRC = $(TOP)/doc
X           RGBSRC = $(TOP)/rgb
X        DEPENDSRC = $(UTILSRC)/makedepend
X         IMAKESRC = $(CONFIGSRC)
X         XAUTHSRC = $(LIBSRC)/Xau
X          XLIBSRC = $(LIBSRC)/X
X           XMUSRC = $(LIBSRC)/Xmu
X       TOOLKITSRC = $(LIBSRC)/Xt
X       AWIDGETSRC = $(LIBSRC)/Xaw
X       OLDXLIBSRC = $(LIBSRC)/oldX
X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
X      BDFTOSNFSRC = $(FONTSRC)/bdftosnf
X      BDFTOSNFSRC = $(FONTSRC)/clients/bdftosnf
X      BDFTOPCFSRC = $(FONTSRC)/clients/bdftopcf
X     MKFONTDIRSRC = $(FONTSRC)/clients/mkfontdir
X         FSLIBSRC = $(FONTSRC)/lib/fs
X    FONTSERVERSRC = $(FONTSRC)/server
X     EXTENSIONSRC = $(TOP)/extensions
X         XILIBSRC = $(EXTENSIONSRC)/lib/xinput
X      PHIGSLIBSRC = $(EXTENSIONSRC)/lib/PEX
X
X  DEPEXTENSIONLIB =  $(USRLIBDIR)/libXext.a
X     EXTENSIONLIB = `09`09`09  -lXext
X
X          DEPXLIB = $(DEPEXTENSIONLIB)  $(USRLIBDIR)/libX11.a
X             XLIB = $(EXTENSIONLIB) `09`09`09  -lX11
X
X      DEPXAUTHLIB =  $(USRLIBDIR)/libXau.a
X         XAUTHLIB = `09`09`09  -lXau
X      DEPXDMCPLIB =  $(USRLIBDIR)/libXdmcp.a
X         XDMCPLIB = `09`09`09  -lXdmcp
X
X        DEPXMULIB =  $(USRLIBDIR)/libXmu.a
X           XMULIB = `09`09`09  -lXmu
X
X       DEPOLDXLIB =  $(USRLIBDIR)/liboldX.a
X          OLDXLIB = `09`09`09  -loldX
X
X      DEPXTOOLLIB =  $(USRLIBDIR)/libXt.a
X         XTOOLLIB = `09`09`09  -lXt
X
X        DEPXAWLIB =  $(USRLIBDIR)/libXaw.a
X           XAWLIB = `09`09`09  -lXaw
X
X        DEPXILIB =  $(USRLIBDIR)/libXi.a
X           XILIB = `09`09`09  -lXi
X
X        DEPPHIGSLIB =  $(USRLIBDIR)/libphigs.a
X           PHIGSLIB = `09`09`09  -lphigs
X
X       DEPXBSDLIB =  $(USRLIBDIR)/libXbsd.a
+-+-+-+-+-+-+-+-  END  OF PART 9 +-+-+-+-+-+-+-+-
Technical Details
Message-ID: <8881765@MVB.SAIC.COM>
Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!zaphod.mps.ohio-state.edu!usc!news.service.uci.edu!unogate!mvb.saic.com!vmsnet-sources

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!zaphod.mps.ohio-state.edu!usc!news.service.uci.edu!unogate!mvb.saic.com!vmsnet-sources
Newsgroups: vmsnet.sources
From: Terry Poot <tp@mccall.com>
Subject: Ghostview for VMS 09/14
Message-ID: <8881765@MVB.SAIC.COM>
Date: Thu, 29 Oct 1992 18:49:51 GMT
Lines: 1180
Approved: Mark.Berryman@Mvb.Saic.Com