1 /*
2 ===========================================================================
3 
4 Doom 3 GPL Source Code
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Doom 3 GPL Source Code ("Doom 3 Source Code").
8 
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code.  If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code.  If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 #if !defined(AFX_PROPERTYLIST_H__74205380_1B56_11D4_BC48_00105AA2186F__INCLUDED_)
29 #define AFX_PROPERTYLIST_H__74205380_1B56_11D4_BC48_00105AA2186F__INCLUDED_
30 
31 #if _MSC_VER > 1000
32 #pragma once
33 #endif // _MSC_VER > 1000
34 // PropertyList.h : header file
35 //
36 
37 #define PIT_COMBO		0	//PIT = property item type
38 #define PIT_EDIT		1
39 #define PIT_COLOR		2
40 #define PIT_FONT		3
41 #define PIT_FILE		4
42 #define PIT_SCRIPT		5
43 #define PIT_MODEL		6
44 #define PIT_SOUND		7
45 #define PIT_GUI			8
46 #define PIT_MATERIAL	9
47 #define PIT_VAR			10
48 
49 #define IDC_PROPCMBBOX   712
50 #define IDC_PROPEDITBOX  713
51 #define IDC_PROPBTNCTRL  714
52 
53 
54 /////////////////////////////////////////////////////////////////////////////
55 //CPropertyList Items
56 class CPropertyItem
57 {
58 // Attributes
59 public:
60 	CString m_propName;
61 	CString m_curValue;
62 	int m_nItemType;
63 	CString m_cmbItems;
64 	int data;
65 
66 public:
CPropertyItem(CString propName,CString curValue,int nItemType,CString cmbItems)67 	CPropertyItem(CString propName, CString curValue,
68 				  int nItemType, CString cmbItems)
69 	{
70 		m_propName = propName;
71 		m_curValue = curValue;
72 		m_nItemType = nItemType;
73 		m_cmbItems = cmbItems;
74 		data = -1;
75 	}
SetData(int d)76 	void SetData(int d) {
77 		data = d;
78 	}
79 };
80 
81 /////////////////////////////////////////////////////////////////////////////
82 // CPropertyList window
83 
84 class CPropertyList : public CListBox
85 {
86 // Construction
87 public:
88 	CPropertyList();
89 
90 // Attributes
91 public:
92 
93 // Operations
94 public:
95 	int AddItem(CString txt);
96 	int AddPropItem(CPropertyItem* pItem);
97 	void ResetContent();
GetEditBox()98 	CEdit *GetEditBox() {
99 		return &m_editBox;
100 	}
SetUpdateInspectors(bool b)101 	void SetUpdateInspectors(bool b) {
102 		updateInspectors = b;
103 	}
SetDivider(int div)104 	void SetDivider( int div ) {
105 		m_nDivider = div;
106 	}
107 	afx_msg void OnKillfocusEditBox();
108 	afx_msg void OnChangeEditBox();
109 
110 // Overrides
111 	// ClassWizard generated virtual function overrides
112 	//{{AFX_VIRTUAL(CPropertyList)
113 	public:
114 	virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
115 	virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
116 	afx_msg void OnSelchange();
117 	protected:
118 	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
119 	virtual void PreSubclassWindow();
120 	//}}AFX_VIRTUAL
121 
122 // Implementation
123 public:
124 	virtual ~CPropertyList();
125 
126 	// Generated message map functions
127 protected:
128 	//{{AFX_MSG(CPropertyList)
129 	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
130 	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
131 	afx_msg void OnKillFocus(CWnd* pNewWnd);
132 	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
133 	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
134 	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
135 
136 	//}}AFX_MSG
137 	afx_msg void OnKillfocusCmbBox();
138 	afx_msg void OnSelchangeCmbBox();
139 	afx_msg void OnButton();
140 
141 	DECLARE_MESSAGE_MAP()
142 
143 	void InvertLine(CDC* pDC,CPoint ptFrom,CPoint ptTo);
144 	void DisplayButton(CRect region);
145 
146 	CComboBox m_cmbBox;
147 	CEdit m_editBox;
148 	CButton m_btnCtrl;
149 	CFont m_SSerif8Font;
150 
151 	int m_curSel,m_prevSel;
152 	int m_nDivider;
153 	int m_nDivTop;
154 	int m_nDivBtm;
155 	int m_nOldDivX;
156 	int m_nLastBox;
157 	BOOL m_bTracking;
158 	BOOL m_bDivIsSet;
159 	HCURSOR m_hCursorArrow;
160 	HCURSOR m_hCursorSize;
161 	CPropertyItem *measureItem;
162 	bool updateInspectors;
163 };
164 
165 /////////////////////////////////////////////////////////////////////////////
166 
167 //{{AFX_INSERT_LOCATION}}
168 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
169 
170 #endif // !defined(AFX_PROPERTYLIST_H__74205380_1B56_11D4_BC48_00105AA2186F__INCLUDED_)
171