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 >
Wrap
Text File
|
1989-01-19
|
8KB
|
129 lines
(*
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@*) DEFINITION MODULE Area2; (*@@@@@@@@@@@@@@@@@@@@@@@@
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
| Kurzbeschreibung | Verwaltung von Doppelfenstern: oben ein separates |
| | Fenster fuer Titel etc. |
---------------------+---------------------------------------------------------
| Programm - Version | 1.1 | Text - Version | V#004 |
---------------------+--------+-------------------------+----------------------
| Modulholder | WS | Urversion | WS | Januar 89 |
---------------------+---------------------------------------------------------
| System - Version | OS-9, Miele-Modula-2 3.5 |
---------------------+---------------------------------------------------------
| Copyright | Freigegeben fuer nichtkommerzielle Nutzung |
| | durch Teilnehmer am EFFO |
---------------------+---------------------------------------------------------
| Hardware | GEPARD 68010, 1 MByte RAM, 80Zeichen-Textkarte |
---------------------+---------------------------------------------------------
| besondere Importe | |
-------------------------------------------------------------------------------
| Autoren | WS | Werner Stehling, Seilerwis 3, |
| | | CH-8606 Greifensee, Tel. 01/256 42 21 |
---------------------+---------------------------------------------------------
| U P D A T E S | |
---------------------- |
| Datum Version Autor Bemerkungen |
| -------- ------- ----- ----------- |
| 7. 2.89 1.1 WS SetTemp2 neu |
| 9. 2.89 1.1 WS ResetAktiv2 definiert zum Beschleunigen |
| |
-------------------------------------------------------------------------------
| Modul-Beschreibung | siehe area.def, areaio.def |
---------------------- |
| Verwaltung von zwei Fenstern gemeinsam, wobei das obere Fenster als Titel- |
| bereich angesehen wird. |
| |
| SetAktiv2 behandelt ein Doppelfenster als Einheit. Dagegen kann durch |
| die Prozeduren SetAktiv (aus Area) und SetAktivt zwischen dem |
| eigentlichen Fenster und seinem Titelbereich gewechselt werden. Alle |
| Prozeduren aus AreaIO usw. koennen natuerlich auch im Titelfenster |
| verwendet werden. |
| |
| |
| W A R N U N G : |
| =============== |
| Die Prozeduren dieses Moduls und darauf aufbauender Module duerfen nicht |
| gemeinsam mit anderen I/O-Prozeduren (z.B. aus InOut) verwendet werden, da |
| ueber den Bildschirm-Inhalt und die Cursorpositionen separat Buch gefuehrt |
| wird. |
-------------------------------------------------------------------------------
*)
FROM Area IMPORT Area;
EXPORT QUALIFIED MakeArea2, SetAktiv2, ResetAktiv2, SetAktivt,
GetAreaPar2, PositArea2, DimArea2, ReturnArea2,
ClearArea2, SetTemp2, WriteLnt, WriteTitel;
(*==========================================================================*)
(**** Prozeduren zur Fensterverwaltung ****)
(*==========================================================================*)
(*--------------------------------------------------------------------------*)
PROCEDURE MakeArea2 (x0, y0, dx, dy, dw : CARDINAL) : Area;
(* neuen Bereich auf dem Schirm einrichten *)
(* x0 und y0 sind die Position des ersten Characters des Titels oben links *)
(* dx und dy sind Breite und Hoehe des eigentlichen Fensters *)
(* dw ist die Hoehe des Titelfensters der Groesse dx * dw *)
(* die linke obere Ecke des Rahmens wird bei (x0-1,y0-1), die rechte untere *)
(* bei der absoluten Bildschirmposition (x0+dx+1,y0+dy+dw+2) gezeichnet *)
(*--------------------------------------------------------------------------*)
PROCEDURE SetAktiv2 (bereich : Area);
(* Doppelfenster wird neu gezeichnet, das eigentliche Fenster bereich wird *)
(* aktiv. *)
(*--------------------------------------------------------------------------*)
PROCEDURE ResetAktiv2 (bereich : Area);
(* Doppelfenster wird nicht neu gezeichnet, das eigentliche Fenster *)
(* bereich wird aktiv. *)
(*--------------------------------------------------------------------------*)
PROCEDURE SetAktivt (bereich : Area);
(* der weitere Output geht in das Titelfenster von bereich; um auf das *)
(* eigentliche Fenster zu wechseln, wird SetAktiv aus Area verwendet. *)
(*--------------------------------------------------------------------------*)
PROCEDURE SetTemp2 (bereich : Area);
(* Rettet den absoluten Bildschirmbereich auf den Stack, bevor der neue *)
(* Bereich angezeigt wird. Restaurieren durch EndTemp aus Area. Sonst wie *)
(* SetAktiv2. *)
(*--------------------------------------------------------------------------*)
PROCEDURE GetAreaPar2 (bereich : Area;
VAR x0, y0, dx, dy, dw : CARDINAL);
(* return die Parameter der Area bereich *)
(*--------------------------------------------------------------------------*)
PROCEDURE PositArea2 (VAR bereich : Area; x0, y0 : CARDINAL);
(* Fenster nach x0, y0 verschieben *)
(*--------------------------------------------------------------------------*)
PROCEDURE DimArea2 (VAR bereich : Area; dx, dy, dw : CARDINAL);
(* Fenstergroesse neu festlegen *)
(*--------------------------------------------------------------------------*)
PROCEDURE ReturnArea2 (bereich : Area);
(* Speicherplatz von bereich zurueckgeben *)
(*--------------------------------------------------------------------------*)
PROCEDURE ClearArea2;
(* beide Fenster loeschen *)
(*==========================================================================*)
(**** Prozeduren zur Titelverwaltung ****)
(*==========================================================================*)
(*--------------------------------------------------------------------------*)
PROCEDURE WriteLnt;
(* Write Line im Titelfenster *)
(*--------------------------------------------------------------------------*)
PROCEDURE WriteTitel (VAR s : ARRAY OF CHAR; space : INTEGER);
(* Write String im Titelfenster; Verwendung von space steht in areaio.def *)
(*--------------------------------------------------------------------------*)
END Area2.