home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 August / macformat-027.iso / mac / Shareware City / Developers / Oberon⁄F / Samples / Mod / MacPICTView (.txt) < prev   
Encoding:
Oberon Document  |  1994-06-07  |  2.9 KB  |  82 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Geneva
  16. DevCommanders.StdViewDesc
  17. DevCommanders.ViewDesc
  18. MODULE SamplesMacPICTView;    (* od jul-93, ip nov-94 *)
  19. (* A sample Oberon program that shows how to open and display a Macintosh PICT file. *)
  20. (* In this demo app error checking is reduced to a minimum in favor of readability! *)
  21. IMPORT
  22.     SYSTEM,
  23.     QD := MacQuickDraw , FS := MacFileMgr, FN := MacFontMgr, MW := MacWindowMgr,
  24.     MN := MacMenuMgr, TE := MacTextEdit, DL := MacDialogMgr, MT := MacTypes,
  25.     EV := MacEventMgr, ME := MacMemoryMgr;
  26. PROCEDURE InitMac;
  27. BEGIN
  28.     QD.InitGraf(QD.globals.thePort);
  29.     (* The QuickDraw Globals are proper Oberon Variables *)
  30.     FN.InitFonts;
  31.     MW.InitWindows;
  32.     MN.InitMenus;
  33.     TE.TEInit;
  34.     DL.InitDialogs(0);
  35.     QD.InitCursor;
  36. END InitMac;
  37. PROCEDURE OpenPict;
  38.     myTypes: FS.SFTypeList;
  39.     myReply: FS.StandardFileReply;
  40.     myRef: INTEGER;
  41.     fsize: LONGINT;
  42.     myPic: QD.PicHandle;
  43.     err: INTEGER;
  44.     myWindow: MW.WindowPtr;
  45. BEGIN
  46.     myTypes[0]:=50494354H;    (* PICT *)
  47.     FS.StandardGetFile(NIL, 1, myTypes, myReply);
  48.     IF myReply.sfGood THEN
  49.         err:=FS.FSpOpenDF(myReply.sfFile, 0, myRef);
  50.         err:=FS.GetEOF(myRef, fsize);
  51.         err:=FS.SetFPos(myRef, 1, 512);
  52.         DEC(fsize, 512);    (* strip PICT-header *)
  53.         myPic := SYSTEM.VAL(QD.PicHandle, ME.NewHandle(fsize));
  54.         IF myPic#NIL THEN
  55.             err:=FS.FSRead(myRef, fsize, SYSTEM.VAL(MT.Ptr, SYSTEM.ADR(myPic.picSize)));
  56.             err:=FS.FSClose(myRef);
  57.             myWindow:=MW.NewWindow(NIL, QD.globals.screenBits.bounds, '', TRUE, 1, SYSTEM.VAL(MW.WindowPtr, -1), FALSE, 0);
  58.             QD.SetPort(myWindow);
  59.             QD.OffsetRect(myPic.picFrame, -myPic.picFrame.left, -myPic.picFrame.top);
  60.             QD.DrawPicture(myPic, myPic.picFrame);
  61.             REPEAT UNTIL EV.Button();
  62.             MW.DisposeWindow(myWindow)
  63.         END
  64. END OpenPict;
  65. BEGIN
  66.     InitMac;
  67.     OpenPict;
  68. END SamplesMacPICTView.
  69.  DevCompiler.Compile
  70.  DevLinker.Link ":Samples:MacPICTView" +SamplesMacPICTView >SamplesMacPICTView
  71. TextControllers.StdCtrlDesc
  72. TextControllers.ControllerDesc
  73. Containers.ControllerDesc
  74. Controllers.ControllerDesc
  75. TextRulers.StdRulerDesc
  76. TextRulers.RulerDesc
  77. TextRulers.StdStyleDesc
  78. TextRulers.StyleDesc
  79. TextRulers.AttributesDesc
  80. Geneva
  81. Documents.ControllerDesc
  82.