Short: MIDI DataType Class Preferences Editor Author: sisk637 cyberonic com (Robert A. Sisk) Uploader: sisk637 cyberonic com Type: util/dtype Version: 1.4 Replaces: util/dtype/MidiDTPrefs.lha Requires: util/libs/mui38usr.lha util/rexx/rxmui.lha util/rexx/royalbridge11.lha mus/edit/camd.lha Architecture: generic MidiDT is a preferences editor for Martin Gierich's MIDI datatype class 40.0, util/dtype/MidiDT.lha. It is a MUI application written in ARexx, developed on an A4000/040 with AmigaOS 3.9 + BoingBags 1 & 2, MUI 3.8, RxMUI 42.5, RoyalBridge 1.1, and CAMD 37.14. In addition to the usual features of a preferences editor it has pop-up edit menus for the individual settings gadgets, it disables the edit menu items when they have nothing to do, it takes notification on MIDIPorts preferences to reflect a new cluster list immediately, and the window is an AppWindow which will load a dropped preferences file. The Create Icons setting is automatically saved and loaded separately from the Font settings when the program quits and starts. I use an icon datatype class, util/dtype/IconDT44.lha, so several About windows look a bit prettier. My system originally didn't provide the icon used in the About MIDI window, so I copied :OS-Version3.9/icons/datatype.info from my AmigaOS 3.9 CD to Env(Arc):Sys/def_datatype.info. The links in the About requesters use OpenURL, comm/www/openurl.lha. To make the About MidiDT address link work, in OpenURL preferences I edited my mailer command's address argument so the keyword is joined to its value by a space instead of an equals sign. The equals sign apparently exposes a bug in dos.library/Execute() that assumes an angle bracket indicates a stream redirection. MidiDT is a demonstration of the power of ARexx and RoyalBridge to access arbitrary libraries (in this case camd.library). By releasing this script, I hope to encourage more development in ARexx. When saving a preferences file, if Create Icons is checked and the icon file doesn't already exist, MidiDT will copy the file Env:Sys/def_prefs.info or the system will provide a default project icon: Env:Sys/def_project.info or an internal image. The new icon will have a Cmd tool type which specifies the preferences file and also a copy of the program's Console tool type. However, if the program's absolute path contains a space, the tool types won't be written. If MidiDT receives options from the command line or from the Cmd tool type, it processes them with the following argument template. Otherwise, it reads its options as tool types with the same keywords. From,Edit/S,Use/S,Save/S,PubScreen/K PubScreen overrides the corresponding setting in MUI preferences. History 1.4 Fixed bug: Mishandled 32-bit memory address values. 1.3 Added feature: Automatically remembers Create Icons setting. 1.2 Fixed bug: When notifying of MIDIPorts preferences change with cluster list showing, and task address greater than hex 7fffffff, signalled wrong address. Fixed bug: Disables Last Saved window and pop-up menu items when they have nothing to do. 1.1 Fixed minor bug: Pop-up button didn't scale width to match font. 1.0 First Aminet release. I welcome your comments and questions.