diff --git a/src/sbbs3/ctrl/MainFormUnit.cpp b/src/sbbs3/ctrl/MainFormUnit.cpp index be2cc8dcbfab376f5caa9283aa3b577d68bb9770..92405b82d0903f30dd55e814977b7719efedcf8f 100644 --- a/src/sbbs3/ctrl/MainFormUnit.cpp +++ b/src/sbbs3/ctrl/MainFormUnit.cpp @@ -48,6 +48,7 @@ #include "MainFormUnit.h" #include "TelnetFormUnit.h" +#include "EventsFormUnit.h" #include "FtpFormUnit.h" #include "MailFormUnit.h" #include "NodeFormUnit.h" @@ -72,9 +73,6 @@ #pragma resource "*.dfm" TMainForm *MainForm; -extern "C" __declspec(dllimport) BOOL __stdcall load_cfg(scfg_t* cfg, char* text[]); -extern "C" __declspec(dllimport) BOOL __stdcall getstats(scfg_t* cfg, char node, stats_t* stats); -extern "C" __declspec(dllimport) int __stdcall getmail(scfg_t* cfg, int usernumber, BOOL sent); #define MAX_LOGLEN 20000 #define LOG_TIME_FMT " m/d hh:mm:ssa/p" @@ -273,6 +271,24 @@ static void bbs_start(void) _beginthread((void(*)(void*))bbs_thread,0,&MainForm->bbs_startup); } +static int event_log(char *str) +{ + static HANDLE mutex; + + if(!mutex) + mutex=CreateMutex(NULL,false,NULL); + WaitForSingleObject(mutex,INFINITE); + + while(EventsForm->Log->Text.Length()>=MAX_LOGLEN) + EventsForm->Log->Lines->Delete(0); + + AnsiString Line=Now().FormatString(LOG_TIME_FMT)+" "; + Line+=AnsiString(str).Trim(); + EventsForm->Log->Lines->Add(Line); + ReleaseMutex(mutex); + return(Line.Length()); +} + static int mail_lputs(char *str) { static HANDLE mutex; @@ -517,6 +533,7 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) bbs_startup.thread_up=thread_up; bbs_startup.client_on=client_on; bbs_startup.socket_open=socket_open; + bbs_startup.event_log=event_log; memset(&mail_startup,0,sizeof(mail_startup)); mail_startup.size=sizeof(mail_startup); @@ -533,8 +550,8 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) mail_startup.thread_up=thread_up; mail_startup.client_on=client_on; mail_startup.socket_open=socket_open; - mail_startup.max_delivery_attempts=10; - mail_startup.rescan_frequency=300; /* 5 minutes */ + mail_startup.max_delivery_attempts=50; + mail_startup.rescan_frequency=3600; /* 60 minutes */ memset(&ftp_startup,0,sizeof(ftp_startup)); ftp_startup.size=sizeof(ftp_startup); @@ -665,6 +682,11 @@ void __fastcall TMainForm::SaveSettings(TObject* Sender) Registry->WriteInteger("TelnetFormHeight",TelnetForm->Height); Registry->WriteInteger("TelnetFormWidth",TelnetForm->Width); + Registry->WriteInteger("EventsFormTop",EventsForm->Top); + Registry->WriteInteger("EventsFormLeft",EventsForm->Left); + Registry->WriteInteger("EventsFormHeight",EventsForm->Height); + Registry->WriteInteger("EventsFormWidth",EventsForm->Width); + Registry->WriteInteger("FtpFormTop",FtpForm->Top); Registry->WriteInteger("FtpFormLeft",FtpForm->Left); Registry->WriteInteger("FtpFormHeight",FtpForm->Height); @@ -682,6 +704,7 @@ void __fastcall TMainForm::SaveSettings(TObject* Sender) ,LowerLeftPageControl->Width); Registry->WriteBool("TelnetFormFloating",TelnetForm->Floating); + Registry->WriteBool("EventsFormFloating",EventsForm->Floating); Registry->WriteBool("NodeFormFloating",NodeForm->Floating); Registry->WriteBool("StatsFormFloating",StatsForm->Floating); Registry->WriteBool("ClientFormFloating",ClientForm->Floating); @@ -690,6 +713,8 @@ void __fastcall TMainForm::SaveSettings(TObject* Sender) Registry->WriteInteger("TelnetFormPage" ,PageNum((TPageControl*)TelnetForm->HostDockSite)); + Registry->WriteInteger("EventsFormPage" + ,PageNum((TPageControl*)EventsForm->HostDockSite)); Registry->WriteInteger("NodeFormPage" ,PageNum((TPageControl*)NodeForm->HostDockSite)); Registry->WriteInteger("MailFormPage" @@ -803,8 +828,10 @@ void __fastcall TMainForm::FormCloseQuery(TObject *Sender, bool &CanClose) FtpStopExecute(Sender); } - while(TelnetStop->Enabled || MailStop->Enabled || FtpStop->Enabled) - Application->HandleMessage(); + while(TelnetStop->Enabled || MailStop->Enabled || FtpStop->Enabled) { + Application->ProcessMessages(); + Sleep(1); + } CanClose=true; } @@ -878,6 +905,12 @@ void __fastcall TMainForm::ViewTelnetExecute(TObject *Sender) ViewTelnet->Checked=TelnetForm->Visible; } //--------------------------------------------------------------------------- +void __fastcall TMainForm::ViewEventsExecute(TObject *Sender) +{ + EventsForm->Visible=!EventsForm->Visible; + ViewEvents->Checked=EventsForm->Visible; +} +//--------------------------------------------------------------------------- void __fastcall TMainForm::ViewNodesExecute(TObject *Sender) { @@ -1128,6 +1161,7 @@ int __fastcall TMainForm::PageNum(TPageControl* obj) void __fastcall TMainForm::StartupTimerTick(TObject *Sender) { bool TelnetFormFloating=false; + bool EventsFormFloating=false; bool NodeFormFloating=false; bool StatsFormFloating=false; bool ClientFormFloating=false; @@ -1137,6 +1171,7 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) int StatsFormPage=PAGE_UPPERLEFT; int ClientFormPage=PAGE_UPPERLEFT; int TelnetFormPage=PAGE_LOWERLEFT; + int EventsFormPage=PAGE_LOWERLEFT; int MailFormPage=PAGE_UPPERRIGHT; int FtpFormPage=PAGE_LOWERRIGHT; @@ -1167,6 +1202,8 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) if(Registry->ValueExists("TelnetFormFloating")) TelnetFormFloating=Registry->ReadBool("TelnetFormFloating"); + if(Registry->ValueExists("EventsFormFloating")) + EventsFormFloating=Registry->ReadBool("EventsFormFloating"); if(Registry->ValueExists("NodeFormFloating")) NodeFormFloating=Registry->ReadBool("NodeFormFloating"); if(Registry->ValueExists("StatsFormFloating")) @@ -1180,6 +1217,8 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) if(Registry->ValueExists("TelnetFormPage")) TelnetFormPage=Registry->ReadInteger("TelnetFormPage"); + if(Registry->ValueExists("EventsFormPage")) + EventsFormPage=Registry->ReadInteger("EventsFormPage"); if(Registry->ValueExists("NodeFormPage")) NodeFormPage=Registry->ReadInteger("NodeFormPage"); if(Registry->ValueExists("StatsFormPage")) @@ -1200,6 +1239,15 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) if(Registry->ValueExists("TelnetFormHeight")) TelnetForm->Height=Registry->ReadInteger("TelnetFormHeight"); + if(Registry->ValueExists("EventsFormTop")) + EventsForm->Top=Registry->ReadInteger("EventsFormTop"); + if(Registry->ValueExists("EventsFormLeft")) + EventsForm->Left=Registry->ReadInteger("EventsFormLeft"); + if(Registry->ValueExists("EventsFormWidth")) + EventsForm->Width=Registry->ReadInteger("EventsFormWidth"); + if(Registry->ValueExists("EventsFormHeight")) + EventsForm->Height=Registry->ReadInteger("EventsFormHeight"); + if(Registry->ValueExists("FtpFormTop")) FtpForm->Top=Registry->ReadInteger("FtpFormTop"); if(Registry->ValueExists("FtpFormLeft")) @@ -1438,6 +1486,8 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) MailForm->ManualDock(PageControl(MailFormPage),NULL,alClient); if(!TelnetFormFloating) TelnetForm->ManualDock(PageControl(TelnetFormPage),NULL,alClient); + if(!EventsFormFloating) + EventsForm->ManualDock(PageControl(EventsFormPage),NULL,alClient); if(!FtpFormFloating) FtpForm->ManualDock(PageControl(FtpFormPage),NULL,alClient); @@ -1445,6 +1495,7 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) ClientForm->Show(); StatsForm->Show(); TelnetForm->Show(); + EventsForm->Show(); FtpForm->Show(); MailForm->Show(); @@ -1648,7 +1699,7 @@ void __fastcall TMainForm::UpTimerTick(TObject *Sender) /* Animate TrayIcon when in use */ AnsiString NumClients; if(clients) { - TrayIcon->IconIndex^=1; + TrayIcon->IconIndex=(TrayIcon->IconIndex==4) ? 59 : 4; NumClients=" ("+AnsiString(clients)+" client"; if(clients>1) NumClients+="s"; @@ -1793,7 +1844,7 @@ void __fastcall TMainForm::HelpIndexMenuItemClick(TObject *Sender) { char str[512]; - sprintf(str,"start http://synchro.net/docs"); + sprintf(str,"start http://synchro.net/docs/"); WinExec(str,SW_SHOWMINNOACTIVE); } //--------------------------------------------------------------------------- @@ -1830,3 +1881,28 @@ void __fastcall TMainForm::PropertiesExecute(TObject *Sender) } //--------------------------------------------------------------------------- +void __fastcall TMainForm::CloseMenuItemClick(TObject *Sender) +{ + Close(); +} +//--------------------------------------------------------------------------- + +void __fastcall TMainForm::RestoreMenuItemClick(TObject *Sender) +{ + TrayIcon->Visible=false; + Application->Restore(); +} +//--------------------------------------------------------------------------- + +void __fastcall TMainForm::HelpSysopMenuItemClick(TObject *Sender) +{ + char str[512]; + + sprintf(str,"start http://synchro.net/docs/sysop.html"); + WinExec(str,SW_SHOWMINNOACTIVE); +} +//--------------------------------------------------------------------------- + + + + diff --git a/src/sbbs3/ctrl/MainFormUnit.dfm b/src/sbbs3/ctrl/MainFormUnit.dfm index 93a57acd00c26abdbaa4e26740b5b8825037ef8d..ffbb1f4c7702ab0e4e529fcd121b9d96b285e261 100644 --- a/src/sbbs3/ctrl/MainFormUnit.dfm +++ b/src/sbbs3/ctrl/MainFormUnit.dfm @@ -1856,6 +1856,7 @@ object MainForm: TMainForm Images = ImageList Indent = 2 ParentShowHint = False + PopupMenu = TrayPopupMenu ShowHint = True TabOrder = 0 object ViewTelnetButton: TToolButton @@ -2427,6 +2428,9 @@ object MainForm: TMainForm object ViewFtpServerMenuItem: TMenuItem Action = ViewFtpServer end + object ViewEventsMenuItem: TMenuItem + Action = ViewEvents + end object Clients1: TMenuItem Action = ViewClients end @@ -2445,6 +2449,10 @@ object MainForm: TMainForm Caption = '&Index' OnClick = HelpIndexMenuItemClick end + object HelpSysopMenuItem: TMenuItem + Caption = 'Sysop Manual' + OnClick = HelpSysopMenuItemClick + end object N7: TMenuItem Caption = '-' end @@ -2582,141 +2590,146 @@ object MainForm: TMainForm ImageIndex = 4 OnExecute = PropertiesExecute end + object ViewEvents: TAction + Caption = '&Events' + ImageIndex = 49 + OnExecute = ViewEventsExecute + end end object ImageList: TImageList Left = 360 Bitmap = { - 494C01013B004000040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C01013D004000040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000000001000001001000000000000080 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000FF7F + FF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000FF7FEF3DEF3D + EF3DEF3DEF3D0000FF7FFF7F0000000000000F00FF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000EF3DEF3D0000FF7F + FF7F00000000EF3DEF3D0000FF7F00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7F386BFF7F386B386B386BEF3D386B386B386B386B386B386B386B386B386B + 386B386B386B386B386B386B386B386B386B00000000EF3D00000000EF3DEF3D + FF7F0000000000000000EF3DFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3DFF7F00000000EF3DEF3D + FF7FFF7F000000000000EF3DEF3DFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F386B386B386B386B386B386B + 386B386B386B386B386B386B386BEF3DFF7F0000EF3D000000000000EF3DEF3D + EF3DFF7F000000000000EF3DEF3D0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7F00000000FF7FEF3DEF3D + EF3DFF7F00000000000000000000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7F0000EF3DEF3DEF3DEF3D + EF3DFF7F0000FF7F000000000000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7FEF3DEF3DEF3DEF3DEF3D + EF3DFF7FEF3DFF7FFF7F00000000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7F0000EF3DEF3DEF3DEF3D + EF3DEF3DEF3DEF3DFF7F00000000EF3DFF7F386B386B386B386B386B386B386B + 386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B386B + 386B386BFF7FEF3DFF7FFF7FFF7FFF7FFF7FFF7F0F00FF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3D0000FF7FEF3DEF3D00000000 + FF7FEF3DEF3DEF3DFF7FFF7F0000EF3D0000FF7FFF7FFF7FFF7FFF7FFF7F0000 + 000000000000FF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F + 000000000000FF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000000000000000FF7F + FF7FFF7FFF7FFF7F0000FF7FFF7FFF7F00000000EF3DFF7F0000FF7FFF7FEF3D + EF3DEF3DEF3DEF3DEF3DFF7FEF3DFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F000000000000 + 00000000FF7FFF7F00000000FF7FFF7FFF7F00000000FF7FFF7F000000000000 + 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3D0000EF3DEF3DEF3DEF3D + EF3DEF3DEF3DEF3DEF3DFF7FEF3D00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000EF3DEF3DEF3DEF3D0000 + 0000EF3D0000EF3DEF3DEF3D000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000EF3DEF3D0000FF7F + FF7FFF7FFF7FEF3DEF3D0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000EF3DEF3D + EF3DEF3DEF3D000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000FF7F FF7FFF7FFF7FFF7F000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000FF7FEF3DEF3D EF3DEF3DEF3DFF7FFF7FFF7F0000000000000000000000000000000000000000 0000000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F - FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000 - 000000000000000000000000000000000000000000000000EF3DEF3DEF3D0000 + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000F000F00 + 1F000F001F00000000000000000000000000000000000000EF3DEF3DEF3D0000 00000000EF3DEF3DEF3DFF7FFF7F000000000000000000000000000000000000 000000000000000000000000000000000000EF3DEF3DEF3DEF3DEF3DEF3DEF3D - EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000 - 00000000000000000000000000000000000000000000EF3DEF3D000000000000 + EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000F001F000F000F00 + 0F001F000F000F000F00000000000000000000000000EF3DEF3D000000000000 EF3DFF7F0000EF3DEF3DEF3DFF7FFF7F00000000FF7FFF7FFF7FFF7FFF7FFF7F FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3DFF7F0000000000000000FF7F - FF7FFF7F000000000000000000000000EF3D0000000000000000000000000000 - 0000000000000000000000000000000000000000EF3DEF3D000000000000EF3D + FF7FFF7F000000000000000000000000EF3D000000000F001F000F00E03DE03D + 0F000F000F000F000F000F000000000000000000EF3DEF3D000000000000EF3D EF3DEF3DFF7F00000000EF3DEF3DFF7F00000000FF7FFF7FFF7FFF7FEF3DEF3D EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3DFF7F000000000000EF3DEF3D - EF3D0000000000000000000000000000EF3D0000000000000000000000000000 - 0000000000000000000000000000000000000000EF3DEF3D0000000000000000 + EF3D0000000000000000000000000000EF3D00000F001F000F001F00E03DE03D + 0F001F000F001F000F00E03DE03D000000000000EF3DEF3D0000000000000000 EF3D00000000000000000000EF3DFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3DFF7F0000000000000000FF7F - FF7FFF7FFF7FFF7FFF7F000000000000EF3D0000000000000000000000000000 - 000000000000000000000000000000000000EF3DEF3DFF7F0000000000000000 + FF7FFF7FFF7FFF7FFF7F000000000000EF3D00000F001F001F001F00E03DE03D + E03D0F000F000F000F00E03DE03D00000000EF3DEF3DFF7F0000000000000000 0000FF7F0000000000000000EF3DEF3DFF7F0000FF7FFF7FFF7FFF7FEF3DEF3D EF3DEF3DEF3DEF3DFF7FFF7FFF7FFF7F0000EF3DFF7F000000000000EF3DEF3D - EF3DEF3DEF3DEF3D00000000FF7FFF7FEF3D0000000000000000000000000000 - 000000000000000000000000000000000000EF3DEF3DFF7F0000000000000000 + EF3DEF3DEF3DEF3D00000000FF7FFF7FEF3D1F001F001F001F001F00E03DE03D + E03D1F001F001F000F001F000F000F000000EF3DEF3DFF7F0000000000000000 EF3DFF7FFF7F0000000000000000EF3D00000000FF7FFF7FFF7FFF7FFF7FFF7F FF7FFF7FFF7FFF7FFF7F007C007C007C0000EF3DFF7F0000FF7FFF7FFF7F0000 - 00000000000000000000EF3DEF3DEF3DEF3D0000000000000000000000000000 - 000000000000000000000000000000000000EF3DEF3DFF7F000000000000EF3D + 00000000000000000000EF3DEF3DEF3DEF3D0F001F001F00E03DE03DE03DE03D + E03D1F001F001F000F000F000F001F000000EF3DEF3DFF7F000000000000EF3D EF3DEF3DFF7F0000000000000000000000000000FF7FEF3DEF3DEF3DFF7FFF7F FF7FFF7FFF7FFF7FFF7F007C1F00E0030000EF3DFF7FEF3DEF3DEF3D00000000 - 00000000000000000000EF3DFF7F0000EF3D0000000000000000000000000000 - 000000000000000000000000000000000000EF3DEF3DFF7F000000000000EF3D + 00000000000000000000EF3DFF7F0000EF3D1F000F00E03DE03DE03DE03DE03D + E03D1F00E03D1F000F001F001F001F000000EF3DEF3DFF7F000000000000EF3D EF3DEF3DFF7F0000FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F FF7FFF7FFF7FFF7FFF7F007CE003007C0000EF3DFF7FFF7FFF7FFF7FFF7FFF7F - FF7FFF7FFF7FFF7FFF7FEF3DFF7FFF7FEF3D0000000000000000000000000000 - 000000000000000000000000000000000000EF3DEF3DFF7FFF7F00000000EF3D + FF7FFF7FFF7FFF7FFF7FEF3DFF7FFF7FEF3D0F001F001F00E03DE03DE03DE03D + E03DE03DE03DE03D1F000F001F000F000000EF3DEF3DFF7FFF7F00000000EF3D EF3DEF3DFF7FEF3DEF3DEF3DEF3DEF3DFF7F0000000000000000000000000000 000000000000000000000000000000000000EF3DEF3DEF3DEF3DEF3DEF3DEF3D - EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000 - 0000000000000000000000000000000000000000EF3D0000FF7FFF7F0000EF3D + EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D1F001F001F00E03DE03D1F001F00 + 0F00E03DE03DE03D1F001F000F001F0000000000EF3D0000FF7FFF7F0000EF3D EF3DEF3DFF7F0000EF3DEF3DEF3DEF3DFF7F0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000EF3DEF3D0000FF7FFF7FEF3D + 00000000000000000000000000000000000000001F001F001F001F001F00E03D + E03DE03DE03DE03DE03D0F001F00000000000000EF3DEF3D0000FF7FFF7FEF3D EF3DEF3DFF7F0000FF7FEF3DEF3DEF3DFF7F0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000EF3DEF3D0000FF7F0000 + 00000000000000000000000000000000000000000F001F00E03DE03DE03DE03D + E03DE03DE03DE03DE03D1F001F000000000000000000EF3DEF3D0000FF7F0000 EF3D0000FF7FEF3DEF3DEF3DEF3DEF3DFF7F0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000EF3DEF3DEF3D0000 + 00000000000000000000000000000000000000000000E03DE03DE03DE03D1F00 + 1F00E03D1F00E03DE03D1F00000000000000000000000000EF3DEF3DEF3D0000 00000000EF3DEF3DEF3D00000000EF3D00000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000000EF3DEF3D + 000000000000000000000000000000000000000000000000E03DE03D1F001F00 + 0F001F000F001F001F00000000000000000000000000000000000000EF3DEF3D EF3DEF3DEF3D0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000EF3DEF3DEF3DEF3DEF3DEF3D + 000000000000000000000000000000000000000000000000000000001F000F00 + 1F001F001F000000000000000000000000000000EF3DEF3DEF3DEF3DEF3DEF3D EF3DEF3DEF3DEF3DEF3DEF3DEF3DFF7F00000000000000000000000000000000 0000000000000000000000000000000000000000EF3DEF3DEF3DEF3DEF3DEF3D EF3DEF3DEF3DEF3DEF3DEF3DEF3DFF7F00000000000000000000000000000000 @@ -3614,15 +3627,15 @@ object MainForm: TMainForm FF03FF03FF03FF03FF03FF03FF03FF0300000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000000100000100010000000000000800000000000000000000 - 000000000000000000000000FFFFFF0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000FC1FFFFFFFFF0000F007FFFF80000000 - E383000000000000CE4100003C7E00009C31000038FE00009EF800003C0E0000 - 1F780000381800001E3D000023F000001C3F000007F200001C20000000000000 - 0C00000000000000A420FFFFFFFF00009020FFFFFFFF0000CA80FFFFFFFF0000 - E38DFFFFFFFF0000F83FFFFFFFFF0000800180038001FFFF9E3980039C19F83F + 000000000000000000000000FFFFFF00FC1F310D0A202020F027313030303143 + E4CB463030303143D8F14646464646469871464646464646B872464643334643 + 307C464643374646205C464643314638000C204543334646200C460D0A202020 + 46054646383146309001464334303746A003464638304630C347373830303346 + E40F464638304630F83F334330303146FC1FFFFFFFFFFFFFF007FFFF8000F83F + E38300000000E00FCE4100003C7EC0079C31000038FE80039EF800003C0E8003 + 1F780000381800011E3D000023F000011C3F000007F200011C20000000000001 + 0C00000000000001A420FFFFFFFF80039020FFFFFFFF8003CA80FFFFFFFFC007 + E38DFFFFFFFFE00FF83FFFFFFFFFF83F800180038001FFFF9E3980039C19F83F 9C7980039829E00F9E79800397D1C4479C79800387E18C639EF9800387019C73 8551800386213FF98001800386613EF9800180038A693C7F8281800394193C7F 8DA1800398213C419FC180039FC19C61800B8003800B8C71800780078007C441 @@ -3678,8 +3691,7 @@ object MainForm: TMainForm 000180010001800100019FF900019FF91FF19EF91FF19FF91DF19C791FF19C19 1CF19C39183198191C719C19183198191C319C39183198191C719C7918319819 1CF19CF9183198391DF19DF91FF19FF91FF19FF91FF19FF90001800100018001 - 00018003000180030001FFFF0001FFFF00000000000000000000000000000000 - 000000000000} + 00018003000180030001FFFF0001FFFF} end object StatsTimer: TTimer Enabled = False @@ -3701,13 +3713,25 @@ object MainForm: TMainForm end object TrayIcon: TTrayIcon Hint = 'Synchronet Control Panel' + PopupMenu = TrayPopupMenu Hide = True - RestoreOn = imDoubleClick - PopupMenuOn = imNone + PopupMenuOn = imRightClickUp Icons = ImageList IconIndex = 4 OnRestore = TrayIconRestore Left = 506 Top = 65532 end + object TrayPopupMenu: TPopupMenu + Left = 266 + Top = 65532 + object RestoreMenuItem: TMenuItem + Caption = 'Restore' + OnClick = RestoreMenuItemClick + end + object CloseMenuItem: TMenuItem + Caption = 'Close' + OnClick = CloseMenuItemClick + end + end end diff --git a/src/sbbs3/ctrl/MainFormUnit.h b/src/sbbs3/ctrl/MainFormUnit.h index 249b59cf3ffb65fe02ea09bd8524d29194a643d4..d75193dfbe9e6bbe22e7e164b982fb9d69816ae4 100644 --- a/src/sbbs3/ctrl/MainFormUnit.h +++ b/src/sbbs3/ctrl/MainFormUnit.h @@ -203,6 +203,12 @@ __published: // IDE-managed Components TMenuItem *N8; TTrayIcon *TrayIcon; TAction *Properties; + TPopupMenu *TrayPopupMenu; + TMenuItem *RestoreMenuItem; + TMenuItem *CloseMenuItem; + TMenuItem *HelpSysopMenuItem; + TAction *ViewEvents; + TMenuItem *ViewEventsMenuItem; void __fastcall FileExitMenuItemClick(TObject *Sender); void __fastcall ViewToolbarMenuItemClick(TObject *Sender); void __fastcall FormClose(TObject *Sender, TCloseAction &Action); @@ -255,6 +261,10 @@ __published: // IDE-managed Components void __fastcall HelpIndexMenuItemClick(TObject *Sender); void __fastcall TrayIconRestore(TObject *Sender); void __fastcall PropertiesExecute(TObject *Sender); + void __fastcall CloseMenuItemClick(TObject *Sender); + void __fastcall RestoreMenuItemClick(TObject *Sender); + void __fastcall HelpSysopMenuItemClick(TObject *Sender); + void __fastcall ViewEventsExecute(TObject *Sender); private: // User declarations public: // User declarations __fastcall TMainForm(TComponent* Owner);