101 lines
2.3 KiB
C++
101 lines
2.3 KiB
C++
// TerrainHolePanel.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "TerrainHolePanel.h"
|
|
#include "TerrainHoleTool.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTerrainHolePanel dialog
|
|
|
|
|
|
CTerrainHolePanel::CTerrainHolePanel(CTerrainHoleTool *tool,CWnd* pParent /*=NULL*/)
|
|
: CDialog(CTerrainHolePanel::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CTerrainHolePanel)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
assert( tool != 0 );
|
|
m_tool = tool;
|
|
Create( IDD,pParent );
|
|
}
|
|
|
|
|
|
void CTerrainHolePanel::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CTerrainHolePanel)
|
|
DDX_Control(pDX, IDC_RADIUS, m_radius);
|
|
DDX_Control(pDX, IDC_HOLE_REMOVE, m_removeHole);
|
|
DDX_Control(pDX, IDC_HOLE_MAKE, m_makeHole);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CTerrainHolePanel, CDialog)
|
|
//{{AFX_MSG_MAP(CTerrainHolePanel)
|
|
ON_BN_CLICKED(IDC_HOLE_MAKE, OnHoleMake)
|
|
ON_BN_CLICKED(IDC_HOLE_REMOVE, OnHoleRemove)
|
|
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_RADIUS, OnReleasedcaptureRadius)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTerrainHolePanel message handlers
|
|
|
|
void CTerrainHolePanel::OnHoleMake()
|
|
{
|
|
SetMakeHole(true);
|
|
m_tool->SetMakeHole(true);
|
|
}
|
|
|
|
void CTerrainHolePanel::OnHoleRemove()
|
|
{
|
|
SetMakeHole(false);
|
|
m_tool->SetMakeHole(false);
|
|
}
|
|
|
|
BOOL CTerrainHolePanel::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
//m_makeHole.SetPushedBkColor( STD_PUSHED_COLOR );
|
|
//m_removeHole.SetPushedBkColor( STD_PUSHED_COLOR );
|
|
|
|
m_makeHole.SetCheck(1);
|
|
m_removeHole.SetCheck(0);
|
|
|
|
m_radius.SetRange( 1,100 );
|
|
m_radius.SetPos( m_tool->GetBrushRadius()*2.0f );
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CTerrainHolePanel::OnReleasedcaptureRadius(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
int radius = m_radius.GetPos();
|
|
m_tool->SetBrushRadius(radius/2.0f);
|
|
*pResult = 0;
|
|
}
|
|
|
|
void CTerrainHolePanel::SetMakeHole( bool bEnable )
|
|
{
|
|
if (bEnable)
|
|
{
|
|
m_makeHole.SetCheck(1);
|
|
m_removeHole.SetCheck(0);
|
|
}
|
|
else
|
|
{
|
|
m_makeHole.SetCheck(0);
|
|
m_removeHole.SetCheck(1);
|
|
}
|
|
} |