| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- IMPLEMENTATION MODULE ScreenInput;
- (*
- * REPERTOIRE
- * Release 1.6
- * By Charles Bradford and Cole Brecheen
- * (c) Copyright 1985-1992 PMI
- * Green Bay, Wisconsin
- * All rights reserved
- * (414) 468-6040
- *
- * $Header: D:/logfiles/mods/screenin.mov 1.5 10 Mar 1991 15:31:54 coleb $
- *
- *)
- (* Provided only for compatibility with rel 1.4 code *)
- IMPORT ControlUtils;
- IMPORT DspFiles;
- IMPORT ErrorManager;
- IMPORT FramePainter;
- IMPORT GenLists;
- IMPORT InputManager;
- IMPORT M2Strings;
- IMPORT MsColors;
- IMPORT PosUtils;
- IMPORT ScrnTypes;
- IMPORT ScrnUtl1;
- IMPORT ScrnUtl2;
- IMPORT SmartScreen;
- IMPORT StrConv;
- IMPORT StrEdit;
- IMPORT VWindows;
- IMPORT WindowPrims;
- VAR
- Initialized : BOOLEAN;
- PROCEDURE Init();
- BEGIN
- IF Initialized THEN
- RETURN;
- ELSE
- Initialized := TRUE;
- END;
- ControlUtils.Init();
- DspFiles.Init();
- ErrorManager.Init();
- FramePainter.Init();
- GenLists.Init();
- InputManager.Init();
- M2Strings.Init();
- MsColors.Init();
- PosUtils.Init();
- ScrnTypes.Init();
- ScrnUtl1.Init();
- ScrnUtl2.Init();
- SmartScreen.Init();
- StrConv.Init();
- StrEdit.Init();
- VWindows.Init();
- WindowPrims.Init();
- END Init;
- CONST
- OldFunction = "Non-numeric frame name used with old function";
- PROCEDURE WarnNotNumberedFrame( FrameName: ARRAY OF CHAR );
- VAR
- dumstr: ARRAY [0..79] OF CHAR;
- BEGIN
- M2Strings.Assign( FrameName, dumstr );
- StrEdit.Append( dumstr,
- ' passed to routine that expects numbered frames' );
- ErrorManager.WARN( dumstr );
- END WarnNotNumberedFrame;
- PROCEDURE ReadNextInput(VAR TheFrame : ScrnTypes.DisplayFrame;
- VAR thestr : ARRAY OF CHAR; VAR selected : BOOLEAN;
- skip : CARDINAL);
- VAR
- FieldRec: ScrnTypes.InputFieldRecord;
- BEGIN
- ControlUtils.ReadNextInput( TheFrame, thestr, skip );
- IF ScrnUtl1.FieldType( TheFrame, TheFrame^.CurrentField )
- = ScrnTypes.GroupMember THEN
- ScrnUtl1.GetFieldRec( TheFrame, TheFrame^.CurrentField, FieldRec );
- selected := FieldRec.selected;
- ELSE
- selected := FALSE;
- END;
- END ReadNextInput;
- PROCEDURE ReadInput(VAR TheFrame : ScrnTypes.DisplayFrame; VAR
- thestr : ARRAY OF CHAR; VAR selected : BOOLEAN;
- FieldName : ARRAY OF CHAR);
- VAR
- FieldRec: ScrnTypes.InputFieldRecord;
- BEGIN
- ControlUtils.ReadInput( TheFrame, thestr, FieldName );
- IF ScrnUtl1.FieldType( TheFrame, TheFrame^.CurrentField )
- = ScrnTypes.GroupMember THEN
- ScrnUtl1.GetFieldRec( TheFrame, TheFrame^.CurrentField, FieldRec );
- selected := FieldRec.selected;
- ELSE
- selected := FALSE;
- END;
- END ReadInput;
- PROCEDURE ChangeField(VAR TheFrame : ScrnTypes.DisplayFrame;
- thestr : ARRAY OF CHAR; FieldName : ARRAY OF
- CHAR; PreserveLength: BOOLEAN);
- BEGIN
- ControlUtils.ChangeField( TheFrame, thestr, FieldName, PreserveLength );
- END ChangeField;
- PROCEDURE ListToEdField( TheList: GenLists.GenList; TheFrame:
- ScrnTypes.DisplayFrame; TheField: CARDINAL ): BOOLEAN;
- BEGIN
- RETURN ScrnUtl1.ListToEdField( TheList, TheFrame, TheField );
- END ListToEdField;
- PROCEDURE ListFromEdField( TheFrame: ScrnTypes.DisplayFrame; TheField:
- CARDINAL; VAR TheList: GenLists.GenList ): BOOLEAN;
- BEGIN
- RETURN ScrnUtl1.ListFromEdField( TheFrame, TheField, TheList );
- END ListFromEdField;
- PROCEDURE AddToMenu(VAR TheFrame : ScrnTypes.DisplayFrame;
- ScrCol, ScrRow : CARDINAL; ScrText : ARRAY OF
- CHAR; FieldType : CHAR; foreground, background:
- MsColors.AColor; MonoAttribute: MsColors.AMonoAttribute );
- VAR
- FieldRec : ScrnTypes.InputFieldRecord;
- RecNum : CARDINAL;
- BEGIN
- VWindows.SetForeColor( DspFiles.MainFrame^.WindowHandle, foreground );
- VWindows.SetBackColor( DspFiles.MainFrame^.WindowHandle, background );
- VWindows.SetMonoAttr( DspFiles.MainFrame^.WindowHandle, MonoAttribute );
- ControlUtils.AddMenuItem( TheFrame, ScrCol, ScrRow,
- ScrText, M2Strings.Length(ScrText), 0, TheFrame^.normlnext );
- (* Following lines added 27 Dec 89 at suggestion of Douglas Wrege
- to preserve compatibility with release 1.4. *)
- RecNum := ScrnUtl1.FieldListTotal( TheFrame );
- ScrnUtl1.GetFieldRec( TheFrame, RecNum, FieldRec );
- FieldRec.typ := FieldType;
- ScrnUtl1.PutFieldRec( FieldRec, TheFrame, RecNum );
- END AddToMenu;
- PROCEDURE FrameSequence( StartFrame: ScrnTypes.FrameKey);
- VAR
- screen : WindowPrims.ScreenType;
- FrameName : ScrnTypes.AFrameName;
- SavedHeight : CARDINAL;
- BEGIN
- StrConv.IntegerToStr( StartFrame, 0, FrameName );
- WindowPrims.ScreenSave(screen, 1, 1, SmartScreen.MaxCol,
- SmartScreen.MaxRow);
- ScrnUtl2.PushFrame( DspFiles.MainFrame);
- SavedHeight := VWindows.GetCursorHeight(
- DspFiles.MainFrame^.WindowHandle );
- VWindows.SetCursorHeight( DspFiles.MainFrame^.WindowHandle, 0 );
- REPEAT
- DspFiles.ReadDisplayFrame( DspFiles.MainFrame^.FromFile,
- DspFiles.MainFrame, FrameName );
- FramePainter.ShowDisplayFrame( DspFiles.MainFrame, 0, 0, 0, 0 );
- InputManager.ControlFrame( DspFiles.MainFrame, 1, '',
- FALSE, FrameName );
- UNTIL PosUtils.Equal( FrameName, ScrnTypes.ProgramExit );
- ScrnUtl2.PopFrame( DspFiles.MainFrame);
- WindowPrims.ScreenRestore(screen, 1, 1);
- VWindows.SetCursorHeight( DspFiles.MainFrame^.WindowHandle, SavedHeight );
- END FrameSequence;
- PROCEDURE Input( VAR FrameNum : ScrnTypes.FrameKey);
- VAR
- FrameName : ScrnTypes.AFrameName;
- BEGIN
- StrConv.IntegerToStr( FrameNum, 0, FrameName );
- ControlUtils.Input( DspFiles.MainFrame, FrameName );
- IF NOT StrConv.StrToInteger( FrameName, 0, FrameNum ) THEN
- WarnNotNumberedFrame( FrameName );
- END;
- END Input;
- PROCEDURE Control(): ScrnTypes.FrameKey;
- VAR
- FrameName: ScrnTypes.AFrameName;
- TmpInt: INTEGER;
- BEGIN
- InputManager.ControlFrame( DspFiles.MainFrame, 0, '', FALSE, FrameName );
- IF NOT StrConv.StrToInteger( FrameName, 0, TmpInt ) THEN
- WarnNotNumberedFrame( FrameName );
- END;
- RETURN TmpInt;
- END Control;
- PROCEDURE ControlFrame(VAR FrameRec : ScrnTypes.DisplayFrame;
- LandingField : CARDINAL; message : ARRAY OF CHAR;
- showfields : BOOLEAN) : ScrnTypes.FrameKey;
- VAR
- NextFrame: ScrnTypes.AFrameName;
- tmpint: INTEGER;
- BEGIN
- InputManager.ControlFrame( FrameRec, LandingField, message,
- showfields, NextFrame );
- IF NOT StrConv.StrToInteger( NextFrame, 0, tmpint ) THEN
- ErrorManager.WARN( OldFunction );
- END;
- RETURN tmpint;
- END ControlFrame;
- BEGIN
- Initialized := FALSE;
- Init();
- END ScreenInput.
|