123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- //---------------------------------------------------------------------------
- #include <FormsPCH.h>
- #pragma hdrstop
- #include <FileMasks.h>
- #include "EditMask.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- //---------------------------------------------------------------------------
- bool __fastcall DoEditMaskDialog(TFileMasks & Mask)
- {
- bool Result;
- TEditMaskDialog * Dialog = new TEditMaskDialog(GetFormOwner());
- try
- {
- Result = Dialog->Execute(Mask);
- }
- __finally
- {
- delete Dialog;
- }
- return Result;
- }
- //---------------------------------------------------------------------------
- __fastcall TEditMaskDialog::TEditMaskDialog(TComponent* Owner)
- : TForm(Owner)
- {
- FChanging = false;
- UseSystemSettings(this);
- HintLabel(MaskHintText,
- FORMAT(L"%s\n \n%s\n \n%s\n \n%s", (LoadStr(MASK_HINT2), LoadStr(FILE_MASK_EX_HINT), LoadStr(PATH_MASK_HINT2), LoadStr(MASK_HELP))));
- ReadOnlyControl(MaskMemo);
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::FormCloseQuery(TObject * /*Sender*/,
- bool & /*CanClose*/)
- {
- if (ModalResult == DefaultResult(this))
- {
- ExitActiveControl(this);
- }
- }
- //---------------------------------------------------------------------------
- bool __fastcall TEditMaskDialog::Execute(TFileMasks & Mask)
- {
- LoadFileMasks(Mask);
- bool Result = (ShowModal() == DefaultResult(this));
- if (Result)
- {
- SaveFileMasks(Mask);
- }
- return Result;
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::LoadFileMasks(const TFileMasks & Mask)
- {
- LoadFileMasks(IncludeFileMasksMemo, Mask.IncludeFileMasksStr);
- LoadFileMasks(ExcludeFileMasksMemo, Mask.ExcludeFileMasksStr);
- LoadFileMasks(IncludeDirectoryMasksMemo, Mask.IncludeDirectoryMasksStr);
- LoadFileMasks(ExcludeDirectoryMasksMemo, Mask.ExcludeDirectoryMasksStr);
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::LoadFileMasks(TMemo * Memo, TStrings * MasksStr)
- {
- Memo->Lines = MasksStr;
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::SaveFileMasks(TFileMasks & Mask)
- {
- TStrings * IncludeFileMasks = NULL;
- TStrings * ExcludeFileMasks = NULL;
- TStrings * IncludeDirectoryMasks = NULL;
- TStrings * ExcludeDirectoryMasks = NULL;
- try
- {
- IncludeFileMasks = GetUnwrappedMemoLines(IncludeFileMasksMemo);
- ExcludeFileMasks = GetUnwrappedMemoLines(ExcludeFileMasksMemo);
- IncludeDirectoryMasks = GetUnwrappedMemoLines(IncludeDirectoryMasksMemo);
- ExcludeDirectoryMasks = GetUnwrappedMemoLines(ExcludeDirectoryMasksMemo);
- Mask =
- TFileMasks::ComposeMaskStr(
- IncludeFileMasks, ExcludeFileMasks,
- IncludeDirectoryMasks, ExcludeDirectoryMasks);
- }
- __finally
- {
- delete IncludeFileMasks;
- delete ExcludeFileMasks;
- delete IncludeDirectoryMasks;
- delete ExcludeDirectoryMasks;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::HelpButtonClick(TObject * /*Sender*/)
- {
- FormHelp(this);
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::ClearButtonClick(TObject * /*Sender*/)
- {
- IncludeFileMasksMemo->Clear();
- ExcludeFileMasksMemo->Clear();
- IncludeDirectoryMasksMemo->Clear();
- ExcludeDirectoryMasksMemo->Clear();
- ExcludeDirectoryAllCheck->Checked = false;
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::FileMasksMemoExit(TObject *Sender)
- {
- ValidateMaskEdit(dynamic_cast<TMemo *>(Sender), false);
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::DirectoryMasksMemoExit(TObject *Sender)
- {
- ValidateMaskEdit(dynamic_cast<TMemo *>(Sender), true);
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::ControlChange(TObject * /*Sender*/)
- {
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::UpdateControls()
- {
- try
- {
- TFileMasks Mask;
- SaveFileMasks(Mask);
- MaskMemo->Lines->Text = Mask.Masks;
- }
- catch(EFileMasksException & E)
- {
- MaskMemo->Lines->Text = E.Message;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::FormKeyDown(
- TObject * Sender, WORD & Key, TShiftState Shift)
- {
- MemoKeyDown(Sender, Key, Shift);
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::FormShow(TObject * /*Sender*/)
- {
- InstallPathWordBreakProc(IncludeFileMasksMemo);
- InstallPathWordBreakProc(ExcludeFileMasksMemo);
- InstallPathWordBreakProc(IncludeDirectoryMasksMemo);
- InstallPathWordBreakProc(ExcludeDirectoryMasksMemo);
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::ExcludeDirectoryAllCheckClick(TObject * /*Sender*/)
- {
- if (!FChanging)
- {
- TAutoFlag Flag(FChanging);
- if (ExcludeDirectoryAllCheck->Checked)
- {
- FExcludeDirectoryMasks = ExcludeDirectoryMasksMemo->Lines->Text;
- ExcludeDirectoryMasksMemo->Lines->Text = L"*";
- }
- else
- {
- ExcludeDirectoryMasksMemo->Lines->Text = FExcludeDirectoryMasks;
- }
- }
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TEditMaskDialog::ExcludeDirectoryMasksMemoChange(TObject * /*Sender*/)
- {
- if (!FChanging)
- {
- TAutoFlag Flag(FChanging);
- UnicodeString Mask = ExcludeDirectoryMasksMemo->Lines->Text.Trim();
- ExcludeDirectoryAllCheck->Checked = (Mask == L"*") || (Mask == L"*/");
- }
- UpdateControls();
- }
- //---------------------------------------------------------------------------
|