Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!brutus.cs.uiuc.edu!apple!snorkelwacker!bloom-beacon!eru!luth!sunic!mcsun!ukc!harrier.ukc.ac.uk!jbww From: jbww@ukc.ac.uk (J.B.W.Webber) Newsgroups: comp.sys.atari.st Subject: Re: anybody know how to "hook" into MORE? Message-ID: <2864@harrier.ukc.ac.uk> Date: 24 Oct 89 18:43:25 GMT References: <2315@hcr.UUCP> Reply-To: jbww@ukc.ac.uk (J.B.W.Webber) Organization: Physics Lab, University of Kent at Canterbury, UK. Lines: 238 it would appear to be time to post parts of a discussion that has appeared here before .... deskLESS.see.Z Jan 22 11:05 1987 Page 1 There is more that can be done to modify the behaviour of the ST desktop than appears to be gernerally realised, so hope that the following notes are of use. Any information from those that can shed further light would be nice. Desktop.inf contains plain ascii text, and the names of installed applications can be edited to include path information. There are other useful modificaions that can be made, to configure the behaviour of the desktop. Recently, people have queried whether it was possible to do anything about the action of the desktop, when displaying/printing a file. This is particularly relevant now that LESS is available. The few lines of desktop.inf before the application instalation information are : #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ #P 03 04 d:\DUMP.TTP@ *.BAS@ The action of the desktop is clearly to try matching a 'double-clicked' file against these templates, IN REVERSE ORDER. Once a match has been made, the desktop then takes either the specified action, or if none, the default action. [ Thus if the bottom template is changed to @ *.*@ then an attempt will be made to dump ALL files. Interestingly, not only will .prg (etc) files not be executed, they will also not be displayed as executables on the desktop. ] If no other match is found, the top line wakes up the see/print alert box that so incenses many people. The simple solution is just to insert the name of one's favourite display routine, as below. This will then ensure that any non-executable is then read using the facilities of LESS, (thus ending that sinking feeling, as the crucial paragraph that one was looking for flashes off the top of the page.) (Printing is best handled by a proper configurable printer spooler. #F FF 04 d:\LESS.TTP@ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ J.B.Webber Physics Lab., University of Kent. jbww@ukc.ac.uk From mcvax!seismo!lll-crg!lll-lcc!vecpyr!amd!pesnta!hplabs!ucbvax!UHUPVM1.BITNET!ACS1 9 Fri May 23 13:26:25 BST 1986 In response to someones query about the desktop.inf.... tah dah ----- Everything you always wanted to know about desktop.inf, but were afraid to ask. Below is a typical desktop.inf file (with a few changes added for examples). Below each line is a definition of what each value represents. #a000100 This is the first desk accessory, the rs232 config. Each 0 represents the first column of buttons on the set rs232 config dialog box. The first 0 is column 1 row 1, the second 0 is coumn 1 row 2, etc. A 1 value indicates that a button in the second column was chosen. #b000000 This is the set printer config. It works the same way as the rs232 config. #c7770007000600070055200505552220770557075055507703111103 This is the color palette. The color value is set using 3 digits at a time, representing the red, green and blue values. The 3111103 at the end deals with the keyboard repeat rate, and sensitivity. (None of the above three will do anything if the associated desk accessory is not loaded) #d This is apparently reserved for a fourth accessory, and does nothing at this time (so far as I can see). #E C4 02 (#E=Extras) This is two things. The first value has to do with both the Set Preference dialog and the mouse double click rate. The byte is broken down as follows with the indicated bit set performing the noted action: Bit 7 6 5 4 3 | 2 1 0 Value 128 64 32 16 8 | 4 2 1 displays sorted sorted confirm confirm | double click rate TEXT by by deletes copies | all three bits, values (if not set size date | may only be from 0-4 displays \ / | 5-7 will turn off the icons) both bits | mouse buttons sort by type If neither bit 5 or 6 is set the sort is by name The second value is 03 for hi rez, 02 for medium rez, or 01 for low rez. #W 00 00 02 0B 2A 0B 08 A:\*.*@ (#W=Window) #W 00 01 0A 01 45 09 08 A:\TEST.C\*.*@ #W 00 00 0E 09 2A 0B 08 A:\*.INF@ #W 00 00 0F 0A 2A 0B 00 @ The above four are the window defs. The first number is how far over the horizontal slider is, the second is the vertical slider. The third number is the x coordinate of the left hand side of the window (this takes on even values, with odd values the same as next lowest even value). The fourth number is the y coordinate (this takes single increments). The fifth and sixth numbers are the width and height, respectively. The last number indicates where on the screen the window will open from. (The window opens with a different shape and from a different place with each number, but when Jan 22 11:06 1987 Page 2 you close the window, it will go to another place on the screen. I have not hacked at this long enuf to figure it out.) A zero or FF will not open the window. The text indicates which drive's contents will be displayed. If the drive does not exist, the window won't open, ie. drive bits not set. Also, if the display validation is omitted, the window won't open. The second def above will display the contents of the folder TEST.C, while The third def above will open a window, and only display the .INF files on drive A. If you close and open the window, the files will display as defined in the file and program defs below. (NOTE: this only applies to icon images, every file will display in text -- except if the file bits are marked to be hidden, system, volume, read/write and whatever other bits there are, in which case it won't display at all, but if it is read only, it will display -- strange HUH?) The bottom-most open window in the list will be the active window. #M 00 02 00 FF D FLOPPY DISK@ @ (#M=iMage (?)) #M 00 00 00 FF A DRIVE A@ @ #M 00 01 00 FF B FLOPPY DISK@ @ These describe the icon attributes. The first two numbers are the column and row position of the icon. The column can be from 0-7, the row 0-3. The third number determines the icon image which will be displayed. The image number is the same for this and the remaining defs in desktop.inf, as follows: 0= disk drive (drawer) 1= folder (sub-directory) 2= trash can 3= executable file (.PRG, .TOS, or .TTP) 4= text (stack of papers) The fourth value doesn't seem to do anything, but must be a place holder for an unimplemented function. The single letter is the drive identifier, and the text is the drive name. The first @ indicates the end of the drive name. The second @ does nothing, but we can speculate as described below for the file identifiers. The order in the list determines the visual heirarchy of the icons, ie. which will display on top when moved over another icon. #T 00 03 02 FF BLACK HOLE@ @ (#T=Trash) This is the same as the disk drive. If you move a disk drive identifier below this in the list, it will display on top of the trash if moved to the same location. The trash has no identifier letter, but you can put one in. #F 03 04 @ *.INF@ (#F=Files) #D FF 01 @ *.C@ (#D=Directories) These two determine which type of file or directory will be displayed, when displayed as icons. The first line will make GEM display only .INF files for use with the SHOW, PRINT, CANCEL alert box. If you delete this line, no icons will be shown for any file, except as defined below for programs. The second line does the same for sub-directories, only .C