¬
Jim Million    uunet!wiltel!jmillion    November 1992    				              

LibInspector (v1.1)

LibInspector is a custom WorkspaceManager Contents Inspector, registered to provide simple contents inspection of library files (.a).  A library's table of contents are displayed in a browser where they may be selected to be 'extracted'.  LibInspector performs no destructive operations on the file (i.e. you may not remove, add, relocate, or replace files).  Selected files are extracted to a temporary folder (/tmp/LibExtractions).  A FileViewer is 
opened on this folder when the extraction is complete.  These files are not 'cleaned' from this directory, user must move or destroy them.

Revision History
v1.1
This following Note (from 1.0 Readme) has been fixed.  Thanks to Thomas Burkholder  
(NeXT Developer Support) for a workaround. The file viewer opened on extracted files uses the 'selectFile: inFileViewerRootedAt:' method in the 3.0 WorkspaceRequest protocol.  This method produces inconsistent  performance behavior, either a few seconds (usually true), or at least 45 seconds (seems to be some time-out value).  This is understandable, as for custom contents inspectors, WM can be contending for its own resources. This delay is random, but not frequent, and is not a factor after the file viewer has been created the first time (makeKeyAndOrderFront: is called from that point on). 
¬

Important Files...
¬ bundle.registy contains registration info (tells WM which files this inspector will inspect).
¬ Makefile.preamble loads bundle.registry info into the _ICON section of the Mach-o file.
¬ LibInspector.[hm] is the owner of the bundle nib file (LibInspector.nib) and manages
   inspection of library files.

Installation
To install, copy LibInspector.bundle into ~Apps (or anywhere in WM's search path - NextApps, LocalApps, etc.).  WM will look into the bundle when you do the copy, and register the specified file types (extensions) at that time (first load takes a moment).

To unload, remove the bundle from the search path, log out.  Upon next login, bundle will not be loaded.

To reload, replace the existing bundle, log out. New bundle will be loaded upon next login.

Notes...
¬ The browser display uses a 10 point, fixed font in order to present as much info as 
     possible and keep column alignment.  If you hate it, the font is set in the browser 
     delegate method (browser:fillMatrix:inColumn:), and the formatting is done in the 
     private method _format:.

Documentation	
NeXT documentation on custom WorkspaceManager Contents Inspectors...
GeneralRef/19_WorkspaceManager/IntroWorkspace.rtf
GeneralRef/19_WorkspaceManager/Classes/WMInspector.rtf

¬