OSDN Git Service

compiler-calculated maximum value for `m_SourceDefs` (#966)
[winmerge-jp/winmerge-jp.git] / Src / PropDirColors.h
1 /** 
2  * @file  PropDirColors.h
3  *
4  * @brief Declaration file for PropDirColors propertyheet
5  *
6  */
7 #pragma once
8
9 #include "ColorButton.h"
10 #include "OptionsPanel.h"
11 #include <array>
12
13 class COptionsMgr;
14
15 const int CustomDirColorsAmount = 16;
16
17 /** @brief Property page for folder compare colors options; used in options property sheet */
18 class PropDirColors : public OptionsPanel
19 {
20 // Construction
21 public:
22         explicit PropDirColors(COptionsMgr *optionsMgr);
23
24 // Implement IOptionsPanel
25         virtual void ReadOptions() override;
26         virtual void WriteOptions() override;
27         
28 // Dialog Data
29 private:
30         //{{AFX_DATA(PropDirColors)
31         enum { IDD = IDD_PROPPAGE_COLORS_DIR };
32         CColorButton    m_cDirItemEqual;
33         CColorButton    m_cDirItemEqualText;
34         CColorButton    m_cDirItemDiff;
35         CColorButton    m_cDirItemDiffText;
36         CColorButton    m_cDirItemNotExistAll;
37         CColorButton    m_cDirItemNotExistAllText;
38         CColorButton    m_cDirItemFiltered;
39         CColorButton    m_cDirItemFilteredText;
40         CColorButton    m_cDirMargin;
41         bool            m_bUseColors;
42         //}}AFX_DATA
43
44         // Overrides
45         // ClassWizard generated virtual function overrides
46         //{{AFX_VIRTUAL(PropDirColors)
47         protected:
48         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
49         //}}AFX_VIRTUAL
50
51 // Implementation
52 protected:
53
54         static const COLORREF COLOR_NONE = 0xffffffff;
55         typedef enum { WRITE_OPTIONS, READ_OPTIONS } OPERATION;
56
57         void BrowseColor(CColorButton & colorButton);
58         void SerializeColors(OPERATION op);
59         void SerializeColor(OPERATION op, CColorButton & btn, const String& optionName);
60
61         std::array<COLORREF, CustomDirColorsAmount> m_cCustColors;
62
63         // Generated message map functions
64         //{{AFX_MSG(PropDirColors)
65         afx_msg void OnDirItemEqualColor();
66         afx_msg void OnDirItemEqualTextColor();
67         afx_msg void OnDirItemDiffColor();
68         afx_msg void OnDirItemDiffTextColor();
69         afx_msg void OnDirItemNotExistAllColor();
70         afx_msg void OnDirItemNotExistAllTextColor();
71         afx_msg void OnDirItemFilteredColor();
72         afx_msg void OnDirItemFilteredTextColor();
73         afx_msg void OnDirMargniColor();
74         //}}AFX_MSG
75         DECLARE_MESSAGE_MAP()
76 };