94 lines
2.1 KiB
C++
94 lines
2.1 KiB
C++
|
|
#include "stdafx.h"
|
|
|
|
#include "KPrimitiveSprite.h"
|
|
|
|
#include "KUIWnd.h"
|
|
#include "KViewport.h"
|
|
#include "KUIDragAndDrop.h"
|
|
|
|
#include "KResourceManager.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// KUIDragAndDropNormalIconRenderer Implement
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
LPCSTR KUIDragAndDropObject::GetParentID()
|
|
{
|
|
if( NULL != m_pSenderParent)
|
|
return m_pSenderParent->GetID();
|
|
|
|
return "";
|
|
}
|
|
LPCSTR KUIDragAndDropObject::GetControlID()
|
|
{
|
|
if( NULL != m_pSenderControl)
|
|
return m_pSenderControl->GetID();
|
|
|
|
return "";
|
|
}
|
|
|
|
|
|
namespace
|
|
{
|
|
const float DRAG_AND_DROP_ICON_Z_POS = 1.0f;
|
|
}
|
|
|
|
KUIDragAndDropNormalIconRenderer::KUIDragAndDropNormalIconRenderer()
|
|
{
|
|
m_pSpritePrimitiveArray = NULL;
|
|
m_dwMaxState = 0;
|
|
}
|
|
KUIDragAndDropNormalIconRenderer::~KUIDragAndDropNormalIconRenderer()
|
|
{
|
|
SAFE_DELETE_ARRAY( m_pSpritePrimitiveArray );
|
|
}
|
|
|
|
void KUIDragAndDropNormalIconRenderer::SetMaxState(DWORD dwMaxState)
|
|
{
|
|
if(dwMaxState <= 0)
|
|
return;
|
|
|
|
m_dwMaxState = dwMaxState;
|
|
SAFE_DELETE_ARRAY( m_pSpritePrimitiveArray );
|
|
m_pSpritePrimitiveArray = new KSpritePrimitive[m_dwMaxState];
|
|
}
|
|
|
|
void KUIDragAndDropNormalIconRenderer::SetStateIcon(LPCSTR lpszSprName, LPCSTR lpszAniName, int nFrameIndex,
|
|
DWORD dwState)
|
|
{
|
|
if( dwState >= m_dwMaxState)
|
|
{
|
|
assert( false && " State Index Error" );
|
|
return;
|
|
}
|
|
|
|
m_pSpritePrimitiveArray[dwState].SetRes( KSpriteManager::GetManager()->GetResSprite( lpszSprName, lpszAniName,
|
|
nFrameIndex ) );
|
|
}
|
|
|
|
void KUIDragAndDropNormalIconRenderer::EnableState(DWORD dwState, bool bEnable)
|
|
{
|
|
if( dwState >= m_dwMaxState)
|
|
{
|
|
assert( false && " State Index Error" );
|
|
return;
|
|
}
|
|
|
|
m_pSpritePrimitiveArray[dwState].SetRenderEnable( bEnable );
|
|
}
|
|
|
|
void KUIDragAndDropNormalIconRenderer::Render(KViewportObject* pViewport)
|
|
{
|
|
|
|
for(int i = 0 ; i < m_dwMaxState; ++i)
|
|
{
|
|
m_pSpritePrimitiveArray[i].SetPosition( static_cast<float>( m_ptPos.x) ,static_cast<float>( m_ptPos.y),
|
|
DRAG_AND_DROP_ICON_Z_POS );
|
|
|
|
pViewport->Register( &m_pSpritePrimitiveArray[i] );
|
|
}
|
|
}
|
|
|
|
|