home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
back2roots/padua
/
padua.7z
/
padua
/
system
/
mfr20d.lha
/
MFR
/
Manual
< prev
next >
Wrap
Text File
|
1992-07-19
|
40KB
|
1,180 lines
========================================================================
MagicFileRequester V2.0d Documentation 19-Jul-1992
========================================================================
(C) Copyright 1992 by Stefan Stuntz
For informations about license and warranty see the file 'License'.
========================================================================
Roadmap
========================================================================
1. Introduction
1.1. Motivation
1.2. Features
1.3. Basics
1.4. System Requirements
2. Installation
2.1. From Workbench
2.2. From CLI
2.3. Removing MFR
3. Using MFR
3.1. Window Arrangement
3.2. Mouse Usage
3.3. Keyboard Usage
3.4. Menus
3.4.1. Project Menu
3.4.2. Edit Menu
3.4.3. DOS Menu
3.4.4. Settings Menu
4. Specials
4.1. Tooltypes
4.2. CLI Interface
5. Goodies
5.1. UnArp
5.2. TagScreens
5.3. Find
5.4. TaskList
6. Discussion
6.1. Known Bugs
6.2. Compatibilty
6.3. Future Features
6.4. Acknowledgements
6.5. How to reach the author
========================================================================
1. Introduction
========================================================================
1.1. Motivation
---------------
A file requester is probably the most used program inside an Amiga.
Unfortunately, all currently available requesters lack some important
features, such as
- Keyboard support.
Since I operate my computer mainly from an arm-chair with the keyboard
on my knees, my mouse is far away. I really need keyboard support.
- Font support.
I don't see a reason to force the user to a non proportional system
default font or - even worse - to topaz/8 in a file requester.
- Resolution support.
The Amiga has many different resolutions with different pixel aspect
ratios. What do I want with a courier/13 font on a low resolution
á 320x200 screen?
- Speed.
This one's very important. Just look at 2.0 ASL and you know what I mean
These were the main reasons for me to write my own file requester.
MFR is the result and I hope, you will like it as much as I do.
1.2. Features
-------------
- MFR is completely controllable via keyboard, so you will never have to
touch your mouse when selecting files (of course you can, if you really
want to).
- MFR will use any font you want in its display. Proportional fonts like
helvetica look really marvellous.
- MFR has the ability to quickly search your hard disk for any file, so
you needn't remember each file's directory.
- MFR offers a powerful directory caching mechanism.
- MFR can display pictures, play sounds, view archives, etc. with the aid
of some external programs.
- MFR looks very nice, especially on high resolution screens.
- MFR has a sizing gadget.
- MFR takes advantage of new Kick 2.0 features like file notification.
- MFR can be customized through a wide range of tooltypes and menu items.
- MFR is fast.
- MFR is simply magic :-)
1.3. Basics
-----------
MFR is not distributed like other file requesters. You do not get an
additional library for your LIBS: drawer and you may not call MFR
directly from within your own applications. All you get is a single
program that replaces some library vectors at installation time. So
every program that uses one of the supported file requesters will use
MFR instead.
MFR is especially designed for the new Kick 2.0 colors and resolutions.
It will look best on a high resolution display with a pixel aspect ratio
of nearly 1:1 (e.g. Hires + Interlace). Although MFR can be used on
low resolution screens too, the 'feeling' won't be there.
MFR is a commodity. You can control it like other commodities with the
Exchange program from your Workbench Disk.
1.4. System Requirements
------------------------
As you probably noticed, MFR requires at least Kickstart 2.04 (also
known as V37.175) to work properly. If you are still using Version 1.3
of the operating system, it's time to update now. You won't regret it.
Particularly, the following libraries are needed:
Library Min.Version Place
intuition.library 37 ROM
graphics.library 37 ROM
gadtools.library 37 ROM
utility.library 37 ROM
workbench.library 37 ROM
icon.library 37 Libs:
commodities.library 37 Libs:
asl.library 37 Libs:
iffparse.library 37 Libs:
diskfont.library 36 Libs:
req.library 1 Libs:
All these libraries are part of the OS 2.04 distribution, except
req.library, which can be found in the distribution archive of MFR.
========================================================================
2. Installation
========================================================================
2.1. From Workbench
-------------------
Couldn't be easier. A simple double klick on MFR's icon will install it
in memory. From now on, every ASL and REQ file requester will be
replaced with a MFR. Of course you can (and I really hope you will)
move MFR into "SYS:WBStartup/", so it will be launched every time you
boot.
2.2. From CLI
-------------
Since there seem to be quite many people out there, who do not use
workbench, MFR can also be started from a CLI environment. The command
mfr install
will do this job. MFR automatically detaches so there is no need to
'run' it.
2.3. Removing MFR
-----------------
If you really want to remove MFR from your system, you can do this by
double clicking its icon a second time, by calling "mfr install" from
CLI again or with the Commodities Exchange program. A requester will
pop up informing you that MFR has been removed.
MFR will refuse to quit when there are some other programs still hanging
around with open or just with allocated file requesters. In this case,
MFR will inform you how many times it's locked. You will have to exit
all these locking programs, before you can remove MFR from your system.
========================================================================
3. Using MFR
========================================================================
3.1. Window Arrangement
-----------------------
After installing MFR, you should try pressing <Control><LeftAlt><M>.
This key combination (of course adjustable) will pop up a MFR to play
with, so let's start playing...
MFR offers a window with a big list view for the directory on the left
side and a smaller one for devices and volumes on the right side. At
the bottom, you will find the drawer and file gadgets as well as a
pattern gadget. 'Okay' and 'Cancel' buttons are located where you would
expect them. You should be familiar with this outfit since it's almost
like the req.library requester.
Some words about the directory list now. On a standard workbench,
directories will appear white and files will appear black. Right of a
file entry, MFR shows its size, creation date and time and the file's
flags. The amount of information shown depends on the size of MFR's
window and on the width of the font. Try sizing the window to see how
it works.
The device list contains an alphabetically sorted list of all devices
(df0:, df1:, dh0:, ram:, ...), all volumes (Work:, Ram Disk:, ...) and
all assigned directories available in your system. Usually, you won't
need all of these entries while working with MFR, so MFR offers a
possibility to prevent certain entries from being displayed. More on
that later.
The widths of directory and device list are adjustable. Just click
between both lists (right of the directory scroll bar) and drag the
appearing bar around. If you size the device list big enough, some
device information will appear.
MFR allows customizing its complete outfit (Fonts, Scrollbars, Gadgets,
Background, etc.) according to your personal taste. Refer to section
3.4.4. for details.
3.2. Mouse Usage
----------------
Using MFR with a mouse is not too much different from using other file
requesters. To select a file, just click on it and press the 'Okay'
gadget or just double click the file. To avoid overwriting of important
files, the double click feature is disabled in save mode.
Entering a directory (or a device, volume) is done by clicking and
releasing the left mouse button on the appropriate entry. If you
release the button somewhere else, nothing will happen.
The 'Parent' gadget (labeled '/') is located right of the drawer gadget.
Since this place is sometimes far away from the directory list, MFR
offers another parent gadget. It's located (invisible) between the left
window border and the left side of the directory list and acts exactly
like the '/' gadget. For users with a three button mouse, the mid
button can also be used to access the parent directory.
When the application allows selection of multiple files, you can do this
by holding down the <shift> key and clicking on the desired entries.
You can also hold down <shift> and move the mouse (with left button
pressed) around. Note that you will have to hold shift even for the
first entry you select. This is different from other file requesters
behaviour and from workbench multi select, but it seems to be the only
reasonable way for MFR.
Maybe you already noticed the '!' gadget near the file gadget. This one
will cause MFR to perform a so called file action on the current file.
Refer to section 3.4.3. for details.
3.3. Keyboard Usage
-------------------
Using MFR with the keyboard needs a little more explanation. First some
general things.
The file gadget of MFR is connected with the directory list, the drawer
gadget is connected with the device list. So if you have e.g. an
active file gadget, you will also notice a cursor in the directory list.
Try this by pressing <TAB> or <Shift><TAB> to cycle through the gadgets.
Tab cycling is a little bit different from standard kick 2.x behaviour.
Pressing <TAB> will always toggle between drawer and file gadget,
<Shift><TAB> will activate the pattern gadget (if visible).
The list cursor always moves according to your actions in the connected
string gadget. You should now try moving up and down in the directory
list with the cursor keys (and maybe with some qualifiers). MFR will
always update the file gadget with the name of the entry under the list
cursor. So if you want to select a file, just move the cursor on top of
it and press <Return>. When the list cursor is placed over a directory,
MFR will append a '/' to the directory's name before updating the file
gadget. Thus, pressing <Return> over a directory will simply enter it.
The shortcut <Amiga><P> is used to change to parent directory.
Alternatively, you can use <Alt><Right> and <Alt><Left> to enter/leave
directories.
The same procedure applies to the device list. Activate the drawer
gadget, select a device by moving the cursor and press <Return>. Easy,
isn't it?
Now things get a little bit complicated, but more interesting. Imagine
you have a directory with lots of files (e.g. a directory with IFF
graphics) and you want to load the file 'Stefan_With_Amiga.pic'. Of
course you could try to reach the file with your cursor keys, but this
may take a while. Just try typing a 'S' into the (empty) file gadget.
You will notice the list cursor magically moving on the first file
starting with the letter 'S'. This could e.g. be
'Sabine_Without_Clothes.pic'. Now type a 't' and MFR will move to the
first entry with 'St' at the beginning, e.g. 'Stars&Stripes.pic'.
After typing an 'e', you will find yourself directly over
'Stefan_With_Amiga.pic'. Thus, you only needed three keystrokes instead
of many cursor downs or mouse moving. Due to MFR's auto completion, you
will only have to press <Return> now to select this file.
Remember, although your string gadget only contains 'Ste', MFR will
return the full name 'Stefan_With_Amiga.pic' to the application. If you
don't like this auto complete feature, you can of course switch it off.
Now, type some filename into the file gadget that does not exist in your
current directory (e.g. 'grmblwuz'), or just clear the gadget. You
will notice the list cursor changing from a bar to a rectangle. This
indicates, that no auto complete will take place when you type <Return>,
the file will be returned without any changes.
Multi selection of files can be done by the key combination
<Amiga><Space>. This toggles the selection state of the active file
(the one under the list cursor). Additionaly, <Amiga><Shift><Space> can
be used to select/deselect the entire directory.
MFR can also be controlled with the numeric keypad (if enabled). Key
'5' is for multiselection, the other keys work as expected.
Leaving MFR without selecting files can be done with the <Escape> key.
This is equivalent to pressing the 'Cancel' gadget.
3.4. Menus
----------
As every real Amiga program, MFR offers a couple of pulldown menus.
Here they are...
3.4.1. Project Menu
-------------------
- About
Display some information about program version, author and registration.
When you register, your name will be displayed here.
- Statistics
Display statistics about all previous file requester calls. Seems to be
a little bit senseless, but maybe someone is interested in this
information.
- Flush Memory
Free some allocated memory. With Workbench 2.1, this function will be
called automatically when memory gets low.
- Okay
Simulate 'Okay' gadget.
- Cancel
Simulate 'Cancel' gadget.
3.4.2. Edit Menu
----------------
- Copy Path
Paste complete current path (concatenated contents of drawer and file
gadget) to clipboard.
- Copy File
Paste contents of file gadget to clipboard.
- Copy Dir
Paste contents of drawer gadget to clipboard.
3.4.3. DOS Menu
---------------
- Parent Directory
Change to the parent directory. MFR will display an error in its
status line when there is no parent directory.
- Reload Directory
Load and display the current directory again. This is useful if you
turned of file notification for some reason and something in the current
directory changed.
- Rescan Devices
After mounting an additional device, you may wish to recreate the device
list. This menu item will do that for you.
- Search File
MFR has the ability to search your harddisk for some files. Before you
can use this feature, you will have to create a data base consisting of
all your directories and all your files. This can be done with the
"UpdateDB" program from Larry Phillips "Find" package, which is included
in MFR's distribution archive. If you are not familiar with "UpdateDB",
please refer to Larry's documentation for details. Once you have
created the data base, you can easily find any file you want. Just type
the (partial) name (or pattern) into the string gadget and select the
'Search File' menu item. MFR will list all occurances of the concerning
file together with the complete path in the file list. Just double
click on the desired entry and you will be moved to its directory with
the appropriate information filled in the drawer and file gadgets.
- File Action
MFR has the ability to show pictures, play sounds, view archives, etc..
If you want to use this feature, you will have to tell MFR what to do
with certain file types. This is done via the CLASS_0 - CLASS_9
tooltype entries.
The syntax of a CLASS entry looks like this:
CLASS_<n>=[<namepattern>],[<contentspattern>],<action>
If you select the "File Action" menu item or you press the file action
gadget (labeled '!'), MFR checks the current file against <namepattern>.
If this one matches, MFR checks the first 256 Bytes of the file against
<contentspattern>. In case of match, the command <action> is performed
on this file. Note that <namepattern> is case insensitive but
<contentspattern> is case sensitive. An ommited pattern matches always.
The parameter <action> must be a valid command, exactly as if typed into
a CLI. The first "%s" in <action> will be replaced with the full path
specification of the current file. Note that formatting of the command
is done via sprintf(), so you should be careful not to use other printf
style formatting commands such as "%d" or "%x". Your machine may crash
if you do so! If you use commands that print to the current console
(e.g. all archivers), you must use IO-redirection.
Some examples for file classes are:
CLASS_0=#?.(lha|lzh),,lz >con:120/50/500/250/LH-Archive/CLOSE/WAIT v %s
CLASS_1=#?.zoo,,zoo >con:120/50/500/250/Zoo-Archive/CLOSE/WAIT l %s
CLASS_2=#?,FORM????ILBM#?,display %s
CLASS_3=#?,FORM????8SVX#?,play %s
CLASS_4=#?.doc,,more %s
- History List
With 'History List', you will get a list of the last files you selected
with MFR. This can be useful if you want to load some files again. If
the history list is not empty, a window will pop up and allow you to
select one entry. Note that the entries of the history list are not
sorted, the last selected file always appears on top of the list.
- Make Directory
Create a new drawer in the current directory.
- Delete File/Dir
Delete a file or an empty directory in the current directory. Note that
MFR is no CLI tool, so you won't be able to delete non empty directories
or write protected files.
- Rename File/Dir
Rename a file or a drawer. You may move files out ot the current
directory buy specifying a complete path for the new name.
* Status submenu
The 'Status' submenu is used to control some status bits of MFR.
Normally, these bits are set to reasonable values by the calling
application, but you can override these settings at any time. Note that
none of these flags will be saved.
- Status / Display Pattern Gadget
Controls whether the pattern gadget is visible or not.
- Status / Disable Pattern
Controls whether the pattern specified in the pattern gadget shall be
used to hide certain files. This has nothing to do with the visibility
of the gadget.
- Status / Hide Icons
Controls whether icons (.info files) shall be displayed or not. Even
with icon display enabled, .info files may be hidden by the pattern
setting.
- Status / Match Directories
Controls whether directories must also match the specified pattern to be
displayed. This is not useful in general.
3.4.4. Settings Menu
--------------------
The 'Settings' menu contains some items to customize MFR according to
your personal taste. MFR's settings are global for all file requesters.
If you e.g. select a new font, all open requesters will be informed and
updated.
Many settings can hold two different values, according to the current
screen resolution. For example, changing the gadget font on a lowres
screen affects the lowres setting, changing it on a highres screen
affects the highres setting. These menu items will be marked as [dual].
Low resolutions displays are: Lores, Hires, SuperHires, HAM, LoresDPF,
LoresDPF2, HiresDPF2, SuperHiresDPF2, ExtraHalfBrite, VGAExtraLores,
VGAHAM, VGAExtraLoresLace, VGALoresDPF, VGAExtraLoresDPF2, VGALoresDPF2,
and VGAExtraHalfBrite. All other modes will be considered as high
resolution.
* Window submenu
The 'Window' submenu is used to control size, position and outfit of
MFR's window.
- Window / Override Dimension
Normally, the dimensions of a file requester window will be set by the
calling program. However, MFR seems to need more space than other file
requester. Thus, it may be a good idea to let MFR override the
application's size suggestion and use its own one. With this switch
set, MFR will always use the configured size when opening its window.
- Window / Override Position
MFR offers the ability to open its window either centered on the screen
or centered under the mouse pointer. To use these features, you will
have to set this switch. Without 'Override Position', MFR will use the
application specified position.
- Window / Centered Window
MFR's window will always appear centered on the (visible part of the)
screen.
- Window / Moused Window
MFR's window will always appear under the mouse pointer.
- Window / Rastered Background [dual]
The background of MFR'S window will be rastered with the darkest color
of the current palette. In save mode, background will be rastered with
the two darkest colors.
- Window / Inverted Gadgets
Flip front and back pen of string gadgets.
- Window / Use as Default Dimension [dual]
Set MFR's default dimension to the current window size.
* Scrollbar submenu
MFR offers four different scrollbar designs, each of them either with
symmetrical or asymmetrical placement of arrow gadgets.
- Scrollbar / Default [dual]
Scrollbars look like standard Kick 2.x scrollbars on highres screens.
- Scrollbar / Default-Lores [dual]
Scrollbars look like standard Kick 2.x scrollbars on lowres screens.
- Scrollbar / Goonie [dual]
Scrollbars and arrows look 3-dimensional, with a little knob in the
middle. Nice!
- Scrollbar / Stuntzi [dual]
Scrollbars use PROPNEWLOOK, looks a bit like workbench's scrollbars.
- Scrollbar / Symmetrical
Scrollbar uses symmetrical placement of arrow gadgets.
- Scrollbar / Set Arrow Delay...
Here, you can adjust the repeat rate for the scrollbars arrow gadgets.
With a value of 0, MFR scrolls very fast.
* Font submenu
- Font / Select List Font... [dual]
A font requester will open up and let you specify the font to use in
directory and device list. Proportional fonts are perfectly okay and
recommended, since they allow displaying of longer filenames. Suggested
ist helvetica/11 on a highres display, but that depends on your taste.
- Font / Use Screen Font [dual]
With this item enabled, MFR will always use the parent screen's default
font for displaying its lists.
- Font / Select Gadget Font... [dual]
A font requester will open up and let you specify the font to use in
MFR's string gadgets. Proportional fonts are perfectly okay and
recommended, since they allow displaying of longer filenames. Suggested
ist helvetica/13 on a highres display, but that depends on your taste.
- Font / Use Screen Font [dual]
With this item enabled, MFR will always use the parent screen's default
font in its string gadgets.
* Sorting submenu
MFR is able to sort the directory list in many different ways. The menu
items should be self explaining, if not, just try them.
- Sorting / Sort by Name
- Sorting / Sort by Date
- Sorting / Sort by Size
- Sorting / Dirs First
- Sorting / Dirs Last
- Sorting / Don't care
- Sorting / Low to High
- Sorting / High to Low
* DOS submenu
- DOS / Set Default Pattern...
When the calling application doesn't specify a pattern, MFR will use the
configured default pattern as initial contents for the pattern gadget.
For example ~(#?.info|#?.o|#?.bak) would be a good choice.
- DOS / Set Vol. Show Pattern...
- DOS / Set Vol. Hide Pattern...
MFR allows you to specify which devices/volumes should appear in the
device list. Just set some show and hide pattern to suite your needs.
Example: Show Pattern = (dh#?|df#?|ram#?)
- DOS / Set History Entries...
This sets the maximum number of entries in the history list. A value of
0 disables the history feature completely, saving a bit of memory.
- DOS / Set Cache Entries...
MFR remembers up to 100 directory contents, considerably speeding up
operation. With this caching, you will be able to browse through your
directory tree without delay. A cache is automatically invalidated when
the datestamp of the associated directory changes (this happens whenever
files are changed within that directory). With 'Set Cache Entries', you
can specify the maximum number of cached directories. A value of 0
disables caching completely. Note that this change will not affect the
current session. You will have to save settings, exit MFR and restart
it to see the difference.
In case of memory shortage, MFR will free its caches. Therefore, it
hooks into asl.library's Expunge() function. Unfortunately, this
feature won't work with Workbench 2.0's asl library. But when Workbench
2.1 becomes available, it will magically start working.
- DOS / Set Read Timeout...
With 'Read Timeout' it's possible to make MFR multitask while reading a
directory. By default, its value is set to zero. In this mode, MFR
will read a directory completely before displaying anything and before
reacting to user actions. This is the recommended mode, since it's a
lot less confusing and since MFR's directory caching reduces waiting
time to a minimum. However, if you really want, you can set the timeout
to another value (timeout is measured in 1/50 seconds). Then, MFR will
update its display every time the period expires or when you perform
some action on the directory list (e.g. cursor movement). To avoid
messing up the display, new entries will be appended unsorted at the
bottom of the list. As you probably noticed, I don't like this mode and
it surely would need some more testing and programming. You really
should use a timeout value of 0 for now.
- DOS / File Notification
'File Notification' finally toggles MFR's file notification feature.
With file notification enabled, MFR automatically recognizes changes in
the displayed directory and reloads it immediately. Since this can be
really confusing sometimes, you can switch it off here.
* Search submenu
This submenu influences the way MFR compares a file with the entries of
the find data base. Note that when you specify an AmigaDOS pattern to
search for, only the 'Case Sensitive' menu item will affect matching.
- Search / Case Sensitive
When this item is selected, matching will be case sensitive.
- Search / Match Exactly
The file must match the data base entry completely, e.g. 'mary' won't
match 'primary' or 'marys_daughter'.
- Search / Match Beginning
All data base entries starting with the file gadget contents will be
displayed.
- Search / Match Partial
If the data base entry contains the file gadget contents somewhere, it
will match.
* Usage submenu
This menu contains various flags that control how MFR responds to user
actions.
- Usage / Auto Complete Load
- Usage / Auto Complete Save
A file requester can be in load or in save mode, as specified by the
application. MFR allows you to toggle its auto completion feature for
both of these modes. Normally, 'Auto Complete Load' should be set and
'Auto Complete Save' should be unset, but this depends on your taste.
- Usage / Numeric Pad Control
Used to toggle cursor control via numeric keypad.
- Usage / Close after Copy
When this item is set, MFR's window will automatically close after a
copy operation to clipboard.
- Load Settings
- Save Settings
These two menu items (available only when you register), allow loading
and saving of MFR's settings. MFR will automatically load the settings
at startup. For that, it will try to locate its .info file and get the
configuration out of the tooltypes. If you start MFR from CLI and the
.info file is not present, MFR will look for an 'envarc:mfr.prefs'
config file and take its configuration from there. In any case, MFR
remembers the configuration's place and saves it to the appropriate
position when 'Save Settings' is selected.
========================================================================
4. Specials
========================================================================
4.1. Tooltypes
--------------
Most of MFR's configuration can be adjusted with the menu items.
However, there are some things that haven't made their way to a menu
yet, so you will need to adjust them via tooltypes.
CX_POPKEY
defines the key sequence used to pop up a Magic File Requester. Don't
know if it's really useful to pop up a file requester, but if you want,
you can.
CX_PRIORITY
defines MFR's priority in commodities input chain. There should
normally be no reason to alter this value.
PATCHASL
turns the patch for asl.library on and off. There should be no reason
to turn it off, I hope.
PATCHREQ
does the same thing for req.library.
PATCHREQTL
same for reqtools.library
MINPIXEL
defines the minimum space reserved to display a file name. MFR adjusts
the amount of displayed information according to the width of its
window. Try resizing the window to see how it works. MINPIXEL pixel
will always be reserved to display the file name, unless the window is
too small.
REJECT
defines a case insensitive pattern for task names. If you encounter a
program that does not work with MFR, you can make MFR drop to the old
file requester when being called from this task. Just find out the task
name and add it to the REJECT pattern. You can use the program TaskList
(see Goodies section) to list all tasks currently running.
CLASS_0 - CLASS_9
Here you can configure some file classes for file actions. See the
description of the 'File Action' menu item for details.
FKEY_0 - FKEY_20
MFR lets you define 20 directories for quick access with the functions
keys. You can specify a file name after the directory, in which case
the file gadget will be filled with this name. F-Keys 11 through 20 are
the shifted F-Keys 1 through 10.
The two tooltypes DONOTWAIT and STARTPRI are dedicated to workbench and
should be left untouched, unless you know what you're doing.
All other tooltypes are maintained with MFR's menu items. There is
absolutely no need to alter them by hand.
4.2. CLI Interface
------------------
MFR has a CLI interface that allows using the requester from within
script files. Calling MFR with the following template
mfr [DIR=<dir>] [FILE=<file>] [PATTERN=<pattern>] [TITLE=<title>]
[OKTEXT=<oktext>] [CANCELTEXT=<canceltext>]
[LEFT=<left>] [TOP=<top>] [WIDTH=<width>] [HEIGHT=<height>]
[MULTI] [MATCHDIRS] [SAVE] [PATGAD]
will pop up a file requester, wait for the user to select some file(s)
and print the results (full path specification) to stdout. If the
requester is cancelled, nothing is displayed.
You can use this feature from a shell or arexx script, redirecting the
result to a file for further usage. For example, the command
mfr >env:result DIR=cap: PATTERN=*.cap TITLE="Select a capture file"
will create an environment variable named 'result' which consists of the
selected file. If you don't select a file, 'result' will be empty.
MFR will return 0 if a file was selected, 5 if the requester was
cancelled. A return code of 10 indicates an error (wrong parameters,
out of memory, ...).
Note that MFR will internally call the asl.library file requester, so if
you didn't allow it to patch this library, you will just see an ASL
requester popping up.
========================================================================
5. Goodies
========================================================================
5.1. UnArp
----------
UnArp is a tool by Martin Berndt, that tries to make arp.library more
compatible to Kickstart 2.0. Many ARP calls are replaced by calls to
dos.library, the file requester is replaced by an ASL requester. If you
put it somewhere in your startup-sequence or user-startup, you'll notice
MFR replacing all your old ARP file requesters.
5.2. TagScreens
---------------
With Kick 2.04, there is a new method for programmers to specify which
colors should be used for gadget and window rendering on their custom
screen. MFR uses exactly this colors in its window.
Programs that were developed before Kick 2.04 was released, don't know
about this feature. Their windows and gadgets, including MFR will look
a little bit ugly.
"TagScreens" from Martin Berndt tries to patch the old OpenScreen()
function to make these old programs use the new 3d look. Refer to
"TagScreens.txt" for details.
5.3. Find
---------
"Find" is a tool for fast file searching, written by Larry Phillips. It
works in conjunction with a data base, including all your directories
and files. MFR needs this data base for its search functions. Refer to
"Find.DOC" for details.
5.4. TaskList
-------------
MFR has the ability to prevent some specific tasks from using it. This
is hopeful if you e.g. encounter a program that doesn't work with MFR
or needs some special features of asl.library, not supported by MFR yet.
When a file requester is called, MFR compares the specified REJECT
pattern with the name of the calling task (ExecBase->ThisTask->
tc_Node.ln_Name). In case of match, MFR will call the old requester.
To find out the name of the calling task, you can use a system monitor
such as "ARTM" or "XOper" or the supplied utility TaskList. TaskList
exactly displays the task name, checked by MFR. "ARTM" and "XOper"
display some other things sometimes.
Finding out the calling task's name may sometimes get a little tricky.
The normal task name of "MultiPlayer" is e.g. "MultiPlayer", but this
program creates a second task named "File Requester" to call a file
requester. To prevent "MultiPlayer" from calling MFR, you would have to
specify "REJECT=File Requester".
========================================================================
6. Discussion
========================================================================
This section is intended to avoid unnecessary bug reports and
suggestions. Please read this before you write a mail. But if you have
additional ideas, bug reports or just some comments, write me.
6.1. Known Bugs
---------------
- MFR won't hide its file gadget in a directory only requester. This does
not affect functionality.
- Still some missing ASL Tags. Since they are not too important, MFR will
á never drop to an ASL requester.
ASLFR_Screen /* Address of parent screen */
ASLFR_PubScreenName /* Name of public screen */
ASLFR_Locale /* Locale ASL should use for text */
ASLFR_RejectPattern /* preparsed reject pattern */
ASLFR_AcceptPattern /* preparsed accept pattern */
ASLFR_TextAttr /* Font to use for requester */
- Missing reqtools tags:
RT_IDCMPFlags
RT_ReqPos
RT_PubScrName
RT_Screen
RT_ReqHandler
RT_DefaultFont
RT_ScreenToFront
RT_UnderScore
RT_TextAttr
RT_IntuiMsgFunc
RT_Locale
RTFI_AddEntry
RTFI_RemoveEntry
RTFI_FilterFunc
RTFI_AllowEmpty
Flags: FREQF_NOBUFFER, FREQF_SELECTDIRS, FREQF_DOWILDFUNC
RTFI_VolumeRequest
/* This one's making trouble. Why didn't Nico add an extra
function rtVolumeRequest() instead of this strange tag?
MFR will try to drop to reqtools, but this may be
dangerous in some cases. */
- MFR is not totally clean against specifiying a too big font. You should
be careful experimenting with euro/90 or something like that.
6.2. Compatibility
------------------
I tried hard to make MFR as compatible as possible. However, patching
libraries has always been and will always be a little bit dangerous.
You should assure that no other programs patch file requester library
vectors when MFR runs. If you e.g. use 'ReqChange' (V1.09, by Magnus
Holmgren) to forward some string/number requesters to reqtools.library,
you should specify "reqchange NOASL NOARP" to start it. In general, MFR
should be the last started requester patch tool. To accomplish that
with 'WBStartup/' files, you can e.g. use the STARTPRI tooltype.
6.3. Future Features
--------------------
Here are some plans for future expansion of MFR. Comments and additions
welcome.
- A hotkey to paste MFR's gadgets contents to the input stream would be
á nice.
- Drawing of the rastered background could be optimized.
- Entries in the find list tend to become very long. Since the right part
of a path is usually more interesting than the left part, I should maybe
display it this way.
- Once file classes are supported by the system software, they will be
á taken out of MFR. Hurry up, Commodore :)
- Localization. Ever wanted a norwegian file requester?
- Replacing of some more libraries (arp, rct, kd_freq). Well, UnArp does
á his job well, rct and kd_freq are rarely used...
- Better handling of the zoom gadget, including complete iconification and
á adjustable zoom size.
- Some more multi select hilight styles (italics, different colors, ...).
- ... to be continued ...
6.4. Acknowledgements
---------------------
Finally, I want to thank
Andreas Schildbach for many good ideas, for debugging, for some artwork
and for the pacman. :-)
Stefan Becker for debugging CLI interface and eliminating
some enforcer hits.
Martin Berndt for debugging resolution detection and for the
permission to include his programs "TagScreens"
and "UnArp".
Stefan Hochmuth for debugging memory allocation system.
Bryan Ford for his startup code.
Michael Berger for the set of Lores Icons.
Ralf Kemle & for some more ideas and for testing MFR with
Oliver Kilian good old 68000er.
Oliver Vaross for additional debugging.
Larry Phillips for his permission to include the "Find" package.
Colin Fox & for req.library. I only need RealTimeScroll()
Bruce Dawson but this one's really nice.
Maximilian Hantsch for some useful code fragments and for their
& Martin Laubach trapdoor license agreement. I cloned it nearly 1:1.
Stefan Boberg for the LhA documentation. I cloned the part about
registration for MFR. Hope he doesn't mind.
Ludwig Gritsch for the AmigaGuide manual.
... and all the other guys and girls who reported bugs
and made suggestions.
6.5. How to reach the author
----------------------------
If you have some additional ideas and/or bug reports, feel free to send
a letter (e-mail preferred) or to give me a call.
You can reach me via
Internet: stuntz@informatik.tu-muenchen.de
Fidonet: 2:246/46.10 (Stefan Stuntz)
Z-Netz: S.STUNTZ@AMC.ZER
SnailMail: Stefan Stuntz
Eduard-Spranger-Stra▀e 7
D-W-8000 Mⁿnchen 45
á Germany
Phone: +49-(0)89-313-1248
That's all for now... Goodbye, and thanks for all the fish...
Stefan
Remember: Always expect the unexpected and don't panic :-)
----------------------------------------------------------