home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
192.lha
/
Zippy_v2.5
/
Zippy.doc
< prev
next >
Wrap
Text File
|
1988-04-28
|
10KB
|
211 lines
The Zippy Graphic Shell (Version 2.5 11/05/88)
Mike Weiblen
4809 Calvert Road POBox 1638
College Park, MD 20740
PLink: EKIM CIS: 72506,2082 GEnie: XTH36273
Legal Stuff:
(c) Copyright 1988 by Michael Weiblen. All Rights Reserved.
Freely distributable only with credits & copyright notice intact.
Credits:
Inspired by and originally based (a looong time ago) on DuM2
by Greg Browne, which is included as a demo program in the
Benchmark Modula-2 package. Thanks to Mic Kaczmarczik for ShowDevs,
another demo in the BM2 package.
I'm going to assume you've used a directory utility before, so I'll just
briefly describe the particular features of Zippy. Experimenting is the
best way to learn.
To start it up, just type at any CLI prompt:
Zippy
The Zippy Window:
Starting from the top, the window is composed of:
The Source Directory string gadget
This is the name of the 'current' directory. Its contents are
displayed the the table below.
The Destination Directory string gadget
When you perform a move or copy operation, this is the directory
where things go. Both the Source & Destination buffer has separate
undo buffers which are preserved for future access (see below).
A message/status line
A row of gadget buttons (more on this later)
A table listing the contents of the Source Directory
and along the right edge, a slider for scrolling the table.
The Row of 10 Gadget Buttons (from left to right, they are:)
#1 The Refresh Button (looks like a starburst)
This rereads the Source directory & refreshs the file table.
#2 The Device Button (looks like a floppy disk)
Fills the table with the names of all devices & ASSIGNed directories.
The refresh button will bring back the current directory if you should
accidently hit the device button.
the next group of four buttons controls the string gadgets:
#3 The Root Button (the one with the colon)
Moves you the the root of the Source directory
#4 The Parent Button (the slash)
Moves you to the Source directory's parent
#5 The Swap Button (double-ended arrow)
Swaps the values of the Source & Destination string gadget. Yes,
the undo buffers swap also.
#6 The Push Button (down arrow)
Copies the Source string gadget into the Destination
the last group of four buttons control file selections:
#7 The Clear Button (the empty box)
Clears all the selections
#8 The Select-All-Files Button (the filled box)
This selects all the files (NO directorys)
#9 The Reverse Button (the half-full/half-empty box)
Reverses the select status of all lines
#10 The Restore Button (looks a lot like a window-to-back gadget)
After a batch operation (like a copy), this will restore the your
previous selections.
About the File Table:
Single-clicking:
Single-clicking on any entry will reverse its selection status.
Note that you can drag-select a range of files by moving the mouse with
the button held down. If you drag off the end of the table, it will
scroll.
Double-clicking:
If you double-click on a directory name, that name will be added to the
end of the Source directory path.
Special Feature: The Menu Button
The right mouse button can be used for more that just selecting menus.
It has a special meaning when clicked inside certain gadgets:
In the Source or Destination string gadgets, it will swap the current
buffer with the gadget's undo buffer. This provides a handy place to
stash directory names you want to alternate between. The undo buffers
are judiciously updated by certain gadget functions (like 'Root).
In the Root or Parent gadgets, it will give the the root or parent of
the Destination directory.
About the Menus:
Zippy has 4 permanent standard menus. although you can add your own custom
menus (more on that later). The first three (Zippy, Path & Select)
basically duplicate the gadget buttons. Notice that the command key
shortcuts for the Path-Source and Path-Dest menus use the same keys, except
that the Dest functions are shifted.
The DOS menu contains the usual file management functions:
Move - Moves the selected lines to the destination. Zippy will give you
an error if that name is already in the destination.
Copy - Copies files (only) to the destination. It also copies the file's
protection flags & filenote. It WILL replace a file that already
exists in the destination.
Delete - Deletes files and empty directories.
Make New Dir D - Makes the directory whose name is in the destination
string gadget. It will not, however, recursively create
directories; ie: RAM:AA/BB cant be created unless RAM:AA already
exists. This function is automatically executed by Move & Copy
if the destination doesn't already exist.
Programming the Menus:
OK, this is the best part. Let's go over how Zippy uses the menu
definitions, then I'll go over how to set up your own.
The user menus are used to run any programs you desire with the selected
files as command line arguments. The menu definition is in the form of
a script file that you set up using your favorite text editor. A menu
definition script can define any number of menus and menu items.
There are 2 kinds of menu definitions: Global and Local. The Global menu
definition (there is only one) is stored in the file "s:menus.zip". In
this file you would put programs you ALWAYS would want access to. For
instance, I put my text editor & a file reader in the global definition.
The Local definitions are stored in a file called "menus.zip" in any given
directory. When that directory is the Source directory, the local script
is read in. When you move from directory to directory, the local menus
are redefined by each local "menu.zip" file. I have one in my modula-2
development directory that has compile & link functions defined. In my
animations directory, I have a local menu script that allows me to use
Move & ShowAnim.
The Zippy Menu Script Language:
Its very simple: there are only two statements, but their format MUST be
followed exactly. The script parser is not unbreakable! I mean, why
bother writing an indestructable script interpreter when there are neat
products like ARexx on the market? (he hinted broadly). If there are any
problems processing a script file, it simply SKIPS THE LINE and moves on.
A statement consists of terms seperated by spaces and terminated by a
linefeed. If you want spaces included in a term, enclose it in quotes.
The first statement is MENU. This defines the start of a new menu.
The format is:
MENU title
where 'title' is the string to be displayed in the menu bar.
You must have a MENU statement before you define any menuitems.
If you define more menus than will fit on the menu bar, you may be asking
for trouble.
The second statement is MENUITEM. This defines you-know-what.
The format is:
MENUITEM title key program reward
where 'title' is the string displayed in the menu.
'key' is a single character specifying the menu shortcut.
If you don't want this item to have a shortcut, make this
term a null string, ie: ""
Beware you don't reuse a character that is already in use.
'program' is the string to be suffixed by a file name & executed.
'reward' is what should be done if the program is run without error.
The choices are:
R = reread (the default); rereads the Source directory
ensuring an accurate table of filenames.
U = unselect; simply unhighlight the selected file
Z = zap; remove the file from the table, but dont
reread the directory.
That's it! See the file "Menus.doc" for information about the sample menu
scripts included in this archive. Please look over the samples; use them
as models for setting up your own scripts.
Tips, Features & Other Stuff:
* I didn't give Zippy the capability to rename files. Instead, use my
program FileInfo (included in this archive). It allows you to rename
files & modify the comment and protection flags.
* Zippy honors the undocumented AmigaDOS "hidden" flag. So, if seeing that
'menus.zip' file in your directory bothers you, hide it!
* I strongly suggest padding all menuitems in a given menu with spaces so
they are the same length. It works so much better that way. Also, if
you specify a menu shortcut, put about 5 spaces after the menuitem title
to leave space to display it.
* Zippy is hardcoded to handle a maximum of 1000 files, but it only allocates
memory for the files actually in the current directory.
* File names with spaces will automatically be surrounded by quotes when
used as command line arguments.
* File names too long to be displayed? Make the window wider. Also, making
it taller allows more files to be displayed.
* Batch operations are interrupted by clicking anywhere in the window.
* Like those double-window directory utilities? Just run two Zippys!
* I use Bill Hawes' excellent WShell and have in my startup-sequence the
following line: alias z="Run Zippy"
All I have to type is "z" at a CLI & I get Zippy running in background.
This is the first public release of Zippy, so your feedback is essential.
While I have been using it myself for quite some time, please be on the
watch for weirdness. Enjoy... Mike Weiblen