home *** CD-ROM | disk | FTP | other *** search
- 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
-