1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #if !defined(AFX_VEGETABLE_DENSITY_PAGE_H__12320F77_5179_4727_A551_F5A8FAE7EB3A__INCLUDED_)
18 #define AFX_VEGETABLE_DENSITY_PAGE_H__12320F77_5179_4727_A551_F5A8FAE7EB3A__INCLUDED_
22 #endif // _MSC_VER > 1000
23 // vegetable_density_page.h : header file
26 class CDirectEditableRangeFloat
;
27 class CVegetableNoiseValueDlg
;
35 /////////////////////////////////////////////////////////////////////////////
36 // CVegetableDensityPage dialog
38 class CVegetableDensityPage
: public CPropertyPage
40 DECLARE_DYNCREATE(CVegetableDensityPage
)
44 CVegetableDensityPage();
45 ~CVegetableDensityPage();
46 void initVegetableDlg(CVegetableDlg
*vegetableDlg
) {_VegetableDlg
= vegetableDlg
;}
49 //{{AFX_DATA(CVegetableDensityPage)
50 enum { IDD
= IDD_VEGETABLE_DENSITY_DLG
};
51 CStatic StaticVegetableShape
;
52 CButton MaxDensityStaticText
;
53 CSliderCtrl AngleMinSlider
;
54 CSliderCtrl AngleMaxSlider
;
57 CComboBox DistTypeCombo
;
58 CButton MaxDensityCheckBox
;
63 // ClassWizard generate virtual function overrides
64 //{{AFX_VIRTUAL(CVegetableDensityPage)
66 virtual void DoDataExchange(CDataExchange
* pDX
); // DDX/DDV support
71 /** set the vegetble to edit. NULL will disable all the controls.
72 * Called by CVegetableDlg.
74 void setVegetableToEdit(NL3D::CVegetable
*vegetable
);
79 // Generated message map functions
80 //{{AFX_MSG(CVegetableDensityPage)
81 virtual BOOL
OnInitDialog();
82 afx_msg
void OnCheckMaxDensity();
83 afx_msg
void OnSelchangeComboDistType();
84 afx_msg
void OnRadioAngleCeiling();
85 afx_msg
void OnRadioAngleFloor();
86 afx_msg
void OnRadioAngleWall();
87 afx_msg
void OnReleasedcaptureSliderAngleMax(NMHDR
* pNMHDR
, LRESULT
* pResult
);
88 afx_msg
void OnReleasedcaptureSliderAngleMin(NMHDR
* pNMHDR
, LRESULT
* pResult
);
89 afx_msg
void OnKillfocusEditAngleMin();
90 afx_msg
void OnKillfocusEditAngleMax();
91 afx_msg
void OnChangeEditAngleMin();
92 afx_msg
void OnChangeEditAngleMax();
93 afx_msg
void OnButtonVegetableBrowse();
98 // The "father" VegetableDlg.
99 CVegetableDlg
*_VegetableDlg
;
103 CVegetableNoiseValueDlg
*_DensityDlg
;
106 CDirectEditableRangeFloat
*_MaxDensityDlg
;
109 // The vegetable to edit.
110 NL3D::CVegetable
*_Vegetable
;
114 void enableAngleEdit(uint radioId
);
115 // update slider and edit text.
116 void updateViewAngleMin();
117 void updateViewAngleMax();
118 // update vegetable and view from edit text
119 void updateAngleMinFromEditText();
120 void updateAngleMaxFromEditText();
122 float _PrecMaxDensityValue
;
125 //{{AFX_INSERT_LOCATION}}
126 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
128 #endif // !defined(AFX_VEGETABLE_DENSITY_PAGE_H__12320F77_5179_4727_A551_F5A8FAE7EB3A__INCLUDED_)