#pragma once #include "Button.h" #include "NumericEdit.h" #include "Resource.h" class cDoorInfo; class cDoorSceneNode; class cDoorDialog : public CDialog { DECLARE_DYNAMIC(cDoorDialog) public: cDoorDialog(); virtual ~cDoorDialog(); void UpdateList( const tMap& infoMap ); void UpdateNodeTransform( cDoorSceneNode* node ); void SelectNode( cDoorSceneNode* node ); /// Ȱ¼ºÈ­ ¿©ºÎ void SetEnabled( bool enabled ); /// À§Ä¡ NiPoint3 GetTranslate() const; /// ȸÀü float GetRotateAngle() const; protected: BOOL OnInitDialog(); virtual void DoDataExchange(CDataExchange* dx); // DDX/DDV Áö¿øÀÔ´Ï´Ù. protected: afx_msg void OnClickedSave(); afx_msg void OnClickedCreate(); afx_msg void OnClickedDelete(); afx_msg void OnSelchangeNode(); afx_msg LRESULT OnChangedNumber( WPARAM id, LPARAM ); DECLARE_MESSAGE_MAP() private: cButton mSaveButton; cButton mCreateButton; cButton mDeleteButton; /// À妽º cNumericEdit mIndexNum; /// Á¦ÇÑ ¶óÀÎ cNumericEdit mRectT_WidthNum; cNumericEdit mRectB_WidthNum; cNumericEdit mRectL_HeightNum; cNumericEdit mRectR_HeightNum; cNumericEdit mRectAppendNum; /// À̵¿ cNumericEdit mTxNum; cNumericEdit mTyNum; cNumericEdit mAzNum; /// ȸÀü cNumericEdit mRzNum; }; inline void cDoorDialog::SetEnabled( bool enabled ) { if( enabled ) { mRectT_WidthNum.SetEnabled( true ); mRectB_WidthNum.SetEnabled( true ); mRectL_HeightNum.SetEnabled( true ); mRectR_HeightNum.SetEnabled( true ); mRectAppendNum.SetEnabled( true ); mTxNum.SetEnabled( true ); mTyNum.SetEnabled( true ); mAzNum.SetEnabled( true ); mRzNum.SetEnabled( true ); } else { GetDlgItem(IDC_EDIT_DOOR_INDEX)->SetWindowText( "" ); mRectT_WidthNum.SetEnabled( false ); mRectB_WidthNum.SetEnabled( false ); mRectL_HeightNum.SetEnabled( false ); mRectR_HeightNum.SetEnabled( false ); mRectAppendNum.SetEnabled( false ); mTxNum.SetEnabled( false ); mTyNum.SetEnabled( false ); mAzNum.SetEnabled( false ); mRzNum.SetEnabled( false ); } } inline NiPoint3 cDoorDialog::GetTranslate() const { float x = mTxNum.GetValue() * 100; float y = mTyNum.GetValue() * 100; return NiPoint3( x, y, 0.0f ); } inline float cDoorDialog::GetRotateAngle() const { return D3DXToRadian( mRzNum.GetValue() ); }