diff --git a/src/sbbs3/ctrl/MainFormUnit.cpp b/src/sbbs3/ctrl/MainFormUnit.cpp index 5bdf622446ab4eb90bacf8d51b33da5842ed2c7a..fdd835bd4c8a32f6503dace0cf778d6459bbd0e1 100644 --- a/src/sbbs3/ctrl/MainFormUnit.cpp +++ b/src/sbbs3/ctrl/MainFormUnit.cpp @@ -522,6 +522,7 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) LoginCommand="telnet://localhost"; ConfigCommand="%sSCFG %s /T2"; MinimizeToSysTray=false; + UndockableForms=false; NodeDisplayInterval=1; /* seconds */ ClientDisplayInterval=5; /* seconds */ Initialized=false; @@ -1033,21 +1034,25 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) if(Registry->ValueExists("LowerLeftPageControlWidth")) LowerLeftPageControl->Width =Registry->ReadInteger("LowerLeftPageControlWidth"); - - 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")) - StatsFormFloating=Registry->ReadBool("StatsFormFloating"); - if(Registry->ValueExists("ClientFormFloating")) - ClientFormFloating=Registry->ReadBool("ClientFormFloating"); - if(Registry->ValueExists("MailFormFloating")) - MailFormFloating=Registry->ReadBool("MailFormFloating"); - if(Registry->ValueExists("FtpFormFloating")) - FtpFormFloating=Registry->ReadBool("FtpFormFloating"); + if(Registry->ValueExists("UndockableForms")) + UndockableForms=Registry->ReadBool("UndockableForms"); + + if(UndockableForms) { + 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")) + StatsFormFloating=Registry->ReadBool("StatsFormFloating"); + if(Registry->ValueExists("ClientFormFloating")) + ClientFormFloating=Registry->ReadBool("ClientFormFloating"); + if(Registry->ValueExists("MailFormFloating")) + MailFormFloating=Registry->ReadBool("MailFormFloating"); + if(Registry->ValueExists("FtpFormFloating")) + FtpFormFloating=Registry->ReadBool("FtpFormFloating"); + } if(Registry->ValueExists("TelnetFormPage")) TelnetFormPage=Registry->ReadInteger("TelnetFormPage"); @@ -1476,6 +1481,8 @@ void __fastcall TMainForm::SaveSettings(TObject* Sender) Registry->WriteInteger("LowerLeftPageControlWidth" ,LowerLeftPageControl->Width); + Registry->WriteBool("UndockableForms",UndockableForms); + Registry->WriteBool("TelnetFormFloating",TelnetForm->Floating); Registry->WriteBool("EventsFormFloating",EventsForm->Floating); Registry->WriteBool("NodeFormFloating",NodeForm->Floating); @@ -1983,3 +1990,11 @@ void __fastcall TMainForm::BBSConfigWizardMenuItemClick(TObject *Sender) } //--------------------------------------------------------------------------- +void __fastcall TMainForm::PageControlUnDock(TObject *Sender, + TControl *Client, TWinControl *NewTarget, bool &Allow) +{ + if(NewTarget==NULL) /* Desktop */ + Allow=UndockableForms; +} +//--------------------------------------------------------------------------- + diff --git a/src/sbbs3/ctrl/MainFormUnit.h b/src/sbbs3/ctrl/MainFormUnit.h index c7784a8476decaa2c8b06745359e72658540af94..74989a0966327dc833bf92ca612a8e13da038427 100644 --- a/src/sbbs3/ctrl/MainFormUnit.h +++ b/src/sbbs3/ctrl/MainFormUnit.h @@ -284,6 +284,8 @@ __published: // IDE-managed Components void __fastcall ViewEventsExecute(TObject *Sender); void __fastcall DataMenuItemClick(TObject *Sender); void __fastcall BBSConfigWizardMenuItemClick(TObject *Sender); + void __fastcall PageControlUnDock(TObject *Sender, + TControl *Client, TWinControl *NewTarget, bool &Allow); private: // User declarations public: // User declarations __fastcall TMainForm(TComponent* Owner); @@ -298,6 +300,7 @@ public: // User declarations AnsiString LoginCommand; AnsiString ConfigCommand; bool MinimizeToSysTray; + bool UndockableForms; scfg_t cfg; bbs_startup_t bbs_startup; mail_startup_t mail_startup;