axmol/templates/lua-template-runtime/frameworks/runtime-src/proj.win32/service/PlayerMessageBoxServiceWin.cpp

68 lines
1.6 KiB
C++
Raw Normal View History

2014-12-27 02:21:55 +08:00
#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