__ ___ ____ \ \/ / |__ _ __ ___ | __ ) _ __ _____ _____ ___ _ __ \ /| '_ \| '_ ` _ \| _ \| '__/ _ \ \ /\ / / __|/ _ \ '__| / \| |_) | | | | | | |_) | | | (_) \ V V /\__ \ __/ | /_/\_\_.__/|_| |_| |_|____/|_| \___/ \_/\_/ |___/\___|_| __ __ _ ___ _ \ \ / /__ _ _ __(_)___ _ _ | __| / | \ V / -_) '_(_-< / _ \ ' \ |__ \_| | \_/\___|_| /__/_\___/_||_| |___(_)_| XbmBrowser (version 5.1) A program to allow the user to view a complete directory of X bitmaps and X pixmaps all in one go, and to perform user defined actions on these images. If you don't think this is usful, you have never dealt with a directory of small icon images. Copyright Ashley Roll and Anthony Thyssen Original Program: Ashley Roll ash@cit.gu.edu.au upto version 3.2 Current Programmer: Anthony Thyssen anthony@cit.gu.edu.au version 4.0 on This program while available in the X windows Contrib Area, still belongs to the programmers. Permission is however given for you to freely copy, distribute and modify it on the condition that this and all other copyright notices remain unchanged in all distributions. Modifications should be forwarded to the Current Programmer (anthony) for inclusion into the next release. This software comes with NO warranty whatsoever and no responsibility for any damages, losses or problems that the program may cause will be taken. Please also send any interesting user menu additions you come up with to the current programmer :- Anthony Thyssen http://www.cit.gu.edu.au/~anthony/anthony.html http://www.cit.gu.edu.au/~anthony/ ------------------------------------------------------------------------------- WHERE TO GET IT XbmBrowser ftp.x.org /contrib/utilities/xbmbrowser5.1.tar.gz archie.au /X11/R6/contrib/utilities/xbmbrowser5.1.tar.gz and all the X archive mirrors. You may also like to get and install the package before tring to build this program so that it can read and display Xpixmap files too. XPM (X Pixmap Library) Coordinator: Arnaud Lehors ftp.x.org /contrib/libraries/xpm-3.4f.tar.gz DISTRIBUTED FILES Documentation README - You are reading it! Changes - History of changes made to xbmbrowser OtherUses - Other Uses people have used xbmbrowser for! xbmbrowser.man - Online manual for xbmbrowser Sources Imakefile - imake file Makefile.std - the standard make file. patchlevel.h - the current patchlevel. xbmbrowser.h \ xbmbrowser.c | callbacks.c | user_menu.c > the 'C' source for xbmbrowser. user_functs.c | images.c | misc.c / IconLabel.c \ IconLabel.h > IconLabel Widget -- shaped icons with label IconLabelP.h / Images icon.xbm - default icon -- resource `pixmap' can override. tickbox_on.xbm \_ menu option tick boxes tickbox_off.xbm / filesyms/ - directory of file symbols for non-icon files test_icons/ - directory of icons used for testing purposes Menus & Application Defaults XbmBrowser-color.ad.sed - application defaults source file xbmbrowser.menu.sed - The default user menu file (source). xbmbrowser.menu.tut.sed - Default User menu with comments and suggestions xbmbrowserrc.anthonys - My own personal RC file (using AIcons scripts) Support Scripts xbm-cmd \_ Scripts to filter bitmaps and pixmaps xbm-resize / using the pbmplus filters in your path You can download more such support from Anthony's Icon Library http://www.cit.gu.edu.edu/~anthony/icons/support/ DEFAULT AND PERSONAL USER MENUS. The man page and the file "xbmbrowser.menu.tut" contains information on the syntax of the new user menu configuration file format. NOTE: The Default user menus assume that PbmPlus is available on the users path. You can change the default location at which the program expects to find the default user menu file, either via an appropriate resource setting, or through the hardcorded resource default in the "Imakefile" or "xbmbrowser.h". The default setting is to place the global menu configuration into normal X11 library directory for your system. A personal menu configuration file can be defined by the user, in the file ".xbmbrowserrc" in the users home directory. I suggest that users copy the global library file to thier personal rc file, and then make changes as required. I myself use a file very simular rc file to the default global file provided, but using various shell scripts to do complexe tasks, and with all the rescan()'s removed as I prefer to use the main button when I want to do a rescan. SUPERUSER INSTALLATION With Imake execute: xmkmf make make install make install.man With normal make execute: Edit xbmbrowser.h or the resource file XbmBrowser.ad to suit your machines setup. cp Makefile.std Makefile make then manually install the xbmbrowser, support scripts, manual, and the default user menu, as you require. USER INSTALLATION So Xbmbrowser works correctly your will have to tell it where it can find its Menu Defaults. This can be done in a number of ways. Only one of these methods is required but you can do any and any as desired. Before Making -- * Edit the Imakefile to specify the directory to find the default library menus. After Makeing -- * Specify in the XbmBrowser resources where to find the library file. * Copy the "xbmbrowser.menu" file into your home directory as ".xbmbrowserrc". If xbmbrowser finds this it will use it instead of the library default menus. I think the last method is the easiest as it does not change the executable. Thus if and when xbmbrowser can be installed in the normal X directories You do not need to rebuild the executable. Build the "xbmbrowser" executable using ``xmkmf; make;'' commands. But DO NOT run the "make install" or ``make install.man'' commands. Install the XbmBrowser resource (.ad) files into your personal application resources directory (renaming without the .ad on the end). This directory is pointed to with the Environment variable XAPPRESDIR. If this variable is not set then it defaults to your home directory, or install the resources into your .Xdefaults or other resource files. For more information on resources look at the following WWW document. http://www.cit.gu.edu.au/~anthony/info/X/hints.Resources That file is in my ``Tower of Computational Sorcery'' which is part of a my ``Medievil Castle Home Page'' http://www.cit.gu.edu.au/~anthony/ PROBLEMS Ultrix Machines (Decstations) A number of memory faults seems to occur. Both in user menu configuration and also in the X Pixmap library. The solution that works is to recompile both xbmbrowser AND the X Pixmap library with gcc. NOTE: to compile Xpm with gcc, your must set the following Imakefile define in the Xpm libraries sub-directory's Imakefile. Or better still add it to the /usr/lib/X11/config/Imake.tmpl file with. #define LibraryCcCmd gcc Noramlly these X Pixmap errors are of no concern to most applications. They seem to only happen when a xpm is being freed, either by a call from the client program or because the xpm file is invalid. Most programs using the Xpm library never free X pixmaps or try to referance non-pixmap files. Xbmbrowser does both and as such has discovered many faults in the X Pixmap Library which has since been corrected. Linix (PC Unix) Linix machine have the same problems with the pixmap library. In this case however the problem seems to do with the Xpm library 3.3, distributed with the linux system. Users can get a replacement copy of the Xpm library from the linux archive... sunsite.unc.edu:/pub/Linux/libs/X/libXpm-????.tar.gz Place in the /usr/X11/lib directory with the old library and recompile xbmbrowser. BETA TESTERS The following people returned bugs and suggestions for this release of xbmbrowser. Many thanks to all of them. Steve Kinzler :Recursive Directory Tests Shane Watts :Linix PC Thomas Cooke :Zero Width/Heigth Xpm Bug Bjorn P. Brox :Stupid Memory Faults Jan Sandquist Detlef Schmier :Simple fix to "None" colors Brian Dowling :Dec Ultrix -- symlinks Robert Paulus :HP9000/400 Richard Lloyd :HP-UX -- Imake changes Bob Friesenhahn :Solaris -- Memory Faults Heiko Schroeder :List widget bug John Polstra :SVR4 symlinks Amir J. Katz :Double Click Fault Steven Chaplin :Imake problem on linux Reinhard Sy :Sony -- include file Paul Provost :README Correction Michael Weller :making global menu global! Michael Meissner :new sub var %D Jim Spath :NetBSD changes Peter Klingebiel :MIPs changes