home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-04-12 | 44.3 KB | 1,177 lines |
- ========================================================================
- MagicFileRequester V1.3a Documentation 10-Apr-1992
- ========================================================================
-
- (C) Copyright 1992 by Stefan Stuntz - All Rights Reserved
-
-
-
- Copyright
- ---------
-
- The program MagicFileRequester and this documentation are written and
- copyrighted 1992 by Stefan Stuntz. They may be distributed freely as
- long as the following restrictions are met:
-
- The distributor may only charge a fee up to the costs of obtaining a
- public domain diskette from Fred Fish. The distributor agrees to cease
- distributing the programs and data involved if requested to do so by the
- author. The distributor may only distribute an unmodified copy of the
- original program, with all the supplied documentation and copyright
- notices intact.
-
- The program must not be used for commercial purposes without the written
- permission of the author.
-
-
-
- Disclaimer
- ----------
-
- This software and documentation is provided "as is". No warranties are
- made with respect to the accuracy, reliability, performance or operation
- of this software and information. All use is at your own risk. The
- author is not responsible for any loss of data, damages to software or
- hardware that may result directly or indirectly from the use of the
- described program.
-
-
-
- ========================================================================
- 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. Basic Usage
- 3.2. Project Menu
- 3.3. DOS Menu
- 3.4. Search Menu
- 3.5. Design Menu
- 3.6. Activate Menu
-
- 4. Specials
- 4.1. Tooltypes
- 4.2. File Classes
- 4.3. Keyboard Jumping
- 4.4. CLI Interface
- 4.5. Directory Caching
-
- 5. Goodies
- 5.1. ArpToAsl
- 5.2. TagScreens
- 5.3. Find
- 5.4. TaskList
-
- 6. Discussion
- 6.1. Known Bugs
- 6.2. Future Features
- 6.3. Acknowledgements
- 6.4. How to reach the author
-
- A. Appendix
- A.1. Lowres and Highres
- A.2. Revision History
-
-
-
-
- ========================================================================
- 1. Introduction
- ========================================================================
-
-
- 1.1. Motivation
- ---------------
-
- A file requester is propably 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 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 it's 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 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
-
- run <nil: >nil: mfr install
-
- will do this job. Note that MFR will need the icon file "mfr.info" to
- read and store it's configuration. You have to provide this file in the
- same directory you start MFR from.
-
-
-
- 2.3. Removing MFR
- -----------------
-
- If you really want to remove MFR from your system, you can do this by
- double clicking it's 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. Basic Usage
- ----------------
-
- After installing MFR with a double klick (see section 2 for details),
- start your favourite text editor and try to load a file. If the editor
- would normally pop up a REQ or ASL requester, you should now see MFR
- instead.
-
- MFR's window splits into six input areas, as there are the file list,
- the device list, the drawer gadget, the file gadget, the hide gadget and
- the show gadget. You should be familar with this outfit, as it is
- heavyly based on the old but popular REQ requester. Using MFR with
- mouse is not too different from using the REQ requester. I will not
- make too much words about it. Just try and klick around a little bit.
-
- However, using MFR with the keyboard needs a little more explanation.
- As you probably noticed, one of the six input areas is always the active
- one. Therefore it's marked with a blue bar (assuming standard WB 2.0
- colors). This is where all your input goes. You can flip from one
- input area to another with the <TAB> and <Shift><TAB> Keys.
-
- Now try to activate the file list this way. You should see a blue bar
- on the first entry of the chosen directory. This cursor can be moved up
- and down with the arrow keys. To select a file, just move the cursor
- over it and press <RETURN>. To cancel the file requester, you can press
- either <Escape> or <Amiga><Q>. Note that all key combinations will also
- work from within a string gadget.
-
- If you press <RETURN> or <CursorRight> over a sub directory, MFR will
- dive in. With <CursorLeft> you can tell MFR to leave this directory and
- change to parent.
-
- If you are in a string gadget and want to activate the file list to move
- around a little bit, there is no need to browse through all other gadget
- with <TAB>. Just press <CursorUp> or <CursorDown> and the file list
- will be activated automatically.
-
- Multiselect of files can be done either with some shifted mouse clicks
- or with the space key (if the application enables this feature).
-
-
-
- 3.2. Project Menu
- -----------------
-
- As every real amiga program, MFR offers a couple off pulldown menus.
- Let's see how they are used.
-
- The first two points of the <Project> menu are dedicated to load and
- save MFR's configuration. <Load Configuration> is propably useless
- because MFR loads it's configuration on startup. However, if you have
- configured some things you really don't like, just select this item and
- MFR will reload the startup configuration. <Save Configuration> saves
- MFR's configuration into the icon file "mfr.info", so it will be present
- next time you start MFR. Note that MFR's configuration is global for
- all file requesters. So if you change e.g. the gadget font in one
- requester, all other open requesters will be informed and updated.
-
- The <Clipboard> submenu holds three menu items that allow MFR to paste
- it's gadget contents to clipboard. Don't know if anybody will use these
- functions.
-
- <About> should be clear, <Okay> and <Cancel> simulate the actions of the
- corresponding gadgets at the bottom of the window.
-
-
-
- 3.3. DOS Menu
- -------------
-
- <Parent Directory> should be clear, it does the same thing that
- <CursorLeft> in file list does. However, you can this with the shortcut
- Amiga-P even from within active string gadgets.
-
- <File Action> tries to do the configured action on the currently
- selected file. These actions and their configuration is describe later
- in this manual.
-
- The following three menu item, <Make Directory>, <Delete File/Dir> and
- <Rename File/Dir> do exactly what you would expect. They create
- direcotries, they rename files or directories and they delete files or
- directories. Note that MFR is no CLI tool, therefore these functions
- are not too powerful. You can neither delete non empty directories, nor
- copy files from one volume to another. Moving files around on the same
- volume is possible with the rename function.
-
- <Show Volume Pattern> and <Hide Volume Pattern> let you specify, which
- volumes and devices should show up in the device list. Since these list
- can get very large, you will propably need this feature some day. Just
- specify a valid AmigaDOS pattern in the popping up string requester.
- Note that AmigaDOS patterns are very powerful, consult your DOS
- documentation if you are not sure about all their possibilities.
-
- <Default Hide Pattern> is a pattern, that will be used for the Hide
- gadget, when the application does not specify it's own pattern. You can
- e.g. easily get rid off all ".info" files when you set the default hide
- pattern to "#?.info".
-
- <Entry Buffers> is a numeric value that controls MFR's directory reading
- mechanism. To understand this, you will have to know how MFR behaves
- when reading a directory. Since displaying the files in MFR's window
- takes some time, MFR will read more entries together and display them
- all at once. The number of these buffered entries is calculated
- automatically from the speed of the media. Thus, MFR will refresh it's
- display with every single file read from a slow disk device, but refresh
- only all 20 files with a harddisk. <Entry Buffers> adjusts the maximum
- number for these buffers, so if you set them e.g. to 1, MFR will not
- make any difference between fast and slow medias. Note that even with a
- value of 50 for <Entry Buffers>, you will not notice any change in the
- way MFR displays it's files. This is due to my list routines. But the
- scrollbar gadget will be refreshed much less with a high value and this
- will considerably speed up directory reading. There is a special value
- of 0 possible for <Entry Buffers>. This means that MFR will first read
- the complete directory in it's memory, and then display it all at once.
- This is the MFR's fastest way of directory reading, but you will have to
- wait until all entries are scanned. However, I prefer this mode and you
- should give it a try too.
-
- Kick 2.04 has the ability to inform a program when a file somewhere in a
- directory changes. With file notification, MFR will notice any change
- in the currently displayed directory and update it automatically. This
- can sometimes be a little bit confusing, so you can turn this feature on
- and off with the menu item <File Notification>.
-
-
-
- 3.4. Search Menu
- ----------------
-
- MFR has the ability to search your harddisk for some files. Befor 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 into the string gadget and select
- the <Search File> menu item or use the '?' gadget right beside the file
- gadget. MFR will list all occurances of the concerning file togehter
- with the complete path in the file list. Just klick on the desired
- entry and you will be moved to it's directory with the appropriate
- information filled in the drawer and file gadgets.
-
- You can influence the way of matching with the four checkmark items
- below. Their meaning should clear. Additionally, MFR recognizes any
- pattern present in the file gadget. So if you e.g. want to see all
- your C or Assembler source codes starting with 'm', you could search for
- "m#?.(c|a)".
-
-
-
- 3.5. Design Menu
- ----------------
-
- The <Design> menu is used to customize MFR's outfit according to your
- personal taste. It's divided up into four sub menus, as there are
- <Window>, <Scrollbar>, <Font> and <Sorting>.
-
- The <Window> submenu consists of six items, specifiying the window's
- size, position and background. With <Override Dimension> turned on, MFR
- will always use it's default size when opening. Otherwise, the
- application specified size will be used. The default size of MFR can be
- set with the <Set Default Dimension> menu item. When selected, it will
- make the current size of MFR become the default size.
-
- The same thing applies to <Override Position>. When set, MFR will
- ignore the application specified position and always appear either
- centered in the middle of the screen or centered under the mouse
- pointer, as specified by <Centered Window> and <Moused Window>.
- <Rastered Background> turns on and off MFR's background raster.
-
- With the <Scrollbar> submenu, you can select between four different
- scrollbar designs. Try them and see what you like best. My favourite
- is "Goonie". All designs are available either symmetrical (up arrow at
- top, down arrow at bottom) or normal (both arrows at bottom). If you
- consider the repeat rate of the arrow gadgets too fast, you can
- configure a delay for them with <Arrow Delay>.
-
- The <Font> submenu allows you to select the fonts you wish to use for
- MFR. MFR uses two independent fonts, one for the file and device list
- and one for the gadgets. Instead of selecting a specific font, you can
- also tell MFR to use the parent screens default font with the <Use
- Screen Font> menu items.
-
- Important: MFR has two different font and scrollbar configurations for
- low resoultion screens and high resolution screens (See appendix A.1.
- for details on resolution). Thus, if you are currently on a low
- resolution screen, you change MFR's lowres configuration and if you are
- on a high resolution screen, you change the highres configuration.
-
- The last submenu <Sorting> specifies the sorting order for entries in
- the file list. The meaning of the menu items should be clear. If not,
- just try them.
-
-
-
- 3.6. Activation Menu
- --------------------
-
- Last, there is the <Activation> menu. It's mainly used to allow direct
- activation of one of MFR's input areas without having to cycle around.
- Additionally, there's a submenu called <Activation Priority>. There you
- can tell MFR wether to activate the file gadget or the file list on
- startup.
-
-
-
-
- ========================================================================
- 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 it's
- 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 next
- section for details.
-
- 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. File Classes
- -----------------
-
- 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 <Alt><Return>),
- 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 l >con:120/50/500/250/Zoo-Archive/CLOSE/WAIT l %s
- CLASS_2=#?,FORM????ILBM#?,display %s
- CLASS_3=#?,FORM????8SVX#?,play %s
- CLASS_3=#?.doc,,more %s
-
-
-
- 4.3. Keyboard Jumping
- ---------------------
-
- MFR offers a way for jumping through an alphabetically sorted file list.
- If you once are used to this method, you will be able to select files
- very quick. It works like this:
-
- Assume you have some hundred doc files in your directory and you want to
- select "Mungwall.doc". Just activate the file list and press the 'M'
- key. MFR will move you to the first entry starting with 'M'. This
- could be e.g. "MagicFileRequester.doc". Now, type a 'U'. You will be
- moved to the first entry starting with 'Mu'. This will propably be
- "Mungwall.doc", so you found your file with two keystrokes. All these
- keys are case insensitive.
-
- While you type these characters, they are displayed in MFR's status
- line. You can delete the last character you typed with the <Backspace>
- key. In this case, MFR will move you back to your position before
- typing the last character.
-
-
-
- 4.4. 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.
-
-
-
- 4.5. Directory Caching
- ----------------------
-
- There's not much to say about that. As req.library, MFR will always
- remember the last read directory. This will considerably speed up
- subsequent calls of MFR with the same directory.
-
-
-
-
- ========================================================================
- 5. Goodies
- ========================================================================
-
-
- 5.1. ArpToAsl
- -------------
-
- "ArpToAsl" is a tool by Fabio Rosetti. It replaces the file requester
- of arp.library with the ASL requester. Thus, ARP will in fact be
- replaced by MFR. Unfortunately, I didn't find the original archive of
- ArpToAsl. Only the executable is included. I hope, Fabio doesn't mind.
-
- You should put ArpToAsl somewhere in your startup-sequence, before
- starting MFR. It detaches, so there's no need to run it:
-
- ArpToAsl >nil:
-
-
-
- 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
- ---------------
-
- - Not all of the ASL Tags and the related actions are supported yet.
- Since many of these Tags are new for Workbench 2.1 and the other ones
- are rarely used, I have some time left for implementation. Missing are
- currently:
-
- ASLFR_Screen
- ASLFR_PubScreenName
- ASLFR_PrivateIDCMP
- ASLFR_SleepWindow
- ASLFR_TextAttr
- ASLFR_Locale
- ASLFR_DoPatterns
- ASLFR_DrawersOnly
- ASLFR_RejectIcons
- ASLFR_RejectPattern
- ASLFR_HookFunc MFR will drop to ASL when this Tag occurs.
- ASLFR_FilterFunc MFR will drop to ASL when this Tag occurs.
- ASLFR_IntuiMsgFunc MFR will drop to ASL when this Tag occurs.
-
- - Not all of the reqtools.library features are supported yet (inluding
- multi-select!):
-
- RT_ReqPos
- RT_PubScrName
- RT_Screen
- RT_WaitPointer
- RT_DefaultFont
- RTFI_AddEntry
- RTFI_RemoveEntry
- RT_ReqHandler MFR will drop to reqtools when set
- rtFileRequest->Hook MFR will drop to reqtools when set
- FREQF_DOWILDFUNC MFR will drop to reqtools when set
- FREQF_MULTISELECT MFR will drop to reqtools when set
- FREQF_SELECTDIRS MFR will drop to reqtools when set
-
- - MFR does not work in conjunction with AssignX. Therefore it will
- drop to ASL when the window title matches "Assignment for*" or
- "Zuweisung für*".
-
- - Klicking on an active directory entry (the one with the cursor on it)
- and releasing the mouse somewhere else will cause some graphic trash to
- appear in MFR's window.
-
- - MFR seems to eat some memory. Each time you open a requester, you will
- loose about 1048 bytes. I tried hard to locate this problem but didn't
- succeed yet.
-
- - MFR is not totally clean against specifiying a too big font. You should
- be careful experimenting with euro/90 or something like that.
-
- - MFR seems to have some problems when called from rexxarp.library. Since
- I don't know if it's really MFR's fault (ARP is very buggy under OS 2.0,
- ArpToAsl could have problems too), I propably won't do anything about
- that until I patch arp.library my own.
-
- - MFR sometimes crashes when called from IconEdit. Better add it to the
- REJECT list.
-
- - Not really a bug of MFR. MFR will not work with programs that depend on
- some undocumented features of asl.library, such as remembering
- application's A4 register for callback hooks. Currently, I only know of
- VLT 5.517 depending on such strange things. As a result, VLT will crash
- the machine when calling a font requester with MFR installed. I tried
- to convince VLTs author not to rely on undocumented features, but had no
- success. Sorry to all VLT users.
-
-
-
- 6.2. Future Features
- --------------------
-
- I think I am going to add some more features and enhancements to MFR in
- future. Here they are:
-
- - Drawing of the rastered background could be optimized. Seems it doesn't
- look too good.
-
- - Some kind of file name completion for the file gadget or some other
- method of selecting files with a few keystrokes. I think of the
- following: While you type a file name into the file gadget, all entries
- that do not start with your partial input string could be removed from
- the file list. If you e.g. type a 'S' as the first letter, you will
- only see the files starting with 'S'. Don't know if this is really a
- good idea but maybe I will try it some day.
-
- - Caching of multiple directories. There's no reason to limit directory
- caching to one single directory.
-
- - Customizable width for the device list.
-
- - Placing cursor at the end of the string gadget on startup.
-
- - 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.
-
- - File actions will be moved to an external library, maybe in conjunction
- with CShell. Of course you will be able to call them without CShell
- from MFR, but configuration of file classes will be done elsewhere.
- File actions are not really a part of a file requester, they're useful
- in other applications too.
-
- - There should be a button or something to execute a file action. I
- haven't found a place yet.
-
- - Multiselect needs some more work. Better mouse support (no more need to
- shift-klick the first item, select with dragging) and perhaps a
- possibility to select/deselect all files at once. The number of
- selected files and bytes could be displayed in the status line.
-
- - At startup, the cursor in the file list should be moved to the file
- specified in the file gadget.
-
- - Localization. Ever wanted a norwegian file requester?
-
- - Auto detach from CLI.
-
- - Some kind of .fastdir support for specific directories. MFR could
- maintain a .fastdir file in frequently used and large directories (sound
- modules, iff pictures, docs, etc.), thus making scanning of these
- directories incredibly fast.
-
- - Replacing of some more libraries (arp, rct, kd_freq).
-
- - Loading of powerpacked FindDB:find.codes data bases.
-
-
-
- 6.3. Acknowledgements
- ---------------------
-
- Finally, I want to thank...
-
-
- Andreas Schildbach for many good ideas, for debugging and
- for some artwork.
-
- Stefan Becker for debugging CLI interface and eliminating
- some enforcer hits.
-
- Martin Berndt for debugging resolution detection and for the
- permission to include his program "TagScreens".
-
- 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.
-
- Fabio Rosetti for his program "ArpToAsl". I hope I may include
- it in the MFR archive.
-
- Colin Fox & for req.library. I only need RealTimeScroll()
- Bruce Dawson but this ones really perfect.
-
- ... and all the other guys and girls (!) who reported bugs and made
- suggestions.
-
-
-
- 6.4. 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
-
- Fido....: 2:246/46.10 (Stefan Stuntz)
-
- Z-Netz..: S.STUNTZ@AMC.ZER
-
- Snail...: Stefan Stuntz
- Eduard-Spranger Straße 7
- D-8000 München 45
- Germany
- Phone: (089) 313 12 48
-
-
- That's all for know... Goodbye, and thanks for all the fish...
- Stefan
-
-
-
-
- ========================================================================
- A. Appendix
- ========================================================================
-
-
- A.1. Lowres and Highres
- -----------------------
-
- MFR considers the following display modes as low resolution. All others
- are high resoultion.
-
- Lores, Hires, SuperHires, HAM, LoresDPF, LoresDPF2, HiresDPF2,
- SuperHiresDPF2, ExtraHalfBrite, VGAExtraLores, VGAHAM,
- VGAExtraLoresLace, VGALoresDPF, VGAExtraLoresDPF2, VGALoresDPF2,
- VGAExtraHalfBrite.
-
-
-
- A.2. Revision History
- ---------------------
-
-
- V1.0 (24-Jan-92)
- ----------------
-
- - Initial release.
-
-
-
- V1.1 (05-Mar-92)
- ----------------
-
- Sorry, I didn't have the time to implement many new ideas. This version
- is just a bug fixed and little enhanced V1.0, so don't expect too much.
- New features will come up in near future.
-
- - Some minor enhancements in design.
-
- - If the specified list font is 9 pixel or smaller, a second set of icons
- is used.
-
- - Because of problems with some programs, MFR will now cut off the slash
- following a directory name before returning.
-
- - An A2024 monitor is no longer considered LoRes.
-
- - The contents of Hide & Show gadgets are now passed back to the calling
- program, so they can be reused at later calls with the same structure.
-
- - The key combination <Alt><Return> now toggles between Drawer and Hide
- gadget or between File and Show gadget.
-
- - Fixed bug with the wrong calculated free disk space.
-
- - Fixed some other strange bugs.
-
- - MFR can now be called from CLI to pop up a file requester and print the
- results to stdout. See section 7.5 for details.
-
- - Added new tooltype NOTIFY to turn file notification on and off.
-
- - You may now select between six different scrollbar designs: Goonie,
- GoonieSym, Stuntzi, StuntziSym, Kick20 and Kick20Sym, configurable with
- the tooltypes SCROLLBAR and SCROLLBARL (lores).
-
- - MFR now uses the system-suggested colors for rendering
- (DrawInfo->dri_Pens). Images are also adjusted accordingly.
-
- - Late- and Nonbinding-Assigns are now displayed.
-
- - Added new tooltype DEFHIDEPAT to specify the a default value for the
- "Hide" gadget. If the application does not specify a hide pattern (ASL
- will never), DEFHIDEPAT is used instead. Otherwise, the given pattern
- and DEFHIDEPAT are concatenated using "(%s|%s)".
-
- - FAST keyword now obsolete. Instead, MFR measures the time for finding
- the next directory entry and increases/decreases its internal entry
- buffer accordingly. Thus, display refresh is rare with fast medias but
- often with slow medias. Maximum number of buffered entries is
- adjustable with the new tooltype ENTRYBUF (1..50). With ENTRYBUF=1, MFR
- behaves just like FAST=OFF.
-
- - Speeded up directory sorting algorithm. This will possibly result in
- faster directory reading on 68000 based machines.
-
- - Since MFR does for some reasons not work with 'AssignX' (I really don't
- know why... any ideas?), the ASL requester will be called when the
- window title matches "Assignment for*".
-
-
-
- V1.2 (17-Mar-92)
- ----------------
-
- Sorry again, this is also just a bugfix. I messed up something with the
- file search mechanism in V1.1. Now it should work.
-
- - File searching did not work right in V1.1. Fixed this problem.
-
- - MFR 1.1 could only be started from within sys:wbstartup/. This has been
- fixed.
-
- - MFR now also rejects the german AssignX.
-
- - Due to a strange compiler behaviour, every string was stored about five
- times in the executable. This bug has been fixed.
-
- - MFR now has a second way of configuration. You may write your tooltype
- entries to the file "env:mfr.prefs", and MFR will parse them as usual.
- Entries in mfr.prefs will replace tooltypes in mfr.info with the same
- name. MFR recognizes changes in "env:mfr.prefs" and reloads it
- automatically, so you don't have to restart it every time you change
- your config.
-
- - Included the program "TagScreens" from Martin Berndt to force old style
- screens to use the new Kick 2.x look.
-
-
-
- V1.3 (06-Apr-92)
- ----------------
-
- Yeah. Not just some bug fixes, a really new version with many
- enhancements.
-
- - Configuration mechanism changed again. No config file support anymore.
- When started from Workbench, MFR reads it's configuration from the .info
- file, as in earlier versions.
-
- - Since there seem to be quite many people out there, who do not use
- workbench, MFR can now be installed from CLI with the command "mfr
- INSTALL". Note that MFR will not detach (I was too lazy), so you should
- put something like "run <nil: >nil: mfr install" in your
- startup-sequence. The configuration will be read from the file
- PROGDIR:mfr.info, thus you must have "mfr.info" in the directory you
- start MFR from. To edit your tooltypes, you will still have to load
- workbench and use the 'Info' menu item. This should be no great problem
- however, because almost all configuration can be done via menu items now
- (see next point).
-
- - MFR can now be configured with various menu items. Have a look at them
- to see how they work. Note that the configuration is global for all
- file requesters, so if you change e.g. the gadget font, every open file
- requester will be informed and updated. Configuration can be saved with
- the <Project/Save Config> menu item to the location it was loaded from.
-
- - MFR now has the ability to use the parent screens default font for
- displaying (see the "Window" submenu).
-
- - If you set the number of EntryBuffers to zero, MFR will read a new
- directory completely before displaying anything. This is MFR's fastest
- directory reading mode, but you will have to wait until all entries are
- read.
-
- - MFR now caches the last directory to speed up subsequent calls with the
- same requester structure.
-
- - If you change to the parent directory, MFR now tries to place the cursor
- on the directory you just left. This makes it much easier and quicker
- to browse through your harddisk.
-
- - MFR can now create directories, delete files/dirs and rename files/dirs.
- With rename, you can even move your files around the volume. See DOS
- menu.
-
- - If MFR is in save mode and you type a non existing directory into the
- drawer gadget, MFR will create it if you confirm.
-
- - Implemented my idea of file selection. Pressing an alpha key in the
- file list (not in the file gadget!) will add this key to the search
- string and jump to the first entry starting with this string. Backspace
- will remove the last character from the search string. I tried several
- versions of file selection via keyboard and this one was my favourite.
- If you have some other (good!) ideas, let me know.
-
- - You can now tell MFR to activate the file list instead of the file
- gadget in some cases (see Activation menu). When MFR is opened for
- saving, activation of the file gadget always has priority.
-
- - MFR now has 18 different methods for sorting the file list (see Design
- menu): name sort, date sort and size sort with directories either
- first, last or within and with sorting order either low to high or high
- to low. Hope this will be enough for everybody. :-)
-
- - Fixed a bad bug that could crash the system if you tried to quit MFR
- with some allocated requester structures.
-
- - The list views are now more style guide compliant (no more extra pixel
- on top and bottom border).
-
- - Concatenation of default hide pattern and application specific hide
- pattern has been removed. Instead, an application specified hide
- pattern simply overrides the default hide pattern.
-
- - If the application specifies a show pattern, the default hide pattern is
- ignored. This avoids problems with mutual exclusive hide and show
- pattern (e.g. IconEdit with a default hide pattern #?.info).
-
- - Removed the 3d effect of the status line text. This was indeed a little
- overpowered.
-
- - Removed the about gadget in the bottom window border. :-(
-
- - More sophisticated calculation of the space occupied by date and time
- column. Should work with any font know.
-
- - Fixed bug with cursor right key in assign list.
-
- - A2024 was again considered lowres. This bug is now hopefully fixed for
- ever. MFR should know which config to use with all known display modes
- defined in "graphics/displayinfo.h". Unknown modes are considered
- highres.
-
- - Centering and mousing the window now also works on screens bigger than
- the maximum display size.
-
- - Added some clipboard support. You can now paste the current directory,
- the current file or the complete path to the clipboard (see Project
- menu).
-
- - If you consider the arrow gadgets as too fast, you may now configure a
- delay for them (see Design/Scrollbar menu)
-
- - You can activate MFR with a hotkey now. Configuration of this key is
- done with the CX_POPKEY tooltype (only one hotkey activated MFR at a
- time).
-
- - Many tooltypes changed their name and meaning. You should avoid editing
- them directly and use MFR's menus instead.
-
- - MFR is an AppWindow now, you can drag icons in it. This will only work
- with single icons, multiple drag is not supported yet.
-
- - If you encounter a program not working with MFR, you can tell MFR to
- drop to the old file requester when being called by this program. This
- is done via the new tooltype REJECT. MFR tests this pattern against the
- current tasl name (ExecBase->ThisTask->tc_Node.ln_Name) and drops in
- case of match.
-
- - Rewrote manual to reflect all the new features (I really hate writing
- manuals).
-
-
-
- V1.3a (08-Apr-92)
- -----------------
-
- Since I go on holiday the next two weeks, I release this minor new
- version just for those of you that really hate the reqtools requester.
-
- - MFR now patches reqtools.library (tooltype PATCHREQTL). Several
- features (e.g. multi-select) are not supported. MFR will drop to
- reqtools in these cases. See Bugs section for details.
-
- - Fixed bug with monitor identification.
-
- - Included version 1.6 of TagScreens.
-
-
-
- V1.3b (10-Apr-92)
- -----------------
-
- I hate that. Bugs over bugs. Thanx to Stefan Becker for reporting and
- fixing.
-
- - MFR's CLI interface had a bad bug. All BOOLEAN options (including
- INSTALL) did not work correct (enforcer hit on 68030, crash on 68000,
- nothing special on my 68020 :-)). This has now been fixed.
-
- - Enforcer hits during display refresh and notify events eliminated.
-
- - Detection of shared IDCMP did not work right. I corrected it and
- suddendly many programs used ASL again. Therefore, I removed detection
- of shared IDCMP, MFR will always use it's private port. This may cause
- some problems with some programs in some cases (e.g. IconEdit).
- Remember the REJECT keyword.
-
- - MFR now knows how to display file sizes gerater than 9.999.999 Bytes.
-
- - When the application supplies a complete path in the drawer gadget,
- MFR splits it up into drawer and file part.
-