// BrushPaneView.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "EtWorldPainter.h" #include "BrushPaneView.h" #include "UserMessage.h" #include "TexturePrevDlg.h" int s_nBrushDiameterDef[] = { 5, 10, 20, 40 }; float s_fBrushHardnessDef[] = { 0.5f, 0.5f, 0.3f, 0.3f }; // CBrushPaneView IMPLEMENT_DYNCREATE(CBrushPaneView, CFormView) CBrushPaneView::CBrushPaneView() : CFormView(CBrushPaneView::IDD) { m_bActivate = false; } CBrushPaneView::~CBrushPaneView() { } void CBrushPaneView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); DDX_Control(pDX, IDC_BUTTON1, m_BrushDef1); DDX_Control(pDX, IDC_BUTTON2, m_BrushDef2); DDX_Control(pDX, IDC_BUTTON3, m_BrushDef3); DDX_Control(pDX, IDC_BUTTON4, m_BrushDef4); DDX_Control(pDX, IDC_BUTTON5, m_BrushDef5); DDX_Control(pDX, IDC_BUTTON6, m_BrushDef6); DDX_Control(pDX, IDC_BUTTON7, m_BrushDef7); DDX_Control(pDX, IDC_BUTTON8, m_BrushDef8); } BEGIN_MESSAGE_MAP(CBrushPaneView, CFormView) ON_BN_CLICKED(IDC_BUTTON1, &CBrushPaneView::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CBrushPaneView::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON3, &CBrushPaneView::OnBnClickedButton3) ON_BN_CLICKED(IDC_BUTTON4, &CBrushPaneView::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON5, &CBrushPaneView::OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON6, &CBrushPaneView::OnBnClickedButton6) ON_BN_CLICKED(IDC_BUTTON7, &CBrushPaneView::OnBnClickedButton7) ON_BN_CLICKED(IDC_BUTTON8, &CBrushPaneView::OnBnClickedButton8) ON_MESSAGE( UM_NUMMINISLIDER_UPDATE, OnUpdateNumMiniSlider ) ON_MESSAGE( UM_BRUSHPANE_UPDATE_USE_BUTTON, OnUpdateUseButton ) ON_WM_ERASEBKGND() ON_MESSAGE( UM_REFRESH_PANE_VIEW, OnRefresh ) END_MESSAGE_MAP() // CBrushPaneView Áø´ÜÀÔ´Ï´Ù. #ifdef _DEBUG void CBrushPaneView::AssertValid() const { CFormView::AssertValid(); } #ifndef _WIN32_WCE void CBrushPaneView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif #endif //_DEBUG // CBrushPaneView ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. void CBrushPaneView::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. if( m_bActivate == true ) return; m_bActivate = true; // ¾Æ±¸Âú¾Æ.. ±×³É ÁÙÁÙÀÌ.. m_BrushDef1.SetChecked( TRUE ); m_BrushDef1.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef2.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef3.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef4.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef5.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef6.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef7.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef8.SetXButtonStyle( BS_XT_XPFLAT ); m_BrushDef1.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF1 ); m_BrushDef2.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF2 ); m_BrushDef3.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF3 ); m_BrushDef4.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF4 ); m_BrushDef5.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF5 ); m_BrushDef6.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF6 ); m_BrushDef7.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF7 ); m_BrushDef8.SetBitmap( CSize( 28, 28 ), IDB_BRUSHDEF8 ); CUSTOM_Control( IDC_DIAMETER, m_DiameterCtrl ); CUSTOM_Control( IDC_HARDNESS, m_HardnessCtrl ); CUSTOM_Control( IDC_STRONG, m_StrongCtrl ); CUSTOM_Control( IDC_RADIAN, m_RadianCtrl ); CUSTOM_Control( IDC_HEIGHT, m_HeightCtrl ); m_DiameterCtrl.SetRange( 1, 200 ); m_HardnessCtrl.SetRange( 1.f, 100.f ); m_StrongCtrl.SetRange( 0.01f, 100.f ); m_RadianCtrl.SetRange( 0.f, 90.f ); m_HeightCtrl.SetRange( -32767, 32767 ); m_DiameterCtrl.SetPos( s_nBrushDiameterDef[0] ); m_HardnessCtrl.SetPos( s_fBrushHardnessDef[0] * 100.f ); m_StrongCtrl.SetPos( CGlobalValue::GetInstance().m_fBrushStrong * 100.f ); m_RadianCtrl.SetPos( frange( 0.f, 90.f ) ); m_HeightCtrl.SetPos( irange( -32767, 32767 ) ); } void CBrushPaneView::OnBnClickedButton1() { CGlobalValue::GetInstance().m_nBrushType = 0; m_BrushDef1.SetChecked( TRUE ); m_BrushDef2.SetChecked( FALSE ); m_BrushDef3.SetChecked( FALSE ); m_BrushDef4.SetChecked( FALSE ); } void CBrushPaneView::OnBnClickedButton2() { CGlobalValue::GetInstance().m_nBrushType = 1; m_BrushDef1.SetChecked( FALSE ); m_BrushDef2.SetChecked( TRUE ); m_BrushDef3.SetChecked( FALSE ); m_BrushDef4.SetChecked( FALSE ); } void CBrushPaneView::OnBnClickedButton3() { CGlobalValue::GetInstance().m_nBrushType = 2; m_BrushDef1.SetChecked( FALSE ); m_BrushDef2.SetChecked( FALSE ); m_BrushDef3.SetChecked( TRUE ); m_BrushDef4.SetChecked( FALSE ); } void CBrushPaneView::OnBnClickedButton4() { // ¿©±â¼­ TGA °°Àº ÆÄÀÏ Àо ½ºÅÛÇÁ ½ÄÀ¸·Î ÂïÈ÷°Ô ÇÏÀå.. ³ªÁß¿¡ ¤Ñ¤Ñ; TCHAR szFilter[] = _T( "All Support File(*.dds;*.tga;*.jpg;*.bmp)|*.dds;*.tga;*.jpg;*.bmp| \ DirectX Texture File (*.dds)|*.dds| \ Bitmap File (*.bmp)|*.bmp| \ Tga File (*.tga)|*.tga| \ jpeg Texture File (*.jpg)|*.jpg| \ All Files (*.*)|*.*||" ); CTexturePrevDlg Dlg(TRUE, _T("dds;tga;jpg;bmp"), _T("*.dds;*.tga;*.jpg;*.bmp"), OFN_FILEMUSTEXIST| OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_ENABLESIZING, szFilter ); if( Dlg.DoModal() != IDOK ) return; ////////// CGlobalValue::GetInstance().m_nBrushType = 3; m_BrushDef1.SetChecked( FALSE ); m_BrushDef2.SetChecked( FALSE ); m_BrushDef3.SetChecked( FALSE ); m_BrushDef4.SetChecked( TRUE ); } void CBrushPaneView::OnBnClickedButton5() { m_DiameterCtrl.SetPos( s_nBrushDiameterDef[0] ); m_HardnessCtrl.SetPos( s_fBrushHardnessDef[0] * 100.f ); CGlobalValue::GetInstance().m_nBrushDiameter = s_nBrushDiameterDef[0]; CGlobalValue::GetInstance().m_fBrushHardness = s_fBrushHardnessDef[0]; } void CBrushPaneView::OnBnClickedButton6() { m_DiameterCtrl.SetPos( s_nBrushDiameterDef[1] ); m_HardnessCtrl.SetPos( s_fBrushHardnessDef[1] * 100.f ); CGlobalValue::GetInstance().m_nBrushDiameter = s_nBrushDiameterDef[1]; CGlobalValue::GetInstance().m_fBrushHardness = s_fBrushHardnessDef[1]; } void CBrushPaneView::OnBnClickedButton7() { m_DiameterCtrl.SetPos( s_nBrushDiameterDef[2] ); m_HardnessCtrl.SetPos( s_fBrushHardnessDef[2] * 100.f ); CGlobalValue::GetInstance().m_nBrushDiameter = s_nBrushDiameterDef[2]; CGlobalValue::GetInstance().m_fBrushHardness = s_fBrushHardnessDef[2]; } void CBrushPaneView::OnBnClickedButton8() { m_DiameterCtrl.SetPos( s_nBrushDiameterDef[3] ); m_HardnessCtrl.SetPos( s_fBrushHardnessDef[3] * 100.f ); CGlobalValue::GetInstance().m_nBrushDiameter = s_nBrushDiameterDef[3]; CGlobalValue::GetInstance().m_fBrushHardness = s_fBrushHardnessDef[3]; } LRESULT CBrushPaneView::OnUpdateNumMiniSlider( WPARAM wParam, LPARAM lParam ) { HWND hWnd = (HWND)wParam; if( hWnd == m_DiameterCtrl.m_hWnd ) { int nPos = (int)lParam; CGlobalValue::GetInstance().m_nBrushDiameter = nPos; } else if( hWnd == m_HardnessCtrl.m_hWnd ) { float fPos = *(float *)lParam; CGlobalValue::GetInstance().m_fBrushHardness = fPos * 0.01f; } else if( hWnd == m_StrongCtrl.m_hWnd ) { float fPos = *(float *)lParam; CGlobalValue::GetInstance().m_fBrushStrong = fPos * 0.01f; } else if( hWnd == m_RadianCtrl.m_hWnd ) { frange range = *(frange*)lParam; CGlobalValue::GetInstance().m_rRadian = range; } else if( hWnd == m_HeightCtrl.m_hWnd ) { irange range = *(irange*)lParam; CGlobalValue::GetInstance().m_rHeight = range; } return S_OK; } BOOL CBrushPaneView::OnEraseBkgnd(CDC* pDC) { return CFormView::OnEraseBkgnd(pDC); } LRESULT CBrushPaneView::OnUpdateUseButton( WPARAM wParam, LPARAM lParam ) { switch( (int)wParam ) { case 0: // Terrain Brush m_BrushDef1.EnableWindow( TRUE ); m_BrushDef2.EnableWindow( TRUE ); m_BrushDef3.EnableWindow( TRUE ); m_BrushDef4.EnableWindow( TRUE ); m_StrongCtrl.EnableWindow( TRUE ); break; case 1: // Prop m_BrushDef1.EnableWindow( TRUE ); m_BrushDef2.EnableWindow( FALSE ); m_BrushDef3.EnableWindow( FALSE ); m_BrushDef4.EnableWindow( TRUE ); m_StrongCtrl.EnableWindow( FALSE ); break; } return S_OK; } LRESULT CBrushPaneView::OnRefresh( WPARAM wParam, LPARAM lParam ) { m_DiameterCtrl.SetPos( CGlobalValue::GetInstance().m_nBrushDiameter ); m_HardnessCtrl.SetPos( CGlobalValue::GetInstance().m_fBrushHardness ); m_StrongCtrl.SetPos( CGlobalValue::GetInstance().m_fBrushStrong * 100.f ); m_RadianCtrl.SetPos( CGlobalValue::GetInstance().m_rRadian ); m_HeightCtrl.SetPos( CGlobalValue::GetInstance().m_rHeight ); return S_OK; }