home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
x
/
volume16
/
hman
/
part01
next >
Wrap
Text File
|
1992-03-07
|
21KB
|
719 lines
Newsgroups: comp.sources.x
Path: uunet!munnari.oz.au!mips!mips!msi!dcmartin
From: mab@ecmwf.co.uk (Baudouin Raoult)
Subject: v16i143: hyperwidget & manual browser, Part01/06
Message-ID: <csx-16i143-hman@uunet.UU.NET>
Originator: dcmartin@fascet
Sender: dcmartin@msi.com (David C. Martin - Moderator)
Organization: Molecular Simulations, Inc.
Date: Fri, 6 Mar 1992 20:47:57 GMT
Approved: dcmartin@msi.com
Submitted-by: mab@ecmwf.co.uk (Baudouin Raoult)
Posting-number: Volume 16, Issue 143
Archive-name: hman/part01
This package contains two products:
- The HyperWidget, a hypertext-like widget that displays
text with highlighted text. Clicking on highlighted text will
call a callback function of the application using the widget.
- hman, a unix manual using the HyperWidget to browse through
the manual pages.
Feel free to use the widget in any application. I use it
for the on-line help of my applications.
B.Raoult ( mab@ecmwf.co.uk )
#!/bin/sh
# shar: Shell Archiver (v1.22)
# Packed Thu Feb 13 08:45:58 GMT 1992 by /tmp_mnt/home/rd/mab/src/hman
# from directory Thu Feb 13 08:45:58 GMT 1992#
# This is part 1 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
#
# Run the following text with /bin/sh to create:
# hman.lex
# hman.c
# cbacks.c
# Hyper.c
# Hyper.h
# HyperP.h
# hman.xbm
# Imakefile
# Makefile.noimake
# README
# HMan.ad
# hman.man
# hman.h
# HyperWidget.3x
# patchlevel.h
#
if test -r s2_seq_.tmp
then echo "Must unpack archives in sequence!"
next=`cat s2_seq_.tmp`; echo "Please unpack part $next next"
exit 1; fi
echo "x - extracting hman.lex (Text)"
sed 's/^X//' << 'SHAR_EOF' > hman.lex &&
X%{
X#include "hman.h"
X#undef output
X
Xstatic int new_line = 2;
Xstatic int header = 1;
X
Xoutput(c)
X{
X /* compress the multiple empty lines */
X
X if(c=='\n')
X {
X if(new_line<2) putc(c,yyout);
X new_line++;
X }
X else
X {
X putc(c,yyout);
X new_line = 0;
X }
X}
X%}
X
XBLANK [ \t]*
XWORD [a-zA-Z]+[a-zA-Z0-9_\-\.]*
XSECTION "("[0-9][A-Za-z0-9]*")"
XREF {WORD}{BLANK}{SECTION}
X
X%%
X
X
X^{REF}.*$ {
X /* header : CMD(SEC) COMMAND TYPE CMD(SEC) */
X /* display only one header */
X
X if(header)
X {
X ECHO;
X new_line = 0;
X output('\n');
X header=0;
X }
X }
X
X{REF} {
X /* ref : cmd(sec) */
X output(START_OF_HIGHLIGHT);
X ECHO;
X output(END_OF_HIGHLIGHT);
X }
X
X^Sun.*$ { /* remove Sun's footers */}
X^Reformatting.*$ {/* remove Reformatting message */}
X
X%%
X
Xyywrap()
X{
X /* end of file, reset header and new_line flags */
X header = 1;
X new_line = 2;
X return 1;
X}
X
X
X
SHAR_EOF
chmod 0644 hman.lex || echo "restore of hman.lex fails"
set `wc -c hman.lex`;Sum=$1
if test "$Sum" != "899"
then echo original size 899, current size $Sum;fi
echo "x - extracting hman.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > hman.c &&
X
X/*
X** Generated by X-Designer
X*/
X/*
X**LIBS: -lXm -lXt -lX11
X*/
X
X#include <X11/Xatom.h>
X#include <X11/Intrinsic.h>
X#include <X11/Shell.h>
X
X#include <Xm/Xm.h>
X#include <Xm/DialogS.h>
X#include <Xm/FileSB.h>
X#include <Xm/Form.h>
X#include <Xm/Label.h>
X#include <Xm/List.h>
X#include <Xm/PushB.h>
X#include <Xm/RowColumn.h>
X#include <Xm/ScrollBar.h>
X#include <Xm/ScrolledW.h>
X#include <Xm/SelectioB.h>
X#include <Xm/Separator.h>
X#include <Xm/Text.h>
X#include <Xm/TextF.h>
X#include <Xm/ToggleB.h>
X#include <Xm/LabelG.h>
X#include <Xm/PushBG.h>
X#include <Xm/SeparatoG.h>
X
Xvoid XDmanage_link (w, client_data, call_data)
XWidget w; /* widget id */
XWidget *client_data; /* data from application */
Xcaddr_t call_data; /* data from widget class */
X{
X XtManageChild ( *client_data );
X}
X
Xvoid XDunmanage_link (w, client_data, call_data)
XWidget w; /* widget id */
XWidget *client_data; /* data from application */
Xcaddr_t call_data; /* data from widget class */
X{
X XtUnmanageChild ( *client_data );
X}
X
Xvoid XDmap_link (w, client_data, call_data)
XWidget w; /* widget id */
XWidget *client_data; /* data from application */
Xcaddr_t call_data; /* data from widget class */
X{
X XtMapWidget (*client_data);
X}
X
Xvoid XDunmap_link (w, client_data, call_data)
XWidget w; /* widget id */
XWidget *client_data; /* data from application */
Xcaddr_t call_data; /* data from widget class */
X{
X XtUnmapWidget (*client_data);
X}
Xvoid XDenable_link (w, client_data, call_data)
XWidget w; /* widget id */
XWidget *client_data; /* data from application */
Xcaddr_t call_data; /* data from widget class */
X{
X XtSetSensitive (*client_data, TRUE);
X}
X
Xvoid XDdisable_link (w, client_data, call_data)
XWidget w; /* widget id */
XWidget *client_data; /* data from application */
Xcaddr_t call_data; /* data from widget class */
X{
X XtSetSensitive (*client_data, FALSE);
X}
X
Xextern void find_callback ( );
Xextern void clone_callback ( );
Xextern void quit_callback ( );
Xextern void next_callback ( );
Xextern void previous_callback ( );
Xextern void text_activate_callback ( );
Xextern void fsb_callback ( );
X
XWidget find;
XWidget find_form;
XWidget find_text;
XWidget find_next;
X
XWidget selection;
XWidget fsb;
X
XWidget top;
XWidget form;
XWidget scrollw;
XWidget keyword;
XWidget keyword_text;
XWidget section;
XWidget section_text;
XWidget in_index;
XWidget previous;
XWidget next;
XWidget quit;
XWidget clone;
XWidget other;
XWidget search;
X
X
Xcreate_find( parent )
XWidget parent;
X{
X Display *display = XtDisplay ( parent );
X Widget children[3]; /* Children to manage */
X Arg al[64]; /* Arg List */
X register int ac = 0; /* Arg Count */
X char from_s [256]; /* For font list conversion */
X XrmValue from_value, to_value; /* ditto */
X int fg, bg; /* colour values for pixmaps */
X
X XmString *list_items; /* For list items */
X int list_item; /* Index for list_items */
X XmString xmstrings[15]; /* temporary storage for XmStrings */
X Widget widget47;
X
X XtSetArg(al[ac], XmNallowShellResize, TRUE);
X ac++;
X find = XmCreateDialogShell ( parent, "find", al, ac );
X ac = 0;
X XtSetArg(al[ac], XmNautoUnmanage, FALSE);
X ac++;
X find_form = XmCreateForm ( find, "find_form", al, ac );
X ac = 0;
X find_text = XmCreateTextField ( find_form, "find_text", al, ac );
X widget47 = XmCreatePushButton ( find_form, "close", al, ac );
X find_next = XmCreatePushButton ( find_form, "find_next", al, ac );
X XtSetArg(al[ac], XmNcancelButton, widget47);
X ac++;
X XtSetArg(al[ac], XmNdefaultButton, find_next);
X ac++;
X XtSetValues ( find_form,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNtopOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNbottomWidget, find_next);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNleftOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNrightOffset, 5);
X ac++;
X XtSetValues ( find_text,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNleftOffset, 5);
X ac++;
X XtSetValues ( widget47,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNrightOffset, 5);
X ac++;
X XtSetValues ( find_next,al, ac );
X ac = 0;
X XtAddCallback (widget47,XmNactivateCallback, XDunmanage_link, &find_form );
X XtAddCallback (find_next, XmNactivateCallback, find_callback,NULL);
X children[ac++] = find_text;
X children[ac++] = widget47;
X children[ac++] = find_next;
X XtManageChildren(children, ac);
X ac = 0;
X}
X
X
X
Xcreate_selection( parent )
XWidget parent;
X{
X Display *display = XtDisplay ( parent );
X Widget children[13]; /* Children to manage */
X Arg al[64]; /* Arg List */
X register int ac = 0; /* Arg Count */
X char from_s [256]; /* For font list conversion */
X XrmValue from_value, to_value; /* ditto */
X int fg, bg; /* colour values for pixmaps */
X
X XmString *list_items; /* For list items */
X int list_item; /* Index for list_items */
X XmString xmstrings[15]; /* temporary storage for XmStrings */
X Widget widget8;
X Widget widget15;
X
X XtSetArg(al[ac], XmNallowShellResize, TRUE);
X ac++;
X selection = XmCreateDialogShell ( parent, "selection", al, ac );
X ac = 0;
X fsb = XmCreateFileSelectionBox ( selection, "fsb", al, ac );
X widget8 = XmSelectionBoxGetChild ( fsb, XmDIALOG_CANCEL_BUTTON );
X widget15 = XmSelectionBoxGetChild ( fsb, XmDIALOG_OK_BUTTON );
X
X
X XtAddCallback (fsb, XmNokCallback, fsb_callback,NULL);
X XtAddCallback (widget8,XmNactivateCallback, XDunmanage_link, &fsb );
X XtAddCallback (widget15,XmNactivateCallback, XDunmanage_link, &fsb );
X}
X
X
X
Xcreate_top( display, app_name, app_argc, app_argv )
XDisplay *display;
Xchar *app_name;
Xint app_argc;
Xchar **app_argv;
X{
X Widget children[9]; /* Children to manage */
X Arg al[64]; /* Arg List */
X register int ac = 0; /* Arg Count */
X char from_s [256]; /* For font list conversion */
X XrmValue from_value, to_value; /* ditto */
X int fg, bg; /* colour values for pixmaps */
X
X XmString *list_items; /* For list items */
X int list_item; /* Index for list_items */
X XmString xmstrings[15]; /* temporary storage for XmStrings */
X Widget widget29;
X Widget widget30;
X Widget widget31;
X Widget widget32;
X
X XtSetArg(al[ac], XmNallowShellResize, TRUE);
X ac++;
X XtSetArg(al[ac], XmNargc, app_argc);
X ac++;
X XtSetArg(al[ac], XmNargv, app_argv);
X ac++;
X top = XtAppCreateShell ( app_name, "HMan", applicationShellWidgetClass, display, al, ac );
X ac = 0;
X XtSetArg(al[ac], XmNautoUnmanage, FALSE);
X ac++;
X form = XmCreateForm ( top, "form", al, ac );
X ac = 0;
X XtSetArg(al[ac], XmNwidth, 526);
X ac++;
X XtSetArg(al[ac], XmNheight, 582);
X ac++;
X XtSetArg(al[ac], XmNscrollingPolicy, XmAUTOMATIC);
X ac++;
X scrollw = XmCreateScrolledWindow ( form, "scrollw", al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNhorizontalScrollBar, &widget29 );
X ac++;
X XtSetArg(al[ac], XmNverticalScrollBar, &widget30 );
X ac++;
X XtGetValues(scrollw, al, ac );
X ac = 0;
X widget31 = XmCreateSeparator ( form, "widget31", al, ac );
X XtSetArg(al[ac], XmNorientation, XmHORIZONTAL);
X ac++;
X XtSetArg(al[ac], XmNadjustLast, FALSE);
X ac++;
X widget32 = XmCreateRowColumn ( form, "widget32", al, ac );
X ac = 0;
X keyword = XmCreateLabel ( widget32, "keyword", al, ac );
X keyword_text = XmCreateTextField ( widget32, "keyword_text", al, ac );
X section = XmCreateLabel ( widget32, "section", al, ac );
X XtSetArg(al[ac], XmNmaxLength, 3);
X ac++;
X section_text = XmCreateTextField ( widget32, "section_text", al, ac );
X ac = 0;
X in_index = XmCreateToggleButton ( widget32, "in_index", al, ac );
X XtSetArg(al[ac], XmNsensitive, FALSE);
X ac++;
X previous = XmCreatePushButton ( form, "previous", al, ac );
X ac = 0;
X XtSetArg(al[ac], XmNsensitive, FALSE);
X ac++;
X next = XmCreatePushButton ( form, "next", al, ac );
X ac = 0;
X quit = XmCreatePushButton ( form, "quit", al, ac );
X clone = XmCreatePushButton ( form, "clone", al, ac );
X other = XmCreatePushButton ( form, "other", al, ac );
X xmstrings[0] = XmStringCreateLtoR("Search...", (XmStringCharSet)XmSTRING_DEFAULT_CHARSET);
X XtSetArg(al[ac], XmNlabelString, xmstrings[0]);
X ac++;
X search = XmCreatePushButton ( form, "search", al, ac );
X ac = 0;
X XmStringFree ( xmstrings [ 0 ] );
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNbottomWidget, widget31);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);
X ac++;
X XtSetValues ( scrollw,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNbottomWidget, widget32);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNleftOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNrightOffset, 5);
X ac++;
X XtSetValues ( widget31,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNbottomWidget, quit);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNleftOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNrightOffset, 5);
X ac++;
X XtSetValues ( widget32,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNleftOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE);
X ac++;
X XtSetValues ( previous,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNleftOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftWidget, previous);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE);
X ac++;
X XtSetValues ( next,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNrightOffset, 5);
X ac++;
X XtSetValues ( quit,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNrightOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNrightWidget, quit);
X ac++;
X XtSetValues ( clone,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNrightOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNrightWidget, clone);
X ac++;
X XtSetValues ( other,al, ac );
X ac = 0;
X
X XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);
X ac++;
X XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);
X ac++;
X XtSetArg(al[ac], XmNbottomOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET);
X ac++;
X XtSetArg(al[ac], XmNleftOffset, 5);
X ac++;
X XtSetArg(al[ac], XmNleftWidget, next);
X ac++;
X XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE);
X ac++;
X XtSetValues ( search,al, ac );
X ac = 0;
X XmScrolledWindowSetAreas(scrollw, widget29, widget30, (Widget) NULL );
X XtAddCallback (keyword_text, XmNactivateCallback, text_activate_callback,NULL);
X XtAddCallback (section_text, XmNactivateCallback, text_activate_callback,NULL);
X children[ac++] = keyword;
X children[ac++] = keyword_text;
X children[ac++] = section;
X children[ac++] = section_text;
X children[ac++] = in_index;
X XtManageChildren(children, ac);
X ac = 0;
X XtAddCallback (previous, XmNactivateCallback, previous_callback,NULL);
X XtAddCallback (next, XmNactivateCallback, next_callback,NULL);
X XtAddCallback (quit, XmNactivateCallback, quit_callback,NULL);
X XtAddCallback (clone, XmNactivateCallback, clone_callback,NULL);
X XtAddCallback (other,XmNactivateCallback, XDmanage_link, &fsb );
X XtAddCallback (search,XmNactivateCallback, XDmanage_link, &find_form );
X children[ac++] = scrollw;
X children[ac++] = widget31;
X children[ac++] = widget32;
X children[ac++] = previous;
X children[ac++] = next;
X children[ac++] = quit;
X children[ac++] = clone;
X children[ac++] = other;
X children[ac++] = search;
X XtManageChildren(children, ac);
X ac = 0;
X XtManageChild ( form);
X}
X
X
X
X
XXtAppContext app_context;
XDisplay *display; /* Display */
X
Xvoid main (argc,argv)
Xunsigned int argc;
Xchar **argv;
X{
X XtToolkitInitialize ();
X app_context = XtCreateApplicationContext ();
X display = XtOpenDisplay (app_context, NULL, argv[0], "HMan",
X NULL, 0, &argc, argv);
X if (!display)
X {
X printf("%s: can't open display, exiting...\n", argv[0]);
X exit (0);
X }
X /* Register converters, just in case you are really unlucky !! */
X XmRegisterConverters();
X /* String to unit type doesn't get added !! */
X XtAddConverter ( XmRString, XmRUnitType, XmCvtStringToUnitType, NULL, 0 );
X create_top ( display, argv[0], argc, argv );
X create_find ( top );
X create_selection ( top );
X
X init_manual(argc,argv);
X
X XtRealizeWidget (top);
X XtAppMainLoop (app_context);
X}
X
SHAR_EOF
chmod 0644 hman.c || echo "restore of hman.c fails"
set `wc -c hman.c`;Sum=$1
if test "$Sum" != "15700"
then echo original size 15700, current size $Sum;fi
echo "x - extracting cbacks.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > cbacks.c &&
X/*-----------------------------------------------------------------------*/
X/* This is a Quick and Dirty software to demonstrate a use of the */
X/* HyperWidget. */
X/* B.Raoult Oct.91 */
X/*-----------------------------------------------------------------------*/
X
X
X#define MAN "man"
X#define NROFF "nroff -man"
X#define FILTER "| col -b" /* remove backspaces */
X
X#include <ctype.h>
X#include <string.h>
X#include <stdio.h>
X#include <Xm/Xm.h>
X#include <X11/cursorfont.h>
X#include <Xm/TextF.h>
X#include "Hyper.h"
X#include "hman.h"
X#include "patchlevel.h"
X
X#define MAX_HISTORY 100
X
Xextern Widget top;
Xextern Widget scrollw;
Xextern Widget keyword_text;
Xextern Widget section_text;
Xextern Widget in_index;
Xextern Widget next;
Xextern Widget previous;
Xextern Widget find;
Xextern Widget find_text;
X
Xstatic Widget hyper;
Xstatic char cmd[1024];
Xstatic char *progname;
X
SHAR_EOF
echo "End of part 1"
echo "File cbacks.c is continued in part 2"
echo "2" > s2_seq_.tmp
exit 0
--
--
Molecular Simulations, Inc. mail: dcmartin@msi.com
796 N. Pastoria Avenue uucp: uunet!dcmartin
Sunnyvale, California 94086 at&t: 408/522-9236