Unit bbs_cfg_Language; {$I M_OPS.PAS} Interface Procedure Lang_Editor; Implementation Uses m_Strings, bbs_Common, bbs_Core; Procedure Lang_Editor; var a : SmallInt; Old : RecTheme; Begin Session.SystemLog ('*LANG EDITOR*'); Old := Session.Lang; { Reset (LangFile);} Repeat Session.io.OutFullLn ('|CL|14Language Editor|CR|CR|15## FileName Description|CR|09-- -------- ------------------------------'); assign(session.langfile, config.datapath+'theme.dat'); {$I-} Reset (Session.LangFile);{$I+} if ioresult <> 0 then rewrite(session.langfile); while not eof(Session.LangFile) do begin read (Session.LangFile, Session.Lang); Session.io.OutFullLn ('|15' + strPadR(strI2S(filepos(Session.LangFile)), 4, ' ') + '|14' + strPadR(Session.Lang.FileName, 10, ' ') + '|10' + Session.Lang.Desc); end; Session.Lang := Old; Session.io.OutFull ('|CR|09(I)nsert, (D)elete, (E)dit, (Q)uit? '); case Session.io.OneKey ('DIEQ', True) of 'D' : begin Session.io.OutRaw ('Delete which? '); a := strS2I(Session.io.GetInput(3, 3, 11, '')); if filesize(Session.LangFile) = 1 then Session.io.OutFullLn ('|CR|14You must have at least one language definition.|CR|PA') Else KillRecord (Session.LangFile, A, SizeOf(RecTheme)); end; 'I' : begin Session.io.OutRaw ('Insert before? (1-' + strI2S(filesize(Session.LangFile)+1) + '): '); a := strS2I(Session.io.GetInput(3, 3, 11, '')); if (a > 0) and (a <= filesize(Session.LangFile)+1) then begin AddRecord (Session.LangFile, A, SizeOf(RecTheme)); Session.lang.filename := ''; Session.lang.textpath := ''; Session.lang.menupath := ''; write (Session.LangFile, Session.Lang); end; end; 'E' : begin Session.io.OutRaw ('Edit which? '); a := strS2I(Session.io.GetInput(3, 3, 11, '')); if (a > 0) and (a <= filesize(Session.LangFile)) then begin seek (Session.LangFile, a-1); read (Session.LangFile, Session.Lang); repeat Session.io.OutFullLn ('|CL|14Language ' + strI2S(FilePos(Session.LangFile)) + ' of ' + strI2S(FileSize(Session.LangFile)) + '|CR|03'); Session.io.OutRawln ('A. Description: ' + Session.Lang.Desc); Session.io.OutRawln ('B. Filename : ' + Session.Lang.FileName); Session.io.OutRawln ('C. Text Path : ' + Session.Lang.TextPath); Session.io.OutRawln ('D. Menu Path : ' + Session.Lang.MenuPath); Session.io.OutRawln ('M. Allow ASCII: ' + Session.io.OutYN(Session.Lang.Flags AND ThmAllowASCII <> 0)); Session.io.OutRawln ('N. Allow ANSI : ' + Session.io.OutYN(Session.Lang.Flags AND ThmAllowANSI <> 0)); Session.io.OutFullLn ('|CRE. Use Lightbar Y/N : ' + Session.io.OutYN(Session.Lang.Flags AND ThmLightbarYN <> 0)); Session.io.OutFull ('|03|16H. Input Field Color: '); Session.io.AnsiColor(Session.Lang.FieldColor1); Session.io.OutFullLn ('Test|03|16'); Session.io.OutRaw ('I. Quote Bar Color : '); Session.io.AnsiColor(Session.Lang.QuoteColor); Session.io.OutFullLn ('Test|03|16'); Session.io.OutRawLn ('J. Echo Character : ' + Session.Lang.EchoChar); Session.io.OutRawLn ('K. Input Character : ' + Session.Lang.FieldChar); Session.io.OutRawLn ('L. File Tag Char : ' + Session.Lang.TagChar); Session.io.OutRaw ('O. File Search Hi : '); Session.io.AnsiColor(Session.Lang.FileDescHI); Session.io.OutFullLn ('Test|03|16'); Session.io.OutRaw ('P. File Desc. Lo : '); Session.io.AnsiColor(Session.Lang.FileDescLO); Session.io.OutFullLn ('Test|03|16'); Session.io.OutRawLn ('R. LB New Msg Char : ' + Session.Lang.NewMsgChar); Session.io.OutFull ('|CR|09Command (Q/Quit): '); case Session.io.onekey('ABCDEFGHIJKLMNOPQR', True) of 'A' : Session.Lang.Desc := Session.io.InXY(17, 3, 30, 30, 11, Session.Lang.Desc); 'B' : Session.Lang.filename := Session.io.InXY(17, 4, 8, 8, 11, Session.Lang.filename); 'C' : Session.Lang.textpath := CheckPath(Session.io.InXY(17, 5, 40, 40, 11, Session.Lang.textpath)); 'D' : Session.Lang.menupath := CheckPath(Session.io.InXY(17, 6, 40, 40, 11, Session.Lang.MenuPath)); 'E' : Session.Lang.Flags := Session.Lang.Flags XOR ThmLightbarYN; 'H' : Session.Lang.FieldColor1 := getColor(Session.Lang.FieldColor1); 'I' : Session.Lang.QuoteColor := getColor(Session.Lang.QuoteColor); 'J' : Begin Session.io.OutRaw ('Char: '); Session.Lang.EchoChar := Session.io.GetKey; End; 'K' : Begin Session.io.OutRaw ('Char: '); Session.Lang.FieldChar := Session.io.GetKey; If Not (Session.Lang.FieldChar in [#32..#255]) Then Session.Lang.FieldChar := ' '; End; 'L' : Begin Session.io.OutRaw ('Char: '); Session.Lang.TagChar := Session.io.GetKey; End; 'M' : Session.Lang.Flags := Session.Lang.Flags XOR ThmAllowASCII; 'N' : Session.Lang.Flags := Session.Lang.Flags XOR ThmAllowANSI; 'O' : Session.Lang.FileDescHI := getColor(Session.Lang.FileDescHI); 'P' : Session.Lang.FileDescLo := GetColor(Session.Lang.FileDescLO); 'Q' : break; 'R' : Begin Session.io.OutRaw('Char: '); Session.Lang.NewMsgChar := Session.io.GetKey; End; end; until false; seek (Session.LangFile, filepos(Session.LangFile)-1); write (Session.LangFile, Session.Lang); end; end; 'Q' : break; end; until False; close (Session.LangFile); If Not Session.LoadThemeData(Old.FileName) Then Session.Lang := Old; End; End.