OSDN Git Service

Add WinMergePluginBase.h (2)
[winmerge-jp/winmerge-jp.git] / Src / SubeditList.h
1 #if !defined(AFX_SUBEDITLIST_H__335134F3_37B4_4739_AC9B_4AFB32C37E60__INCLUDED_)
2 #define AFX_SUBEDITLIST_H__335134F3_37B4_4739_AC9B_4AFB32C37E60__INCLUDED_
3
4 #if _MSC_VER > 1000
5 #pragma once
6 #endif // _MSC_VER > 1000
7 // SubeditList.h : header file
8 //
9
10 #include <set>
11
12 class CInPlaceEdit : public CEdit
13 {
14 // Construction
15 public:
16         CInPlaceEdit(int iItem, int iSubItem, CString sInitText);
17  
18 // Attributes
19 public:
20  
21 // Operations
22 public:
23  
24 // Overrides
25         // ClassWizard generated virtual function overrides
26         //{{AFX_VIRTUAL(CInPlaceEdit)
27         public:
28         virtual BOOL PreTranslateMessage(MSG* pMsg);
29         //}}AFX_VIRTUAL
30  
31 // Implementation
32 public:
33         virtual ~CInPlaceEdit();
34  
35         // Generated message map functions
36 protected:
37         //{{AFX_MSG(CInPlaceEdit)
38         afx_msg void OnKillFocus(CWnd* pNewWnd);
39         afx_msg void OnNcDestroy();
40         afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
41         afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
42         //}}AFX_MSG
43  
44         DECLARE_MESSAGE_MAP()
45 private:
46         int m_iItem;
47         int m_iSubItem;
48         CString m_sInitText;
49         BOOL    m_bESC;         // To indicate whether ESC key was pressed
50 };
51  
52 class CSubeditList : public CListCtrl
53 {
54 public:
55         enum class EditStyle
56         {
57                 EDIT_BOX,
58                 WILDCARD_DROP_LIST,
59         };
60
61 // Construction
62 public:
63         CSubeditList();
64
65 // Attributes
66 private:
67         std::set<bool> m_readOnlyColumns;                                                       /**< Set of read-only columns */
68         std::set<int> m_binaryValueColumns;
69         std::vector<EditStyle> m_editStyle;                                                     /**< Edit style for each column */
70         std::vector<int> m_limitTextSize;                                                       /**< Character limit for each column */
71         std::vector<std::vector<String>> m_dropListFixedPattern;        /**< Wildcard drop list fixed pattern for each cell */
72
73 // Operations
74 public:
75         void SetReadOnlyColumn(int nCol) { m_readOnlyColumns.insert(nCol); };
76         void SetBooleanValueColumn(int nCol) { m_binaryValueColumns.insert(nCol); };
77         void SetItemBooleanValue(int nItem, int nSubItem, bool value);
78         bool GetItemBooleanValue(int nItem, int nSubItem) const;
79         EditStyle GetEditStyle(int nCol) const;
80         void SetEditStyle(int nCol, EditStyle style);
81         int GetLimitTextSize(int nCol) const;
82         void SetLimitTextSize(int nCol, int nLimitTextSize);
83         String GetDropListFixedPattern(int nItem, int nSubItem) const;
84         void SetDropListFixedPattern(int nItem, int nSubItem, const String& fixedPattern);
85
86 // Overrides
87         // ClassWizard generated virtual function overrides
88         //{{AFX_VIRTUAL(CSubeditList)
89         //}}AFX_VIRTUAL
90
91 // Implementation
92 public:
93         virtual ~CSubeditList();
94
95         CInPlaceEdit *EditSubLabel(int nItem, int nCol);
96         void EditSubLabelWildcardDropList(int nItem, int nCol);
97         // Generated message map functions
98 //protected:
99         //{{AFX_MSG(CSubeditList)
100         // NOTE - the ClassWizard will add and remove member functions here.
101         afx_msg int HitTestEx(CPoint& point, int* col) const;
102         afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
103         afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
104         afx_msg void OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult);
105         afx_msg void OnBeginLabelEdit(NMHDR* pNMHDR, LRESULT* pResult);
106         afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
107         //}}AFX_MSG
108
109         DECLARE_MESSAGE_MAP()
110 };
111
112 //{{AFX_INSERT_LOCATION}}
113 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
114
115 #endif // !defined(AFX_SUBEDITLIST_H__335134F3_37B4_4739_AC9B_4AFB32C37E60__INCLUDED_)