Skip to content
Snippets Groups Projects
Commit 54cb1ea4 authored by rswindell's avatar rswindell
Browse files

Utilized Franτois Piette's TEmulVT component for ANSI emulation in the Spy Form.

parent 9a56af08
No related branches found
No related tags found
No related merge requests found
......@@ -106,6 +106,8 @@ void __fastcall TAboutBoxForm::FormShow(TObject *Sender)
Memo->Lines->Add(mail_ver());
Memo->Lines->Add(ftp_ver());
Memo->Lines->Add(ver);
Memo->Lines->Add("EmulVT ANSI Terminal Emulation v2.15 "
"(c) 1996-2000 Franois Piette");
}
//---------------------------------------------------------------------------
......
......@@ -3,18 +3,23 @@
#include <vcl.h>
#pragma hdrstop
#include "MainFormUnit.h"
#include "SpyFormUnit.h"
#include "sbbsdefs.h"
#define SPYBUF_LEN 10000
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Emulvt"
#pragma link "Emulvt"
#pragma resource "*.dfm"
TSpyForm *SpyForm;
//---------------------------------------------------------------------------
__fastcall TSpyForm::TSpyForm(TComponent* Owner)
: TForm(Owner)
{
Width=MainForm->SpyTerminalWidth;
Height=MainForm->SpyTerminalHeight;
}
bool strip_ansi(char* str)
{
......@@ -81,34 +86,56 @@ void __fastcall TSpyForm::SpyTimerTick(TObject *Sender)
rd=RingBufRead(*spybuf,buf,sizeof(buf)-1);
if(rd) {
#if 0
buf[rd]=0;
if(strip_ansi(buf))
Log->Lines->Clear();
Log->SelLength=0;
Log->SelStart=Log->Lines->Text.Length();
Log->SelText=AnsiString(buf);
#else
Terminal->WriteBuffer(buf,rd);
#endif
Timer->Interval=100;
} else
Timer->Interval=500;
}
//---------------------------------------------------------------------------
void __fastcall TSpyForm::FormDestroy(TObject *Sender)
void __fastcall TSpyForm::FormShow(TObject *Sender)
{
Terminal->Font=MainForm->SpyTerminalFont;
if((*spybuf=(RingBuf*)malloc(sizeof(RingBuf)))==NULL) {
Terminal->WriteStr("Malloc failure!");
return;
}
RingBufInit(*spybuf,SPYBUF_LEN);
Timer->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TSpyForm::FormClose(TObject *Sender, TCloseAction &Action)
{
Timer->Enabled=false;
if(*spybuf!=NULL) {
RingBufDispose(*spybuf);
free(*spybuf);
*spybuf=NULL;
}
Timer->Enabled=false;
MainForm->SpyTerminalWidth=Width;
MainForm->SpyTerminalHeight=Height;
}
//---------------------------------------------------------------------------
void __fastcall TSpyForm::FormShow(TObject *Sender)
void __fastcall TSpyForm::FontMenuItemClick(TObject *Sender)
{
if((*spybuf=(RingBuf*)malloc(sizeof(RingBuf)))==NULL) {
Log->Lines->Add("Malloc failure!");
return;
}
RingBufInit(*spybuf,SPYBUF_LEN);
Timer->Enabled=true;
TFontDialog *FontDialog=new TFontDialog(this);
FontDialog->Font=MainForm->SpyTerminalFont;
FontDialog->Execute();
MainForm->SpyTerminalFont->Assign(FontDialog->Font);
Terminal->Font=MainForm->SpyTerminalFont;
delete FontDialog;
}
//---------------------------------------------------------------------------
object SpyForm: TSpyForm
Left = 244
Top = 195
Width = 536
Height = 336
Left = 337
Top = 348
Width = 584
Height = 363
BorderIcons = [biSystemMenu, biMinimize]
Caption = 'Spy'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -10
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
FormStyle = fsStayOnTop
Icon.Data = {
0000010001002020100000000000E80200001600000028000000200000004000
0000010004000000000080020000000000000000000000000000000000000000
......@@ -36,28 +37,43 @@ object SpyForm: TSpyForm
000FF800000FFC00001FFE00001FE0000001C000000180000001800000018000
00018000000180000001FC00001FFC00001FFE00001FFC00000FF800000FF800
001FF800003FFC180C7FFE380EFFFFF80FFFFFF80FFFFFF80FFFFFFFFFFF}
Menu = SpyMenu
OldCreateOrder = False
Position = poDefaultPosOnly
OnDestroy = FormDestroy
OnClose = FormClose
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Log: TMemo
PixelsPerInch = 120
TextHeight = 16
object Terminal: TEmulVT
Left = 0
Top = 0
Width = 528
Height = 309
Width = 576
Height = 307
Cursor = crNo
Align = alClient
Color = clBlack
BorderStyle = bsNone
AutoRepaint = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWhite
Font.Height = -11
Font.Color = clWindowText
Font.Height = -12
Font.Name = 'Terminal'
Font.Pitch = fpFixed
Font.Style = []
ParentFont = False
ReadOnly = True
ScrollBars = ssBoth
LocalEcho = False
AutoLF = False
AutoCR = False
Xlat = True
MonoChrome = False
Log = False
Rows = 25
Cols = 80
BackRows = 0
BackColor = vtsWhite
Options = [vtoBackColor]
LineHeight = 20
CharWidth = 10
TabOrder = 0
FKeys = 1
end
object Timer: TTimer
Enabled = False
......@@ -66,4 +82,90 @@ object SpyForm: TSpyForm
Left = 72
Top = 48
end
object ImageList: TImageList
Left = 128
Top = 48
Bitmap = {
494C010102000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000001000000001001000000000000008
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386BEF3DE71C386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000FF7FFF7FFF7F
00000000FF7FFF7FFF7FFF7FFF7F00000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
000000000000000000000000000000000000000000000000EF3DEF3DEF3D0000
0000EF3DEF3DEF3DEF3DEF3D000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386BFF7F386B386B386B386B386B386B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000EF3DFF7FFF7F
00000000EF3DEF3DEF3DFF7F000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B000000000000000000000000EF3D
0000000000000000000000000000000000000000000000000000EF3DEF3DFF7F
FF7FFF7FEF3DEF3DEF3DFF7F000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386BEF3DE71CFF7F386B386B386B386B386B
386B0000386B386B386B386B0000386B386B00000000000000000000EF3D0000
00000000000000000000EF3D0000000000000000000000000000EF3DEF3DEF3D
EF3DEF3DEF3DEF3DEF3D0000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386BE71C386B386BFF7F0000000000000000000000000000
00000000000000000000000000000000000000000000000000000000EF3DFF7F
FF7FEF3DEF3DEF3DFF7F0000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386BE71C386B386BFF7F386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
EF3D0000000000000000000000000000000000000000000000000000EF3DEF3D
FF7FEF3DEF3DEF3DFF7F0000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386BE71C386B386BFF7F386B386B386B000000000000000000000000EF3D
0000000000000000EF3D000000000000000000000000000000000000EF3DEF3D
FF7FEF3DEF3DEF3D00000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000EF3D
EF3DEF3DEF3DFF7F00000000000000000000386B386B386BE71C386B386BFF7F
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000EF3D
EF3DEF3DEF3DFF7F00000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
EF3D00000000EF3D00000000000000000000000000000000000000000000EF3D
EF3DEF3DEF3D000000000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386BEF3DE71C386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
EF3DEF3D0000000000000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
EF3D00000000000000000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386BFF7F386B386B386B386B386B386B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386B386B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000386B386B386B386B386B386B386B
386B386B386B386B386B386B386B386BEF3DE71CFF7F386B386B386B386B386B
386B0000386B386B386B386B386B386B386B424D3E000000000000003E000000
2800000040000000100000000100010000000000800000000000000000000000
000000000000000000000000FFFFFF00FFFFFFFF00000000FFFFF18300000000
F183E30700000000FBC7F18700000000F9C7F00700000000F807F00F00000000
FD8FF80F00000000FC8FF80F00000000FC8FF81F00000000FE1FFC1F00000000
FE1FFC1F00000000FE1FFC3F20001010FF3FFE7F44493353FF7FFEFFAC098F11
FFFFFFFF00000000FFFFFFFF905C3F03}
end
object SpyMenu: TMainMenu
Left = 288
Top = 24
object FontMenuItem: TMenuItem
Caption = 'Font'
OnClick = FontMenuItemClick
end
end
end
......@@ -9,15 +9,26 @@
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include "ringbuf.h"
#include "tnemulvt.hpp"
#include "Emulvt.hpp"
#include <ComCtrls.hpp>
#include <Dialogs.hpp>
#include <ImgList.hpp>
#include <ToolWin.hpp>
#include <Menus.hpp>
//---------------------------------------------------------------------------
class TSpyForm : public TForm
{
__published: // IDE-managed Components
TMemo *Log;
TTimer *Timer;
TEmulVT *Terminal;
TImageList *ImageList;
TMainMenu *SpyMenu;
TMenuItem *FontMenuItem;
void __fastcall SpyTimerTick(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
void __fastcall FormShow(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall FontMenuItemClick(TObject *Sender);
private: // User declarations
public: // User declarations
RingBuf** spybuf;
......
......@@ -19,12 +19,12 @@
StatsFormUnit.dfm AboutBoxFormUnit.dfm StatsLogFormUnit.dfm
CodeInputFormUnit.dfm ClientFormUnit.dfm SpyFormUnit.dfm"/>
<LIBFILES value="sbbs.lib mailsrvr.lib ftpsrvr.lib"/>
<LIBRARIES value="vcl50.lib"/>
<SPARELIBS value="vcl50.lib"/>
<LIBRARIES value="IcsBcb50.lib vcl50.lib"/>
<SPARELIBS value="vcl50.lib IcsBcb50.lib"/>
<PACKAGES value="vcl50.bpi vclx50.bpi vcljpg50.bpi bcbsmp50.bpi vclmid50.bpi vcldb50.bpi
vclbde50.bpi inet50.bpi inetdb50.bpi vcldbx50.bpi qrpt50.bpi teeui50.bpi
teedb50.bpi tee50.bpi dss50.bpi nmfast50.bpi dclocx50.bpi"/>
<PATHCPP value=".;.."/>
<PATHCPP value=".;..\..\sbbs3"/>
<PATHPAS value=".;"/>
<PATHRC value=".;"/>
<PATHASM value=".;"/>
......@@ -34,14 +34,15 @@
<USERDEFINES value="SBBS;SMB_GETMSGTXT;_DEBUG"/>
<SYSDEFINES value="NO_STRICT;_VIS_NOLIB"/>
<MAINSOURCE value="sbbsctrl.cpp"/>
<INCLUDEPATH value="..\;C:\Borland\CBuilder5\Projects;..;$(BCB)\include;$(BCB)\include\vcl"/>
<LIBPATH value="..\;C:\Borland\CBuilder5\Projects;$(BCB)\lib\obj;$(BCB)\lib"/>
<INCLUDEPATH value="..\..\ics\DELPHI\VC32;..\;C:\Borland\CBuilder5\Projects;..;$(BCB)\include;$(BCB)\include\vcl"/>
<LIBPATH value="$(BCB)\Projects\Lib;..\..\ics\DELPHI\VC32;..\;C:\Borland\CBuilder5\Projects;$(BCB)\lib\obj;$(BCB)\lib"/>
<WARNINGS value="-w-par -w-csu"/>
<WARNOPTSTR value=""/>
</MACROS>
<OPTIONS>
<IDLCFLAGS value="-I..\. -IC:\Borland\CBuilder5\Projects -I.. -I$(BCB)\include
-I$(BCB)\include\vcl -src_suffix cpp -DSBBS -DSMB_GETMSGTXT -D_DEBUG -boa"/>
<IDLCFLAGS value="-I..\..\ics\DELPHI\VC32 -I..\. -IC:\Borland\CBuilder5\Projects -I..
-I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -DSBBS
-DSMB_GETMSGTXT -D_DEBUG -boa"/>
<CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
-tW -tWM"/>
<PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment