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 >
Oberon Text  |  1977-12-31  |  13KB  |  385 lines

  1. Syntax10.Scn.Fnt
  2. Syntax10b.Scn.Fnt
  3. MODULE AmigaIntuition;
  4. IMPORT
  5.  SYSTEM, A:=AmigaBase, e:=AmigaExec, ie := AmigaInputEvent,
  6.  g:=AmigaGraphics, t:=AmigaTimer, u:=AmigaUtility;
  7. CONST
  8.  intuitionName*="intuition.library";
  9.  autoScroll*=14;
  10.  windowSizing*=0;
  11.  windowDrag*=1;
  12.  windowDepth*=2;
  13.  windowClose*=3;
  14.  sizeBRight*=4;
  15.  sizeBBottom*=5;
  16.  refreshBits*={6,7};
  17.  smartRefresh*={};
  18.  simpleRefresh*=6;
  19.  superBitMap*=7;
  20.  otherRefresh*={6,7};
  21.  backDrop*=8;
  22.  reportMouse*=9;
  23.  gimmeZeroZero*=10;
  24.  borderless*=11;
  25.  activate*=12;
  26.  windowActive*=13;
  27.  inRequest*=14;
  28.  menuState*=15;
  29.  rmbTrap*=16;
  30.  noCareRefresh*=17;
  31.  windowRefresh*=24;
  32.  wbenchWindow*=25;
  33.  windowTicked*=26;
  34.  nwExtended*=18;
  35.  visitor*=27;
  36.  zoomed*=28;
  37.  hasZoom*=29;
  38.  oScanText*=1;
  39.  waDummy*=u.user+99;
  40.  waLeft*=waDummy+001H;
  41.  waTop*=waDummy+002H;
  42.  waWidth*=waDummy+003H;
  43.  waHeight*=waDummy+004H;
  44.  waDetailPen*=waDummy+005H;
  45.  waBlockPen*=waDummy+006H;
  46.  waIDCMP*=waDummy+007H;
  47.  waFlags*=waDummy+008H;
  48.  waGadgets*=waDummy+009H;
  49.  waCheckmark*=waDummy+00AH;
  50.  waTitle*=waDummy+00BH;
  51.  waScreenTitle*=waDummy+00CH;
  52.  waCustomScreen*=waDummy+00DH;
  53.  waSuperBitMap*=waDummy+00EH;
  54.  waMinWidth*=waDummy+00FH;
  55.  waMinHeight*=waDummy+010H;
  56.  waMaxWidth*=waDummy+011H;
  57.  waMaxHeight*=waDummy+012H;
  58.  waInnerWidth*=waDummy+013H;
  59.  waInnerHeight*=waDummy+014H;
  60.  waPubScreenName*=waDummy+015H;
  61.  waPubScreen*=waDummy+016H;
  62.  waPubScreenFallBack*=waDummy+017H;
  63.  waWindowName*=waDummy+018H;
  64.  waColors*=waDummy+019H;
  65.  waZoom*=waDummy+01AH;
  66.  waMouseQueue*=waDummy+01BH;
  67.  waBackFill*=waDummy+01CH;
  68.  waRptQueue*=waDummy+01DH;
  69.  waSizeGadget*=waDummy+01EH;
  70.  waDragBar*=waDummy+01FH;
  71.  waDepthGadget*=waDummy+020H;
  72.  waCloseGadget*=waDummy+021H;
  73.  waBackdrop*=waDummy+022H;
  74.  waReportMouse*=waDummy+023H;
  75.  waNoCareRefresh*=waDummy+024H;
  76.  waBorderless*=waDummy+025H;
  77.  waActivate*=waDummy+026H;
  78.  waRMBTrap*=waDummy+027H;
  79.  waWBenchWindow*=waDummy+028H;
  80.  waSimpleRefresh*=waDummy+029H;
  81.  waSmartRefresh*=waDummy+02AH;
  82.  waSizeBRight*=waDummy+02BH;
  83.  waSizeBBottom*=waDummy+02CH;
  84.  waAutoAdjust*=waDummy+02DH;
  85.  waGimmeZeroZero*=waDummy+02EH;
  86.  waMenuHelp*=waDummy+02FH;
  87.  sizeVerify*=0;
  88.  newSize*=1;
  89.  refreshWindow*=2;
  90.  mouseButtons*=3;
  91.  mouseMove*=4;
  92.  gadgetDown*=5;
  93.  gadgetUp*=6;
  94.  reqSet*=7;
  95.  menuPick*=8;
  96.  closeWindow*=9;
  97.  rawKey*=10;
  98.  reqVerify*=11;
  99.  reqClear*=12;
  100.  menuVerify*=13;
  101.  newPrefs*=14;
  102.  diskInserted*=15;
  103.  diskRemoved*=16;
  104.  wbenchMessage*=17;
  105.  activeWindow*=18;
  106.  inactiveWindow*=19;
  107.  deltaMove*=20;
  108.  vanillaKey*=21;
  109.  intuiTicks*=22;
  110.  idcmpUpdate*=23;
  111.  menuHelp*=24;
  112.  changeWindow*=25;
  113.  lonelyMessage*=31;
  114.   selectUp       *= ie.lButton + ie.upPrefix;
  115.   selectDown     *= ie.lButton;
  116.   menuUp         *= ie.rButton + ie.upPrefix;
  117.   menuDown       *= ie.rButton;
  118.   middleDown     *= ie.mButton;
  119.   middleUp       *= ie.mButton + ie.upPrefix;
  120.   altLeft        *= {ie.lAlt};
  121.   altRight       *= {ie.rAlt};
  122.   amigaLeft      *= {ie.lCommand};
  123.   amigaRight     *= {ie.rCommand};
  124.   amigaKeys      *= amigaLeft + amigaRight;
  125.   cursorUp       *= 04CH;
  126.   cursorLeft     *= 04FH;
  127.   cursorRight    *= 04EH;
  128.   cursorDown     *= 04DH;
  129.   keyCodeQ       *= 010H;
  130.   keyCodeZ       *= 031H;
  131.   keyCodeX       *= 032H;
  132.   keyCodeV       *= 034H;
  133.   keyCodeB       *= 035H;
  134.   keyCodeN       *= 036H;
  135.   keyCodeM       *= 037H;
  136.   keyCodeLess    *= 038H;
  137.   keyCodeGreater *= 039H;
  138.  saDummy*=u.user+32;
  139.  saLeft*=saDummy+00001H;
  140.  saTop*=saDummy+00002H;
  141.  saWidth*=saDummy+00003H;
  142.  saHeight*=saDummy+00004H;
  143.  saDepth*=saDummy+00005H;
  144.  saDetailPen*=saDummy+00006H;
  145.  saBlockPen*=saDummy+00007H;
  146.  saTitle*=saDummy+00008H;
  147.  saColors*=saDummy+00009H;
  148.  saErrorCode*=saDummy+0000AH;
  149.  saFont*=saDummy+0000BH;
  150.  saSysFont*=saDummy+0000CH;
  151.  saType*=saDummy+0000DH;
  152.  saBitMap*=saDummy+0000EH;
  153.  saPubName*=saDummy+0000FH;
  154.  saPubSig*=saDummy+00010H;
  155.  saPubTask*=saDummy+00011H;
  156.  saDisplayID*=saDummy+00012H;
  157.  saDClip*=saDummy+00013H;
  158.  saOverscan*=saDummy+00014H;
  159.  saObsolete1*=saDummy+00015H;
  160.  saShowTitle*=saDummy+00016H;
  161.  saBehind*=saDummy+00017H;
  162.  saQuiet*=saDummy+00018H;
  163.  saAutoScroll*=saDummy+00019H;
  164.  saPens*=saDummy+0001AH;
  165.  saFullPalette*=saDummy+0001BH;
  166.  saInterleaved*=saDummy+00022H;
  167.  GadgetPtr*=LONGINT;
  168.  ImagePtr*=LONGINT;
  169.  MenuPtr*=LONGINT;
  170.  NewScreenPtr*=LONGINT;
  171.  NewWindowPtr*=LONGINT;
  172.  RequesterPtr*=LONGINT;
  173.  ScreenPtr*=LONGINT;
  174.  IntuiMessagePtr*=LONGINT;
  175.  WindowPtr*=LONGINT;
  176.  Window*=RECORD
  177.   nextWindow*:WindowPtr;
  178.   leftEdge*,topEdge*:INTEGER;
  179.   width*,height*:INTEGER;
  180.   mouseY*,mouseX*:INTEGER;
  181.   minWidth*,minHeight*:INTEGER;
  182.   maxWidth*,maxHeight*:INTEGER;
  183.   flags*:SET;
  184.   menuStrip*:MenuPtr;
  185.   title*:LONGINT;
  186.   firstRequest*:RequesterPtr;
  187.   dmRequest*:RequesterPtr;
  188.   reqCount*:INTEGER;
  189.   wScreen*:ScreenPtr;
  190.   rPort*:g.RastPortPtr;
  191.   borderLeft*,borderTop*,borderRight*,borderBottom*:SHORTINT;
  192.   borderRPort*:g.RastPortPtr;
  193.   firstGadget*:GadgetPtr;
  194.   parent*,descendant*:WindowPtr;
  195.   pointer*:LONGINT;
  196.   ptrHeight*:SHORTINT;
  197.   ptrWidth*:SHORTINT;
  198.   xOffset*,yOffset*:SHORTINT;
  199.   idcmpFlags*:SET;
  200.   userPort*:e.MsgPortPtr;
  201.   windowPort*:e.MsgPortPtr;
  202.   messageKey*:IntuiMessagePtr;
  203.   detailPen*,blockPen*:SHORTINT;
  204.   checkMark*:ImagePtr;
  205.   screenTitle*:LONGINT;
  206.   gzzMouseX*:INTEGER;
  207.   gzzMouseY*:INTEGER;
  208.   gzzWidth*:INTEGER;
  209.   gzzHeight*:INTEGER;
  210.   extData*:LONGINT;
  211.   userData*:LONGINT;
  212.   wLayer*:g.LayerPtr;
  213.   iFont*:g.TextFontPtr;
  214.   moreFlags*:INTEGER;
  215.  END;
  216.  Screen*=RECORD
  217.   nextScreen*:ScreenPtr;
  218.   firstWindow*:WindowPtr;
  219.   leftEdge*,topEdge*:INTEGER;
  220.   width*,height*:INTEGER;
  221.   mouseY*,mouseX*:INTEGER;
  222.   flags*:INTEGER;
  223.   title*:LONGINT;
  224.   defaultTitle*:LONGINT;
  225.   barHeight*,barVBorder*,barHBorder*,menuVBorder*,menuHBorder*:SHORTINT;
  226.   wBorTop*,wBorLeft*,wBorRight*,wBorBottom*:SHORTINT;
  227.   font*:g.TextAttrPtr;
  228.   viewPort*:g.ViewPort;
  229.   rastPort*:g.RastPort;
  230.   bitMap*:g.BitMap;
  231.   layerInfo*:g.LayerInfo;
  232.   firstGadget*:GadgetPtr;
  233.   detailPen*,blockPen*:SHORTINT;
  234.   saveColor0*:INTEGER;
  235.   barLayer*:g.LayerPtr;
  236.   extData*:LONGINT;
  237.   userData*:LONGINT;
  238.  END;
  239.  IntuiMessage*=RECORD
  240.   execMessage*:e.Message;
  241.   class*:LONGINT;
  242.   code*:INTEGER;
  243.   qualifier*:INTEGER;
  244.   iAddress*:LONGINT;
  245.   mouseX*,mouseY*:INTEGER;
  246.   time*:t.TimeVal;
  247.   idcmpWindow*:WindowPtr;
  248.   specialLink*:IntuiMessagePtr;
  249.  END;
  250.   EasyStruct*=RECORD
  251.     size*: LONGINT;
  252.     flags*: SET;
  253.     title*: LONGINT;
  254.     textFormat*: LONGINT;
  255.     gadgetFormat*: LONGINT;
  256.   END;
  257.  intuiBase:LONGINT;
  258.  intuiVersion-:INTEGER;
  259. PROCEDURE ActivateWindow*(window:WindowPtr);
  260.  r:A.Regs;
  261. BEGIN
  262.  r.a[0]:=window;
  263.  A.LibCall(intuiBase,-450,r);
  264. END ActivateWindow;
  265. PROCEDURE BeginRefresh*(window:WindowPtr);
  266.  r:A.Regs;
  267. BEGIN
  268.  r.a[0]:=window;
  269.  A.LibCall(intuiBase,-354,r);
  270. END BeginRefresh;
  271. PROCEDURE CloseScreen*(screen:ScreenPtr);
  272.  r:A.Regs;
  273. BEGIN
  274.  r.a[0]:=SYSTEM.VAL(LONGINT,screen);
  275.  A.LibCall(intuiBase,-66,r);
  276. END CloseScreen;
  277. PROCEDURE CloseWindow*(window:WindowPtr);
  278.  r:A.Regs;
  279. BEGIN
  280.  r.a[0]:=SYSTEM.VAL(LONGINT,window);
  281.  A.LibCall(intuiBase,-72,r);
  282. END CloseWindow;
  283. PROCEDURE CurrentTime*(VAR seconds,micros:LONGINT);
  284.  r:A.Regs;
  285. BEGIN
  286.  r.a[0]:=SYSTEM.ADR(seconds);
  287.  r.a[1]:=SYSTEM.ADR(micros);
  288.  A.LibCall(intuiBase,-84,r);
  289. END CurrentTime;
  290. PROCEDURE EndRefresh*(window:WindowPtr; complete:BOOLEAN);
  291.  r:A.Regs;
  292. BEGIN
  293.  r.a[0]:=window;
  294.  r.d[0]:=SYSTEM.VAL(LONGINT, complete);
  295.  A.LibCall(intuiBase,-366,r);
  296. END EndRefresh;
  297. PROCEDURE OpenScreenTags*(newScreen:NewScreenPtr; VAR tagList:ARRAY OF u.TagItem):ScreenPtr;
  298.  r:A.Regs;
  299. BEGIN
  300.  r.a[0]:=newScreen;
  301.  r.a[1]:=SYSTEM.ADR(tagList);
  302.  A.LibCall(intuiBase,-612,r);
  303.  RETURN SYSTEM.VAL(ScreenPtr,r.d[0]);
  304. END OpenScreenTags;
  305. PROCEDURE OpenWindowTags*(newWindow:NewWindowPtr; VAR tagList:ARRAY OF u.TagItem):WindowPtr;
  306.  r:A.Regs;
  307. BEGIN
  308.  r.a[0]:=newWindow;
  309.  r.a[1]:=SYSTEM.ADR(tagList);
  310.  A.LibCall(intuiBase,-606,r);
  311.  RETURN SYSTEM.VAL(WindowPtr,r.d[0]);
  312. END OpenWindowTags;
  313. PROCEDURE ScreenToFront*(screen:ScreenPtr);
  314.  r:A.Regs;
  315. BEGIN
  316.  r.a[0]:=SYSTEM.VAL(LONGINT,screen);
  317.  A.LibCall(intuiBase,-252,r);
  318. END ScreenToFront;
  319. PROCEDURE ClearPointer*(win:WindowPtr);
  320.  r:A.Regs;
  321. BEGIN
  322.  r.a[0]:=win;
  323.  A.LibCall(intuiBase,-60,r);
  324. END ClearPointer;
  325. PROCEDURE LockPubScreen*(name: LONGINT):ScreenPtr;
  326.  r:A.Regs;
  327. BEGIN
  328.  r.a[0]:=name;
  329.  A.LibCall(intuiBase,-510,r);
  330.  RETURN r.d[0];
  331. END LockPubScreen;
  332. PROCEDURE SetPointer*(win:WindowPtr; ptr:LONGINT; h,w,dx,dy:INTEGER);
  333.  r:A.Regs;
  334. BEGIN
  335.  r.a[0]:=win;
  336.  r.a[1]:=ptr;
  337.  r.d[0]:=h;
  338.  r.d[1]:=w;
  339.  r.d[2]:=dx;
  340.  r.d[3]:=dy;
  341.  A.LibCall(intuiBase,-270,r);
  342. END SetPointer;
  343. PROCEDURE ShowTitle*(screen:ScreenPtr; showIt:BOOLEAN);
  344.  r:A.Regs;
  345. BEGIN
  346.  r.a[0]:=SYSTEM.VAL(LONGINT,screen);
  347.  IF showIt THEN r.d[0]:=-1; ELSE r.d[0]:=0; END;
  348.  A.LibCall(intuiBase,-282,r);
  349. END ShowTitle;
  350. PROCEDURE UnlockPubScreen*(name: LONGINT; screen:ScreenPtr);
  351.  r:A.Regs;
  352. BEGIN
  353.  r.a[0]:=name;
  354.  r.a[1]:=screen;
  355.  A.LibCall(intuiBase,-516,r);
  356. END UnlockPubScreen;
  357. PROCEDURE CallEasyRequest*(win: WindowPtr; Flags: SET; title, text, gadget: ARRAY OF CHAR): LONGINT;
  358.  r:A.Regs;
  359.  s: EasyStruct;
  360. BEGIN
  361.  s.size:=SIZE(EasyStruct);
  362.  s.flags:=Flags;
  363.  s.title:=SYSTEM.ADR(title);
  364.  s.textFormat:=SYSTEM.ADR(text);
  365.  s.gadgetFormat:=SYSTEM.ADR(gadget);
  366.  r.a[0]:=win;
  367.  r.a[1]:=SYSTEM.ADR(s);
  368.  r.a[2]:=0;
  369.  r.a[3]:=0;
  370.  A.LibCall(intuiBase,-588,r);
  371.  RETURN r.d[0];
  372. END CallEasyRequest;
  373. PROCEDURE Init;
  374.     LibraryPtr=POINTER TO e.Library;
  375.     lib:LibraryPtr;
  376. BEGIN
  377.     intuiBase:=e.OpenLibrary(intuitionName,37);
  378.     IF intuiBase=0 THEN HALT(99) END;
  379.     lib:=SYSTEM.VAL(LibraryPtr,intuiBase);
  380.     intuiVersion:=lib.version;
  381. END Init;
  382. BEGIN
  383.     Init;
  384. END AmigaIntuition.
  385.