OSDN Git Service

Implement issue #1413: "Move" needs options "Left to Right" or "Right… (#1732)
[winmerge-jp/winmerge-jp.git] / Src / FileFiltersDlg.h
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /**
3  * @file  FileFiltersDlg.h
4  *
5  * @brief Declaration file for File Filters dialog
6  */
7 #pragma once
8
9 #include "TrDialogs.h"
10 #include <vector>
11
12 struct FileFilterInfo;
13
14 /**
15  * @brief Class for dialog allowing user to select
16  * and edit used file filters
17  */
18 class FileFiltersDlg : public CTrPropertyPage
19 {
20         DECLARE_DYNCREATE(FileFiltersDlg)
21
22 // Construction
23 public:
24         FileFiltersDlg();   // standard constructor
25         void SetFilterArray(const std::vector<FileFilterInfo>& fileFilters);
26         String GetSelected();
27         void SetSelected(const String & selected);
28
29 // Implementation data
30 private:
31         String m_sFileFilterPath;
32         CPoint m_ptLastMousePos;
33         std::vector<FileFilterInfo> m_Filters;
34
35 // Dialog Data
36         //{{AFX_DATA(FileFiltersDlg)
37         enum { IDD = IDD_FILTERS_FILEFILTERS };
38         CListCtrl m_listFilters;
39         //}}AFX_DATA
40
41 // Implementation methods
42 protected:
43         void InitList();
44         void SelectFilterByIndex(int index);
45         void SelectFilterByFilePath(const String& path);
46         void AddToGrid(int filterIndex);
47         bool IsFilterItemNone(int item) const;
48         void UpdateFiltersList();
49         void EditFileFilter(const String& path);
50
51 // Overrides
52         // ClassWizard generated virtual function overrides
53         //{{AFX_VIRTUAL(FileFiltersDlg)
54 protected:
55         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
56         //}}AFX_VIRTUAL
57
58         // Generated message map functions
59         //{{AFX_MSG(FileFiltersDlg)
60         virtual BOOL OnInitDialog() override;
61         virtual void OnOK();
62         afx_msg void OnFiltersEditbtn();
63         afx_msg void OnDblclkFiltersList(NMHDR* pNMHDR, LRESULT* pResult);
64         afx_msg void OnLvnItemchangedFilterfileList(NMHDR *pNMHDR, LRESULT *pResult);
65         afx_msg void OnInfoTip(NMHDR * pNMHDR, LRESULT * pResult);
66         afx_msg void OnMouseMove(UINT nFlags, CPoint point);
67         afx_msg void OnBnClickedFilterfileTestButton();
68         afx_msg void OnBnClickedFilterfileNewbutton();
69         afx_msg void OnBnClickedFilterfileDelete();
70         afx_msg void OnHelp();
71         afx_msg void OnBnClickedFilterfileInstall();
72         //}}AFX_MSG
73         DECLARE_MESSAGE_MAP()
74 };