home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / x / volume16 / hman / part05 < prev    next >
Text File  |  1992-03-07  |  12KB  |  509 lines

  1. Newsgroups: comp.sources.x
  2. Path: uunet!think.com!mips!msi!dcmartin
  3. From: mab@ecmwf.co.uk (Baudouin Raoult)
  4. Subject: v16i147: hyperwidget & manual browser, Part05/06
  5. Message-ID: <1992Mar6.204856.8838@msi.com>
  6. Originator: dcmartin@fascet
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Organization: Molecular Simulations, Inc.
  9. References: <csx-16i143-hman@uunet.UU.NET>
  10. Date: Fri, 6 Mar 1992 20:48:56 GMT
  11. Approved: dcmartin@msi.com
  12.  
  13. Submitted-by: mab@ecmwf.co.uk (Baudouin Raoult)
  14. Posting-number: Volume 16, Issue 147
  15. Archive-name: hman/part05
  16.  
  17. #!/bin/sh
  18. # this is part 5 of a multipart archive
  19. # do not concatenate these parts, unpack them in order with /bin/sh
  20. # file Imakefile continued
  21. #
  22. CurArch=5
  23. if test ! -r s2_seq_.tmp
  24. then echo "Please unpack part 1 first!"
  25.      exit 1; fi
  26. ( read Scheck
  27.   if test "$Scheck" != $CurArch
  28.   then echo "Please unpack part $Scheck next!"
  29.        exit 1;
  30.   else exit 0; fi
  31. ) < s2_seq_.tmp || exit 1
  32. echo "x - Continuing file Imakefile"
  33. sed 's/^X//' << 'SHAR_EOF' >> Imakefile
  34. X
  35. X# If you use an ANSI compiler, you can remove this line
  36. X
  37. XPROTO_DEFINES=-D_NO_PROTO
  38. X
  39. XPROGRAMS = hman
  40. XSRCS = Hyper.c cbacks.c hman.c lex.yy.c
  41. XOBJS = Hyper.o cbacks.o hman.o lex.yy.o
  42. X
  43. XMOTIF_INCS=$(MOTIF_HOME)/include
  44. XMOTIF_LIBS=$(MOTIF_HOME)/lib
  45. X
  46. XEXTRA_LOAD_FLAGS=-L$(MOTIF_LIBS) 
  47. XEXTRA_LIBRARIES=-lMrm -lXm -lXt -lX11
  48. XEXTRA_INCLUDES = -I$(MOTIF_INCS)
  49. X
  50. X
  51. X
  52. XComplexProgramTarget(hman)
  53. XInstallAppDefaults(HMan)
  54. X
  55. Xlex.yy.c: hman.lex
  56. X    $(LEX) hman.lex
  57. X
  58. Xclean::
  59. X    $(RM) lex.yy.c
  60. X
  61. SHAR_EOF
  62. echo "File Imakefile is complete"
  63. chmod 0644 Imakefile || echo "restore of Imakefile fails"
  64. set `wc -c Imakefile`;Sum=$1
  65. if test "$Sum" != "598"
  66. then echo original size 598, current size $Sum;fi
  67. echo "x - extracting Makefile.noimake (Text)"
  68. sed 's/^X//' << 'SHAR_EOF' > Makefile.noimake &&
  69. X#
  70. X# Edit these variables
  71. X#
  72. X
  73. XMOTIF_CFLAGS=-D_NO_PROTO -I/vol/motif/include -I/usr/local/include
  74. X
  75. XCFLAGS=-O -DUSE_REGEXP -DMOTIF $(MOTIF_CFLAGS)
  76. XLDFLAGS=-L/vol/motif/lib
  77. XLIB=-lMrm -lXm -lXt -lX11
  78. X
  79. XOBJ = hman.o cbacks.o lex.yy.o Hyper.o 
  80. X
  81. Xhman : $(OBJ)
  82. X    $(CC) -o hman $(OBJ) $(LDFLAGS) $(LIB)
  83. X
  84. Xlex.yy.c : hman.lex
  85. X    lex hman.lex
  86. X
  87. SHAR_EOF
  88. chmod 0644 Makefile.noimake || echo "restore of Makefile.noimake fails"
  89. set `wc -c Makefile.noimake`;Sum=$1
  90. if test "$Sum" != "326"
  91. then echo original size 326, current size $Sum;fi
  92. echo "x - extracting README (Text)"
  93. sed 's/^X//' << 'SHAR_EOF' > README &&
  94. XThis package contains two products:
  95. X
  96. X- The HyperWidget, a hypertext-like widget that displays
  97. Xtext with highlighted text. Clicking on highlighted text will
  98. Xcall a callback function of the application using the widget.
  99. X
  100. X- hman, a unix manual using the HyperWidget to browse through
  101. Xthe manual pages.
  102. X
  103. XFeel free to use the widget in any application. I use it
  104. Xfor the on-line help of my applications.
  105. X
  106. XThe HyperWidget is using regexp. If you don't have it 
  107. Xremove the USE_REGEXP flag when compiling.
  108. X
  109. X
  110. XB.Raoult ( mab@ecmwf.co.uk )
  111. X
  112. XFri Nov 22 1991
  113. SHAR_EOF
  114. chmod 0644 README || echo "restore of README fails"
  115. set `wc -c README`;Sum=$1
  116. if test "$Sum" != "545"
  117. then echo original size 545, current size $Sum;fi
  118. echo "x - extracting HMan.ad (Text)"
  119. sed 's/^X//' << 'SHAR_EOF' > HMan.ad &&
  120. X! Generated by X-Designer 
  121. X
  122. X! find
  123. XHMan*find.title: Find...
  124. X
  125. X! find_form
  126. X
  127. X! close
  128. XHMan*close.labelString: Close
  129. X
  130. X! find_next
  131. XHMan*find_next.labelString: Find next
  132. X
  133. X
  134. X! selection
  135. XHMan*selection.title: Choose a manual file
  136. X
  137. X
  138. X! top
  139. X
  140. X! form
  141. XHMan*form.width: 526
  142. XHMan*form.height: 668
  143. X
  144. X! scrollw
  145. X
  146. X! widget27
  147. X
  148. X! keyword
  149. XHMan*keyword.labelString: Key word:
  150. X
  151. X! section
  152. XHMan*section.labelString: Section:
  153. X
  154. X! section_text
  155. X
  156. X! in_index
  157. XHMan*in_index.labelString: In index
  158. X
  159. X! previous
  160. XHMan*previous.labelString: <<
  161. X
  162. X! next
  163. XHMan*next.labelString: >>
  164. X
  165. X! quit
  166. XHMan*quit.labelString: Quit
  167. X
  168. X! clone
  169. XHMan*clone.labelString: Clone
  170. X
  171. X! other
  172. XHMan*other.labelString: Other...
  173. X
  174. X! search
  175. X
  176. SHAR_EOF
  177. chmod 0644 HMan.ad || echo "restore of HMan.ad fails"
  178. set `wc -c HMan.ad`;Sum=$1
  179. if test "$Sum" != "663"
  180. then echo original size 663, current size $Sum;fi
  181. echo "x - extracting hman.man (Text)"
  182. sed 's/^X//' << 'SHAR_EOF' > hman.man &&
  183. X.\" @(#)hman.1 1.0 91/10/20 
  184. X.TH HMAN 1
  185. X
  186. X.SH NAME
  187. X    hman - hypertext like manual.
  188. X.SH SYNOPSIS
  189. X    hman [xtoolkit-options] [-file fname] [man-options]
  190. X.SH DESCRIPTION
  191. XI wrote this piece of software just to give show how 
  192. Xto use the HyperWidget(3X). 
  193. XIt displays an manual page and highlight the 
  194. Xreferences to other Unix commands. Clicking on the highlighted text will
  195. Xdisplay the new manual page.
  196. X.LP
  197. XYou can type the key word/section you are looking for in the appropriate text field.
  198. XPressing the enter key will then display the new manual page.
  199. XIf 
  200. X.I In index
  201. Xtoggle is on, the display is the output of the man -k .. command.
  202. X.LP
  203. XAn history of the 100 last pages displayed is kept in memory and you
  204. Xcan recall theses pages with the "<<" and ">>" buttons.
  205. X.LP
  206. XThe 
  207. X.I Other
  208. Xbutton opens a file as a manual page.
  209. X.LP
  210. XThe 
  211. X.I Clone
  212. Xbutton starts a new copy of hman.
  213. X.LP
  214. XThe 
  215. X.I Search
  216. Xbutton searches a regular expression in the text.
  217. X.SH OPTIONS
  218. X.IR xtoolkit-options :
  219. Xthe standard X/Motif stuff (-display, -xrm ...)
  220. X.LP
  221. X.IR man-options:
  222. Xuse the same option as your local
  223. X.BR man (1)
  224. Xcommand.
  225. X.LP
  226. X.IR -file 
  227. Xfilename : reads manual page from file.
  228. X.SH X RESOURCES
  229. X.IR HMan*Hyper*zoomEffect: 
  230. X(on/off, default on) open a new page with a "zoom" effect.
  231. X.LP
  232. X.IR HMan*Hyper*zoomSpeed:
  233. X(integer, default 4) the speed of the zoom effect.
  234. X.LP
  235. X.IR HMan*Hyper*highlightFont:
  236. X(default "fixed") the font used for the highlighted text.
  237. X.LP
  238. X.IR HMan*Hyper*normalFont:
  239. X(default "fixed") the font used for the normal text.
  240. X.LP
  241. X.IR HMan*Hyper*highlightColor:
  242. X(default "red") the color used for the highlighted text.
  243. X.LP
  244. X.IR HMan*Hyper*normalColor:
  245. X(default "black") the color used for the normal text.
  246. X.LP
  247. X.IR HMan*Hyper*selectColor:
  248. X(default "blue") the color used to select text.
  249. X.LP
  250. X.IR HMan*Hyper*margin:
  251. X(integer, default 10) the text margins.
  252. X.LP
  253. XAnd the usual Motif resources.
  254. X.SH SEE ALSO
  255. X.BR man (1),
  256. X.BR nroff (1),
  257. X.BR troff (1),
  258. X.BR whatis (1)
  259. X.SH BUGS
  260. XIf the man command split a reference over two lines, hman does not recognize it.
  261. Xhman was only tested on a Sun.
  262. X.SH AUTHOR
  263. XBaudouin Raoult (mab@ecmwf.co.uk) October 91, with the help of XDesigner 1.2
  264. X.SH NOTE
  265. XThere is no warranty for this program.
  266. Xhman is in the public domain.
  267. X
  268. SHAR_EOF
  269. chmod 0644 hman.man || echo "restore of hman.man fails"
  270. set `wc -c hman.man`;Sum=$1
  271. if test "$Sum" != "2226"
  272. then echo original size 2226, current size $Sum;fi
  273. echo "x - extracting hman.h (Text)"
  274. sed 's/^X//' << 'SHAR_EOF' > hman.h &&
  275. X/* 
  276. X   chars used to tell the HyperWidget the start 
  277. X   and end of highlited words
  278. X*/
  279. X
  280. X#define START_OF_HIGHLIGHT  1
  281. X#define END_OF_HIGHLIGHT    2
  282. SHAR_EOF
  283. chmod 0644 hman.h || echo "restore of hman.h fails"
  284. set `wc -c hman.h`;Sum=$1
  285. if test "$Sum" != "147"
  286. then echo original size 147, current size $Sum;fi
  287. echo "x - extracting HyperWidget.3x (Text)"
  288. sed 's/^X//' << 'SHAR_EOF' > HyperWidget.3x &&
  289. X.\" @(#)HyperWidget.3x 1.0 91/10/20 
  290. X.TH HyperWidget 3X
  291. X
  292. X.SH NAME
  293. X    HyperWidget - hypertext widget.
  294. X.SH SYNOPSIS
  295. X    #include "Hyper.h"
  296. X.SH DESCRIPTION
  297. XHyperWidget is a widget that can display a text and
  298. Xhighlight some part of this text. The user can click on the
  299. Xhighlighted parts. An activate callback is then called, reporting
  300. Xto the application the text selected.
  301. X.LP
  302. XHyperWidget inherits behavior and resources from Core(3X) and XmPrimitive(3X).
  303. X.LP
  304. XThe class pointer is hyperWidgetClass.
  305. X.LP
  306. XThe class name is Hyper.
  307. X.LP
  308. X.SH RESOURCES
  309. X.LP
  310. X.SS "New resources"
  311. X.ft B
  312. X.IR XtNzoomEffect - XtCZoom - XtRBoolean: 
  313. X.LP
  314. X(on/off, default on) "zoom" effect when a word is selected.
  315. X.ft R
  316. X.LP
  317. X.ft B
  318. X.IR XtNzoomSpeed - XtCZoomSpeed - XtRInt:
  319. X.LP
  320. X(integer, default 4) the speed of the zoom effect.
  321. X.ft R
  322. X.LP
  323. X.ft B
  324. X.IR XtNhighlightFont - XtCFont - XtRFontStruct:
  325. X.LP
  326. X(default "fixed") the font used for the highlighted text.
  327. X.ft R
  328. X.LP
  329. X.ft B
  330. X.IR XtNnormalFont - XtCFont - XtRFontStruct:
  331. X.LP
  332. X(default "fixed") the font used for the normal text.
  333. X.ft R
  334. X.LP
  335. X.ft B
  336. X.IR XtNhighlightColor - XtCColor - XtRPixel:
  337. X.LP
  338. X(default "red") the color used for the highlighted text.
  339. X.ft R
  340. X.LP
  341. X.ft B
  342. X.IR XtNselectColor - XtCColor - XtRPixel:
  343. X.LP
  344. X(default "blue") the color used to select text.
  345. X.ft R
  346. X.LP
  347. X.ft B
  348. X.IR XtNnormalColor - XtCColor - XtRPixel:
  349. X.LP
  350. X(default "black") the color used for the normal text.
  351. X.ft R
  352. X.LP
  353. X.ft B
  354. X.IR XtNmargin - XtCMargin - XtRInt:
  355. X.LP
  356. X(integer, default 10) the text margins.
  357. X.ft R
  358. X.LP
  359. X.ft B
  360. X.IR XtNstartHighlight - XtCTagChar - XtRUnsignedChar:
  361. X.LP
  362. X(unsigned char, default '{') the character that marks 
  363. Xthe start of the highlighted text.
  364. X.ft R
  365. X.LP
  366. X.ft B
  367. X.IR XtNendHighlight - XtCTagChar - XtRUnsignedChar:
  368. X.LP
  369. X(unsigned char, default '}') the character that marks 
  370. Xthe end of the highlighted text.
  371. X.ft R
  372. X.LP
  373. X.ft B
  374. X.IR XtNactivateCallback - XtCCallback - XtRCallback:
  375. X.LP
  376. X(callback, default none) the callback to call when a word is selected.
  377. X.ft R
  378. X.LP
  379. X.SS "New resources"
  380. X.LP
  381. XAll resources from Core(3X) and XmPrimitive(3X).
  382. X.SH CALLBACK
  383. X.LP
  384. X.ft B
  385. X.nf
  386. X#define HYPER_REASON 1
  387. X
  388. Xtypedef struct {
  389. X   int     reason;   /* always = HYPER_REASON       */
  390. X   XEvent *event;    /* event                       */
  391. X   char   *text;     /* pointer on highlighted text */
  392. X   int    length;    /* length of selected text     */
  393. X}  hyperCallbackStruct;
  394. X.ft R
  395. X
  396. X.SH FUNCTIONS
  397. X.LP
  398. X.nf
  399. X.ft B
  400. X- Widget CreateHyper(Widget parent,
  401. X                   char *name,
  402. X                   ArgList al,
  403. X                   int ac);
  404. X.fi
  405. X.LP
  406. X.I CreateHyper
  407. Xcreates an new HyperWidget.
  408. X.ft R
  409. X.LP
  410. X.nf
  411. X.ft B
  412. X- void HyperLoadFile(Widget widget,
  413. X                   char *fname);
  414. X.fi
  415. X.LP
  416. X.I HyperSetText
  417. Xsets the widget text from a file.
  418. X.ft R
  419. X.LP
  420. X.nf
  421. X.ft B
  422. X- void HyperSetText(Widget widget,
  423. X                  char *text);
  424. X.fi
  425. X.LP
  426. X.I HyperSetText
  427. Xsets the widget text from a memory buffer.
  428. X.ft R
  429. X.LP
  430. X.nf
  431. X.ft B
  432. X- void HyperSetTags(Widget widget,
  433. X                  unsigned char start_highlight,
  434. X                  unsigned char end_highlight);
  435. X.fi
  436. X.LP
  437. X.I HyperSetTags 
  438. Xsets the start of highlight and end of highlight characters.
  439. X.ft R
  440. X.LP
  441. X.nf
  442. X.ft B
  443. X- char *HyperGetText(Widget widget,
  444. X                   Boolean include_tags)
  445. X.fi
  446. X.LP
  447. X.I HyperGetText
  448. Xreturns the text of the HyperWidget. The pointer must be
  449. Xfreed by the application. If 
  450. X.I include_tags
  451. Xis TRUE, the text includes the start of highlight and
  452. Xend of highlight characters.
  453. X.ft R
  454. X.LP
  455. X.nf
  456. X.ft B
  457. X- Boolean HyperGrep (Widget widget, 
  458. X                   char *word, 
  459. X                   Boolean ignore_case, 
  460. X                   Boolean from_start,
  461. X                   Boolean wrap)
  462. X.fi
  463. X.LP
  464. X.I HyperGrep
  465. Xsearch for a pattern in the text.
  466. X.I word
  467. Xis the regular expression to look for. 
  468. X.I ignore_case
  469. Xis TRUE, the routine ignores the case of letters
  470. Xin making comparisons. If
  471. X.I from_start is TRUE, the routine searches from the start of the text,
  472. Xotherwise it searches from the current selection. If
  473. X.I wrap
  474. Xis TRUE, the search continues from the beginning of the text if the
  475. Xend of the text was reached.
  476. X.ft R
  477. X.LP
  478. X.SH RELATED INFORMATION
  479. X.BR Core (3X),
  480. X.BR XmPrimitive (3X)
  481. X.SH BUGS
  482. XOnly tested on a Sun with Motif1.1.2
  483. X.SH AUTHOR
  484. XBaudouin Raoult (mab@ecmwf.co.uk) October 91.
  485. X.SH NOTE
  486. XThere is no warranty for this program.
  487. XHyperWidget is in the public domain.
  488. SHAR_EOF
  489. chmod 0644 HyperWidget.3x || echo "restore of HyperWidget.3x fails"
  490. set `wc -c HyperWidget.3x`;Sum=$1
  491. if test "$Sum" != "4143"
  492. then echo original size 4143, current size $Sum;fi
  493. echo "x - extracting patchlevel.h (Text)"
  494. sed 's/^X//' << 'SHAR_EOF' > patchlevel.h &&
  495. X#define PATCHLEVEL 0
  496. SHAR_EOF
  497. chmod 0644 patchlevel.h || echo "restore of patchlevel.h fails"
  498. set `wc -c patchlevel.h`;Sum=$1
  499. if test "$Sum" != "21"
  500. then echo original size 21, current size $Sum;fi
  501. rm -f s2_seq_.tmp
  502. echo "You have unpacked the last part"
  503. exit 0
  504. -- 
  505. --
  506. Molecular Simulations, Inc.            mail: dcmartin@msi.com
  507. 796 N. Pastoria Avenue                uucp: uunet!dcmartin
  508. Sunnyvale, California 94086            at&t: 408/522-9236
  509.