123
This commit is contained in:
73
Editor/Controls/PickObjectButton.cpp
Normal file
73
Editor/Controls/PickObjectButton.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
// ToolButton.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "PickObjectButton.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPickObjectButton
|
||||
IMPLEMENT_DYNAMIC(CPickObjectButton,CColorCheckBox)
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
CPickObjectButton::CPickObjectButton()
|
||||
{
|
||||
m_targetClass = 0;
|
||||
m_bMultipick = false;
|
||||
}
|
||||
|
||||
CPickObjectButton::~CPickObjectButton()
|
||||
{
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CPickObjectButton, CButton)
|
||||
//{{AFX_MSG_MAP(CPickObjectButton)
|
||||
ON_CONTROL_REFLECT(BN_CLICKED, OnClicked)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
void CPickObjectButton::OnClicked()
|
||||
{
|
||||
if (GetCheck() == 1)
|
||||
{
|
||||
SetCheck(0);
|
||||
GetIEditor()->CancelPick();
|
||||
return;
|
||||
}
|
||||
|
||||
SetCheck(1);
|
||||
GetIEditor()->PickObject( this,m_targetClass,m_statusText,m_bMultipick );
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CPickObjectButton::OnPick( CBaseObject *picked )
|
||||
{
|
||||
if (!m_bMultipick)
|
||||
SetCheck(0);
|
||||
if (m_pickCallback)
|
||||
m_pickCallback->OnPick( picked );
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CPickObjectButton::OnCancelPick()
|
||||
{
|
||||
SetCheck(0);
|
||||
if (m_pickCallback)
|
||||
m_pickCallback->OnCancelPick();
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CPickObjectButton::SetPickCallback( IPickObjectCallback *callback,const CString &statusText,CRuntimeClass *targetClass,bool bMultiPick )
|
||||
{
|
||||
m_statusText = statusText;
|
||||
m_pickCallback = callback;
|
||||
m_targetClass = targetClass;
|
||||
m_bMultipick = bMultiPick;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
bool CPickObjectButton::OnPickFilter( CBaseObject *filterObject )
|
||||
{
|
||||
if (m_pickCallback)
|
||||
return m_pickCallback->OnPickFilter( filterObject );
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user