| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | //---------------------------------------------------------------------------#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);}//---------------------------------------------------------------------------void __fastcall TSelectMaskDialog::MaskButtonClick(TObject * /*Sender*/){  TFileMasks Masks = MaskEdit->Text;  if (DoEditMaskDialog(Masks))  {    MaskEdit->Text = Masks.Masks;  }}//---------------------------------------------------------------------------
 |