This is the latest, and hopefully last, major release of the Info widget posted on two other occasions to comp.sources.x. I will continute to provide fixes and small functionality updates as necessary, of course, but feel that this is now as featureful as it needs to be, given its intended use. The following changes have been made since the last release: o Resource entry fixed; no longer coredumps on RISC machines. o Goto function now more properly implemented. o Info files may now be compressed to save space - as long as they end with a .Z suffix, xinfo will automatically uncompress them for you. o More bugs fixed; memory no longer leaks like water through a sieve. Whoops. Code was also cleaned up a bit more. o Widget now subclassed from composite, not paned, making it more portable to other widget sets. Also handles geometry management much more effectively. o Mouse selections in the text now supported. If something looks interesting and you click on it, regardless of where it is, something will happen. Maybe even what you wanted. o Any resource that could be user specified without changing the basic functionality of the widget has been put into the resource database. Resources in general are now used much more effectively. This doesn't mean that you actually need to know how to set them (keine angst, RMS), since a reasonable set of defaults are available (and will be automatically installed). o The HELPFILE is gone; the help text is now a resource string. This means you can now give your users xinfo help in Pashto or Finnish, if you want, simply by editing the database. o Better support for color. I.E. I thought up some reasonable defaults that you can enable if you've got a color system. o Various accelerators for making life easier have been added. o A popup dialog for getting required arguments. XInfo no longer just beeps at you and gives you a whiny message about what you should have done, it jumps up and asks you for it. o The following text was added (finally): When creating the info widget, the following resources are retrieved from the resource database: ------------------------------------------------------------------------------- Name Class Type Notes Default ------------------------------------------------------------------------------- bellVolume BellVolume Int CSG 50 callback Callback XtCallbackList CSG NULL infoFile InfoFile String CSG XpDefaultInfoFile infoNode InfoNode String CSG XpDefaultInfoNode infoPath InfoPath String CSG XpDefaultInfoPath printCommand PrintCommand String CSG XpDefaultPrintCommand retainArg RetainArg Boolean CSG FALSE ------------------------------------------------------------------------------- bellVolume Determines how loud to ring the bell when something wants to complain. callback If specified, is called when the info widget wants to "quit" it is left up to the caller to decide what "quitting" means. infoFile Which info file to read from. Generally defaults to "dir". infoNode Which info node to try and find. Generally defaults to "top". infoPath Colon separated path to follow when looking for info files. printCommand Which unix command to run when the user asks to print the current node. This command will be run on a temporary file containing the node's text and header information. retainArg Determine whether or not to leave text (if any) in the argument area around after selecting a node. CONTENTS ------------------------------------------------------- This directory contains the sources for an "Emacs Info" browsing widget, subclassed from the Composite widget. The following files are important: Info.c, Info.h, InfoP.h - Comprise the Info widget (as is customary) xinfo.c - A simple application of the info widget (also demonstrates usage of the quit callback). XInfo.ad - Application defaults. Compiling should be fairly straigtforward. You may want to edit some of the defaults in Info.h to match the configuration at your site, though this really should be changed in the resource database if at all possible. Those wishing for an more elaborate view of the twisty mechanations of my mind (regarding this code, at least) should read the NOTES file. Questions, suggestions, bug fixes or large anonymous cash donations (all currencies accepted) should be sent to: Jordan Hubbard ARPA: jkh@meepmeep.pcs.com (OR): jkh@meepmeep.pcs.de (europe)