home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / GEM / AESRESOU.D < prev    next >
Encoding:
Modula Definition  |  1990-10-09  |  4.0 KB  |  100 lines

  1. DEFINITION MODULE AESResources;
  2.  
  3.  
  4. (*  Megamax-Modula 2 GEM-Library :  Die AES Resourcefunktionen
  5.  *
  6.  *  Autor: Manuel Chakravarty           Erstellt :  05.11.87
  7.  *
  8.  *  Version   2.2     V#0009
  9.  *)
  10.  
  11. (*      Dieses Modul ist zum Bearbeiten von Resourcen gedacht, die mit
  12.  *      dem Resource Construction Set (Programm zum Erstellen von Re-
  13.  *      sourcen) erstellt wurden.
  14.  *      Dazu wird das Resource-File einmal von Diskette geladen und
  15.  *      daraufhin arbeiten alle Funktionen dieses Moduls auf genau
  16.  *      dieser Resource, bis sie freigegeben oder eine andere gela-
  17.  *      den wird.
  18.  *)
  19.  
  20.  
  21. FROM    SYSTEM     IMPORT ADDRESS;
  22.  
  23. FROM    GEMGlobals IMPORT PtrObjTree;
  24.  
  25.  
  26.                 (*  Resource Manager  *)
  27.                 (*  ================  *)
  28.  
  29. PROCEDURE LoadResource (REF pathname: ARRAY OF CHAR);
  30.         
  31.         (*  Liest eine Resource.
  32.          *
  33.          *  'pathname'  -- Pfadname der Resource. Ist diese auf dem an-
  34.          *                 gegebenen Pfad nicht zu finden, wird zusätz-
  35.          *                 lich auf Laufwerk A: gesucht. Ist auch diese
  36.          *                 Suche nicht erfolgreich, so kehrt die Routine
  37.          *                 zurück und 'GemError' liefert den Wert 'TRUE'.
  38.          *)
  39.         
  40. PROCEDURE FreeResource;
  41.  
  42.         (*  Damit wird der Speicherplatz der zuletzt geladenen Resource
  43.          *  wieder freigegeben.
  44.          *)
  45.         
  46.         
  47. TYPE    ResourcePart  = (treeRsrc,    objectRsrc,  tEdInfo,   iconBlk, bitBlk,
  48.                          textString,  imageData,   objSpec,   tEdTextPtr,
  49.                          tEdTmpltPtr, tEdValidPtr, ibMaskPtr, ibDataPtr,
  50.                          ibTextPtr,   biDataPtr,   frStrPtr,  frImgPtr);
  51.                           
  52. PROCEDURE ResourceAddr (typ: ResourcePart; index: CARDINAL): ADDRESS;
  53.  
  54.         (*  Es wird die Adresse eines Resource-Elementes geliefert.
  55.          *  Dabei ist 'index' der, vom Resource Construction Set
  56.          *  für dieses Element vergebene Index. Diese Indizes werden
  57.          *  von dem Construction Set in einem Definitionsmodul abge-
  58.          *  legt.
  59.          *
  60.          *  'typ' gibt an von welchem Typ das gesuchte Element ist:
  61.          *
  62.          *  'treeRsrc'    -- Objektbaum             ('GEMGlobals.PtrObjTree')
  63.          *  'objectRsrc'  -- Objekt                 ('GEMGlobals.PtrObject')
  64.          *  'tEdInfo'     -- TedInfo-RECORD         ('GEMGlobals.PtrTedInfo')
  65.          *  'iconBlk'     -- IconBlock-RECORD       ('GEMGlobals.PtrIconBlock')
  66.          *  'bitBlk'      -- BitBlock-RECORD        ('GEMGlobals.PtrBitBlock')
  67.          *  'textString'  -- Zeiger auf freie Zeichenkette
  68.          *  'imageData'   -- Zeiger auf freie Bitmuster
  69.          *  'objSpec'     -- ObjSpec-RECORD         ('GEMGlobals.PtrObjSpec')
  70.          *  'tEdTextPtr'  -- Zeiger auf 'GEMGlobals.TedInfo.textPtr'
  71.          *  'tEdTmpltPtr' -- Zeiger auf 'GEMGlobals.TedInfo.tmpltPtr'
  72.          *  'tEdValidPtr' -- Zeiger auf 'GEMGlobals.TedInfo.validPtr'
  73.          *  'ibMaskPtr'   -- Zeiger auf 'GEMGlobals.IconBlock.mask'
  74.          *  'ibDataPtr'   -- Zeiger auf 'GEMGlobals.IconBlock.data'
  75.          *  'ibTextPtr'   -- Zeiger auf 'GEMGlobals.IconBlock.text'
  76.          *  'biDataPtr'   -- Zeiger auf 'GEMGlobals.BitBlock.data'
  77.          *  'frStrPtr'    -- Adresse eines Zeigers auf einen String
  78.          *  'frImgPtr'    -- Adresse eines Zeigers auf ein Bitmuster
  79.          *)
  80.         
  81. PROCEDURE SetResourceAddr (typ    : ResourcePart;
  82.                            index  : CARDINAL;
  83.                            objAddr: ADDRESS);
  84.  
  85.         (*  Mit dieser Routine kann man Adressen in eine Resource eintragen.
  86.          *
  87.          *  'typ'       -- muß entweder den Wert 'frStrPtr' oder 'frImgPtr'
  88.          *                 annehmen.
  89.          *
  90.          *  Siehe auch 'ResourceAddr'.
  91.          *)
  92.  
  93. PROCEDURE ConvertCoor (tree: PtrObjTree; index: CARDINAL);
  94.  
  95.         (*  Die Koordinaten des Objektes 'index' im Baum 'tree' werden
  96.          *  von Zeichenkoordinaten in Pixelkoordinaten umgewandelt.
  97.          *)
  98.  
  99.  
  100. END AESResources.