3. De WIMP - kapstok

Voordat ik met meer ingewikkelde zaken als 'Template'- en 'Messages'- bestanden ga beginnen, eerst een voorbeeld van een leeg WIMP programma, een soort kapstok waar we onze volgende programma's aan kunnen ophangen. Dit programma doet niets, maar in de opdrachten worden 'Templates' en 'Messages' toegevoegd, uiteraard binnen het programma passend. Voordat ik echter de casussen ga definiëren eerst een uitleg over de diverse gedeelten van de code.

Regels 60-100 (Initialisatie)

Hier vindt u de initialisatie-code van ons programma, hier worden diverse buffers en variabelen gedeclareerd en wordt ons programma aangemeld bij de WIMP. Let hierbij op dat door middel van 'DIM" geclaimde geheugenruimte pas weer wordt vrijgegeven na het afsluiten van ons programma.

Regels 120-320 ('Poll' lus)

Dit is het centrale (en dus meest belangrijke) deel van de applicatie. Vanuit dit gedeelte wordt de WIMP aangeroepen en in dit gedeelte komen de reacties van de WIMP terug. Het is van groot belang om ervoor te zorgen dat we zo snel als mogelijk weer in deze lus terecht komen, functies (of procedures) die aangeroepen worden mogen dan ook maar enkele milliseconden duren. In dit voorbeeld wordt nog geen ingewikkelde code uitgevoerd, dat komt vanzelf in één van de casussen.

Regels 340-360 (Afsluiten)

Hier de code voor het afsluiten van de applicatie, ook hier gebeuren nog geen wereldschokkende dingen. Let op dat bij gebruik van stukken geheugen die niet uit het applicatie geheugen komen (geDIMt geheugen) deze netjes aan RISC OS moeten worden teruggegeven.

Opdrachten

De eerste opdrachten bevatten slechts een beperkt aantal verschillende delen van een normale WIMP applicatie, gedurende de cursus zullen deze echter uitgebreid behandeld worden.

Opdracht 1

Maak een applicatie die een symbool op de iconbar zet. Als er met de linker muisknop op het symbool geklikt wordt dan een piep (BASIC opdracht 'VDU 7') laten klinken. Als er op de andere muisknoppen geklikt word dan moet het programma gestopt worden.

Opdracht 2

Breid de applicatie uit de eerste opdracht uit zodat er een venster geopend wordt als er geklikt wordt met de linker muisknop, als er op de rechter muisknop gedrukt wordt dan een piep laten klinken.

Opdracht 3

Voeg aan onze applicatie een klein menu toe met de optie 'Quit' (of 'Stop').

Er mag bij bovenstaande opdrachten gebruik gemaakt worden van de WIMP libraries die te vinden zijn op http://www.dune.demon.nl/wimp/