Files
FC1/Editor/TerrainHolePanel.cpp
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

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);
}
}