mirror of https://github.com/axmolengine/axmol.git
68 lines
1.6 KiB
C++
68 lines
1.6 KiB
C++
|
|
||
|
#include "PlayerMessageBoxServiceWin.h"
|
||
|
|
||
|
PLAYER_NS_BEGIN
|
||
|
|
||
|
PlayerMessageBoxServiceWin::PlayerMessageBoxServiceWin(HWND hwnd)
|
||
|
: _hwnd(hwnd)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
int PlayerMessageBoxServiceWin::showMessageBox(const std::string &title,
|
||
|
const std::string &message,
|
||
|
int buttonsType /* = BUTTONS_OK */)
|
||
|
{
|
||
|
std::u16string u16title;
|
||
|
cocos2d::StringUtils::UTF8ToUTF16(title, u16title);
|
||
|
std::u16string u16message;
|
||
|
cocos2d::StringUtils::UTF8ToUTF16(message, u16message);
|
||
|
|
||
|
CCLOG("PlayerMessageBoxServiceWin::showMessageBox() - title = %s, message = %s", title.c_str(), message.c_str());
|
||
|
|
||
|
UINT mbtype = MB_APPLMODAL;
|
||
|
switch (buttonsType)
|
||
|
{
|
||
|
case BUTTONS_OK_CANCEL:
|
||
|
mbtype |= MB_OKCANCEL | MB_ICONQUESTION;
|
||
|
break;
|
||
|
|
||
|
case BUTTONS_YES_NO:
|
||
|
mbtype |= MB_YESNO | MB_ICONQUESTION;
|
||
|
break;
|
||
|
|
||
|
case BUTTONS_YES_NO_CANCEL:
|
||
|
mbtype |= MB_YESNOCANCEL | MB_ICONQUESTION;
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
mbtype |= MB_OK | MB_ICONINFORMATION;
|
||
|
}
|
||
|
|
||
|
// MessageBox() used by cocos2d
|
||
|
int result = ::MessageBoxW(_hwnd, (LPCTSTR)u16message.c_str(), (LPCTSTR)u16title.c_str(), mbtype);
|
||
|
|
||
|
switch (result)
|
||
|
{
|
||
|
case IDCANCEL:
|
||
|
result = BUTTON_CANCEL;
|
||
|
break;
|
||
|
|
||
|
case IDYES:
|
||
|
result = BUTTON_YES;
|
||
|
break;
|
||
|
|
||
|
case IDNO:
|
||
|
result = BUTTON_NO;
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
result = BUTTON_OK;
|
||
|
}
|
||
|
|
||
|
CCLOG("PlayerMessageBoxServiceWin::showMessageBox() - result = %d", result);
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
PLAYER_NS_END
|