home *** CD-ROM | disk | FTP | other *** search
- 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
-