home *** CD-ROM | disk | FTP | other *** search
- UNIT WETag; {$O+}
- { -- This is the Tag Lines unit of WWIVEdit 2.2
- -- Last Updated: 8/13/91
- -- Written By:
- -- Adam Caldwell
- --
- -- This code is limited public domain. See WWIVEDIT.PAS for details.
- --
- -- Purpose : Input/Manipulate the Taglines
- --
- -- Known Errors : None
- --
- -- Planned Enhancements: Clean Up Code, Add a FORCE option
- --
- -- }
- {$R-,V-,S-,B-,E-,N-} { These Optomize things as much as possible }
-
- INTERFACE
-
- PROCEDURE EditTaglines;
-
- IMPLEMENTATION
-
- USES WEVars, WEInput, WEOutput, WEString, WEMisc;
-
- PROCEDURE EditTaglines;
- { Edit and Select Taglines }
- CONST
- NMethods = 6;
- Methods : ARRAY[0..NMethods] OF String[40] = (
- 'Don''t use any Tagline ',
- 'Always use Tagline #1 ',
- 'Always use Tagline #2 ',
- 'Always use Tagline #3 ',
- 'Rotate among defined Taglines ',
- 'Choose one at random ',
- 'Don''t use Tagline for this message only');
- VAR
- i : integer;
- ch : char;
- TagS:string;
- fun:edfun;
- changed:boolean;
- t:inforec;
-
- BEGIN
- t:=info;
- changed:=false;
- ClrScr;
- FOR i:=1 TO 3 DO
- BEGIN
- Prompt(C5+'Tagline number '+C2);
- CASE i OF
- 1 : print('one:');
- 2 : print('two:');
- 3 : print('three:');
- END;
- ansic('0');
- IF info.Tagline[i]<>'' THEN BEGIN
- PrintControlLine(info.TagLine[i]);
- nl;
- END
- ELSE
- Print(c1+'<<<None Entered>>>'+C0);
- nl;
- END;
- FOR i:=0 TO NMethods DO
- BEGIN
- IF info.Method = i THEN Ansic('4') ELSE Ansic('1');
- prompt(methods[i]);
- ansic('0');
- IF info.Method = i
- THEN print(' <-- Currently Selected')
- ELSE nl;
- END;
- REPEAT
- StatusLine3(C2+'Tag Line: '+C1+'M'+C2+'ake, '+C1+'E'+C2+'rase, '+
- C1+'C'+C2+'hoose, '+C1+'Q'+C2+'uit [MEQ] > '+C1);
- ch:=ReadSet(['M','E','Q','C',ESC]);
- IF ch='E' THEN BEGIN
- StatusLine3(C2+'Erase Tagline: '+c1+'1'+c2+', '+c1+'2'+c2+', '+c1+'3'+
- C2+', or '+C1+'A'+c2+'bort > ');
- ch:=readset(['1'..'3','A',ESC,'Q']);
- IF ch IN ['1'..'3'] THEN BEGIN
- info.Tagline[ord(ch)-ord('0')]:='';
- StatusLine2(c5+'Tagline '+c1+ch+c5+' erased');
- gotoxy(1,3*(ord(ch)-ord('0')-1)+2);
- ClrEol;
- Print(c1+'<<<None Entered>>>'+C0);
- changed:=true;
- AfterNext:=ClrStatLine2;
- END;
- END;
- IF ch='C' THEN BEGIN
- i:=info.method;
- REPEAT
- GotoXY(1,10+i);
- fun:=GetArrow;
- ansic('1');
- IF Fun IN [up,down] THEN
- Prompt(methods[i]);
- CASE Fun OF
- Up : dec(i);
- Down : inc(i);
- END;
- IF i<0 THEN i:=NMethods
- ELSE IF i>NMethods THEN i:=0;
- IF fun IN [Up,Down] THEN
- BEGIN
- GotoXY(1,10+i);
- ansic('4');
- prompt(methods[i]);
- END;
- UNTIL fun IN [Enter,NormalExit];
- IF fun=Enter THEN BEGIN
- if info.method<>i THEN changed:=true;
- gotoxy(40,10+info.method);
- clreol;
- info.method:=i;
- gotoxy(1,10+i);
- print(C4+methods[i]+C0+' <-- Currently Selected');
- IF info.selected>3 THEN info.selected:=1;
- END
- ELSE if i<>info.method THEN
- BEGIN
- print(c0+methods[i]);
- gotoxy(1,10+info.method);
- print(c4+methods[info.method]+c0);
- END;
- END;
- IF ch='M' THEN BEGIN
- StatusLine3(C2+'Enter Tagline. Press '+C3+'Ctrl-Z'+C2+' when finished.');
- TagS:=GetControlLine;
- StatusLine2(c0);
- PrintControlLine(TagS);
- StatusLine3(C5+'Which Tagline do you want to save this under? [1,2,3,Q] > '+C1);
- ch:=ReadSet(['1'..'3','Q']);
- IF ch='Q' THEN BEGIN
- StatusLine2(C2+'Nothing Saved...');
- AfterNext:=ClrStatLine2;
- ch:=#0;
- END
- ELSE BEGIN
- changed:=true;
- i:=Value(ch);
- gotoxy(1,3*(i-1)+2);
- PrintControlLine(TagS);
- ClrEol;
- info.Tagline[i]:=TagS;
- StatusLine2(C0);
- END;
- END;
- UNTIL ch IN ['Q',ESC];
- IF changed THEN BEGIN
- IF Info.method=5 THEN BEGIN
- info.selected:=Random(3)+1;
- IF Info.Tagline[info.selected]='' THEN BEGIN
- FOR i:=1 TO 3 DO
- IF info.tagline[i]<>'' THEN info.selected:=i;
- END;
- END
- ELSE IF Info.method=4 THEN
- BEGIN
- Info.selected:=1;
- FOR i:=3 DOWNTO 1 DO
- IF info.tagline[i]<>'' THEN info.selected:=i;
- END ELSE IF info.method<4 THEN
- info.selected:=info.method;
-
- IF (Info.method IN [4,5]) AND (info.tagline[info.selected]='') THEN
- info.selected:=1;
- StatusLine3(c5+'Do you want to save your changes? [Yn] > ');
- IF yn THEN BEGIN
- SaveInfo;
- StatusLine3(c5+'Saved.');
- END ELSE BEGIN
- StatusLine3(c2+'Not Saved.');
- info:=t;
- END;
- END;
- AfterNext:=ClrStatLine3;
- END;
-
- END.