All three data files for DeZkTop are a series of records made up from several lines. The Floaters are the simplest, the menus are a bit more complicated and the Hotkeys more complicated again. Floaters -------- Each record in the Floaters file consists of 10 lines. 1. The floater title 2. The icon file 3. The executable file 4. The arguments 5. The startup directory 6. The number of the icon within the icon file 7. Five integers: i) Startup state, 0 = normal, 1 = minimised, 2 = maximised, 3 = hidden ii) Flag to prompt for arguments, 1 = prompt, 0 = don't prompt iii) Priority, 0 = Normal, 1 = low, 2 = high, 3 = super iv) Autorun, 1 = run app when DeZkTop starts, 0 = don't run app v) Separate address space, 1 = run 16 bit app in a separate address space, 0 = don't use separate address space 8. Two integers: i) This is a version marker and is always 1 ii) The length of the icon data. This will be 0 if the icons are not cached and the number of bytes the icon occupies if icons are cached. If icons are chached there is then a block of binary data the length of which is given by number (ii) above. 9. Three integers i) TitleInvisible, 1 = don't display the Floater title ii) Immoveable, 1 = the floater cannot be moved by dragging iii) AlwaysOnTop, 1 = the floater is always on top 10. Four integers giving the position of the floater in screen pixels i) Left edge ii) Top edge iii) Right edge iv) Bottom edge Menus ----- Each record in the Menus file consists of 13 lines. The first 10 lines are exactly the same as for floaters. The additional lines are: 11. Two integers giving the menu position in screen pixels i) Left edge ii) Top edge 12. Three integers i) The width of the menu in icons, eg a width of 3 means there are 3 icons in each row ii) The horizontal spacing between icons in screen pixels iii) The vertical spacing between icons in screen pixels 13. Two integers. If the icon is not a submenu then both integers are zero. If the first integer is 1 that is a flag indicating that this icon is a submenu. If so then the second integer gives the number of icons in this submenu. eg if the second number is 6 then the next 6 menu items are icons within this submenu. The menu file always contains one record for the top level menu, even if you have not created any menu items. Hotkeys ------- Each record in the Hotkeys file consists of 14 lines. The first 13 lines are exactly the same as menus. The additional line is: 14. Four integers giving the hotkey data i) The hotkey ii) Control key flag, 1 = hotkey needs control down iii) Shift key flag, 1 = hotkey needs shift down iv) Alt key flag, 1 = hotkey needs alt down The HotKeys file always contains one record for the top level hotkey menu, even if you have not created any hotkeys. The hotkey number is an internal number not related to ascii codes or any other encoding. The codes are: 0 F1 1 F2 2 F3 3 F4 4 F5 5 F6 6 F7 7 F8 8 F9 9 F10 10 F11 11 F12 12 A 13 B 14 C 15 D 16 E 17 F 18 G 19 H 20 I 21 J 22 K 23 L 24 M 25 N 26 O 27 P 28 Q 29 R 30 S 31 T 32 U 33 V 34 W 35 X 36 Y 37 Z 38 0 39 1 40 2 41 3 42 4 43 5 44 6 45 7 46 8 47 9 48 Space 49 Return 50 Tab 51 Escape 52 Backspace 53 Left 54 Up 55 Right 56 Down 57 Insert 58 Delete 59 Home 60 End 61 Page up 62 Page down 63 Numpad 0 64 Numpad 1 65 Numpad 2 66 Numpad 3 67 Numpad 4 68 Numpad 5 69 Numpad 6 70 Numpad 7 71 Numpad 8 72 Numpad 9 73 Numpad / 74 Numpad * 75 Numpad - 76 Numpad + 77 Numpad .