Files
2026-06-01 12:46:52 +02:00

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