123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include <Common.h>
- #include <FileMasks.h>
- #include <CoreMain.h>
- #include <TextsWin.h>
- #include <HelpWin.h>
- #include <Tools.h>
- #include <VCLCommon.h>
- #include "SelectMask.h"
- #include "WinConfiguration.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "HistoryComboBox"
- #ifndef NO_RESOURCES
- #pragma resource "*.dfm"
- #endif
- //---------------------------------------------------------------------------
- bool __fastcall DoSelectMaskDialog(TCustomDirView * Parent, bool Select,
- TFileFilter * Filter, TConfiguration * Configuration)
- {
- bool Result;
- TSelectMaskDialog * Dialog = new TSelectMaskDialog(Application);
- try
- {
- Dialog->Init(Select ? TSelectMaskDialog::smSelect : TSelectMaskDialog::smDeselect, Parent);
- DefaultFileFilter(*Filter);
- TWinConfiguration * WinConfiguration = DebugNotNull(dynamic_cast<TWinConfiguration *>(Configuration));
- Filter->Masks = WinConfiguration->SelectMask;
- Filter->Directories = WinConfiguration->SelectDirectories;
- Dialog->FileFilter = *Filter;
- Result = Dialog->Execute();
- if (Result)
- {
- *Filter = Dialog->FileFilter;
- WinConfiguration->SelectMask = Filter->Masks;
- WinConfiguration->SelectDirectories = Filter->Directories;
- }
- }
- __finally
- {
- delete Dialog;
- }
- return Result;
- }
- //---------------------------------------------------------------------------
- bool __fastcall DoFilterMaskDialog(TCustomDirView * Parent,
- TFileFilter * Filter)
- {
- bool Result;
- TSelectMaskDialog * Dialog = new TSelectMaskDialog(Application);
- try
- {
- Dialog->Init(TSelectMaskDialog::smFilter, Parent);
- Dialog->FileFilter = *Filter;
- Result = Dialog->Execute();
- if (Result)
- {
- *Filter = Dialog->FileFilter;
- }
- }
- __finally
- {
- delete Dialog;
- }
- return Result;
- }
- //---------------------------------------------------------------------------
- __fastcall TSelectMaskDialog::TSelectMaskDialog(TComponent* Owner)
- : TForm(Owner)
- {
- DefaultFileFilter(FFileFilter);
- SetFileFilter(FFileFilter);
- UseSystemSettings(this);
- HintLabel(HintText,
- FORMAT(L"%s\n \n%s\n \n%s\n \n%s", (LoadStr(MASK_HINT2), LoadStr(FILE_MASK_EX_HINT),
- LoadStr(COMBINING_MASKS_HINT), LoadStr(MASK_HELP))));
- }
- //---------------------------------------------------------------------------
- void __fastcall TSelectMaskDialog::Init(TMode Mode, TControl * Parent)
- {
- int CaptionStr;
- switch (Mode)
- {
- case smSelect:
- CaptionStr = SELECT_MASK_SELECT_CAPTION;
- ClearButton->Hide();
- break;
- case smDeselect:
- CaptionStr = SELECT_MASK_DESELECT_CAPTION;
- ClearButton->Hide();
- break;
- case smFilter:
- CaptionStr = FILTER_MASK_CAPTION;
- ApplyToDirectoriesCheck->Hide();
- HelpKeyword = HELP_FILTER;
- break;
- }
- Caption = LoadStr(CaptionStr);
- FParent = Parent;
- }
- //---------------------------------------------------------------------------
- void __fastcall TSelectMaskDialog::FormCloseQuery(TObject * /*Sender*/,
- bool & /*CanClose*/)
- {
- if (ModalResult == DefaultResult(this))
- {
- if (MaskEdit->Focused())
- {
- MaskEditExit(NULL);
- }
- }
- }
- //---------------------------------------------------------------------------
- bool __fastcall TSelectMaskDialog::Execute()
- {
- MaskEdit->Items = WinConfiguration->History[L"Mask"];
- ActiveControl = MaskEdit;
- bool Result = (ShowModal() == DefaultResult(this));
- if (Result)
- {
- MaskEdit->SaveToHistory();
- WinConfiguration->History[L"Mask"] = MaskEdit->Items;
- }
- return Result;
- } /* TSelectMaskDialog::Execute */
- //---------------------------------------------------------------------------
- void __fastcall TSelectMaskDialog::SetFileFilter(TFileFilter value)
- {
- FFileFilter = value;
- ApplyToDirectoriesCheck->Checked = FFileFilter.Directories;
- MaskEdit->Text = FFileFilter.Masks;
- } /* TSelectMaskDialog::SetFileFilter */
- //---------------------------------------------------------------------------
- TFileFilter __fastcall TSelectMaskDialog::GetFileFilter()
- {
- TFileFilter Result = FFileFilter;
- Result.Directories = ApplyToDirectoriesCheck->Checked;
- Result.Masks = MaskEdit->Text;
- return Result;
- } /* TSelectMaskDialog::GetFileFilter */
- //---------------------------------------------------------------------------
- void __fastcall TSelectMaskDialog::MaskEditExit(TObject * /*Sender*/)
- {
- ValidateMaskEdit(MaskEdit);
- }
- //---------------------------------------------------------------------------
- void __fastcall TSelectMaskDialog::HelpButtonClick(TObject * /*Sender*/)
- {
- FormHelp(this);
- }
- //---------------------------------------------------------------------------
- void __fastcall TSelectMaskDialog::ClearButtonClick(TObject * /*Sender*/)
- {
- MaskEdit->Text = L"";
- }
- //---------------------------------------------------------------------------
- void __fastcall TSelectMaskDialog::FormShow(TObject * /*Sender*/)
- {
- InstallPathWordBreakProc(MaskEdit);
- // Only now it is scaled
- CenterFormOn(this, FParent);
- }
- //---------------------------------------------------------------------------
|