home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
coders
/
jËzyki_programowania
/
oberon
/
system
/
amigaintuition.mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1977-12-31
|
13KB
|
385 lines
Syntax10.Scn.Fnt
Syntax10b.Scn.Fnt
MODULE AmigaIntuition;
IMPORT
SYSTEM, A:=AmigaBase, e:=AmigaExec, ie := AmigaInputEvent,
g:=AmigaGraphics, t:=AmigaTimer, u:=AmigaUtility;
CONST
intuitionName*="intuition.library";
autoScroll*=14;
windowSizing*=0;
windowDrag*=1;
windowDepth*=2;
windowClose*=3;
sizeBRight*=4;
sizeBBottom*=5;
refreshBits*={6,7};
smartRefresh*={};
simpleRefresh*=6;
superBitMap*=7;
otherRefresh*={6,7};
backDrop*=8;
reportMouse*=9;
gimmeZeroZero*=10;
borderless*=11;
activate*=12;
windowActive*=13;
inRequest*=14;
menuState*=15;
rmbTrap*=16;
noCareRefresh*=17;
windowRefresh*=24;
wbenchWindow*=25;
windowTicked*=26;
nwExtended*=18;
visitor*=27;
zoomed*=28;
hasZoom*=29;
oScanText*=1;
waDummy*=u.user+99;
waLeft*=waDummy+001H;
waTop*=waDummy+002H;
waWidth*=waDummy+003H;
waHeight*=waDummy+004H;
waDetailPen*=waDummy+005H;
waBlockPen*=waDummy+006H;
waIDCMP*=waDummy+007H;
waFlags*=waDummy+008H;
waGadgets*=waDummy+009H;
waCheckmark*=waDummy+00AH;
waTitle*=waDummy+00BH;
waScreenTitle*=waDummy+00CH;
waCustomScreen*=waDummy+00DH;
waSuperBitMap*=waDummy+00EH;
waMinWidth*=waDummy+00FH;
waMinHeight*=waDummy+010H;
waMaxWidth*=waDummy+011H;
waMaxHeight*=waDummy+012H;
waInnerWidth*=waDummy+013H;
waInnerHeight*=waDummy+014H;
waPubScreenName*=waDummy+015H;
waPubScreen*=waDummy+016H;
waPubScreenFallBack*=waDummy+017H;
waWindowName*=waDummy+018H;
waColors*=waDummy+019H;
waZoom*=waDummy+01AH;
waMouseQueue*=waDummy+01BH;
waBackFill*=waDummy+01CH;
waRptQueue*=waDummy+01DH;
waSizeGadget*=waDummy+01EH;
waDragBar*=waDummy+01FH;
waDepthGadget*=waDummy+020H;
waCloseGadget*=waDummy+021H;
waBackdrop*=waDummy+022H;
waReportMouse*=waDummy+023H;
waNoCareRefresh*=waDummy+024H;
waBorderless*=waDummy+025H;
waActivate*=waDummy+026H;
waRMBTrap*=waDummy+027H;
waWBenchWindow*=waDummy+028H;
waSimpleRefresh*=waDummy+029H;
waSmartRefresh*=waDummy+02AH;
waSizeBRight*=waDummy+02BH;
waSizeBBottom*=waDummy+02CH;
waAutoAdjust*=waDummy+02DH;
waGimmeZeroZero*=waDummy+02EH;
waMenuHelp*=waDummy+02FH;
sizeVerify*=0;
newSize*=1;
refreshWindow*=2;
mouseButtons*=3;
mouseMove*=4;
gadgetDown*=5;
gadgetUp*=6;
reqSet*=7;
menuPick*=8;
closeWindow*=9;
rawKey*=10;
reqVerify*=11;
reqClear*=12;
menuVerify*=13;
newPrefs*=14;
diskInserted*=15;
diskRemoved*=16;
wbenchMessage*=17;
activeWindow*=18;
inactiveWindow*=19;
deltaMove*=20;
vanillaKey*=21;
intuiTicks*=22;
idcmpUpdate*=23;
menuHelp*=24;
changeWindow*=25;
lonelyMessage*=31;
selectUp *= ie.lButton + ie.upPrefix;
selectDown *= ie.lButton;
menuUp *= ie.rButton + ie.upPrefix;
menuDown *= ie.rButton;
middleDown *= ie.mButton;
middleUp *= ie.mButton + ie.upPrefix;
altLeft *= {ie.lAlt};
altRight *= {ie.rAlt};
amigaLeft *= {ie.lCommand};
amigaRight *= {ie.rCommand};
amigaKeys *= amigaLeft + amigaRight;
cursorUp *= 04CH;
cursorLeft *= 04FH;
cursorRight *= 04EH;
cursorDown *= 04DH;
keyCodeQ *= 010H;
keyCodeZ *= 031H;
keyCodeX *= 032H;
keyCodeV *= 034H;
keyCodeB *= 035H;
keyCodeN *= 036H;
keyCodeM *= 037H;
keyCodeLess *= 038H;
keyCodeGreater *= 039H;
saDummy*=u.user+32;
saLeft*=saDummy+00001H;
saTop*=saDummy+00002H;
saWidth*=saDummy+00003H;
saHeight*=saDummy+00004H;
saDepth*=saDummy+00005H;
saDetailPen*=saDummy+00006H;
saBlockPen*=saDummy+00007H;
saTitle*=saDummy+00008H;
saColors*=saDummy+00009H;
saErrorCode*=saDummy+0000AH;
saFont*=saDummy+0000BH;
saSysFont*=saDummy+0000CH;
saType*=saDummy+0000DH;
saBitMap*=saDummy+0000EH;
saPubName*=saDummy+0000FH;
saPubSig*=saDummy+00010H;
saPubTask*=saDummy+00011H;
saDisplayID*=saDummy+00012H;
saDClip*=saDummy+00013H;
saOverscan*=saDummy+00014H;
saObsolete1*=saDummy+00015H;
saShowTitle*=saDummy+00016H;
saBehind*=saDummy+00017H;
saQuiet*=saDummy+00018H;
saAutoScroll*=saDummy+00019H;
saPens*=saDummy+0001AH;
saFullPalette*=saDummy+0001BH;
saInterleaved*=saDummy+00022H;
GadgetPtr*=LONGINT;
ImagePtr*=LONGINT;
MenuPtr*=LONGINT;
NewScreenPtr*=LONGINT;
NewWindowPtr*=LONGINT;
RequesterPtr*=LONGINT;
ScreenPtr*=LONGINT;
IntuiMessagePtr*=LONGINT;
WindowPtr*=LONGINT;
Window*=RECORD
nextWindow*:WindowPtr;
leftEdge*,topEdge*:INTEGER;
width*,height*:INTEGER;
mouseY*,mouseX*:INTEGER;
minWidth*,minHeight*:INTEGER;
maxWidth*,maxHeight*:INTEGER;
flags*:SET;
menuStrip*:MenuPtr;
title*:LONGINT;
firstRequest*:RequesterPtr;
dmRequest*:RequesterPtr;
reqCount*:INTEGER;
wScreen*:ScreenPtr;
rPort*:g.RastPortPtr;
borderLeft*,borderTop*,borderRight*,borderBottom*:SHORTINT;
borderRPort*:g.RastPortPtr;
firstGadget*:GadgetPtr;
parent*,descendant*:WindowPtr;
pointer*:LONGINT;
ptrHeight*:SHORTINT;
ptrWidth*:SHORTINT;
xOffset*,yOffset*:SHORTINT;
idcmpFlags*:SET;
userPort*:e.MsgPortPtr;
windowPort*:e.MsgPortPtr;
messageKey*:IntuiMessagePtr;
detailPen*,blockPen*:SHORTINT;
checkMark*:ImagePtr;
screenTitle*:LONGINT;
gzzMouseX*:INTEGER;
gzzMouseY*:INTEGER;
gzzWidth*:INTEGER;
gzzHeight*:INTEGER;
extData*:LONGINT;
userData*:LONGINT;
wLayer*:g.LayerPtr;
iFont*:g.TextFontPtr;
moreFlags*:INTEGER;
END;
Screen*=RECORD
nextScreen*:ScreenPtr;
firstWindow*:WindowPtr;
leftEdge*,topEdge*:INTEGER;
width*,height*:INTEGER;
mouseY*,mouseX*:INTEGER;
flags*:INTEGER;
title*:LONGINT;
defaultTitle*:LONGINT;
barHeight*,barVBorder*,barHBorder*,menuVBorder*,menuHBorder*:SHORTINT;
wBorTop*,wBorLeft*,wBorRight*,wBorBottom*:SHORTINT;
font*:g.TextAttrPtr;
viewPort*:g.ViewPort;
rastPort*:g.RastPort;
bitMap*:g.BitMap;
layerInfo*:g.LayerInfo;
firstGadget*:GadgetPtr;
detailPen*,blockPen*:SHORTINT;
saveColor0*:INTEGER;
barLayer*:g.LayerPtr;
extData*:LONGINT;
userData*:LONGINT;
END;
IntuiMessage*=RECORD
execMessage*:e.Message;
class*:LONGINT;
code*:INTEGER;
qualifier*:INTEGER;
iAddress*:LONGINT;
mouseX*,mouseY*:INTEGER;
time*:t.TimeVal;
idcmpWindow*:WindowPtr;
specialLink*:IntuiMessagePtr;
END;
EasyStruct*=RECORD
size*: LONGINT;
flags*: SET;
title*: LONGINT;
textFormat*: LONGINT;
gadgetFormat*: LONGINT;
END;
intuiBase:LONGINT;
intuiVersion-:INTEGER;
PROCEDURE ActivateWindow*(window:WindowPtr);
r:A.Regs;
BEGIN
r.a[0]:=window;
A.LibCall(intuiBase,-450,r);
END ActivateWindow;
PROCEDURE BeginRefresh*(window:WindowPtr);
r:A.Regs;
BEGIN
r.a[0]:=window;
A.LibCall(intuiBase,-354,r);
END BeginRefresh;
PROCEDURE CloseScreen*(screen:ScreenPtr);
r:A.Regs;
BEGIN
r.a[0]:=SYSTEM.VAL(LONGINT,screen);
A.LibCall(intuiBase,-66,r);
END CloseScreen;
PROCEDURE CloseWindow*(window:WindowPtr);
r:A.Regs;
BEGIN
r.a[0]:=SYSTEM.VAL(LONGINT,window);
A.LibCall(intuiBase,-72,r);
END CloseWindow;
PROCEDURE CurrentTime*(VAR seconds,micros:LONGINT);
r:A.Regs;
BEGIN
r.a[0]:=SYSTEM.ADR(seconds);
r.a[1]:=SYSTEM.ADR(micros);
A.LibCall(intuiBase,-84,r);
END CurrentTime;
PROCEDURE EndRefresh*(window:WindowPtr; complete:BOOLEAN);
r:A.Regs;
BEGIN
r.a[0]:=window;
r.d[0]:=SYSTEM.VAL(LONGINT, complete);
A.LibCall(intuiBase,-366,r);
END EndRefresh;
PROCEDURE OpenScreenTags*(newScreen:NewScreenPtr; VAR tagList:ARRAY OF u.TagItem):ScreenPtr;
r:A.Regs;
BEGIN
r.a[0]:=newScreen;
r.a[1]:=SYSTEM.ADR(tagList);
A.LibCall(intuiBase,-612,r);
RETURN SYSTEM.VAL(ScreenPtr,r.d[0]);
END OpenScreenTags;
PROCEDURE OpenWindowTags*(newWindow:NewWindowPtr; VAR tagList:ARRAY OF u.TagItem):WindowPtr;
r:A.Regs;
BEGIN
r.a[0]:=newWindow;
r.a[1]:=SYSTEM.ADR(tagList);
A.LibCall(intuiBase,-606,r);
RETURN SYSTEM.VAL(WindowPtr,r.d[0]);
END OpenWindowTags;
PROCEDURE ScreenToFront*(screen:ScreenPtr);
r:A.Regs;
BEGIN
r.a[0]:=SYSTEM.VAL(LONGINT,screen);
A.LibCall(intuiBase,-252,r);
END ScreenToFront;
PROCEDURE ClearPointer*(win:WindowPtr);
r:A.Regs;
BEGIN
r.a[0]:=win;
A.LibCall(intuiBase,-60,r);
END ClearPointer;
PROCEDURE LockPubScreen*(name: LONGINT):ScreenPtr;
r:A.Regs;
BEGIN
r.a[0]:=name;
A.LibCall(intuiBase,-510,r);
RETURN r.d[0];
END LockPubScreen;
PROCEDURE SetPointer*(win:WindowPtr; ptr:LONGINT; h,w,dx,dy:INTEGER);
r:A.Regs;
BEGIN
r.a[0]:=win;
r.a[1]:=ptr;
r.d[0]:=h;
r.d[1]:=w;
r.d[2]:=dx;
r.d[3]:=dy;
A.LibCall(intuiBase,-270,r);
END SetPointer;
PROCEDURE ShowTitle*(screen:ScreenPtr; showIt:BOOLEAN);
r:A.Regs;
BEGIN
r.a[0]:=SYSTEM.VAL(LONGINT,screen);
IF showIt THEN r.d[0]:=-1; ELSE r.d[0]:=0; END;
A.LibCall(intuiBase,-282,r);
END ShowTitle;
PROCEDURE UnlockPubScreen*(name: LONGINT; screen:ScreenPtr);
r:A.Regs;
BEGIN
r.a[0]:=name;
r.a[1]:=screen;
A.LibCall(intuiBase,-516,r);
END UnlockPubScreen;
PROCEDURE CallEasyRequest*(win: WindowPtr; Flags: SET; title, text, gadget: ARRAY OF CHAR): LONGINT;
r:A.Regs;
s: EasyStruct;
BEGIN
s.size:=SIZE(EasyStruct);
s.flags:=Flags;
s.title:=SYSTEM.ADR(title);
s.textFormat:=SYSTEM.ADR(text);
s.gadgetFormat:=SYSTEM.ADR(gadget);
r.a[0]:=win;
r.a[1]:=SYSTEM.ADR(s);
r.a[2]:=0;
r.a[3]:=0;
A.LibCall(intuiBase,-588,r);
RETURN r.d[0];
END CallEasyRequest;
PROCEDURE Init;
LibraryPtr=POINTER TO e.Library;
lib:LibraryPtr;
BEGIN
intuiBase:=e.OpenLibrary(intuitionName,37);
IF intuiBase=0 THEN HALT(99) END;
lib:=SYSTEM.VAL(LibraryPtr,intuiBase);
intuiVersion:=lib.version;
END Init;
BEGIN
Init;
END AmigaIntuition.