Files
SmallGame_Cocos2dx/Classes/DataManage/DialogManager.cpp
T
2014-08-20 16:15:02 +08:00

69 lines
1.9 KiB
C++

/********************************************************************
created: 2014/04/02
filename: DialogManager.h
author: 王少培
purpose:
*********************************************************************/
#include "DialogManager.h"
#include "cocos2d.h"
// bool CDialogManager::showDialogModal(int iDialogIDD, GameLayer_Base* hParent/*=NULL*/) {
//
// return true;
// }
//
bool CDialogManager::hideDialog(int iDialogIDD) {
DialogDataMap::const_iterator iteFind = mvDialogDataMap.find(iDialogIDD);
if (iteFind == mvDialogDataMap.end()) {
return false;
}
iteFind->second.pObject->setVisible(false);
iteFind->second.pObject->onHide();
return true;
}
//
bool CDialogManager::hideAllDialogs() {
return true;
}
void CDialogManager::releaseAllDialog()
{
for (DialogDataMap::iterator iter = mvDialogDataMap.begin();
iter != mvDialogDataMap.end(); ++iter) {
SDialogData &data = iter->second;
CC_SAFE_RELEASE(data.pObject);
}
}
bool CDialogManager::onPackageFilter(void *pDataPkg)
{
DialogDataMap tmpDlgMap = mvDialogDataMap;
bool bRet = false;
DialogDataMap::const_iterator iter = tmpDlgMap.begin();
for (; iter != tmpDlgMap.end(); ++iter) {
GameLayer_Base* pObj = iter->second.pObject;
if (pObj&&pObj->isVisible())
{
bRet = pObj->onPackageFilter(pDataPkg);
}
}
return true;
}
void CDialogManager::releaseDialog(int iDialogIDD)
{
DialogDataMap::iterator iteFind = mvDialogDataMap.find(iDialogIDD);
if (iteFind != mvDialogDataMap.end()){
CC_SAFE_RELEASE(iteFind->second.pObject);
if(iteFind->second.pObject->getParent())
iteFind->second.pObject->removeFromParent();
mvDialogDataMap.erase(iteFind);
}
}
unsigned long CDialogManager::sendDialogMessge(int iDialogIDD, int message, unsigned int wParam, long lParam, GameLayer_Base* hParent /*= NULL*/) {
return 0;
}
DialogDataMap CDialogManager::mvDialogDataMap;