(******************************************************************************) (* This MODULE is Public Domain. Copy me like a beast! *) (* Christian Ledermann *) (* W”lfelkofen 2 *) (* 84166 Adlkofen *) (******************************************************************************) (* *) (* Started: 20.12.92 03:54:30 *) (* Version: 20.12.89 01:284:12:54 *) (* *) (******************************************************************************) (* *) (* Diese Software ist ohne jede Garantie. Ich verspreche *) (* keinerlei Wartung und bernehme keine Verantwortung fr Sch„den die *) (* durch die Benutzung dieses Programmes entstehen. *) (* Jegliche Ersatzansprche lehne ich ab. *) (* *) (******************************************************************************) DEFINITION MODULE PopUpMenue; FROM SYSTEM IMPORT ADDRESS; (*********** Pop-Up Mens *******************) (* Ein PopUp Men besteht wie ein normales Men aus *) (* einem "Kasten" in dem bereinander mehrere Text- *) (* eintr„ge stehen. Der Kasten ist das Vaterobjekt *) (* und vom Typ GraphicBox, die Eintr„ge sind die *) (* Kinder und vom Typ GraphicString. Da dieses Pop-Up *) (* wie ein normales Men aussieht und auch so *) (* funktioniert sollte man sich an die allgemeinen *) (* Konvetionen halten, d.h. vor jedem Eintrag 2 Leer- *) (* zeichen fr das "Checked-H„kchen" freilassen und *) (* am Ende ein Leerzeichen. Bei Bedarf sind Trenn- *) (* striche und Eint„ge vom Typ 'disabled String' *) (* zul„ssig. Es hat sich eingebrgert das das Vater- *) (* objekt (die GraphicBox) den Objectstate shadowed *) (* hat, also schattiert ist. *) (* Dieses MODULE baut nicht auf den betriebssystem- *) (* eigenen Pop-Ups des AES 4.x auf und ist somit *) (* auch auf „lteren Rechnern einsetzbar. *) (******************************************************) PROCEDURE PopUp(x,y:INTEGER; PopTree:ADDRESS ) : INTEGER; (*********** Pop-Up Men zeichnen **********************) (* Zeichnet an der Stelle x,y ein Pop-Up Men auf den *) (* Bildshirm. PopTree ist die ADDRESSe des Baumes des *) (* Pop-Up Mens, zu ermitteln mit: *) (* AES.ResourceGetAddr(0,NummerDesMens,PopTree) *) (* Rckgabe : Das Feld das zum Verlassen des Mens *) (* angeklickt wurde oder -1 falls ausserhalb des Mens *) (* die Maustaste bet„tigt wurde. *) (* PopUp funktioniert mit allen TOS-Versionen ab 1.0 *) (* Achtung! Diese Funktion ruft nicht selbst„nddig *) (* WindowUpdate auf! Fr daraus resultierenden Bild- *) (* schirmmll sind Sie selber verantwortlich! *) (* Selbstverst„ndlich k”nnen Shortcuts im RSC definiert*) (* werden. Die Tastendrcke werden selbstt„tig den *) (* Meneintr„gen zugeordnet. *) (*******************************************************) (***************************************************************) (* Einige PROCEDUREn die den Umgang mit den Pop-Up Mens *) (* so vereinfachen wie es von den 'normalen' Mens gewohnt ist *) (***************************************************************) PROCEDURE PopUpMenuItemCheck(Tree : ADDRESS; Item :INTEGER; Check :BOOLEAN); (* Display or erase a check mark next to a pop-up menu item *) (* TRUE = checked, FALSE = NOT checked *) PROCEDURE PopUpMenuItemEnable (Tree: ADDRESS; Item:INTEGER; Enable: BOOLEAN); (* Enables or disables a pop-up menu item *) (* TRUE = enable, FALSE= disable *) END PopUpMenue.