OSDN Git Service

Avoid an assertion failure when loading settings from winmerge.ini
[winmerge-jp/winmerge-jp.git] / Src / PropMergeColors.h
1 /** 
2  * @file  PropMergeColors.h
3  *
4  * @brief Declaration file for PropMergeColors 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 CustomColorsAmount = 16;
16
17 /** @brief Property page for colors options; used in options property sheet */
18 class PropMergeColors : public OptionsPanel
19 {
20 // Construction
21 public:
22         explicit PropMergeColors(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(PropMergeColors)
31         enum { IDD = IDD_PROPPAGE_COLORS_WINMERGE };
32         CColorButton    m_cTrivialDeleted;
33         CColorButton    m_cTrivial;
34         CColorButton    m_cSelDiffText;
35         CColorButton    m_cDiffText;
36         CColorButton    m_cSelDiffDeleted;
37         CColorButton    m_cDiffDeleted;
38         CColorButton    m_cSelDiff;
39         CColorButton    m_cDiff;
40         CColorButton    m_cTrivialText;
41         CColorButton    m_cMoved;
42         CColorButton    m_cMovedDeleted;
43         CColorButton    m_cMovedText;
44         CColorButton    m_cSelMoved;
45         CColorButton    m_cSelMovedDeleted;
46         CColorButton    m_cSelMovedText;
47         CColorButton    m_cSNP;
48         CColorButton    m_cSNPDeleted;
49         CColorButton    m_cSNPText;
50         CColorButton    m_cSelSNP;
51         CColorButton    m_cSelSNPDeleted;
52         CColorButton    m_cSelSNPText;
53         CColorButton    m_cWordDiff;
54         CColorButton    m_cWordDiffDeleted;
55         CColorButton    m_cWordDiffText;
56         CColorButton    m_cSelWordDiff;
57         CColorButton    m_cSelWordDiffDeleted;
58         CColorButton    m_cSelWordDiffText;
59         //}}AFX_DATA
60
61         // Overrides
62         // ClassWizard generated virtual function overrides
63         //{{AFX_VIRTUAL(PropMergeColors)
64         protected:
65         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
66         //}}AFX_VIRTUAL
67
68 // Implementation
69 protected:
70
71         static const COLORREF COLOR_NONE = 0xffffffff;
72         typedef enum { SET_DEFAULTS, WRITE_OPTIONS, READ_OPTIONS } OPERATION;
73
74         void BrowseColor(CColorButton & colorButton);
75         void SerializeColors(OPERATION op);
76         void SerializeColor(OPERATION op, CColorButton & btn, const String& optionName);
77         void UpdateTextColorButtonState(int checkboxId, CColorButton &btn);
78         void UpdateTextColorButtonsState();
79
80         std::array<COLORREF, CustomColorsAmount> m_cCustColors;
81
82         // Generated message map functions
83         //{{AFX_MSG(PropMergeColors)
84         afx_msg void OnDifferenceColor();
85         afx_msg void OnDifferenceDeletedColor();
86         afx_msg void OnSelDifferenceDeletedColor();
87         afx_msg void OnSelDifferenceColor();
88         afx_msg void OnDifferenceTextColor();
89         afx_msg void OnSelDifferenceTextColor();
90         afx_msg void OnTrivialDiffColor();
91         afx_msg void OnTrivialDiffDeletedColor();
92         afx_msg void OnTrivialDiffTextColor();
93         afx_msg void OnMovedColor();
94         afx_msg void OnMovedDeletedColor();
95         afx_msg void OnMovedTextColor();
96         afx_msg void OnSelMovedColor();
97         afx_msg void OnSelMovedDeletedColor();
98         afx_msg void OnSelMovedTextColor();
99         afx_msg void OnSNPColor();
100         afx_msg void OnSNPDeletedColor();
101         afx_msg void OnSNPTextColor();
102         afx_msg void OnSelSNPColor();
103         afx_msg void OnSelSNPDeletedColor();
104         afx_msg void OnSelSNPTextColor();
105         afx_msg void OnWordDiffColor();
106         afx_msg void OnWordDiffDeletedColor();
107         afx_msg void OnWordDiffTextColor();
108         afx_msg void OnSelWordDiffColor();
109         afx_msg void OnSelWordDiffDeletedColor();
110         afx_msg void OnSelWordDiffTextColor();
111         template<int checkbox_id, int colorbutton_id>
112         afx_msg void OnUseTextColor();
113         //}}AFX_MSG
114         DECLARE_MESSAGE_MAP()
115 };