Files
LayaNative2.0/Conch/source/conch/WindowsEnv/WinCtrl.cpp
T
2020-11-11 16:17:13 +08:00

56 lines
864 B
C++

#include "WinCtrl.h"
namespace laya {
std::map<HWND, WinControl*> WinCtrlEvtManager::ms_ctrlMap;
bool WinCtrlEvtManager::Add(HWND hwnd, WinControl* ctrl)
{
if (!ctrl)
return false;
if (!hwnd)
return false;
auto it = ms_ctrlMap.find(hwnd);
if (it != ms_ctrlMap.end())
{
it->second = ctrl;
}
else
{
ms_ctrlMap.insert(std::make_pair(hwnd, ctrl));
}
return true;
}
void WinCtrlEvtManager::Remove(HWND hwnd)
{
auto it = ms_ctrlMap.find(hwnd);
if (it != ms_ctrlMap.end())
{
ms_ctrlMap.erase(it);
}
}
WinControl* WinCtrlEvtManager::Get(HWND hwnd)
{
auto it = ms_ctrlMap.find(hwnd);
if (it != ms_ctrlMap.end())
{
return it->second;
}
return nullptr;
}
void WinCtrlEvtManager::Clear()
{
auto it = ms_ctrlMap.begin();
while (it != ms_ctrlMap.end())
{
it = ms_ctrlMap.erase(it);
}
}
};