home *** CD-ROM | disk | FTP | other *** search
- Onderwerp: Haute-Cuisine Menu V1.8.1
- Door: E. Th. van den Oosterkamp.
- ReleaseDate: 27-Nov-94
- Systeemeisen: Geen. Menu houdt rekening met KickStart versies.
-
-
-
- Introductie.
- ============
-
- Het HCMenu is een interactief menu, dat vooral bedoeld is om programma's
- snel en gemakkelijk op te kunnen starten. Ik gebruik dit menu sinds oktober
- 1992 en sindsdien is er erg veel verbeterd (zeg ik zelf).
- Ik gebruik dit menu omdat ik de Workbench van Commodore niet kon waarderen.
- Nu onder versie 2.0 is hij erg vooruit gegaan, maar ik vind een menu nog
- steeds stukken handiger (zeg ik alweer zelf).
- Nu ken ik mensen die zweren bij een keymap (jeweetwel F1 - ASM-ONE, F2 -
- DeluxePaint , F3 - ....) maar daarvoor kocht ik geen Amiga (MVA!).
- Ondanks de systeem eisen is het menu eerder ontworpen voor KS2.0 (en hoger).
- Ik ondersteun de lagere Kickstarts alleen maar zodat disks waar iemand het
- HCMenu op heeft geinstalleerd ook bij die gebruikers werken met een oude KS.
- Een aantal (minder belangrijke) functies zullen onder KS1.3 niet werken.
-
-
-
- Beschrijving.
- =============
-
- Het HCMenu gebruikt een zgn "menufile". Dit is niets anders dan een
- tekstfiletje waarin de namen van de gebruikte gadgets staan en dan sequences
- van verschillende commando's behorende bij dat gadget. Het is ook mogelijk
- om vanuit een menu een volgend menu op te roepen. Een soort van submenu dus
- maar de gehele hiearchie is zelf te bepalen, dus je zou ook een menu
- "omhoog" kunnen gaan.
- Het menu kent ook een soort snapshot functie. Allerlei handige zaken
- (coordinaten, startmenu, indeling) worden weggeschreven in een (binaire)
- file. Bij het opstarten wordt deze ingeladen en het menu juist ingeteld.
-
-
-
- De Menu-File.
- =============
-
- Omdat het menu in eerste instantie alleen voor eigen gebruik was bedoeld, heb
- ik geen scripttaal ontworpen, maar steekt een menufile simpel in elkaar
- (zoals ikzelf...). Natuurlijk verkleint hierdoor de controleerbaarheid voor
- mijn menu, maar een menufile is nu niet groter dan nodig.
-
- Om het maar in een keer te zeggen: Eerst komen regel voor regel alle
- itemnamen in de file. Deze namen komen gecentreerd in het gadget te staan,
- zodat de gebruiker weet wat het gadget zal gaan doen (mits logische namen
- gekozen.....) Dan komt op een regel het procent (%) teken. Dit betenkend
- niets meer dan: "einde namen, begin commando's". Hier komen IN DEZELFDE
- VOLGORDE!! de opdrachten die bij de items horen.
-
- Een voorbeeldje:
-
- ----------------------------------------------------------------------------
- ToolMenu
- ASM-One
- DPaint
- DirOpus
-
- GamesMenu
- Niets
- MenuEdit
- %
- @dh1:tools/tool.menu
- dh1:assembler/asm-one
- run dh1:grafiek/dpaint ;cd dh1:iff
- dh1:tools/diropus
- @dh1:games/games.menu
-
- run ed s:main.menu
- ----------------------------------------------------------------------------
-
- Nu is staan er in het bovenstaande voorbeeldje enkele speciale karakters. Ik
- bedoel de "@" en de ";". De ";" werkt als een "command-seperator" oftwel een
- commando scheider. Zo kun je met een item (na elkaar) verschillende
- opdrachten geven, zoals in dit geval het opzoeken van een directory.
- Het karakter "@" betekend dat er een submenu dient te worden nageladen, en
- de filenaam van het menu volgt direct op het apestaartje. Het gebruik van
- een command seperator heeft hier natuurlijk geen zin.
-
- Enkele regels voor de Menufile:
-
- - Altijd maar een ding op een regel. item-naam/zoekpad/commando etc.
- - Een spatie voor of na een itemnaam zorgt ervoor dat deze niet mooi wordt
- gecentreerd omdat de spatie gewoon als deel van de naam meedoet. Alles wat
- op die regel staat wordt de itemnaam. Zorg zelf dat de naam ook werkelijk
- in het item past.
- - Zoekpaden, commando's en speciale tekens MOETEN op de 1e plaats van een
- regel staan (behalve ";" natuurlijk). Dit geldt ook voor de zoekpaden en
- namen van de op te starten commando's.
-
- Het is mogelijk om een item leeg te houden. Dan moet gewoon de regel van
- de itemnaam worden leeg gehouden. Bij de uit te voeren commando's hoeft
- hier geen rekening mee te worden gehouden. Er hoeft voor dit niet gebruikte
- item geen lege ruimte te worden aangebracht. Let er wel op dat de lege
- regel echt leeg is en er geen verloren spatie of tab staat.
- Ook kan in een item een tekst worden geplaats zonder dat het item enige
- functie heeft. Zet in dit geval (zoals bij het "Niets" gadget) een lege
- regel bij de opdrachten. Ook hier oppassen voor spaties en tabs.
-
- NB: Mocht dit bovenstaande toch te lastig zijn, dan verwijs ik naar de
- HCMenuEditor, een programma dat bedoeld is om interactief een menu
- samen te stellen.
-
-
-
- Menu functies.
- ==============
-
- Het klink waarschijnlijk erg raar, maar het menu heeft een menu. Ik doel
- hierbij op een menubalk bovenaan het scherm. Ik ga nu een voor een de
- menuitems langs in de volgorde zoals ze staan.
-
- het project menu.
-
- - Open Menu - Opent een ReqTools filerequester waarmee de gelukkige
- gebruiker een menufile kan selecteren.
- - Edit Menu - Door deze optie te selecteren zal het menu de editor op-
- starten met de actuele menufile. Het effect is het
- zelfde als een druk op het (optionele) MenuEdit gadget.
- Met de optie "Prefs" uit het Prefs menu kan de editor
- worden ingesteld. Default is "Ed".
- - NewShell - Opent een shell window.
- - Load Snapshot - Inladen van eerder gemaakte instellingen. Er zijn drie
- mogenlijkheden: General, This Menu en Default. De laatste
- zal de standaard instellingen activeren. Met "This Menu"
- en "General" zijn gebruikers instellingen te activeren.
- Hierover meer in de volgende paragraaf.
- - Save Snapshot - Het Opslaan van instellingen. Hier zijn mar twee mogelijk-
- heden nl "general" en "This Menu". Voor een uitgebreidere
- uitleg: zie volgende paragraaf.
- - About - Informatie over het programma, de copyrughts e.d.
- - Quit - Het menu sluit en al het geheugen zal worden vrijgegeven.
- Dit kan ook met het close gadget.
-
- het prefs menu.
-
- - NoClick - Deze functie kan alleen onder Kickstart2.0 of hoger
- worden geselecteerd. Hij schakeld het klikken van alle
- drives aan/uit. Dit vertraagt wel het "happen" van een
- nieuwe diskette maar daar leef ik liever mee dan dat
- ergerlijke geklepper.
- - '*'=WildCard - Ook deze functie werkt alleen onder kickstart2.0 en
- hoger. Bij het gebruik van Shell of CLI (en ook bij
- sommige filerequesters) kan de gebruiker jokers gebruiken
- voor het specificeren van bepaalde files in een directory.
- Normaalgesproken wordt bijvoorbeeld "#?.info" gebruikt om
- alle files eindigend op ".info" te specificeren.
- Met deze optie kan de gebruiker "#?" vervangen voor het
- sterretje ("*") zoals dit in de MS-DOS wereld gebruikelijk
- is. Deze optie geldt voor de GEHELE computer, en niet
- alleen voor het HCMenu.
- - Border - Dit is een kwestie van smaak. Wilt u een 3D-look
- vierkantje rond de items of liever niet? Bij sommige
- kleurinstellingen (WB 2.0) prachtig, bij andere minder.
- De "lichtval" komt altijd van linksboven. Hoe de kleuren
- ook gekozen worden.
- - MenuEdit - Deze optie maakt dat er een laatste gadget bijkomt. Door
- op dit gadget te klikken laadt het menu de editor "ed" in
- en zorgt ervoor dat deze de actuele menufile inlaad. Nu is
- op elk moment met een druk op de knop het menu te
- veranderen.
- - Blanker - Het in of uitgeschakeld zijn van de screenblanker. Wanneer
- er geen filenaam is gekozen in het "values" window, dan
- wordt automatisch de interne screenblanker gebruikt.
- - SelectBar - De selectbar is een balk die met de cursortoetsen kan
- worden bediend. Met de balk is een bepaald gadget te
- selecteren. Met <enter> wordt het geselecteerde gadget
- geactiveerd.
- - Alt + Esc - Door een druk op een van beide <Alt> toetsen samen met de
- <Esc> toets, activeert het menu. Tijdens de activering
- zal het window bovenop komen te liggen, en zal de work-
- bench naar voren komen.
- - WinBarInfo - In de schermbalk wordt de tijd weergegeven samen met wat
- informatie over de hoeveelheid vrij geheugen. Met deze
- optie kan worden gekozen of deze informatie ook in de
- WindowBalk moet worden getoond of niet.
- - DoubleClick - Met deze optie kan de gebruiker instellen of het menu op
- dubbelklik moet reageren of op een enkeleklik.
- - Colors - In dit menu drie verschillende vooringestelde kleuren.
- Een bevat de WorkBench 1.3 kleuren. De tweede de WB 2.0
- kleuren. En de derde is makkelijk voor het maken van
- hardcopys van het scherm (alles grijstinten met een witte
- achtergrond).
- De vierde optie in dit menu reset de kleuren zoals ze
- waren tijdens het opstarten. Dit omt soms van pas omdat
- zommige programma's ongevraagt de kleuren verschnjieren
- en zo de "schade" kan worden hersteld.
- Deze opties reageren alleen voor de eerste vier kleuren!
- - Prefs - Roep het instellingen window op. Hiermee zijn het aantal
- items per regel te selecteren en de gewenste breedte
- van het window. Minimale breedte is 67, de maximale ligt
- aan de scherm resolutie.
- Omdat het oog ook wat wil is het voor de items gebruikte
- font te selecteren. Wanneer u beschikt over de al eerder
- genoemde ReqToolslibrary zelfs via een heus font-requester.
- In dit window wordt ook de screenblanker ingesteld (zie
- onder). De tijd is instelbaar tussen 1 en 9 minuten. In
- het geval van een eigen "effect" kan er een file en
- padnaam worden ingesteld. Worden deze foutief ingevoerd,
- dan meldt het menu dit na selectie van "Okay".
- Als laatste optie is er de naam van het Log-file. Hierin
- worden de door het menu ondernomen acties bewaard. Een
- voorbeeld is RAM:Menu.Log.
-
-
-
- De verschillende SnapShot's
- ===========================
-
- Zoals in de vorige paragraaf al duidelijk werd gebruikt het menu twee
- manieren om instellingen op te slaan.
- De eerste manier is de "General" of ook "algemene" snapshot. Hier betsaat
- er maar een van, en deze geldt voor alle menu's. Algemene instellingen over
- de screenblanker en de gewenste editor e.d. worden hier opgeslagen.
- De tweede manier is de "This menu" snapshot, oftewel de plaatselijke snap-
- shot. Hiervan kunnen er evenveel zijn als dat er menu's zijn en bevatten
- instellingen voor een specifiek menu. Hierdoor zijn instellingen als het
- aantal items per regel en windowposities per menu anders in te stellen.
- Mocht er voor een menu geen plaatselijke snapshot bestaan, dan wordt de
- informatie gewoon uit de "General" snapshot gehaald.
- Mocht deze ook niet bestaan dan komt de informatie uit de "Default".
-
-
- De "General" Snapshot.
- ----------------------
-
- De algemene snapshot wordt in de ENVARC: directory opgeslagen. Dit is de
- standaard directory van kickstart 2.0 (en hoger). De gebruiker van kick 1.3
- moet dus met een Assign in de StartUp-Sequence zorgen dat ENVARC: bestaat.
- Het filetje heet "HCMenu.prefs" en is een binaire file (pruts hier dus
- NOOIT in met een tekst editor o.i.d.!!!). Wanneer de file niet wordt gevonden
- gebruikt het menu de defaults. Op het ogenblik, zijn dat:
-
- Menu: S:Main.Menu
- Gadgets: 1 per regel.
- Breedte: 128 pixels.
- x/y coord: x = 0 en y = 11.
- Zip coord: x = 0 en y = 0.
- Prefs: Drives stil aan
- '*'=WildCard uit
- Borders aan
- MenuEdit aan
- ScreenBlanker uit
- SelectorBar aan
- Alt+Escape aan
- WinBalkInfo uit
- DoubleClick uit
- BlankTijd: 5 minuten.
- BlankFile: (geen).
- LogFile: (geen).
- Editor: Ed
- FontNaam: Topaz
- Fonthoogte: 8
- SubMenuKleur: 1
- ItemKleur: 1
-
-
- Nu is ook weergegeven wat er allemaal wordt bewaard in de snapshot
- file. De snapshot file wordt d.m.v. van een checksum beveiligd. Wanneer
- deze checksum niet klopt zal er een requester verschijnen. Door te kiezen
- voor de defaults speel je op safe.
- Helaas kunnen op die manier de favoriete instellingen verloren gaan. Door
- toch de ingeladen instellingen te gebruiken kan de computer vastlopen.
- Meestal gebeurt dit niet en kan de snapshot opniew worden weggeschreven
- (Checksum wordt weer opnieuw berekend!).
-
-
- De "This Menu" SnapShot
- -----------------------
-
- De plaatselijke snapshot van een menu wordt altijd in dezelfde directory
- geschreven als het menu staat. De snapshot draagt ook dezelfde naam, maar
- is aangevuld met de extensie ".snap".
- Ook deze file is binair, doch niet beveiligd middels een checksum.
- De volgende instellingen worden opgeslagen: De menuposities, de menu-
- afmetingen, het aantal gadgets per regel en de kleurnummers van de items
- en de submenu's.
-
-
-
- ScreenBlanker.
- ==============
-
- Ik had het er zojuist al over. Een screenblanker is een programma dat de
- invoer van de gebruiker bekijkt. Is er na de ingestelde tijd nog geen
- invoer geweest, dan wordt het scherm zwart, of er komt een of ander effect.
- Dit omdat een tekst als deze in het scherm inbrandt als het een lange tijd
- zonder te bewegen op het scherm staat. Door het scherm zwart te maken wordt
- inbranden voorkomen en gaat de monitor stukken langer mee.
- De screenblanker van het menu "kijkt" naar de muis en naar het toetsenbord.
- Om de gebruiker niet te laten schrikken toont de blanker twee bewegende
- blauwe balkjes (blauw is te zwak om in te branden). Door de invoer te
- hervatten (muis of toetsen) zal het normale scherm terug komen.
- Voor de programmeurs onder de gebruikers is het mogelijk om zelf een effect
- te programmeren. Zodra er namelijk een filenaam achter "effect" wordt
- ingetikt zal het menu deze file inladen en als de tijd daar is opstarten
- ipv zelf het scherm zwart te maken. Om de filenaam te verwijderen en zo de
- interne blanker terug te krijgen kan het makkelijkst op de filenaam worden
- geklikt (cursor verschijnt er) en dan RechterAmiga-X ingetoets worden.
-
- Richtlijnen voor een zelfgemaakt effect:
-
- - Bij opstarten moet het effect meteen beginnen.
- - Probeer het effect ook bij hervatte invoer te laten verdwijnen.
- Een simpele muisdruk is echt niet voldoende.
- - Laat andere tasks ook wat processortijd.
- - De code *MOET* re-intrant zijn. (Tijdens het opstarten wordt de
- externe blanker al ingeladen en later herhaald opgestart).
- WAARSCHUWING: gecrunchde code is dat *niet*.
-
- De instelbare tijd wordt steeds exacter naarmate deze groter wordt. Het
- menu controleerd alleen op minuten: tussen 12:10:55 en 12:11:01 zit voor
- het menu precies een minuut. (Het komt ook niet zo nauw met de tijd).
- De externe blanker wordt ingeladen m.b.v. LOADSEG. Wordt de externe blanker
- niet gevonden, dan wordt de interne gebruikt.
- Iedere keer dat de blanker nodig is, wordt deze met CREATEPROC opgestart.
- Wanneer een andere blanker wordt gekozen, of de blanker wordt uitgeschakelt
- dan wordt alle geheugen met UNLOADSEG vrijgegeven.
-
-
-
- History.
- ========
-
- Hier nog even de geschiedenis van het menu in vogelvlucht. Zo is ook een
- korte impressie te krijgen van wat er zoal aan is verspijkert in de tijd.
-
- 1.0 - Items. 6 op een rij. Window 640 pixels breed.
- 1.1 - Loopt in eigen process. "Lichtval" voor de gadgets.
- 1.2 - Submenu's m.b.v '@'. Diverse kleurinstellingen.
- 1.3 - Aanpassing voor KS2.0 (sleepgadget). newcon := con (CLI).
- 1.4 - CLI := Shell. Menu ligt beheerst boven op het scherm.
- 1.5.0 - Eerste begin prefsmenu.
- 1.5.1 - Laden en saven van snapshots. Requesters inbouwen.
- 1.5.2 - KS2.0 NoClick. Borders naar keuze. Sizes window.
- 1.5.3 - MenuEdit optie. Snapshot gebruikt ook x,y coordinaten.
- 1.5.4 - Sizes window wordt values window. Welkom screenblanker!
- 1.5.5 - Checksum voor snapshots. Default keuze in menubalk.
- 1.5.6 - Screenblanker gebruikt LOADSEG. Meer compatible.
- 1.6.0 - De selectbar is toegevoegd als ludiek item.
- 1.6.1 - De Alt+Escape functie is toegevoegd.
- 1.6.2 - Balkjes van screenblanker bewegen. (leuk he?)
- 1.6.3 - Kleurenmenu werkt ook voor KS3.0. Enkele bugs verwijderd.
- 1.6.4 - Geheugen indicatie nu decimaal.
- 1.7.0 - Item-font selecteerbaar.
- 1.7.1 - Custom-editor instelbaar.
- 1.7.2 - Kick2.0 Zoom gadget ipv eigen sleep gadget.
- 1.7.3 - Inter-process communicatie met HCMenuEditor. ReqTools.
- 1.7.4 - Hernaamd: Haute-Cuisine Menu + Re-Style van de menubalk.
- 1.8.0 - Item/SubMenu kleuren. Algemene/Plaatselijke snapshots.
- 1.8.1 - WildStar+DoubleClick+WinBarInfo+tijd in Scherm/Window balk.
-
-
-
- DankWoord.
- ==========
-
- Hierbij wil ik M. de Reuver danken voor het melden van bugs en verbeteringen
- voor het HCMenu. Door zijn opmerkingen was het voor mij mogelijk om het
- menu op sommige plaatsen gebruikersvriendelijker te maken.
- Ook dank ik de heer M. van Aalten voor enkele ideen over hoe een menu
- zou moeten werken.
- Verder zou ik vanaf deze plaats de mensen willen bedanken die meegewerkt
- hebben aan de ontwikkeling van de tools MungWall en Enforcer. Dankzij deze
- twee debugging tools zijjn er een aantal vuiligheidjes verdwenen waardoor
- het HCMenu een stabiele aplicatie is geworden.
-
-
-
-
- Blablabla.
- ==========
-
- Alle menu versies zijn Public Domain wat betekend dat iedereen het recht
- heeft om ze te kopieren en te gebruiken. De copyrights blijven in de
- handen van de auteur. Er zijn alleen enkele voorbehouden aan verbonden.
- Deze tekst moet het HCMenu begeleiden en zowel deze tekst als menu dienen
- onveranderd te blijven. Verder wijs ik alle aansprakelijkheid voor deze
- software van de hand en ben ik niet aansprakelijk voor welke schade dan ook
- die door mijn software zou kunnen zijn veroorzaakt zowel direct als
- indirect.
-
- Voor bugs, ideeen, vragen o.i.d.ben ik op onderstaand adres te bereiken...
-
-
-
- E. Th. van den Oosterkamp
- Vijverstraat 11
- 4103 XX Culemborg
- Nederland.
-
-
- Dank voor de intresse enzo......ETO, the Unpredictable of CCCP.
-