Fixes for SysOp Chat Page

This commit is contained in:
mysticbbs 2012-02-22 02:49:20 -05:00
parent bba8ac7cd9
commit 287f96b784
3 changed files with 65 additions and 51 deletions

View File

@ -3833,3 +3833,9 @@
+ CTRL-W now deletes the word to the left of the cursor in the full
screen editor.
! SysOp Chat Page in Windows now properly updates the user's terminal
during the page.
+ Sysop Chat Page in Windows now plays the "default beep" sound as
configured in Windows.

View File

@ -12,6 +12,7 @@ Uses
m_Strings,
m_DateTime,
{$IFNDEF UNIX}
Windows,
bbs_SysopChat,
{$ENDIF}
bbs_Common,
@ -27,9 +28,6 @@ Procedure AutoSig_Edit;
Procedure AutoSig_View;
Procedure List_Users (Data: String);
{$IFNDEF UNIX}
Procedure Page_For_Chat (Forced: Boolean);
{$ENDIF}
Procedure Last_Callers;
Procedure Add_TimeBank;
Procedure Get_TimeBank;
@ -42,6 +40,10 @@ Procedure Voting_Booth_New;
Procedure View_History (LastDays: Word);
Procedure View_Directory (Data: String; ViewType: Byte);
{$IFNDEF UNIX}
Procedure PageForSysopChat (Forced: Boolean);
{$ENDIF}
Implementation
Uses
@ -434,56 +436,14 @@ Begin
End;
End;
End;
Close (Session.User.UserFile);
Session.io.PromptInfo[1] := strI2S(Total);
Session.io.OutFull (Session.GetPrompt(31));
End;
{$IFNDEF UNIX}
Procedure Page_For_Chat (Forced: Boolean);
Var
Temp : String;
A, B : Integer;
Begin
If Forced or ((TimerMinutes >= Config.ChatStart) and (TimerMinutes <= Config.ChatEnd)) Then Begin
Session.io.OutFull (Session.GetPrompt(23));
Temp := Session.io.GetInput(50, 50, 11, '');
If Temp = '' Then Exit;
Session.SystemLog('Chat Page: ' + Temp);
Update_Status_Line (0, ' ' + strPadR(Session.User.ThisUser.Handle, 17, ' ') + ' ' + strPadR(Temp, 40, ' ') + ' ALT+(S)plit (C)Line');
Session.io.OutFull(Session.GetPrompt(24));
For A := 1 to 10 Do Begin
Session.io.OutFull(Session.GetPrompt(25));
For B := 0 to 6 Do Begin
//SysBeepEx(523, 50);
//SysBeepEx(659, 50);
End;
If Input.KeyPressed Then If Input.ReadKey = #0 Then Begin
Case Input.ReadKey of
#31 : OpenChat(True);
#46 : OpenChat(False);
End;
Exit;
End;
WaitMS(1000);
End;
End;
Update_Status_line (StatusPtr, '');
Session.io.OutFull (Session.GetPrompt(28));
If Config.ChatFeedback Then
If Session.io.GetYN(Session.GetPrompt(178), False) Then
Session.Msgs.PostMessage (True, '/TO:' + strReplace(Config.SysopName, ' ', '_') + ' /SUBJ:Chat_Feedback');
End;
{$ENDIF}
Procedure Last_Callers;
Begin
Session.io.OutFullLn (Session.GetPrompt(141));
@ -1386,6 +1346,54 @@ Begin
Dispose (DirList[Count]);
End;
{$IFNDEF UNIX}
Procedure PageForSysopChat (Forced: Boolean);
Var
Temp : String;
Count : Integer;
Begin
If Forced or ((TimerMinutes >= Config.ChatStart) and (TimerMinutes <= Config.ChatEnd)) Then Begin
Session.io.OutFull (Session.GetPrompt(23));
Temp := Session.io.GetInput(50, 50, 11, '');
If Temp = '' Then Exit;
Session.SystemLog('Chat Page: ' + Temp);
Update_Status_Line (0, ' ' + strPadR(Session.User.ThisUser.Handle, 17, ' ') + ' ' + strPadR(Temp, 40, ' ') + ' ALT+(S)plit (C)Line');
Session.io.OutFull(Session.GetPrompt(24));
For Count := 1 to 10 Do Begin
Session.io.OutFull(Session.GetPrompt(25));
Session.io.BufFlush;
MessageBeep(0);
If Input.KeyPressed Then If Input.ReadKey = #0 Then Begin
Case Input.ReadKey of
#31 : OpenChat(True);
#46 : OpenChat(False);
End;
Exit;
End;
WaitMS(1000);
End;
End;
Update_Status_line (StatusPtr, '');
Session.io.OutFull (Session.GetPrompt(28));
If Config.ChatFeedback Then
If Session.io.GetYN(Session.GetPrompt(178), False) Then
Session.Msgs.PostMessage (True, '/TO:' + strReplace(Config.SysopName, ' ', '_') + ' /SUBJ:Chat_Feedback');
End;
{$ENDIF}
(* MYSTIC 2's ANSIVIEWER
- needs to be intergrated with the msgbases. there should NOT be a msgtext AND this
class. there should only be one place where the massive message buffer exists.

View File

@ -199,7 +199,7 @@ Begin
Result := True;
End;
'N' : One_Liners (Data);
'P' : {$IFNDEF UNIX} Page_For_Chat (Pos('/F', strUpper(Data)) > 0) {$ENDIF};
'P' : {$IFNDEF UNIX} PageForSysopChat (Pos('/F', strUpper(Data)) > 0) {$ENDIF};
'R' : Begin
If StackNum > 0 Then Begin
MenuOld := MenuName;
@ -305,7 +305,7 @@ Begin
Result := True;
End;
'P' : {$IFNDEF UNIX} If Session.User.GetMatrixUser Then
Page_For_Chat (Pos('/F', strUpper(Data)) > 0) {$ENDIF};
PageForSysopChat (Pos('/F', strUpper(Data)) > 0) {$ENDIF};
End;
'*' : Begin
If Not Session.io.GetPW ('|CR|09Sysop Password: ', Session.GetPrompt(417), Config.SysopPW) Then Exit; {++lang}