RegExFilterHelper.h 898 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include <vector>
  3. #include <string>
  4. #define MAX_REGEX_FILTERS 15
  5. class CRegExFilterData
  6. {
  7. public:
  8. std::wstring m_regEx;
  9. CString m_processFilters;
  10. CStringArray m_parsedProcessFilters;
  11. void ParseFilters();
  12. bool MatchesProcessFilters(CString &activeApp);
  13. bool MatchesRegEx(std::wstring &copiedText);
  14. const CRegExFilterData& operator=(const CRegExFilterData &clip)
  15. {
  16. m_regEx = clip.m_regEx;
  17. m_processFilters = clip.m_processFilters;
  18. ParseFilters();
  19. return *this;
  20. }
  21. };
  22. class CRegExFilterHelper
  23. {
  24. public:
  25. CRegExFilterHelper();
  26. ~CRegExFilterHelper();
  27. void Add(int pos, CRegExFilterData &data);
  28. void SetRegEx(int pos, std::wstring regEx);
  29. void SetProcessFilter(int pos, CString processName);
  30. CRegExFilterData m_filters[MAX_REGEX_FILTERS];
  31. bool TextMatchFilters(CString &activeApp, std::wstring &copiedText);
  32. private:
  33. CCriticalSection m_critSection;
  34. };