summaryrefslogtreecommitdiffstats
path: root/Source/MFCDialog/PropertyList.h
blob: 57d131e7d199d9dac8743ba7f013af0ac35d100a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#ifndef CPROPERTYLIST_H
#define CPROPERTYLIST_H



#include "../cmStandardIncludes.h"

/////////////////////////////////////////////////////////////////////////////
//CPropertyList Items
class CPropertyItem
{
// Attributes
public:
  CString m_propName;
  CString m_curValue;
  int m_nItemType;
  CString m_cmbItems;
  bool m_Removed;
public:
  CPropertyItem(CString propName, CString curValue,
                int nItemType, CString cmbItems)
    {
      m_Removed = false;
      m_propName = propName;
      m_curValue = curValue;
      m_nItemType = nItemType;
      m_cmbItems = cmbItems;
    }
};

/////////////////////////////////////////////////////////////////////////////
// CPropertyList window

class CPropertyList : public CListBox
{
// Construction
public:
  enum ItemType 
    {
      COMBO = 0,
      EDIT,
      COLOR,
      FONT,
      FILE,
      CHECKBOX,
      PATH
    };
  CPropertyList();
  
// Attributes
public:

// Operations
public:
  int AddItem(CString txt);
  int AddProperty(const char* name,
                  const char* value,
                  int type,
                  const char* comboItems);
  std::set<CPropertyItem*> GetItems() 
    {
      return m_PropertyItems;
    }
  void RemoveAll();
  CPropertyItem* GetItem(int index);
// Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CPropertyList)
public:
  virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
  virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
protected:
  virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  virtual void PreSubclassWindow();
  //}}AFX_VIRTUAL

// Implementation
public:
  virtual ~CPropertyList();

  // Generated message map functions
protected:
  //{{AFX_MSG(CPropertyList)
  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  afx_msg void OnSelchange();
  afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  afx_msg void OnKillFocus(CWnd* pNewWnd);
  afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  afx_msg void OnRButtonUp( UINT nFlags, CPoint point );
  //}}AFX_MSG
  afx_msg void OnKillfocusCmbBox();
  afx_msg void OnSelchangeCmbBox();
  afx_msg void OnKillfocusEditBox();
  afx_msg void OnChangeEditBox();
  afx_msg void OnButton();
  afx_msg void OnDelete();
  afx_msg void OnCheckBox();

  DECLARE_MESSAGE_MAP()

  void InvertLine(CDC* pDC,CPoint ptFrom,CPoint ptTo);
  void DisplayButton(CRect region);
  int AddPropItem(CPropertyItem* pItem);

  CComboBox m_cmbBox;
  CEdit m_editBox;
  CButton m_btnCtrl;
  CButton m_CheckBoxControl;
  
  CFont m_SSerif8Font;
	
  bool m_Dirty;
  int m_curSel;
  int m_prevSel;
  int m_nDivider;
  int m_nDivTop;
  int m_nDivBtm;
  int m_nOldDivX;
  int m_nLastBox;
  BOOL m_bTracking;
  BOOL m_bDivIsSet;
  HCURSOR m_hCursorArrow;
  HCURSOR m_hCursorSize;
  std::set<CPropertyItem*> m_PropertyItems;
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_PROPERTYLIST_H__74205380_1B56_11D4_BC48_00105AA2186F__INCLUDED_)