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 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
/*=========================================================================
Program: CMake - Cross-Platform Makefile Generator
Module: $RCSfile: PropertyList.h,v $
Language: C++
Date: $Date: 2004-01-02 22:24:19 $
Version: $Revision: 1.13 $
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef CPROPERTYLIST_H
#define CPROPERTYLIST_H
#include "../cmStandardIncludes.h"
class CMakeSetupDialog;
/////////////////////////////////////////////////////////////////////////////
//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;
bool m_Advanced;
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;
m_Advanced = false;
}
};
/////////////////////////////////////////////////////////////////////////////
// CPropertyList window
class CPropertyList : public CListBox
{
// Construction
public:
enum ItemType
{
COMBO = 0,
EDIT,
COLOR,
FONT,
FILE,
CHECKBOX,
PATH
};
CPropertyList();
// Attributes
public:
CMakeSetupDialog *m_CMakeSetupDialog;
// Operations
public:
bool GetShowAdvanced() {return m_ShowAdvanced;}
bool IsDirty() { return m_Dirty; }
void ClearDirty() { m_Dirty = false; }
int AddItem(CString txt);
void AddProperty(const char* name,
const char* value,
const char* helpString,
int type,
const char* comboItems,
bool reverseOrder,
bool advanced);
void RemoveProperty(const char* name);
void HideControls();
void ShowAdvanced();
void HideAdvanced();
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 OnIgnore();
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);
// order = 0 sorted
// order = 1 add to top
// order = 2 add to bottom
int AddPropItem(CPropertyItem* pItem, int order);
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;
bool m_ShowAdvanced;
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_)
|