#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( m_ptPos.x) ,static_cast( m_ptPos.y), DRAG_AND_DROP_ICON_Z_POS ); pViewport->Register( &m_pSpritePrimitiveArray[i] ); } }