Exemplo n.º 1
0
static std::string
WideStringToString(WideString const &str)
{
    int size = WideCharToMultiByte(CP_UTF8, 0, str.data(), (int)str.size(), NULL, 0, NULL, NULL);
    std::string multi = std::string();
    multi.resize(size);
    WideCharToMultiByte(CP_UTF8, 0, str.data(), (int)str.size(), &multi[0], size, NULL, NULL);
    return multi;
}
    virtual void onJavascriptCallback(Window *win, void* replyMsg, URLString origin, WideString funcName, Script::Variant *args, size_t numArgs)
	{
		WindowDelegate::onJavascriptCallback(win,replyMsg,origin,funcName,args,numArgs);
		std::vector<core::stringw> argsVal;
		for (int i=0;i<numArgs;++i)
		{
			switch(args[i].type())
			{
			case Script::Variant::JSSTRING:
				argsVal.push_back(args[i].toString().data());
				break;
			case Script::Variant::JSBOOLEAN:
				argsVal.push_back(core::string_to_wchar(core::StringConverter::toString(args[i].toBoolean())));
				break;
			case Script::Variant::JSDOUBLE:
				argsVal.push_back(core::string_to_wchar(core::StringConverter::toString(args[i].toDouble())));
				break;
			default:
				argsVal.push_back(L"0");
			}
		}
		m_owner->__FIRE_OnJavascriptCallback(m_owner,origin.data(),funcName.data(),argsVal);

	}
    virtual void onCrashedPlugin(Window *win, WideString pluginName)
	{
		m_owner->__FIRE_OnCrashPlugin(m_owner,pluginName.data());
	}