本文整理汇总了C++中JSArray::Push方法的典型用法代码示例。如果您正苦于以下问题:C++ JSArray::Push方法的具体用法?C++ JSArray::Push怎么用?C++ JSArray::Push使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JSArray
的用法示例。
在下文中一共展示了JSArray::Push方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DispatchJavaScriptMethods
void C_AwesomiumBrowserManager::DispatchJavaScriptMethods(C_AwesomiumBrowserInstance* pBrowserInstance)
{
//WebView* pWebView = m_webViews[pWebTab];
std::string previousObjectName = "-1";
JSValue response;
JSObject responseObject;
std::vector<JavaScriptMethodCall_t*>& methodCalls = pBrowserInstance->GetJavaScriptMethodCalls();
for (auto pJavaScriptMethodCall : methodCalls)
{
if (previousObjectName != pJavaScriptMethodCall->objectName)
{
previousObjectName = pJavaScriptMethodCall->objectName;
response = pBrowserInstance->GetWebView()->ExecuteJavascriptWithResult(WSLit(pJavaScriptMethodCall->objectName.c_str()), WSLit(""));
if (!response.IsObject())
continue;
responseObject = response.ToObject();
}
JSArray arguments;
for (auto argument : pJavaScriptMethodCall->methodArguments)
arguments.Push(WSLit(argument.c_str()));
responseObject.InvokeAsync(WSLit(pJavaScriptMethodCall->methodName.c_str()), arguments);
}
//m_pWebBrowser->DispatchJavaScriptMethods(pWebTab);
}
示例2: DispatchJavaScriptMethod
void C_AwesomiumBrowserManager::DispatchJavaScriptMethod(C_AwesomiumBrowserInstance* pBrowserInstance, std::string objectName, std::string objectMethod, std::vector<std::string> methodArguments)
{
//WebView* pWebView = m_webViews[pWebTab];
JSValue response = pBrowserInstance->GetWebView()->ExecuteJavascriptWithResult(WSLit(objectName.c_str()), WSLit(""));
if (response.IsObject())
{
JSObject object = response.ToObject();
JSArray arguments;
for (auto argument : methodArguments)
arguments.Push(WSLit(argument.c_str()));
object.InvokeAsync(WSLit(objectMethod.c_str()), arguments);
}
//m_pWebBrowser->DispatchJavaScriptMethod(pWebTab, objectName, objectMethod, methodArguments);
/*
for (auto arg : args)
{
DevMsg("Argument: %s\n", arg->text.c_str());
}
*/
}
示例3: OnShowPopupMenu
void MenuListener::OnShowPopupMenu(WebView *caller, const WebPopupMenuInfo &menu_info)
{
// DevMsg("DISABLED FOR TESTING!\n");
// return;
//C_WebTab* pWebTab = g_pAnarchyManager->GetWebManager()->GetWebBrowser()->FindWebTab(caller);
//C_WebTab* pHudWebTab = g_pAnarchyManager->GetWebManager()->GetHudWebTab();
//WebView* pHudWebView = g_pAnarchyManager->GetWebManager()->GetWebBrowser()->FindWebView(pHudWebTab);
C_AwesomiumBrowserInstance* pAwesomiumBrowserInstance = g_pAnarchyManager->GetAwesomiumBrowserManager()->FindAwesomiumBrowserInstance(caller); // FIXME: This should be a general EmbeddedInstance of any type.
C_AwesomiumBrowserInstance* pHudBrowserInstance = g_pAnarchyManager->GetAwesomiumBrowserManager()->FindAwesomiumBrowserInstance("hud");
WebView* pHudWebView = pHudBrowserInstance->GetWebView();
DevMsg("Pop menu detected!\n");
std::vector<std::string> methodArguments;
methodArguments.push_back(pAwesomiumBrowserInstance->GetId());
methodArguments.push_back(VarArgs("%i", menu_info.bounds.x));
methodArguments.push_back(VarArgs("%i", menu_info.bounds.y));
methodArguments.push_back(VarArgs("%i", menu_info.bounds.width));
methodArguments.push_back(VarArgs("%i", menu_info.bounds.height));
methodArguments.push_back(VarArgs("%i", menu_info.item_height));
methodArguments.push_back(VarArgs("%f", menu_info.item_font_size));
methodArguments.push_back(VarArgs("%i", menu_info.selected_item));
methodArguments.push_back(VarArgs("%i", menu_info.right_aligned));
for (int i = 0; i < menu_info.items.size(); i++)
{
if (menu_info.items[i].type == kWebMenuItemType_Option)
methodArguments.push_back("Option");
else if (menu_info.items[i].type == kWebMenuItemType_CheckableOption)
methodArguments.push_back("CheckableOption");
else if (menu_info.items[i].type == kWebMenuItemType_Group)
methodArguments.push_back("Group");
else if (menu_info.items[i].type == kWebMenuItemType_Separator)
methodArguments.push_back("Separator");
methodArguments.push_back(WebStringToCharString(menu_info.items[i].label));
methodArguments.push_back(WebStringToCharString(menu_info.items[i].tooltip));
methodArguments.push_back(VarArgs("%i", menu_info.items[i].action));
methodArguments.push_back(VarArgs("%i", menu_info.items[i].right_to_left));
methodArguments.push_back(VarArgs("%i", menu_info.items[i].has_directional_override));
methodArguments.push_back(VarArgs("%i", menu_info.items[i].enabled));
methodArguments.push_back(VarArgs("%i", menu_info.items[i].checked));
}
std::string objectName = "window.arcadeHud";
std::string objectMethod = "showPopupMenu";
JSValue response = pHudWebView->ExecuteJavascriptWithResult(WSLit(objectName.c_str()), WSLit(""));
if (response.IsObject())
{
JSObject object = response.ToObject();
JSArray arguments;
for (auto argument : methodArguments)
arguments.Push(WSLit(argument.c_str()));
object.InvokeAsync(WSLit(objectMethod.c_str()), arguments);
}
}
示例4: Handle
//.........这里部分代码省略.........
// TODO: log this and exit
return JSValue::Undefined();
}
channelName = ToString(args[0].ToString());
serverName = channelName + ".jtvirc.com";
port = 6667;
if (args.size() >= 2) {
if (!(args[1].IsString())) {
// log error
return JSValue::Undefined();
}
serverName = ToString(args[1].ToString());
}
if (args.size() == 3) {
if (!args[2].IsInteger()) {
// log error
return JSValue::Undefined();
}
port = (unsigned int)args[2].ToInteger();
}
isJoinedChannel = false;
hThread = (HANDLE)_beginthreadex(NULL, 0, &IrcThread, this, 0, NULL);
return JSValue::Undefined();
} else if (functionName == "disconnect") { // disconnect()
if (args.size() != 0) {
// TODO: log invalid method call
return JSValue::Undefined();
}
irc_disconnect(session);
if (hThread) {
WaitForSingleObject( hThread, INFINITE );
CloseHandle(hThread);
hThread = NULL;
}
isJoinedChannel = false;
moderators.clear();
latestMessage.Clear();
EnterCriticalSection(&messageLock);
messages.clear();
LeaveCriticalSection(&messageLock);
return JSValue::Undefined();
} else if (functionName == "getMessages") { // [message, message, ..] getMessages()
EnterCriticalSection(&messageLock);
if (args.size() != 0) {
// TODO: log invalid method call
return JSValue::Undefined();
}
JSArray returnArgs;
while(messages.size()) {
IrcMessage &message = messages[0];
JSObject newMessageObject;
newMessageObject.SetProperty(WSLit("nickname"), ToWebString(message.username));
newMessageObject.SetProperty(WSLit("message"), ToWebString(message.message));
newMessageObject.SetProperty(WSLit("color"), ToWebString(message.color));
JSArray groups;
for(auto i = message.groups.begin(); i != message.groups.end(); i++) {
groups.Push(ToWebString(*i));
}
newMessageObject.SetProperty(WSLit("groups"), groups);
JSArray emoticons;
for(auto i = message.emoticons.begin(); i != message.emoticons.end(); i++) {
groups.Push(ToWebString(*i));
}
newMessageObject.SetProperty(WSLit("emoticons"), emoticons);
returnArgs.Push(newMessageObject);
messages.erase(messages.begin());
}
LeaveCriticalSection(&messageLock);
return returnArgs;
} else if (functionName == "isConnected") {
return JSValue(irc_is_connected(session) && isJoinedChannel);
}
return JSValue::Undefined();
}