home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / forum8.lzh / PROGRAMME / MODULA / WINDOW / area2.def < prev    next >
Text File  |  1989-01-19  |  8KB  |  129 lines

  1. (*
  2. -------------------------------------------------------------------------------
  3. @@@@@@@@@@@@@@@@@@@@@*)  DEFINITION  MODULE  Area2;  (*@@@@@@@@@@@@@@@@@@@@@@@@
  4. -------------------------------------------------------------------------------
  5. -------------------------------------------------------------------------------
  6. | Kurzbeschreibung   | Verwaltung von Doppelfenstern: oben ein separates      |
  7. |                    | Fenster fuer Titel etc.                                |
  8. ---------------------+---------------------------------------------------------
  9. | Programm - Version |  1.1   |   Text - Version        |   V#004             |
  10. ---------------------+--------+-------------------------+----------------------
  11. | Modulholder        |  WS    |   Urversion     |  WS   |   Januar 89         |
  12. ---------------------+---------------------------------------------------------
  13. | System - Version   | OS-9, Miele-Modula-2 3.5                               |
  14. ---------------------+---------------------------------------------------------
  15. | Copyright          | Freigegeben fuer nichtkommerzielle Nutzung             |
  16. |                    |  durch Teilnehmer am EFFO                              |
  17. ---------------------+---------------------------------------------------------
  18. | Hardware           | GEPARD 68010, 1 MByte RAM, 80Zeichen-Textkarte         |
  19. ---------------------+---------------------------------------------------------
  20. | besondere Importe  |                                                        |
  21. -------------------------------------------------------------------------------
  22. | Autoren            |  WS    | Werner Stehling, Seilerwis 3,                 |
  23. |                    |        | CH-8606 Greifensee, Tel. 01/256 42 21         |
  24. ---------------------+---------------------------------------------------------
  25. |   U P D A T E S    |                                                        |
  26. ----------------------                                                        |
  27. |   Datum   Version  Autor  Bemerkungen                                       |
  28. | --------  -------  -----  -----------                                       |
  29. |  7. 2.89    1.1      WS   SetTemp2 neu                                      |
  30. |  9. 2.89    1.1      WS   ResetAktiv2 definiert zum Beschleunigen           |
  31. |                                                                             |
  32. -------------------------------------------------------------------------------
  33. | Modul-Beschreibung |         siehe  area.def, areaio.def                    |
  34. ----------------------                                                        |
  35. | Verwaltung von zwei Fenstern gemeinsam, wobei das obere Fenster als Titel-  |
  36. | bereich angesehen wird.                                                     |
  37. |                                                                             |
  38. | SetAktiv2 behandelt ein Doppelfenster als Einheit. Dagegen kann durch       |
  39. | die Prozeduren  SetAktiv (aus Area) und  SetAktivt  zwischen dem            |
  40. | eigentlichen Fenster und seinem Titelbereich gewechselt werden. Alle        |
  41. | Prozeduren aus AreaIO usw. koennen natuerlich auch im Titelfenster          |
  42. | verwendet werden.                                                           |
  43. |                                                                             |
  44. |                                                                             |
  45. | W A R N U N G :                                                             |
  46. | ===============                                                             |
  47. | Die Prozeduren dieses Moduls und darauf aufbauender Module duerfen nicht    |
  48. | gemeinsam mit anderen I/O-Prozeduren (z.B. aus InOut) verwendet werden, da  |
  49. | ueber den Bildschirm-Inhalt und die Cursorpositionen separat Buch gefuehrt  |
  50. | wird.                                                                       |
  51. -------------------------------------------------------------------------------
  52. *)
  53.  
  54. FROM  Area      IMPORT  Area;
  55.  
  56. EXPORT  QUALIFIED       MakeArea2, SetAktiv2, ResetAktiv2, SetAktivt,
  57.                         GetAreaPar2, PositArea2, DimArea2, ReturnArea2,
  58.                         ClearArea2, SetTemp2, WriteLnt, WriteTitel;
  59.  
  60. (*==========================================================================*)
  61. (****   Prozeduren zur Fensterverwaltung                                 ****)
  62. (*==========================================================================*)
  63. (*--------------------------------------------------------------------------*)
  64.     PROCEDURE  MakeArea2 (x0, y0, dx, dy, dw : CARDINAL) : Area;
  65.  
  66. (* neuen Bereich auf dem Schirm einrichten                                  *)
  67. (* x0 und y0 sind die Position des ersten Characters des Titels oben links  *)
  68. (* dx und dy sind Breite und Hoehe des eigentlichen Fensters                *)
  69. (* dw ist die Hoehe des Titelfensters der Groesse  dx * dw                  *)
  70. (* die linke obere Ecke des Rahmens wird bei (x0-1,y0-1), die rechte untere *)
  71. (* bei der absoluten Bildschirmposition (x0+dx+1,y0+dy+dw+2) gezeichnet     *)
  72. (*--------------------------------------------------------------------------*)
  73.         PROCEDURE  SetAktiv2 (bereich : Area);
  74.  
  75. (* Doppelfenster wird neu gezeichnet, das eigentliche Fenster  bereich wird *)
  76. (* aktiv.                                                                   *)
  77. (*--------------------------------------------------------------------------*)
  78.         PROCEDURE  ResetAktiv2 (bereich : Area);
  79.  
  80. (* Doppelfenster wird nicht neu gezeichnet, das eigentliche Fenster         *)
  81. (*  bereich wird aktiv.                                                     *)
  82. (*--------------------------------------------------------------------------*)
  83.         PROCEDURE  SetAktivt (bereich : Area);
  84.  
  85. (* der weitere Output geht in das Titelfenster von bereich; um auf das      *)
  86. (* eigentliche Fenster zu wechseln, wird SetAktiv aus Area verwendet.       *)
  87. (*--------------------------------------------------------------------------*)
  88.         PROCEDURE  SetTemp2 (bereich : Area);
  89.  
  90. (* Rettet den absoluten Bildschirmbereich auf den Stack, bevor der neue     *)
  91. (* Bereich angezeigt wird. Restaurieren durch EndTemp aus Area. Sonst wie   *)
  92. (* SetAktiv2.                                                               *)
  93. (*--------------------------------------------------------------------------*)
  94.     PROCEDURE  GetAreaPar2 (bereich : Area;
  95.                             VAR x0, y0, dx, dy, dw : CARDINAL);
  96.  
  97. (* return die Parameter der Area  bereich                                   *)
  98. (*--------------------------------------------------------------------------*)
  99.         PROCEDURE  PositArea2 (VAR bereich : Area; x0, y0 : CARDINAL);
  100.  
  101. (* Fenster  nach x0, y0 verschieben                                         *)
  102. (*--------------------------------------------------------------------------*)
  103.         PROCEDURE  DimArea2 (VAR bereich : Area; dx, dy, dw : CARDINAL);
  104.  
  105. (* Fenstergroesse neu festlegen                                             *)
  106. (*--------------------------------------------------------------------------*)
  107.         PROCEDURE  ReturnArea2 (bereich : Area);
  108.  
  109. (* Speicherplatz von bereich zurueckgeben                                   *)
  110. (*--------------------------------------------------------------------------*)
  111.         PROCEDURE  ClearArea2;
  112.  
  113. (* beide Fenster loeschen                                                   *)
  114.  
  115. (*==========================================================================*)
  116. (****   Prozeduren zur Titelverwaltung                                   ****)
  117. (*==========================================================================*)
  118. (*--------------------------------------------------------------------------*)
  119.         PROCEDURE  WriteLnt;
  120.  
  121. (* Write Line im Titelfenster                                               *)
  122. (*--------------------------------------------------------------------------*)
  123.         PROCEDURE  WriteTitel (VAR s : ARRAY OF CHAR; space : INTEGER);
  124.  
  125. (* Write String im Titelfenster; Verwendung von space steht in areaio.def   *)
  126. (*--------------------------------------------------------------------------*)
  127.  
  128. END  Area2.
  129.