OSDN Git Service

Avoid an assertion failure when loading settings from winmerge.ini
[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 AddToGrid(int filterIndex);
46         bool IsFilterItemNone(int item) const;
47         void UpdateFiltersList();
48         void EditFileFilter(const String& path);
49
50 // Overrides
51         // ClassWizard generated virtual function overrides
52         //{{AFX_VIRTUAL(FileFiltersDlg)
53 protected:
54         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
55         //}}AFX_VIRTUAL
56
57         // Generated message map functions
58         //{{AFX_MSG(FileFiltersDlg)
59         virtual BOOL OnInitDialog() override;
60         virtual void OnOK();
61         afx_msg void OnFiltersEditbtn();
62         afx_msg void OnDblclkFiltersList(NMHDR* pNMHDR, LRESULT* pResult);
63         afx_msg void OnLvnItemchangedFilterfileList(NMHDR *pNMHDR, LRESULT *pResult);
64         afx_msg void OnInfoTip(NMHDR * pNMHDR, LRESULT * pResult);
65         afx_msg void OnMouseMove(UINT nFlags, CPoint point);
66         afx_msg void OnBnClickedFilterfileTestButton();
67         afx_msg void OnBnClickedFilterfileNewbutton();
68         afx_msg void OnBnClickedFilterfileDelete();
69         afx_msg void OnHelp();
70         afx_msg void OnBnClickedFilterfileInstall();
71         //}}AFX_MSG
72         DECLARE_MESSAGE_MAP()
73 };