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 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#ifndef CPROPERTYLIST_H
#define CPROPERTYLIST_H
#include "../cmStandardIncludes.h"
/////////////////////////////////////////////////////////////////////////////
//CPropertyList Items
class CPropertyItem
{
// Attributes
public:
CString m_HelpString;
CString m_propName;
CString m_curValue;
int m_nItemType;
CString m_cmbItems;
bool m_NewValue;
bool m_Removed;
public:
CPropertyItem(CString propName, CString curValue,
CString helpString,
int nItemType, CString cmbItems)
{
m_NewValue = true;
m_HelpString = helpString;
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:
bool IsDirty() { return m_Dirty; }
void ClearDirty() { m_Dirty = false; }
int AddItem(CString txt);
int AddProperty(const char* name,
const char* value,
const char* helpString,
int type,
const char* comboItems,
bool reverseOrder);
void RemoveProperty(const char* name);
void HideControls();
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 OnHelp();
afx_msg void OnCheckBox();
afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );
DECLARE_MESSAGE_MAP()
void InvertLine(CDC* pDC,CPoint ptFrom,CPoint ptTo);
void DisplayButton(CRect region);
int AddPropItem(CPropertyItem* pItem, bool top);
void InvalidateList();
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_)
|