home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaDemoCD1.iso / DEMOS / DBPP-JongSnel&Wild19.dms / in.adf / JSW-Programs / HCMenuSpull.LHA / HCMenuSpull / HCMenu.Doc < prev    next >
Encoding:
Text File  |  1994-11-27  |  16.9 KB  |  399 lines

  1. Onderwerp:    Haute-Cuisine Menu V1.8.1
  2. Door:        E. Th. van den Oosterkamp.
  3. ReleaseDate:    27-Nov-94
  4. Systeemeisen:    Geen. Menu houdt rekening met KickStart versies.
  5.  
  6.  
  7.  
  8. Introductie.
  9. ============
  10.  
  11. Het HCMenu is een interactief menu, dat vooral bedoeld is om programma's
  12. snel en gemakkelijk op te kunnen starten. Ik gebruik dit menu sinds oktober
  13. 1992 en sindsdien is er erg veel verbeterd (zeg ik zelf).
  14. Ik gebruik dit menu omdat ik de Workbench van Commodore niet kon waarderen.
  15. Nu onder versie 2.0 is hij erg vooruit gegaan, maar ik vind een menu nog
  16. steeds stukken handiger (zeg ik alweer zelf).
  17. Nu ken ik mensen die zweren bij een keymap (jeweetwel F1 - ASM-ONE, F2 -
  18. DeluxePaint , F3 - ....) maar daarvoor kocht ik geen Amiga (MVA!).
  19. Ondanks de systeem eisen is het menu eerder ontworpen voor KS2.0 (en hoger).
  20. Ik ondersteun de lagere Kickstarts alleen maar zodat disks waar iemand het
  21. HCMenu op heeft geinstalleerd ook bij die gebruikers werken met een oude KS.
  22. Een aantal (minder belangrijke) functies zullen onder KS1.3 niet werken.
  23.  
  24.  
  25.  
  26. Beschrijving.
  27. =============
  28.  
  29. Het HCMenu gebruikt een zgn "menufile". Dit is niets anders dan een
  30. tekstfiletje waarin de namen van de gebruikte gadgets staan en dan sequences
  31. van verschillende commando's behorende bij dat gadget. Het is ook mogelijk
  32. om vanuit een menu een volgend menu op te roepen. Een soort van submenu dus
  33. maar de gehele hiearchie is zelf te bepalen, dus je zou ook een menu
  34. "omhoog" kunnen gaan.
  35. Het menu kent ook een soort snapshot functie. Allerlei handige zaken
  36. (coordinaten, startmenu, indeling)  worden weggeschreven in een (binaire)
  37. file. Bij het opstarten wordt deze ingeladen en het menu juist ingeteld.
  38.  
  39.  
  40.  
  41. De Menu-File.
  42. =============
  43.  
  44. Omdat het menu in eerste instantie alleen voor eigen gebruik was bedoeld, heb
  45. ik geen scripttaal ontworpen, maar steekt een menufile simpel in elkaar
  46. (zoals ikzelf...). Natuurlijk verkleint hierdoor de controleerbaarheid voor
  47. mijn menu, maar een menufile is nu niet groter dan nodig.
  48.  
  49. Om het maar in een keer te zeggen: Eerst komen regel voor regel alle
  50. itemnamen in de file. Deze namen komen gecentreerd in het gadget te staan,
  51. zodat de gebruiker weet wat het gadget zal gaan doen (mits logische namen
  52. gekozen.....) Dan komt op een regel het procent (%) teken. Dit betenkend
  53. niets meer dan: "einde namen, begin commando's". Hier komen IN DEZELFDE
  54. VOLGORDE!! de opdrachten die bij de items horen. 
  55.  
  56. Een voorbeeldje:
  57.  
  58. ----------------------------------------------------------------------------
  59. ToolMenu
  60. ASM-One
  61. DPaint
  62. DirOpus
  63.  
  64. GamesMenu
  65. Niets
  66. MenuEdit
  67. %
  68. @dh1:tools/tool.menu
  69. dh1:assembler/asm-one
  70. run dh1:grafiek/dpaint ;cd dh1:iff
  71. dh1:tools/diropus
  72. @dh1:games/games.menu
  73.  
  74. run ed s:main.menu
  75. ----------------------------------------------------------------------------
  76.  
  77. Nu is staan er in het bovenstaande voorbeeldje enkele speciale karakters. Ik
  78. bedoel de "@" en de ";". De ";" werkt als een "command-seperator" oftwel een
  79. commando scheider. Zo kun je met een item (na elkaar) verschillende
  80. opdrachten geven, zoals in dit geval het opzoeken van een directory.
  81. Het karakter "@" betekend dat er een submenu dient te worden nageladen, en
  82. de filenaam van het menu volgt direct op het apestaartje. Het gebruik van
  83. een command seperator heeft hier natuurlijk geen zin.
  84.  
  85. Enkele regels voor de Menufile:
  86.  
  87. - Altijd maar een ding op een regel. item-naam/zoekpad/commando etc.
  88. - Een spatie voor of na een itemnaam zorgt ervoor dat deze niet mooi wordt
  89.   gecentreerd omdat de spatie gewoon als deel van de naam meedoet. Alles wat
  90.   op die regel staat wordt de itemnaam. Zorg zelf dat de naam ook werkelijk
  91.   in het item past.
  92. - Zoekpaden, commando's en speciale tekens MOETEN op de 1e plaats van een
  93.   regel staan (behalve ";" natuurlijk). Dit geldt ook voor de zoekpaden en
  94.   namen van de op te starten commando's.
  95.  
  96. Het is mogelijk om een item leeg te houden. Dan moet gewoon de regel van
  97. de itemnaam worden leeg gehouden. Bij de uit te voeren commando's hoeft
  98. hier geen rekening mee te worden gehouden. Er hoeft voor dit niet gebruikte
  99. item geen lege ruimte te worden aangebracht. Let er wel op dat de lege
  100. regel echt leeg is en er geen verloren spatie of tab staat.
  101. Ook kan in een item een tekst worden geplaats zonder dat het item enige
  102. functie heeft. Zet in dit geval (zoals bij het "Niets" gadget) een lege
  103. regel bij de opdrachten. Ook hier oppassen voor spaties en tabs.
  104.  
  105. NB:    Mocht dit bovenstaande toch te lastig zijn, dan verwijs ik naar de
  106.     HCMenuEditor, een programma dat bedoeld is om interactief een menu
  107.     samen te stellen.
  108.  
  109.  
  110.  
  111. Menu functies.
  112. ==============
  113.  
  114. Het klink waarschijnlijk erg raar, maar het menu heeft een menu. Ik doel
  115. hierbij op een menubalk bovenaan het scherm. Ik ga nu een voor een de
  116. menuitems langs in de volgorde zoals ze staan.
  117.  
  118. het project menu.
  119.  
  120. - Open Menu    - Opent een ReqTools filerequester waarmee de gelukkige
  121.           gebruiker een menufile kan selecteren.
  122. - Edit Menu    - Door deze optie te selecteren zal het menu de editor op-
  123.           starten met de actuele menufile. Het effect is het
  124.           zelfde als een druk op het (optionele) MenuEdit gadget.
  125.           Met de optie "Prefs" uit het Prefs menu kan de editor
  126.           worden ingesteld. Default is "Ed".
  127. - NewShell    - Opent een shell window.
  128. - Load Snapshot    - Inladen van eerder gemaakte instellingen. Er zijn drie
  129.           mogenlijkheden: General, This Menu en Default. De laatste
  130.           zal de standaard instellingen activeren. Met "This Menu"
  131.           en "General" zijn gebruikers instellingen te activeren.
  132.           Hierover meer in de volgende paragraaf.
  133. - Save Snapshot - Het Opslaan van instellingen. Hier zijn mar twee mogelijk-
  134.           heden nl "general" en "This Menu". Voor een uitgebreidere
  135.           uitleg: zie volgende paragraaf.
  136. - About        - Informatie over het programma, de copyrughts e.d.
  137. - Quit        - Het menu sluit en al het geheugen zal worden vrijgegeven.
  138.           Dit kan ook met het close gadget.
  139.  
  140. het prefs menu.
  141.  
  142. - NoClick    - Deze functie kan alleen onder Kickstart2.0 of hoger
  143.           worden geselecteerd. Hij schakeld het klikken van alle
  144.           drives aan/uit. Dit vertraagt wel het "happen" van een
  145.           nieuwe diskette maar daar leef ik liever mee dan dat
  146.           ergerlijke geklepper.
  147. - '*'=WildCard    - Ook deze functie werkt alleen onder kickstart2.0 en
  148.           hoger. Bij het gebruik van Shell of CLI (en ook bij
  149.           sommige filerequesters) kan de gebruiker jokers gebruiken
  150.           voor het specificeren van bepaalde files in een directory.
  151.           Normaalgesproken wordt bijvoorbeeld "#?.info" gebruikt om
  152.           alle files eindigend op ".info" te specificeren.
  153.           Met deze optie kan de gebruiker "#?" vervangen voor het
  154.           sterretje ("*") zoals dit in de MS-DOS wereld gebruikelijk
  155.           is. Deze optie geldt voor de GEHELE computer, en niet
  156.           alleen voor het HCMenu.
  157. - Border    - Dit is een kwestie van smaak. Wilt u een 3D-look
  158.           vierkantje rond de items of liever niet? Bij sommige
  159.           kleurinstellingen (WB 2.0) prachtig, bij andere minder.
  160.           De "lichtval" komt altijd van linksboven. Hoe de kleuren
  161.           ook gekozen worden.
  162. - MenuEdit    - Deze optie maakt dat er een laatste gadget bijkomt. Door
  163.           op dit gadget te klikken laadt het menu de editor "ed" in
  164.           en zorgt ervoor dat deze de actuele menufile inlaad. Nu is
  165.           op elk moment met een druk op de knop het menu te
  166.           veranderen.
  167. - Blanker    - Het in of uitgeschakeld zijn van de screenblanker. Wanneer
  168.           er geen filenaam is gekozen in het "values" window, dan
  169.           wordt automatisch de interne screenblanker gebruikt.
  170. - SelectBar    - De selectbar is een balk die met de cursortoetsen kan
  171.           worden bediend. Met de balk is een bepaald gadget te
  172.           selecteren. Met <enter> wordt het geselecteerde gadget
  173.           geactiveerd.
  174. - Alt + Esc    - Door een druk op een van beide <Alt> toetsen samen met de
  175.           <Esc> toets, activeert het menu. Tijdens de activering
  176.           zal het window bovenop komen te liggen, en zal de work-
  177.           bench naar voren komen.
  178. - WinBarInfo    - In de schermbalk wordt de tijd weergegeven samen met wat
  179.           informatie over de hoeveelheid vrij geheugen. Met deze
  180.           optie kan worden gekozen of deze informatie ook in de
  181.           WindowBalk moet worden getoond of niet.
  182. - DoubleClick    - Met deze optie kan de gebruiker instellen of het menu op
  183.           dubbelklik moet reageren of op een enkeleklik.
  184. - Colors    - In dit menu drie verschillende vooringestelde kleuren.
  185.           Een bevat de WorkBench 1.3 kleuren. De tweede de WB 2.0
  186.           kleuren. En de derde is makkelijk voor het maken van
  187.           hardcopys van het scherm (alles grijstinten met een witte
  188.           achtergrond).
  189.           De vierde optie in dit menu reset de kleuren zoals ze
  190.           waren tijdens het opstarten. Dit omt soms van pas omdat
  191.           zommige programma's ongevraagt de kleuren verschnjieren
  192.           en zo de "schade" kan worden hersteld.
  193.           Deze opties reageren alleen voor de eerste vier kleuren!
  194. - Prefs        - Roep het instellingen window op. Hiermee zijn het aantal
  195.           items per regel te selecteren en de gewenste breedte
  196.           van het window. Minimale breedte is 67, de maximale ligt
  197.           aan de scherm resolutie.
  198.           Omdat het oog ook wat wil is het voor de items gebruikte
  199.           font te selecteren. Wanneer u beschikt over de al eerder
  200.           genoemde ReqToolslibrary zelfs via een heus font-requester.
  201.           In dit window wordt ook de screenblanker ingesteld (zie
  202.           onder). De tijd is instelbaar tussen 1 en 9 minuten. In
  203.           het geval van een eigen "effect" kan er een file en
  204.           padnaam worden ingesteld. Worden deze foutief ingevoerd,
  205.           dan meldt het menu dit na selectie van "Okay".
  206.           Als laatste optie is er de naam van het Log-file. Hierin
  207.           worden de door het menu ondernomen acties bewaard. Een
  208.           voorbeeld is RAM:Menu.Log.
  209.  
  210.  
  211.  
  212. De verschillende SnapShot's
  213. ===========================
  214.  
  215. Zoals in de vorige paragraaf al duidelijk werd gebruikt het menu twee
  216. manieren om instellingen op te slaan.
  217. De eerste manier is de "General" of ook "algemene" snapshot. Hier betsaat
  218. er maar een van, en deze geldt voor alle menu's. Algemene instellingen over
  219. de screenblanker en de gewenste editor e.d. worden hier opgeslagen.
  220. De tweede manier is de "This menu" snapshot, oftewel de plaatselijke snap-
  221. shot. Hiervan kunnen er evenveel zijn als dat er menu's zijn en bevatten
  222. instellingen voor een specifiek menu. Hierdoor zijn instellingen als het
  223. aantal items per regel en windowposities per menu anders in te stellen.
  224. Mocht er voor een menu geen plaatselijke snapshot bestaan, dan wordt de 
  225. informatie gewoon uit de "General" snapshot gehaald.
  226. Mocht deze ook niet bestaan dan komt de informatie uit de "Default".
  227.  
  228.  
  229. De "General" Snapshot.
  230. ----------------------
  231.  
  232. De algemene snapshot wordt in de ENVARC: directory opgeslagen. Dit is de
  233. standaard directory van kickstart 2.0 (en hoger). De gebruiker van kick 1.3
  234. moet dus met een Assign in de StartUp-Sequence zorgen dat ENVARC: bestaat.
  235. Het filetje heet "HCMenu.prefs" en is een binaire file (pruts hier dus
  236. NOOIT in met een tekst editor o.i.d.!!!). Wanneer de file niet wordt gevonden
  237. gebruikt het menu de defaults. Op het ogenblik, zijn dat:
  238.  
  239. Menu:        S:Main.Menu
  240. Gadgets:    1 per regel.
  241. Breedte:    128 pixels.
  242. x/y coord:    x = 0 en y = 11.
  243. Zip coord:    x = 0 en y = 0.
  244. Prefs:        Drives stil    aan
  245.         '*'=WildCard    uit
  246.         Borders        aan
  247.         MenuEdit     aan
  248.         ScreenBlanker     uit
  249.         SelectorBar     aan
  250.         Alt+Escape    aan
  251.         WinBalkInfo     uit
  252.         DoubleClick     uit
  253. BlankTijd:    5 minuten.
  254. BlankFile:    (geen).
  255. LogFile:    (geen).
  256. Editor:        Ed
  257. FontNaam:    Topaz
  258. Fonthoogte:    8
  259. SubMenuKleur:    1
  260. ItemKleur:    1
  261.  
  262.  
  263. Nu is ook weergegeven wat er allemaal wordt bewaard in de snapshot
  264. file. De snapshot file wordt d.m.v. van een checksum beveiligd. Wanneer
  265. deze checksum niet klopt zal er een requester verschijnen. Door te kiezen
  266. voor de defaults speel je op safe.
  267. Helaas kunnen op die manier de favoriete instellingen verloren gaan. Door
  268. toch de ingeladen instellingen te gebruiken kan de computer vastlopen.
  269. Meestal gebeurt dit niet en kan de snapshot opniew worden weggeschreven
  270. (Checksum wordt weer opnieuw berekend!).
  271.  
  272.  
  273. De "This Menu" SnapShot
  274. -----------------------
  275.  
  276. De plaatselijke snapshot van een menu wordt altijd in dezelfde directory
  277. geschreven als het menu staat. De snapshot draagt ook dezelfde naam, maar
  278. is aangevuld met de extensie ".snap".
  279. Ook deze file is binair, doch niet beveiligd middels een checksum.
  280. De volgende instellingen worden opgeslagen: De menuposities, de menu-
  281. afmetingen, het aantal gadgets per regel en de kleurnummers van de items
  282. en de submenu's.
  283.  
  284.  
  285.  
  286. ScreenBlanker.
  287. ==============
  288.  
  289. Ik had het er zojuist al over. Een screenblanker is een programma dat de
  290. invoer van de gebruiker bekijkt. Is er na de ingestelde tijd nog geen
  291. invoer geweest, dan wordt het scherm zwart, of er komt een of ander effect.
  292. Dit omdat een tekst als deze in het scherm inbrandt als het een lange tijd
  293. zonder te bewegen op het scherm staat. Door het scherm zwart te maken wordt
  294. inbranden voorkomen en gaat de monitor stukken langer mee.
  295. De screenblanker van het menu "kijkt" naar de muis en naar het toetsenbord.
  296. Om de gebruiker niet te laten schrikken toont de blanker twee bewegende 
  297. blauwe balkjes (blauw is te zwak om in te branden). Door de invoer te
  298. hervatten (muis of toetsen) zal het normale scherm terug komen.
  299. Voor de programmeurs onder de gebruikers is het mogelijk om zelf een effect
  300. te programmeren. Zodra er namelijk een filenaam achter "effect" wordt
  301. ingetikt zal het menu deze file inladen en als de tijd daar is opstarten
  302. ipv zelf het scherm zwart te maken. Om de filenaam te verwijderen en zo de
  303. interne blanker terug te krijgen kan het makkelijkst op de filenaam worden
  304. geklikt (cursor verschijnt er) en dan RechterAmiga-X ingetoets worden.
  305.  
  306. Richtlijnen voor een zelfgemaakt effect:
  307.  
  308.     - Bij opstarten moet het effect meteen beginnen.
  309.     - Probeer het effect ook bij hervatte invoer te laten verdwijnen.
  310.         Een simpele muisdruk is echt niet voldoende.
  311.     - Laat andere tasks ook wat processortijd.
  312.     - De code *MOET* re-intrant zijn. (Tijdens het opstarten wordt de
  313.       externe blanker al ingeladen en later herhaald opgestart).
  314.       WAARSCHUWING: gecrunchde code is dat *niet*.
  315.  
  316. De instelbare tijd wordt steeds exacter naarmate deze groter wordt. Het
  317. menu controleerd alleen op minuten: tussen 12:10:55 en 12:11:01 zit voor
  318. het menu precies een minuut. (Het komt ook niet zo nauw met de tijd).
  319. De externe blanker wordt ingeladen m.b.v. LOADSEG. Wordt de externe blanker
  320. niet gevonden, dan wordt de interne gebruikt.
  321. Iedere keer dat de blanker nodig is, wordt deze met CREATEPROC opgestart.
  322. Wanneer een andere blanker wordt gekozen, of de blanker wordt uitgeschakelt
  323. dan wordt alle geheugen met UNLOADSEG vrijgegeven.
  324.  
  325.  
  326.  
  327. History.
  328. ========
  329.  
  330. Hier nog even de geschiedenis van het menu in vogelvlucht. Zo is ook een
  331. korte impressie te krijgen van wat er zoal aan is verspijkert in de tijd.
  332.  
  333. 1.0    -    Items. 6 op een rij. Window 640 pixels breed.
  334. 1.1    -    Loopt in eigen process. "Lichtval" voor de gadgets.
  335. 1.2    -    Submenu's m.b.v '@'. Diverse kleurinstellingen.
  336. 1.3    -    Aanpassing voor KS2.0 (sleepgadget). newcon := con (CLI).
  337. 1.4    -    CLI := Shell. Menu ligt beheerst boven op het scherm.
  338. 1.5.0    -    Eerste begin prefsmenu.
  339. 1.5.1    -    Laden en saven van snapshots. Requesters inbouwen.
  340. 1.5.2    -    KS2.0 NoClick. Borders naar keuze. Sizes window.
  341. 1.5.3    -    MenuEdit optie. Snapshot gebruikt ook x,y coordinaten.
  342. 1.5.4    -    Sizes window wordt values window. Welkom screenblanker!
  343. 1.5.5    -    Checksum voor snapshots. Default keuze in menubalk.
  344. 1.5.6    -    Screenblanker gebruikt LOADSEG. Meer compatible.
  345. 1.6.0    -    De selectbar is toegevoegd als ludiek item.
  346. 1.6.1    -    De Alt+Escape functie is toegevoegd.
  347. 1.6.2    -    Balkjes van screenblanker bewegen. (leuk he?)
  348. 1.6.3    -    Kleurenmenu werkt ook voor KS3.0. Enkele bugs verwijderd.
  349. 1.6.4    -    Geheugen indicatie nu decimaal.
  350. 1.7.0    -    Item-font selecteerbaar.
  351. 1.7.1    -    Custom-editor instelbaar.
  352. 1.7.2    -    Kick2.0 Zoom gadget ipv eigen sleep gadget.
  353. 1.7.3    -    Inter-process communicatie met HCMenuEditor. ReqTools.
  354. 1.7.4    -    Hernaamd: Haute-Cuisine Menu + Re-Style van de menubalk.
  355. 1.8.0    -    Item/SubMenu kleuren. Algemene/Plaatselijke snapshots.
  356. 1.8.1    -    WildStar+DoubleClick+WinBarInfo+tijd in Scherm/Window balk.
  357.  
  358.  
  359.  
  360. DankWoord.
  361. ==========
  362.  
  363. Hierbij wil ik M. de Reuver danken voor het melden van bugs en verbeteringen
  364. voor het HCMenu. Door zijn opmerkingen was het voor mij mogelijk om het
  365. menu op sommige plaatsen gebruikersvriendelijker te maken.
  366. Ook dank ik de heer M. van Aalten voor enkele ideen over hoe een menu
  367. zou moeten werken.
  368. Verder zou ik vanaf deze plaats de mensen willen bedanken die meegewerkt
  369. hebben aan de ontwikkeling van de tools MungWall en Enforcer. Dankzij deze
  370. twee debugging tools zijjn er een aantal vuiligheidjes verdwenen waardoor
  371. het HCMenu een stabiele aplicatie is geworden.
  372.  
  373.  
  374.  
  375.  
  376. Blablabla.
  377. ==========
  378.  
  379. Alle menu versies zijn Public Domain wat betekend dat iedereen het recht
  380. heeft om ze te kopieren en te gebruiken. De copyrights blijven in de
  381. handen van de auteur. Er zijn alleen enkele voorbehouden aan verbonden.
  382. Deze tekst moet het HCMenu begeleiden en zowel deze tekst als menu dienen
  383. onveranderd te blijven. Verder wijs ik alle aansprakelijkheid voor deze
  384. software van de hand en ben ik niet aansprakelijk voor welke schade dan ook
  385. die door mijn software zou kunnen zijn veroorzaakt zowel direct als
  386. indirect.
  387.  
  388. Voor bugs, ideeen, vragen o.i.d.ben ik op onderstaand adres te bereiken...
  389.  
  390.  
  391.  
  392.             E. Th. van den Oosterkamp
  393.             Vijverstraat 11
  394.             4103 XX Culemborg
  395.             Nederland.
  396.  
  397.  
  398. Dank voor de intresse enzo......ETO, the Unpredictable of CCCP.
  399.