//--------------------------------------------------------------------------- __fastcall TEditorForm::~TEditorForm() { assert(FInstances > 0); FInstances--; if (FInstance == 0) { UnicodeString WindowParams = StoreForm(this); // this is particularly to prevent saving the form state // for the first time, keeping default positioning by a system if (!FWindowParams.IsEmpty() && (FWindowParams != WindowParams)) { TEditorConfiguration EditorConfiguration = WinConfiguration->Editor; EditorConfiguration.WindowParams = StoreForm(this); WinConfiguration->Editor = EditorConfiguration; } } // see FormClose for explanation if (!FCloseAnnounced) { BackupSave(); DoWindowClose(true); } if (Application->OnHint == ApplicationHint) { Application->OnHint = NULL; } }
//--------------------------------------------------------------------------- void __fastcall TEditorForm::FormShow(TObject * /*Sender*/) { CutFormToDesktop(this); assert(FWindowParams.IsEmpty()); if (FWindowParams.IsEmpty()) { FWindowParams = StoreForm(this); } }
//--------------------------------------------------------------------------- void __fastcall TLogForm::FormClose(TObject * /*Sender*/, TCloseAction & Action) { assert(Configuration); // If log window feature is turned off (log window is being closed // by turning off this feature e.g. in Preferences Window), really close it // If log window feature is turned on (log window is being closed by // close command if this window) we only disable log window feature // (this function will be than called again, see case 1) LogMemo = NULL; if (!Configuration->Logging || (WinConfiguration->LogView != lvWindow) || Application->Terminated) { Action = caFree; } else { WinConfiguration->LogView = lvNone; Action = caFree; } WinConfiguration->LogWindowParams = StoreForm(this); }
//--------------------------------------------------------------------- bool __fastcall TSynchronizeChecklistDialog::Execute(TSynchronizeChecklist * Checklist) { FChecklist = Checklist; bool Result = (ShowModal() == DefaultResult(this)); if (Result) { for (int Index = 0; Index < ListView->Items->Count; Index++) { TListItem * Item = ListView->Items->Item[Index]; // const violation ! TSynchronizeChecklist::TItem * ChecklistItem = static_cast<TSynchronizeChecklist::TItem *>(Item->Data); ChecklistItem->Checked = Item->Checked; } TSynchronizeChecklistConfiguration FormConfiguration = CustomWinConfiguration->SynchronizeChecklist; FormConfiguration.ListParams = ListView->ColProperties->ParamsStr; UnicodeString WindowParams = FormConfiguration.WindowParams; // if there is no main window, keep previous "custom pos" indication, bool CustomPos = (StrToIntDef(::CutToChar(WindowParams, L';', true), 0) != 0); if (Application->MainForm != NULL) { CustomPos = (Application->MainForm->BoundsRect != BoundsRect); } FormConfiguration.WindowParams = FORMAT(L"%d;%s", ((CustomPos ? 1 : 0), StoreForm(this))); CustomWinConfiguration->SynchronizeChecklist = FormConfiguration; } return Result; }
//--------------------------------------------------------------------------- void __fastcall TScpExplorerForm::StoreParams() { assert(Configuration); Configuration->BeginUpdate(); try { WinConfiguration->ScpExplorer.ToolbarsLayout = GetToolbarsLayoutStr(); WinConfiguration->ScpExplorer.SessionsTabs = SessionsPageControl->Visible; WinConfiguration->ScpExplorer.StatusBar = RemoteStatusBar->Visible; WinConfiguration->ScpExplorer.WindowParams = StoreForm(this); WinConfiguration->ScpExplorer.DirViewParams = RemoteDirView->UnixColProperties->ParamsStr; WinConfiguration->ScpExplorer.ViewStyle = RemoteDirView->ViewStyle; WinConfiguration->ScpExplorer.DriveView = RemoteDriveView->Visible; WinConfiguration->ScpExplorer.DriveViewWidth = RemoteDriveView->Width; WinConfiguration->ScpExplorer.DriveViewWidthPixelsPerInch = Screen->PixelsPerInch; TCustomScpExplorerForm::StoreParams(); } __finally { WinConfiguration->EndUpdate(); } }