| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- IMPLEMENTATION MODULE Globals;
- (*
- Copyright (C) 1988,1989 Jensen & Partners International
- *)
- IMPORT Lib, Window, IO, Btree, Str, Misc;
- VAR
- LastH, LastM : CARDINAL;
- PROCEDURE Beep();
- BEGIN
- Lib.Speaker(1500,10);
- END Beep;
- PROCEDURE WriteAt( row, col : CARDINAL; txt : ARRAY OF CHAR);
- BEGIN
- Window.GotoXY(col,row);
- IO.WrStr(txt);
- END WriteAt;
- PROCEDURE GetMenu ( Prompt : ARRAY OF CHAR; OKChars : CharSet;
- VAR ch : CHAR);
- VAR
- OK : BOOLEAN;
- oldWin, MenuWin : Window.WinType;
- i : CARDINAL;
- BEGIN
- oldWin := Window.Used();
- MenuWin := Window.Open( Window.WinDef( 0, 22, 79, 24,
- Window.White,Window.Black,TRUE,FALSE,TRUE,TRUE,
- Window.SingleFrame,Window.White,Window.Black) );
- i := Str.Length(Prompt);
- Window.Change(MenuWin,((80-i) DIV 2) -2,22, ((80-i) DIV 2) + i + 3, 24);
- Window.SetFrame(MenuWin,Window.SingleFrame,DisplayBorder,Window.Black);
- Window.Use(MenuWin);
- Window.PutOnTop(MenuWin);
- Window.TextColor(DisplayFore);
- Window.TextBackground(DisplayBack);
- IO.WrStr(" ");
- IO.WrStr(Prompt);
- OK := FALSE;
- REPEAT
- REPEAT
- UpdateTitle(FALSE);
- UNTIL IO.KeyPressed();
- ch := CAP(IO.RdKey());
- IF ch IN OKChars THEN
- OK := TRUE;
- ELSE
- Beep();
- END;
- UNTIL OK;
- Window.Close(MenuWin);
- Window.Use(oldWin);
- Window.PutOnTop(oldWin);
- END GetMenu;
- PROCEDURE Compare(key1,key2: ADDRESS ): Btree.CmpRes;
- BEGIN
- RETURN Btree.CmpRes(Str.Compare(FileKey(key1^),FileKey(key2^))+1);
- END Compare;
- PROCEDURE UpdateTitle( All : BOOLEAN );
- VAR
- y, m, d : CARDINAL;
- dow : Lib.DayType;
- H, M, S, h : CARDINAL;
- Am : BOOLEAN;
- BEGIN
- oldWin := Window.Used();
- Window.Use(TitleWin);
- Window.CursorOff();
- Window.PutOnTop(TitleWin);
- IF All THEN
- Lib.GetDate(y, m, d, dow);
- Window.GotoXY(1,1);
- IO.WrCard(m,2); IO.WrChar('/');
- IO.WrCard(d,2); IO.WrChar('/');
- IO.WrCard(y,2);
- IF StoreName[0] > ' ' THEN
- h := Str.Length(StoreName);
- Window.GotoXY((79-h) DIV 2,1);
- IO.WrStr(StoreName);
- END;
- END;
- Lib.GetTime(H,M,S,h);
- IF (LastH # H) OR (LastM # M) THEN
- Window.GotoXY(70,1);
- IF H<12 THEN
- Am := TRUE;
- ELSE
- Am := FALSE;
- IF h # 12 THEN
- H := H - 12;
- END;
- END;
- IO.WrCard(H,2); IO.WrChar(':');
- IO.WrCard(M,2);
- IF Am THEN
- IO.WrStr(" am");
- ELSE
- IO.WrStr(" pm");
- END;
- IF M<10 THEN
- Window.GotoXY(73,1);
- IO.WrChar('0');
- END;
- LastM := M;
- LastH := H;
- END;
- Window.Use(oldWin);
- Window.CursorOn();
- Window.PutOnTop(oldWin);
- END UpdateTitle;
- BEGIN
- (* set up default colors *)
- DisplayFore := Window.White;
- DisplayBack := Window.Blue;
- DataFore := Window.Black;
- DataBack := Window.Cyan;
- DisplayBorder := Window.LightRed;
- PromptFore := Window.Yellow;
- PromptBack := Window.Brown;
- TaxRate := 5.0;
- TitleWin := Window.Open( Window.WinDef( 0, 0, 79, 2,
- Window.White, Window.Black, TRUE, FALSE, TRUE, TRUE,
- Window.DoubleFrame, Window.White, Window.Black) );
- Window.SetFrame(TitleWin, Window.DoubleFrame, PromptFore,
- PromptBack);
- Window.Use(TitleWin);
- Window.Clear();
- DisplayWin := Window.Open( Window.WinDef( 0, 3, 79, 22,
- Window.White, Window.Black, TRUE, FALSE, TRUE, TRUE,
- Window.DoubleFrame, Window.White, Window.Black) );
- Window.SetFrame(DisplayWin, Window.DoubleFrame, DisplayBorder,
- DisplayBack);
- Window.Use(DisplayWin);
- Window.TextColor(DisplayFore);
- Window.TextBackground(DisplayBack);
- Window.Clear();
- LastH := 0; LastM := 0;
- END Globals.
|