home *** CD-ROM | disk | FTP | other *** search
- PROCEDURE Settings_Editor;
- VAR Extended,Done : BOOLEAN;
- x,y2,Old_x,Old_y2,i : BYTE;
- c : CHAR;
- Option_Scr_Ptr : POINTER;
- Redraw : BOOLEAN;
-
- PROCEDURE Down_Arrow;
- VAR Bot_y2 : BYTE;
- BEGIN
- IF x = 7 THEN
- Bot_y2 := 15
- ELSE
- Bot_y2 := 20;
- IF y2 < Bot_y2 THEN
- y2 := y2 + 1
- ELSE
- BEGIN
- y2 := 5;
- CASE x OF
- 7 : x := 30;
- 30 : x := 53;
- 53 : x := 7;
- END;
- END;
- END;
-
- PROCEDURE Right_Arrow;
- BEGIN
- CASE x OF
- 7 : x := 30;
- 30 : x := 53;
- 53 : IF y2 = 20 THEN
- BEGIN
- x := 7;
- y2 := 5;
- END
- ELSE
- BEGIN
- IF y2 >= 15 THEN
- x := 30
- ELSE
- x := 7;
- y2 := y2 + 1;
- END;
- END;
- END;
-
- PROCEDURE Up_Arrow;
- BEGIN
- IF y2 > 5 THEN
- y2 := y2 - 1
- ELSE
- IF x = 30 THEN
- BEGIN
- y2 := 15;
- x := 7;
- END
- ELSE
- BEGIN
- y2 := 20;
- IF x = 7 THEN
- x := 53
- ELSE
- x := 30;
- END;
- END;
-
- PROCEDURE Left_Arrow;
- BEGIN
- CASE x OF
- 7 : BEGIN
- x := 53;
- IF y2 = 5 THEN
- y2 := 20
- ELSE
- y2 := y2 - 1;
- END;
- 30 : IF y2 > 15 THEN
- BEGIN
- x := 53;
- y2 := y2 - 1;
- END
- ELSE
- x := 7;
- 53 : x := 30;
- END;
- END;
-
- PROCEDURE Erase_Brackets (Row,Col : BYTE);
- BEGIN
- QWrite (Row,Col-2,Black+bgWarn,' ');
- QAttr (Row,Col-1,1,1,fgWarn+bgWarn);
- QWrite (Row,Col+21,Black+bgWarn,' ');
- QAttr (Row,Col+20,1,1,fgWarn+bgWarn);
- END;
-
- PROCEDURE Show_Brackets (Row,Col : BYTE);
- BEGIN
- QWrite (Row,Col-2,fgHOpt+bgHOpt,CHR(16));
- QAttr (Row,Col-1,1,1,fgHOpt+bgHOpt);
- QWrite (Row,Col+21,fgHOpt+bgHOpt,CHR(17));
- QAttr (Row,Col+20,1,1,fgHOpt+bgHOpt);
- END;
-
- PROCEDURE Get_Attrs (Row,Col : BYTE; VAR fgAttrPtr,bgAttrPtr : POINTER);
- BEGIN
- CASE Col OF
- 7 : CASE Row OF
- 5 : BEGIN fgAttrPtr := @fgMain; bgAttrPtr := @bgMain; END;
- 6 : BEGIN fgAttrPtr := @fgCmnd; bgAttrPtr := @bgCmnd; END;
- 7 : BEGIN fgAttrPtr := @fgName; bgAttrPtr := @bgName; END;
- 8 : BEGIN fgAttrPtr := @fgHOpt; bgAttrPtr := @bgHOpt; END;
- 9 : BEGIN fgAttrPtr := @fgSlct; bgAttrPtr := @bgSlct; END;
- 10 : BEGIN fgAttrPtr := @fgHelp; bgAttrPtr := @bgHelp; END;
- 11 : BEGIN fgAttrPtr := @fgNErr; bgAttrPtr := @bgNErr; END;
- 12 : BEGIN fgAttrPtr := @fgNote; bgAttrPtr := @bgNote; END;
- 13 : BEGIN fgAttrPtr := @fgFErr; bgAttrPtr := @bgFErr; END;
- 14 : BEGIN fgAttrPtr := @fgWarn; bgAttrPtr := @bgWarn; END;
- 15 : BEGIN fgAttrPtr := @fgInpt; bgAttrPtr := @bgInpt; END;
- END;
- 30 : BEGIN
- fgAttrPtr := @fgMenu[Row-4];
- bgAttrPtr := @bgMenu[Row-4];
- END;
- 53 : BEGIN
- fgAttrPtr := @fgTitl[Row-4];
- bgAttrPtr := @bgTitl[Row-4];
- END;
- END;
- END;
-
- PROCEDURE Inc_Foreground (Row,Col : BYTE);
- VAR fgAttrPtr,bgAttrPtr : POINTER;
- BEGIN
- Redraw := TRUE;
- Env_Changes := TRUE;
- Get_Attrs (Row,Col,fgAttrPtr,bgAttrPtr);
- IF BYTE(fgAttrPtr^) < 15 THEN
- BYTE(fgAttrPtr^) := BYTE(fgAttrPtr^) + 1
- ELSE
- BYTE(fgAttrPtr^) := 0;
- QAttr (Row,Col,1,20,BYTE(fgAttrPtr^)+BYTE(bgAttrPtr^));
- END;
-
- PROCEDURE Dec_Foreground (Row,Col : BYTE);
- VAR fgAttrPtr,bgAttrPtr : POINTER;
- BEGIN
- Redraw := TRUE;
- Env_Changes := TRUE;
- Get_Attrs (Row,Col,fgAttrPtr,bgAttrPtr);
- IF BYTE(fgAttrPtr^) > 0 THEN
- BYTE(fgAttrPtr^) := BYTE(fgAttrPtr^) - 1
- ELSE
- BYTE(fgAttrPtr^) := 15;
- QAttr (Row,Col,1,20,BYTE(fgAttrPtr^)+BYTE(bgAttrPtr^));
- END;
-
- PROCEDURE Inc_Background (Row,Col : BYTE);
- VAR fgAttrPtr,bgAttrPtr : POINTER;
- BEGIN
- Redraw := TRUE;
- Env_Changes := TRUE;
- Get_Attrs (Row,Col,fgAttrPtr,bgAttrPtr);
- IF (BYTE(bgAttrPtr^) DIV 16) < 7 THEN
- BYTE(bgAttrPtr^) := BYTE(bgAttrPtr^) + 16
- ELSE
- BYTE(bgAttrPtr^) := 0;
- QAttr (Row,Col,1,20,BYTE(fgAttrPtr^)+BYTE(bgAttrPtr^));
- END;
-
- PROCEDURE Dec_Background (Row,Col : BYTE);
- VAR fgAttrPtr,bgAttrPtr : POINTER;
- BEGIN
- Redraw := TRUE;
- Env_Changes := TRUE;
- Get_Attrs (Row,Col,fgAttrPtr,bgAttrPtr);
- IF (BYTE(bgAttrPtr^) DIV 16) > 0 THEN
- BYTE(bgAttrPtr^) := BYTE(bgAttrPtr^) - 16
- ELSE
- BYTE(bgAttrPtr^) := 7 * 16;
- QAttr (Row,Col,1,20,BYTE(fgAttrPtr^)+BYTE(bgAttrPtr^));
- END;
-
- PROCEDURE Redraw_Screen;
- VAR Temp_Menu_Nbr : WORD;
-
- PROCEDURE Redraw_Menus (Draw_Menu_Ptr : Menu_Ptr; VAR Menu_Nbr : WORD);
- VAR Temp_Menu_Ptr : Menu_Ptr;
- Temp_Help_Toggle : BOOLEAN;
- BEGIN
- Menu_Nbr := Menu_Nbr + 1;
- Menu_Idx := Menu_Nbr MOD 16;
- Temp_Help_Toggle := Help_Toggle;
- Help_Toggle := FALSE;
- FreeMem (Draw_Menu_Ptr^.Menu_Scr_Ptr,(Max_Nbr_Opts+2)*(Max_Opt_Len+8)shl 1);
- Show_Menu (Draw_Menu_Ptr);
- Help_Toggle := Temp_Help_Toggle;
- IF Draw_Menu_Ptr <> Cur_Menu_Ptr THEN
- BEGIN
- Temp_Menu_Ptr := Head_Menu_Ptr;
- WHILE Temp_Menu_Ptr^.Exit_Menu_Name <> Draw_Menu_Ptr^.Menu_Name DO
- Temp_Menu_Ptr := Temp_Menu_Ptr^.Next_Menu_Ptr;
- Redraw_Menus (Temp_Menu_Ptr,Menu_Nbr);
- END;
- END;
-
- BEGIN { Redraw_Screen }
- Init_Scr (fgMain,bgMain);
- Temp_Menu_Nbr := 0;
- Redraw_Menus (Head_Menu_Ptr,Temp_Menu_Nbr);
- IF Help_Toggle THEN
- Show_Help (0,Get_Help_Row(Cur_Menu_Ptr),3,fgHelp+bgHelp); { menu help }
- END;
-
- BEGIN { Settings_Editor }
- { might want to add password ability to this option. }
- { if so, would want to check for password here... }
-
- IF Help_Toggle THEN
- Erase_Help;
- Save_Scr (3,4,20,74,Option_Scr_Ptr);
- Draw_Box (3,4,19,72,Black+bgWarn,No_Border,-1,Shade,fgMain+bgMain-8);
- QWrite (3,4,(bgWarn DIV 16)+bBlack+8,Justify('Settings Editor',Center,72,' '));
-
- QWrite ( 5, 7,fgMain+bgMain,CONCAT(Make_String(8,Shade),'MAIN',Make_String(8,Shade)));
- QWrite ( 6, 7,fgCmnd+bgCmnd,' COMMAND ');
- QWrite ( 7, 7,fgName+bgName,' NAME ');
- QWrite ( 8, 7,fgHOpt+bgHOpt,' OPTION HIGHLIGHTS ');
- QWrite ( 9, 7,fgSlct+bgSlct,' OPTION SELECT KEYS ');
- QWrite (10, 7,fgHelp+bgHelp,' HELP ');
- QWrite (11, 7,fgNErr+bgNErr,' ERRORS ');
- QWrite (12, 7,fgNote+bgNote,' NOTES ');
- QWrite (13, 7,fgFErr+bgFErr,' FATAL ERRORS ');
- QWrite (14, 7,fgWarn+bgWarn,' WARNINGS ');
- QWrite (15, 7,fgInpt+bgInpt,' INPUT FIELDS ');
- FOR i := 5 TO 15 DO
- BEGIN
- QWrite (i,6,fgWarn+bgWarn,'[');
- QWrite (i,27,fgWarn+bgWarn,']');
- END;
- FOR i := 1 TO 16 DO
- BEGIN
- QWrite (i+4,30,fgMenu[i]+bgMenu[i],CONCAT(' MENU BOX ',Justify(CIS(i),Right,2,' '),' '));
- QWrite (i+4,29,fgWarn+bgWarn,'[');
- QWrite (i+4,50,fgWarn+bgWarn,']');
- QWrite (i+4,53,fgTitl[i]+bgTitl[i],CONCAT(' MENU ',Justify(CIS(i),Right,2,' '),' TITLE '));
- QWrite (i+4,52,fgWarn+bgWarn,'[');
- QWrite (i+4,73,fgWarn+bgWarn,']');
- END;
-
- IF Help_Toggle THEN
- Show_Help (7,16,1,fgHelp+bgHelp); { settings editor help }
-
- x := 7;
- Old_x := x;
- y2 := 5;
- Old_y2 := y2;
- Done := FALSE;
- Redraw := FALSE;
- REPEAT
- IF (x <> Old_x) OR (y2 <> Old_y2) THEN
- BEGIN
- Erase_Brackets (Old_y2,Old_x);
- Old_x := x;
- Old_y2 := y2;
- END;
- Show_Brackets (y2,x);
- REPEAT
- IF Date_Time_Toggle THEN
- Show_Date_And_Time;
- UNTIL KeyPressed;
- Wait_For_Key (c,Extended);
- IF Extended THEN
- CASE ORD(c) OF
- F1 : BEGIN { F1 }
- Help_Toggle := NOT Help_Toggle;
- Env_Changes := TRUE;
- IF Help_Toggle THEN
- Show_Help (7,16,1,fgHelp+bgHelp)
- ELSE
- Erase_Help;
- END;
- 61 : Done := TRUE; { F3 }
- 72 : Up_Arrow; { up arrow }
- 75 : Left_Arrow; { left arrow }
- 77 : Right_Arrow; { right arrow }
- 80 : Down_Arrow; { down arrow }
- 71 : BEGIN { home }
- y2 := 5;
- x := 7;
- END;
- 79 : BEGIN { end }
- y2 := 20;
- x := 53;
- END;
- ELSE
- Sound_Bell;
- END
- ELSE
- CASE ORD(c) OF
- 13 : Down_Arrow; { enter }
- 27 : Done := TRUE; { escape }
- 73, { I }
- 62, { > }
- 43 : Inc_Foreground(y2,x); { + }
- 68, { D }
- 60, { < }
- 95 : Dec_Foreground(y2,x); { _ }
- 105, { i }
- 46, { . }
- 61 : Inc_Background(y2,x); { = }
- 100, { d }
- 44, { , }
- 45 : Dec_Background(y2,x); { - }
- ELSE
- Sound_Bell;
- END;
- UNTIL Done;
- IF Help_Toggle THEN
- Erase_Help;
- Show_Scr (3,4,20,74,Option_Scr_Ptr);
- IF Help_Toggle THEN
- Show_Help (0,Get_Help_Row(Cur_Menu_Ptr),3,fgHelp+bgHelp); { menu help }
- IF Redraw THEN
- Redraw_Screen;
- END;