MUI–ASL

The MUIfied ASL replacement Version 40.6

Copyright c_{◯} 1996 Flavio Stanchina

Permission is granted to make and distribute verbatim copies of this manual, and to copy and distribute translations into another language, provided the copyright notice and this permission notice are preserved on all copies.

MUI is copyright \begin{matrix}c \\ ◯ \end{matrix} by Stefan Stuntz.

This manual has been typeset by TEX and Texinfo.

1 Introduction to MUI–ASL

Now that MUI applications are so many and widespread, and that even Amiga Technologies sold some MUI products, several people complain that the standard ASL library clashes with MUI’s ultra-configurable look – and don’t ask for keyboard control.

In the past years there have been many attempts at providing a standardized requester library, or at least a good file requester. The most successful were ARP^{1} and ‘req.library’ (which also provided some other types of useful requesters), but they didn’t survive the advent of Release 2.0 and ASL. Today the most widespread alternative is Nico François’ ReqTools, which you may regard as better or worse than ASL depending on your personal taste, but in the end it’s not so different: you get keyboard control, but the GUI look is still plain GadTools.

An interesting full-featured replacement for all your file requesters is Stefan Stuntz’s^{2} first well-known project, MagicFileRequester (MFR). But as the name implies it is only a file requester – no font, no screenmode – and the look is neither configurable nor, in my opinion, very nice. It also suffers from some bugs that make it pretty unstable.

These replacements, however, have a problem: they are not the standard. Only ASL is a standard, because it is part of the OS and will grow with it (and so will MUI–ASL, I hope).

After an intresting travel through object-oriented programming and BOOPSI, I am proud to present MUI–ASL, the MUIfied ASL library. The ambitious aim of MUI–ASL is to put a good looking, highly configurable user interface into ASL, giving many benefits to the innumerable programs that adopted it for their requesters.

1 The AmigaDOS Replacement Project replaced the entire ‘dos.library’, most DOS commands and the CLI with much more powerful substitutes, and was the first widespread file requester. In fact, ‘dos.library’ V36+ and the ASL file requester derive from ARP.

2 The author of MUI.

2 Requirements

You need the following items to run this software:

• An Amiga with a 68020 CPU (or better).

Believe me, you wouldn’t like to run this thing on a 68000. In fact, you shouldn’t run anything on a 68000 these days, except maybe old games.

• AmigaOS Release 3.0 or later.

If you haven’t upgraded yet, then it’s definitely time to do it: you are missing a lot of new features and good software and, what’s worse, you are holding Amiga technology behind. Don’t bother me because you want it to run on 2.x. I won’t even respond.

• MagicUserInterface by Stefan Stuntz, version 3.7 or later. I suggest using version 3.8. MUI is not distributed with this software: you can get it through various public domain, freeware or shareware collections, through electronic networks, or directly from the author. See Section 2.1 [MUI], page 2, for copyright and registration information. We will assume that MUI is already installed and working on your system.

2.1 MUI

This package uses

MUI – MagicUserInterface

\begin{matrix}c \\ ◯ \end{matrix} Copyright 1992-97 by Stefan Stuntz

MUI is a system to generate and maintain graphical user interfaces. With the aid of a preferences program, the user of an application has the ability to customize the outfit according to his personal taste.

MUI is distributed as shareware. To obtain a complete package containing lots of examples and more information about registration please look for a file called ‘muiXXusr.lha’ (XX means the latest version number) on your local bulletin boards or on public domain disks.

If you want to register directly, feel free to send DM 30.- or US$ 20.- to:

Stefan Stuntz Eduard-Spranger-Straße 7 80935 München GERMANY

Support and online registration is available at

 http://www.sasg.com/

3 Installation of MUI–ASL

The provided Installer script will automatically install MUI–ASL.

Installation is quite easy even if you want to do it yourself: just

− copy ‘Libs/MUI-ASL.library’ to your ‘LIBS:’ drawer,
− copy ‘Libs/MUI/#?.mcc’ to your ‘MUI:Libs/mui/’ drawer,

− copy ‘C/PatchAsl’ to your ‘C:’ drawer and

− run ‘C:PatchAsl’ in your ‘Startup-Sequence’ like this:
    C:SetPatch QUIET
    Run <>NIL: C:PatchAsl

… If you want, you can also

− copy ‘Locale/Catalogs/#?’ to ‘LOCALE:Catalogs/’ and
− copy ‘Help/English/MUI-ASL.guide’ to ‘HELP:english/’.

Please note: If you have a previous version of MUI–ASL installed, be sure to remove it and restore the original ‘asl.library’ in your ‘LIBS:’ drawer.

4 Disclaimer

THERE IS NO WARRANTY, EITHER EXPRESSED OR IMPLIED, AS TO THE QUAL-ITY OR PERFORMANCE OF THIS PROGRAM. THE ENTIRE RISK FOR THE USE OF THIS PROGRAM IS ASSUMED BY THE USER (YOU). THE AUTHOR MAY NOT BE HELD RESPONSIBLE FOR ANY LOSS OR CORRUPTION OF DATA, EQUIPMENT OR OTHER GOODS RESULTING BY THE USE OR POSSESSION OF THIS PROGRAM, EVEN IF IN KNOWLEDGE THAT SUCH LOSS OR CORRUPTION MIGHT HAPPEN.

SHOULD APPLICABLE LAWS LIMIT THE EXTENT OF THIS DISCLAIMER, OR IM-POSE ANY FORM OF RESPONSIBILITY, THEN YOU ARE NOT ALLOWED TO USE THIS SOFTWARE.

I did my best to write a reliable piece of software. I tested it extensively. Enforcer, MungWall and PoolWatch didn’t complain. It works on my machine. If it doesn’t work on yours, it’s your problem, or maybe even your fault.

However, I would like to know. See Chapter 12 [Bug Reports], page 12.

5 License

MUI–ASL is offered to you under the concepts of shareware. You can use it for an evaluation period of up to 4 weeks without paying any charge, but if you are going to use MUI–ASL after the evaluation period, you are morally obliged to register, or your conscience will haunt you forever! See Chapter 6 [Registering], page 6, for more details.

In the following paragraphs, MUI–ASL and all the related distribution files will also be indicated as the software or the files. The licensee will also be indicated as you.

By copying, distributing and/or using the software you indicate your acceptance of this license to do so, and all its terms and conditions. If you don’t agree on the terms of this license, you are required to delete all the copies of the software in your possession.

You may:

• Install and use the software on any computer you want to.

• Make verbatim copies of the original distribution archive, without any files being omitted, added or changed. Lossless compression of the files is permitted. Adding bulletin board banners (see below) is discouraged, but tolerated.

• Distribute copies of the software at no charge, except for a reasonable fee for the media and your copying work. Allowed distribution media include electronic media, such as bulletin boards or the Internet.

• Include the software, in compressed and/or uncompressed form, in public domain, freeware or shareware collections such as Fred Fish’s Amiga Library Disks or CD-ROMs, provided that the price is reasonable. The author reserves the right to decide how much “reasonable” means. If in doubt, just ask. Fred Fish and the Aminet guys are expressly authorized and encouraged to include the software in their collections.

You may not:

• Copy and/or distribute the software without the accompanying documentation and any other additional files that come with the original distribution archive.

• Alter the software and/or the accompanying files in any way.

• Copy and/or distribute modified versions of the software and/or the accompanying files.

• Grant sublicenses, leases or other rights in the software, except as explicitly authorized in this license.

• Forbid other parties to use or distribute the software.

You agree to cease distribution of the software if the author requests so.

The program is released “as is”, without any warranty, either expressed or implied, and in no event will the author be liable for any damages caused by the use of this program. See Chapter 4 [Disclaimer], page 4.

6 Registering

If you think that MUI–ASL is useful and you wish to continue using it, you should register by sending a small amount of money to the author. By “small amount” I mean enough to buy a pizza and a coke, or a box of chocolates^{1}.

The registration will buy you nothing but my gratitude: I feel that the project is not so big that I have to “encourage” registration by means of limitations in functionality (or enhancements for registered users, as you may see it). That’s why I said “a small amount of money”. Feel free to send just about anything: it will encourage me to continue the development of MUI–ASL, and possibly of some other software.

To register, send your gift to the author (see Chapter 15 [The Author], page 18), along with your physical and email addresses. If you choose to send money, I strongly suggest to use an international Postal Money Order because the currency exchange is handled automatically and you don’t take the risk of sending cash.

REMEMBER: If you choose to send cash, use a thick envelope so that it cannot be seen through, and send it by registered letter!

1 You can even send chocolate directly: I especially like bitter chocolate with about 60% of cocoa an I love white Lindt Lindor. If you live in Switzerland or northern Europe, this is definitely the preferred gift. Don’t send chocolate during summer, though.

7 The File Requester

The file requester features a directory list and a volume list, in a tribute to the good old ‘req.library’ requester and to MFR. There is a balance bar between the two lists that allows you to resize them as you wish.

Please note: Currently MUI does not save the position of the balance bar. A future release of MUI–ASL will supply a preferences program that will allow you to configure the relative weights of the two lists.

• If you enter the name of a non-existent drawer in the ‘Drawer:’ field, you will be asked if you want it to be created.

• If you enter an incomplete name in the ‘File:’ field, the name will be completed when you press RETURN. Press RETURN again to accept the complete name.

• If the file requester is in multiselect mode, it will feature two buttons labeled ‘All’ and ‘None’ beside the ‘File:’ field. Use them to select all or none of the files in the list.

In the following sections you will find more informations on some aspects of the file requester.

7.1 File Requester Menu

The directory listing in the file requester features two context menus. The first menu allows you to change the properties of the entry you’re on (the name of the entry will be displayed in the context menu’s title):

New drawer… Create a new drawer within the current drawer. You will be asked for the drawer name.

Rename… Rename the entry.

Delete… Delete the entry. You will be asked for confirmation. Comment…

Modify the entry’s comment.

Parent… Go to the parent directory. Same as the ‘Parent’ button.

Update… Reload the current directory.

(I know, you want file notification. See Chapter 13 [Future], page 13.)

If you press the right mouse button away from a valid entry (for example on the list titles), the ‘Settings’ menu appears. The menu is as follows:

View by ≫

The available settings are: Name, Date and Size.

Sort drawers ≫ The available settings are: First, Last and Mixed.

Hide icons Toggle displaying of icons (i.e. files ending in ‘.info’).

7.2 File Requester Caveats

• Using ‘Sort drawers/Mixed’ with ‘Sort order/Size’ will yield strange results in the directory ordering: directories don’t have a size, so they cannot be mixed correctly with files.

8 The Font Requester

This section of the manual will be enhanced in a future release.

The font requester remembers the list of available fonts, so you will not have to wait for the list being read every time a requester is opened.

If you need to flush the cached font list from memory, issue the Avail FLUSH command from a shell or use Workbench’s ‘Debug/flushlibs’ menu^{1}. Of course this works only if the font requester isn’t displayed.

8.1 The font preview area

The area at the bottom of the font requester will show you a preview of the currently selected font. You can configure the displayed string using the MUI preferences: look for the FontDisplay configuration page.

The preview will show designed^{2} fonts only, in order to prevent any delay when you change font^{3}. As a side effect, if you select a non-existent size the preview will show the closest size for that font, or nothing if that font doesn’t have any designed sizes.

There is a balance bar just above the preview area: it allows you to resize the preview area at the expense of the font list.

8.2 Tech notes

This section is intended mainly for developers.

8.2.1 MaxFrontPen and MaxBackPen

During the development of MUI–ASL I discovered a small debatable point in the ASL documentation, related to the interpretation of font requester’s MaxFrontPen and MaxBackPen attributes. In the ASL autodoc they are explained as “the maximum number of pens that are offered to the user”; indeed, the font requester palette gadgets do have maxpen buttons.

According to my logic, though, “max pen” should mean “the maximum pen to let the user choose”, i.e. the palette gadgets should have maxpen+1 buttons. This is even more logic if you consider that the default maximum value is 255: the definition in the ASL autodoc implies that by default you can’t choose the 256th color of a 256-color screen, and in fact you can’t specify 256 pens at all, because these attributes are stored as UBYTEs, so they can range from 0 to 255 only.

MUI–ASL behaves like ASL, but only after I saw that my logic was wrong.

1 If you start the Workbench with LoadWB -DEBUG, a new menu called ‘Debug’ appears. The ‘ROMWack’ item starts Amiga’s ROM debugger (replaced by the Simple Amiga Debugging Kernel, known as “SAD”, in Exec V39). The ‘flushlibs’ item does the same as Avail FLUSH. This feature of the Workbench is not documented on standard user’s manuals.

2 Technically speaking, the FPF_DESIGNED flag must be set. 3 When you change font, the font size field stays the same: if the new font didn’t have that

particular size ready, the font engine would calculate it on the fly by rescaling an existing size or, in case of an outline font, by rendering the given size. It takes time.

9 The Screen Mode Requester

This section of the manual will be enhanced in a future release.

There is not much to say about the screen mode requester that you don’t know already. You get a list of available display modes and, if the requesting program asked for them, fields for setting overscan, width, height, depth and autoscroll mode.

The author can’t yet test the requester on graphic cards or RTG systems such as Cyber-GraphX^{1}. If you have such a system, please report any problems.

1 The first beta release had problems with CyberGraphX. See [History], page 16.

10 Compatibility with the Real ASL

This chapter lists some ASL features that MUI–ASL does not currently have, with a short explanation; most of these misfeatures are a consequence of MUI, and implementing them is either impossible or against MUI philosophy.

Anyway, if you have a program that needs one of these features, let me know. Philosophy is useless if things don’t work.

See also Chapter 11 [Known Bugs], page 11, and Chapter 12 [Bug Reports], page 12.

• All requesters ignore PrivateIDCMP because MUI transcends IDCMP messages completely. Basically, MUI–ASL always behaves as if you asked for a private IDCMP port; however, it will call IntuiMsgFunc on the reference window. The IntuiMsgFunc is most useful for refreshing simple-refresh application windows when the user waves requesters over them; MUI applications, in particular, should have a minimal IntuiMsgFunc^{1} just for this purpose.

• All requesters ignore ASLxx LeftEdge/TopEdge/Width/Height and TextAttr because tampering with an application’s appearance at this level is against MUI philosophy. However, when the requester is closed the values of LeftEdge, TopEdge, Width and Height will be set correctly, in case someone is using them.

• All requesters ignore ASLxx_Locale; MUI–ASL always uses the current locale. This may change in a future release.

• The file and font requesters ignore ASLxx_HookFunc. The difficulties mentioned in previous releases of this documentation have been sorted out; however, I did implement the ASLxx_ FilterFunc tags only. In fact I’m considering to forget about HookFunc, because I think it should be declared obsolete. I’m willing to hear your opinion on this subject.

• Reserved fields in the requester structures are used for my very own purposes, so evilish programs that peek them will most probably crash. Well, that’s their problem.

1 Have a look at the autodoc for MUIM_Application_CheckRefresh.

11 Known Bugs

“Bugs? What bugs? My code doesn’t have bugs!”

Alas, no software I know of is free of bugs. However, it is better to know where bugs are, so here it is:

• If you open two requesters at once, then the second requester will not show up where you snapshot it. That’s because different requesters are different instances of the MUI-ASL application (i.e. “MUI-ASL.1”, “MUI-ASL.2”, etc.), so MUI saves different settings for each one of them. This is not really a bug, it’s just that MUI doesn’t allow me to do things in a different way.

• The screen mode requester crashes sometimes. If you have reproducible test cases, preferably in source code, please let me know.

• There are also some unimplemented features which shouldn’t affect end user functionality. See Chapter 10 [Compatibility], page 10.

Please note: There is no doubt that some programs will behave badly when confronted with MUI–ASL. Nobody’s perfect, or at least not me, so there will be problems somewhere; but then consider that first of all I wrote MUI–ASL for myself, and I started using it well before it was complete, so I had chances to eradicate any problems I encountered with the programs I use daily.

So, if something doesn’t work, don’t say “MUI–ASL sucks”: tell me which program behaves badly and wait for me to check it out and see who is wrong. If the problem is in my code, be sure that I will fix it yesterday.

12 Bug Reports

If you discover a problem in MUI–ASL, first make sure that I didn’t know already: in other words, read carefully Chapter 10 [Compatibility], page 10, and Chapter 11 [Known Bugs], page 11. Then, please write to the author (see Chapter 15 [The Author], page 18) and provide the following information:

• The version of MUI–ASL which shows the problem.

• The exact version of the operating system (see Workbench’s About requester), MUI and any other relevant software. This is essential.

• Your full Amiga configuration (model, CPU, peripherals, etc.).

• A detailed explanation on how to reproduce the problem. If I can’t reproduce the problem, I’ll have lots of troubles locating it, and I will probably end up thinking it is your fault. Bug reports like “it doesn’t work sometimes” are definitely not what I need.

• If MUI–ASL irritates tools like The Enforcer or MungWall, please include their output in your bug report.

If you are missing something in MUI–ASL, please write to the author too. Check out Chapter 13 [Future], page 13, and tell me what you would like to see first.

13 Planned Enhancements for the Future

• A preferences program. Lack of configurability is one of the biggest ASL misfeatures. Some things you would be allowed to configure: − which columns to show in the file/volume lists; − disable vertical bars in the lists; − relative weights of the lists in the file requester; − fonts for the lists (at least among MUIV_Font_List and MUIV_Font_Fixed); − color of files and drawers; − background for file requester’s save mode; − enable displaying of extended file attributes (muFS, Envoy); − percentage width and height of the requester windows.

• Buffering for the file requester. ReqTools has it.

• Directory notification. You don’t want to press ‘Update’ when the directory is changing, do you?

• How about a color requester? ReqTools has it, too. However, standard ASL doesn’t, so it could cause compatibility problems with future ASL releases – unless Amiga Technologies (or whoever will develop AmigaOS in the future) adopts MUI–ASL. (hint, hint)

• I would like to write muFS^{1} support. Need it? Ask for it!

• The compatibility issues listed before (see Chapter 10 [Compatibility], page 10) are of course good candidates for future development; tell me if you need one.

• I would like to link MUI–ASL windows in the calling MUI application by patching into

MUI_AllocAslRequest() and MUI_AslRequest(). This would give every application its

own positioned requesters and would overcome any refreshing problems. However, this is a Bad Thing since there is no documented way to do so.

Oh, and a little note… Don’t ask for the balance bar positions to be saved – it’s not possible with the current release of MUI.

1 Short for MultiUser File System, a Unix-like file system for the Amiga.

14 History

V42.1 (31.08.96) – first beta release

This release had severe problems with CyberGraphX and any other program that might open ‘asl.library’ early in the startup-sequence, when the MUI assignments usually have not been set up yet.

Otherwise, it was just a beta: most things worked, most other were simply missing.

V42.2 (12.09.96) – second beta release

− You can select all or none of the files in the file requester via two menu items (applicable

only when the file requester is in multiselect mode). − MUI–ASL opens MUI libraries only when needed (i.e. when AslRequest() is called). This

should solve problems with CyberGraphX and other programs. (reported by lots of people)

− Enhanced the layout algorythm of the font requester’s palette gadgets. Previously the layout was a long row of color boxes, which was too big to be displayed on deep screens. Note that there still could be problems on small screens with many colors. (reported by helix2@ios.com)

− MUI–ASL did not check if the requester window did open, so it could enter the input loop without a window! This often happened as a consequence of the aforementioned layout problem. Now an alert is shown and the requester is aborted.

− Corrected an annoying bug: the requester structures were filled with current values even

when the user hit ‘Cancel’. − Implemented the ‘New drawer…’ function in the file requester. In fact it was there in the

previous release too, but I forgot to enable the menu item after correcting a nasty bug. (requested by Robert Kauffman)

− Fixed Enforcer hits when MonitorSpec not available for a display mode.

(reported by Stefan Becker) − The ‘Pattern:’ gadget is now above ‘Drawer:’ and ‘File:’ as in the real ASL and ReqTools.

Previously the ‘Pattern:’ gadget was below them. (requested by Marcin Orlowski)

− The file requester window allows drag’n’drop of icons on it.

(requested by several people) − The file requester lists (drawers/files and volumes) use the fixed-width font now. Just to

see if you like it. ;-) The font will be configurable (at least among MUIV_Font_List and MUIV_Font_Fixed) as soon as I write a configuration program.

− The file/font requesters correctly highlight the initial file/font. However, they don’t jump to it. I’m working on this. (reported by several people)

V42.3 (03.11.96) – third beta release

− The file requester’s context menu has been greatly enhanced.

(suggested by Christer Bjarnemo) − Finally implemented filtering functions. However, see Chapter 10 [Compatibility], page 10

for some notes on this subject. − Deeply revisited internal notifications. No changes for users. − Just discovered that the real ASL doesn’t copy the strings for title, positive and negative

texts, so I don’t do either. Those strings must be valid throughout the requester’s life. − Finally implemented IntuiMsgFunc. − Now you can type a path (full or relative) in the ‘File:’ field. The path part will be thrown

in the ‘Drawer:’ field. (requested by Ralph Torchia, Marcin Orlowski and others)

− Shuffled some buttons around: changed ‘All’ and ‘None’ functions from menu items to buttons; ‘Parent’ is between ‘Ok’ and ‘Cancel’; ‘Update’ is beside ‘Drawer:’. (requested by Paul Hickman)

− The buttons in the file requester are not in the cycle chain any more (except for ‘Ok’ and ‘Cancel’) because you can reach them with shortcuts. (suggested by Paul Hickman)

− The screen mode requester doesn’t show a display mode at all when its MonitorSpec is not available. (suggested by Stefan Becker)

− The string for the font preview area (which is a FontDisplay object) is now configurable

using the MUI preferences. − The depth slider in the screen mode requester now displays the number of colors instead

of the screen depth. Easier to understand, isn’t it? − Implemented property information window for the screen mode requester. Still very in-

complete: lots of numbers but missing actual properties. − Localization is here. Some translations are included, although incomplete. Now it’s up to

you: translate the catalog into your preferred language! − The file requester can create a non-existing directory for you. − Greatly improved behaviour of the file requester when you enter non-existent file/directory

names or the name of a directory in the ‘File:’ field. Too long to explain, try it out yourself. (requested by many people)

− Also added kind of name completion for the ‘File:’ field. Try typing the first characters of a drawer/file name, then press RETURN and enjoy. (suggested by Stefan Becker, Rune Jacobsen and others)

V42.4 (11.11.96)

− I somehow copied the BackMan^{1} install icon over the MUI–ASL install icon. Since the MUI–ASL installation script was a shell script, clicking on it wouldn’t work. I wonder for how long this has been wrong – I don’t remember messing with the icon after the first release.

1 A backup utility I wrote.

− Now this is a rather big mistake: MUI–ASL wouldn’t work on Release 3.0 because I incorrectly assumed that the ‘locale.library’ file of Release 3.0 was version 39, when it really was version 38. My apologies to 3.0 users; however, upgrade. (confirmed by Kai Nikulainen, reported by many people)

− Swedish (svenska) translation from Mats Nyman. − The string requester was missing a window ID, i.e. its position didn’t get saved.

(reported by Joerg Mueller) − The file requester’s context menu has been split in half. Try it out. − The middle mouse button (if you have one) acts as a ‘Parent’ button.

(suggested by Stefan Becker) − Directories are white now.

(requested by many people) − The ‘Ok’ button didn’t work correctly in the file and font requesters. Too bad I didn’t

notice it yet… (reported by Peter Denomy)

V42.5 (internal version, not released)

− Open ‘locale.library’ when I really need it, not during library open. − The DispModeInfo and DispModeList classes are no longer public. − Recompiled with SAS/C 6.57. − Turned off volume list titles. They are part of MUI’s Volumelist class, so I don’t have

any control on their appearance; since I can’t even localize them, it’s probably better not to see them at all. You will probably figure out what each column means anyway. ;-)

− MUI 3.7 fixed the Enforcer hit in the Volumelist class. − Removed the useless titles from context menus. − The alternate window size is wider (how much wider depends on which requester) and

almost as high as the screen. (suggested by Paul Hickman)

− Dutch (nederlands) translation from Rembrandt de Witt. − Fixed an old bug in the file requester: if you selected a directory using cursor keys while the

‘File:’ field was active and pressed RETURN, the requester would close instead of entering that directory.

− If the requester is canceled, IoErr() now returns 0. The return code was random, causing spurious error message with Visage. (reported by Kai Nikulainen)

V40.6 (?.9.97)

− Recompiled with SAS/C 6.58. − The library no longer replaces ‘asl.library’; it is now glued into the system by means of

a small patch program. See Chapter 3 [Installation], page 3. − Changed version number to match Workbench 3.1’s ‘asl.library’, which is the version

I did all my testing with. This will ensure that programs looking for a specific release will work correctly, and it will also avoid compatibility problems the day a new, official

‘asl.library’ appears.

Chapter 14: History 17

− Using MUIM_HandleEvent in place of MUIM_HandleInput.

− The font requester accepts and displays font names without the ".font" suffix.

15 The Author

This software was written by Flavio Stanchina. You can reach me at these addresses, via standard or electronic mail.

Flavio Stanchina Loc. Montevaccino 39 38040 Trento ITALY

email: flavio@ies.it

(don’t send files over 16kb without asking, please)

If you want a reply, please use e-mail.

Please start the subject of all your mails regarding MUI–ASL with ‘MUI–ASL’ (exactly as shown here), followed by the real subject: I plan to automatically throw all those mails in a separate repository to avoid confusion with my normal e-mail.

You may have noticed that sometimes I don’t answer mails very fast. That’s because I go snowboarding as often as possible (yes, during summer too, even if not very often – living in the Italian Alps is good), so sometimes I don’t have time to answer all mails and do some programming.

16 Thanks

I would like to thank the following people:

Stefan Stuntz <stuntz@informatik.tu-muenchen.de> for MUI. Helix <helix2@ios.com> Martin Steigerwald <steigerw@stud.uni-frankfurt.de> Mats Nyman <matsn@tripnet.se>

They managed to notice MUI–ASL on Aminet, download it, test it and write bug reports in less than 20 hours after I uploaded the first beta release. That’s what I call fast feedback! Mats Nyman also earns another thank for the Swedish (svenska) translation.

Juan Jesús García de Soria Lucena <amisanf@ctv.es> Leo ‘Nudel’ Davidson <leo.davidson@keble.oxford.ac.uk>

They pointed out that a couple of system preferences programs (most notably WB-Pattern and Sound) do indeed use file requester’s callback hook, giving me good reasons for implementing it.

Jon B. Peterson <jonbp@webstar.net>, <alden1@airmail.net> MUI–ASL was not yet working on his system, but Jon registered anyway for encouragement. I really don’t know how to thank you, Jon.

Maik Schreiber <BLIZZER@Fodder.prometheus.de>

for completing the German (deutsch) translation.

Marcin Orlowski <carlos@inet.com.pl>

for a skeleton Installer script.

Alain LAVANCHY <alain.lavanchy@gen.ch.landisgyr.com> Francesco Zonta <zetaeffe@tmn.it>

for the chocolates.

Rembrandt de Witt <Rembrandt.deWitt@STUDENT.KUN.NL>

for the Dutch (nederlands) translation.

Aleksey Volkov <4afc@neworder.spb.ru> Oleg Sergeev <bigblack@neworder.spb.ru>

for the russian translation.

Alan Watson <Alan@digital-animations.co.uk> Albert Bertilsson <DE9650@hktecfs.hkr.se> alex colic <acolic@wchat.on.ca> Antonio Mulè (2:332/516.22@fidonet) Ariel Magnum <amagnum@ibm.net> Christer Bjarnemo <christer.bjarnemo@mailbox.swipnet.se> Christian Kersting <kerstic@uni-muenster.de> Donald Dalley <ab732@freenet.toronto.on.ca> Gregor “B.” Rosenauer <e9425635@stud1.tuwien.ac.at> Holger Hummel <schraitlej@fh-nuertingen.de> Ignacio Garcia Cuadrado <igarcia@readysoft.es> Joao Marum <jmarum@mail.telepac.pt> Joe Angell <JAngell@TMProductions.com> Joerg Mueller <joergm@vossnet.de> Kai Nikulainen <knikulai@utu.fi> Kenneth Jagenheim <kenneth.jagenheim@emw.ericsson.se> Michael Doerr <doerr@cns.mpg.de> Mikael Westergren <mikael.westergren@mbox300.swipnet.se> Morden (Jason Murray) <morden@cynet.net.au> Paul Brand <pbrand@fewright.ibmmail.com> Paul Hickman <phickman@mycom-media.com> Peter Denomy <pdenomy@greynet.net> Pierluigi Giuliana <alexg@mediatel.it> Richter Arno <arno.r@kirchbichl.netwing.at> Robert Kauffman <artstar@computek.net> Robert A. Sisk <rsisk@world.std.com> Rune Jacobsen <runej@idgonline.no> Stefan Becker <stefanb@yello.ping.de> Stefan Guttmann <steve.g@magnet.at> Steve Clack <steeevc@ndirect.co.uk> Sven Heithecker <s.heithecker@tu-bs.de> Tassilo <a2942607@smail1.rrz.Uni-Koeln.DE> Varnier Gatto <gatto@science.unitn.it> …and all those I forgot…

for assorted requests, suggestions, bug reports, or simple compliments.

Amiga Computing for distributing MUI–ASL on their cover disk (Issue 106, December 1996) and giving me a free copy of the mag.

Concept Index 21

Concept Index

A

Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

B

Bug Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Bugs, Known . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

C

Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Context menu, File Requester . . . . . . . . . . . . . . . . . . . . . 7

D

Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Distribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

E

Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

F

Features, Unimplemented . . . . . . . . . . . . . . . . . . . . . . . . 10 File Requester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 File Requester Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 File Requester Context Menu . . . . . . . . . . . . . . . . . . . . . 7 File Requester Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Font display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Font Requester. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Font Requester tech notes . . . . . . . . . . . . . . . . . . . . . . . . . 8 Future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

H

History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

I

Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

K

Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

L

Legal Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

M

MagicUserInterface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 MUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

R

Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

S

Screen Mode Requester . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

T

Tech notes, Font Requester. . . . . . . . . . . . . . . . . . . . . . . . 8 Thanks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

U

Unimplemented features . . . . . . . . . . . . . . . . . . . . . . . . . 10

V

Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

W

Warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Table of Contents

1 Introduction to MUI–ASL . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 MUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Installation of MUI–ASL . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 License. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 Registering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 The File Requester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

7.1 File Requester Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.2 File Requester Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

8 The Font Requester. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

8.1 The font preview area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8.2 Tech notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

8.2.1 MaxFrontPen and MaxBackPen . . . . . . . . . . . . . . . . . . . . . . . 8

9 The Screen Mode Requester . . . . . . . . . . . . . . . . . . . . . . 9 10 Compatibility with the Real ASL . . . . . . . . . . . . . . 10 11 Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 12 Bug Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 13 Planned Enhancements for the Future . . . . . . . . 13 14 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

V42.1 (31.08.96) – first beta release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 V42.2 (12.09.96) – second beta release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 V42.3 (03.11.96) – third beta release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 V42.4 (11.11.96) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 V42.5 (internal version, not released) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 V40.6 (?.9.97). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

15 The Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 16 Thanks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21