Newsgroups: comp.sys.next
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!hellgate.utah.edu!fcom.cc.utah.edu!news
From: burchard@math.utah.edu (Paul Burchard)
Subject: UI idea...comments, anyone?
Message-ID: <1991Jun2.203311.19795@fcom.cc.utah.edu>
Keywords: drag-and-drop, tools, documents vs. applications
Sender: news@fcom.cc.utah.edu
Organization: University of Utah Computer Center
Date: Sun, 2 Jun 91 20:33:11 GMT

I think NeXT has done a great job of putting a User Interface on UNIX.  As has  
been discussed here, though, there's still one significant gap to filled: in  
the UI it's hard to work on Documents using different tools---especially UNIX  
tools.  This gap probably arose from the current Application-oriented (rather  
than Document-oriented) slant of NeXTstep.

I think it's possible create this ``multiple tool'' functionality with a  
minimum of disruption to NeXTstep, by basing it on the drag-and-drop mechanism  
which already exists in the Workspace.  Just as folder icons can now accept  
file icons, icons of executables and Applications would then be able to accept  
Document icons.

To give this basic idea some substance, I have given some thought to how it  
could be successfully implemented---in the letter below.  I'd like to send it  
to some key people at NeXT so that we might be able to see these features in  
3.0.  Before I sent it off, though, I thought I should get some help and advice  
from the good folks (and sharp-tongued gurus :-) of comp.sys.next.  Would you  
suggest some improvements to this scheme?  Do you have any advice on whom to  
write at NeXT?

Thanks...and here's the draft letter:

------------------------------ draft ---------------------------------
Dear NeXTfolk,

When I first got my NeXTstation I commented on how much I liked the NeXTstep  
Workspace and its File Viewer.  Despite nearly a decade of experience with the  
UNIX command line, I loved the File Viewer right away for how pleasant it made  
navigating the file system.  Since then, my good impression has only  
strengthened---I've continued to notice well-thought out features (for example  
graceful handling of symbolic links).  I've also noticed and appreciated the  
improvements over 1.0, and heard tantalizing rumors of an FTP-Browser for the  
future (yeah!).

Still, I (and others) continue to keep a Terminal within easy reach.  The  
biggest reasons are that with Workspace
	* it's hard to run different programs on the same file
	* it's even harder to run UNIX programs on a file.
The Tools Inspector is fairly awkward for this even within its limited scope.   
But I think there is a pretty nice intuitive way to do most of this that fits  
well into NeXTstep, and adds no clutter to the Workspace!

The basic idea would be to allow drag-and-drop of file icons into the icons of  
executables sitting in the Shelf, Icon Path, or Dock.  Just as folder icons  
there can accept files, so too would executable icons.  But instead of showing  
an open folder, they would respond with an ``acceptance'' gesture (if the file  
was acceptable).

The simplest gesture would be for the icon to highlight as if it were about to  
launch.  A nicer UI gesture, though, would be for the icon to change to a  
special ``acceptance icon''.  NeXTstep would supply a generic one (open  
hands?), but App designers should be able to specify their own in IB if they  
liked.

For apps, this would pretty much be the whole story.  But doing this for UNIX  
commands requires knowing how to construct the proper command line.  This can  
of course get hairy, but remember that the goal is not to perform arbitrary  
UNIX command lines, just to call programs that can be thought of as performing  
an action on a single file.

So, generically, the command line "$cmd $file" could be used (with the obvious  
meanings of the variables).  But to cover other usages, command templates would  
be stored in the defaults database, where they could hopefully be set using the  
``UNIX Expert'' panel in the Preferences app.  NeXT would stock a user's  
initial defaults database with some useful templates.

The exact format and level of generality of these templates I leave to your  
collective imagninations.  But the template should probably be allowed to  
depend on at least the filename extension as well as the command name, and you  
should be able to choose between background and interactive operation.  For  
example, you'd want to be able to do something like this (simulated output for  
"dread -o NextTemplate"):

	NextTemplate	tar/		$cmd cf $file &
	NextTemplate	tar/tar		$cmd xf $file &
	NextTemplate	latex/tex	$cmd -v $file

Notice, in this example, how a UNIX command could become selective about which  
files it accepted from the Workspace.

I make these suggestions because I like my NeXT enough to want it to be even  
better.  How do these ideas sound to you folks (assuming you haven't thought of  
them already)?

Paul Burchard
burchard@horizon.math.utah.edu
------------------------------ end draft ---------------------------------


-----------------------------------------------------------------------------
Paul Burchard	<burchard@math.utah.edu>
``I'm still learning how to count backwards from infinity...''
-----------------------------------------------------------------------------
