本文整理汇总了C++中CefRefPtr::GetDoubleValue方法的典型用法代码示例。如果您正苦于以下问题:C++ CefRefPtr::GetDoubleValue方法的具体用法?C++ CefRefPtr::GetDoubleValue怎么用?C++ CefRefPtr::GetDoubleValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CefRefPtr
的用法示例。
在下文中一共展示了CefRefPtr::GetDoubleValue方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PrintValue
// Simple function for formatted output of a V8 value.
void PrintValue(CefRefPtr<CefV8Value> value, std::stringstream &stream,
int indent) {
std::stringstream indent_stream;
for (int i = 0; i < indent; ++i)
indent_stream << " ";
std::string indent_str = indent_stream.str();
if (value->IsUndefined())
stream << "(undefined)";
else if (value->IsNull())
stream << "(null)";
else if (value->IsBool())
stream << "(bool) " << (value->GetBoolValue() ? "true" : "false");
else if (value->IsInt())
stream << "(int) " << value->GetIntValue();
else if (value->IsDouble())
stream << "(double) " << value->GetDoubleValue();
else if (value->IsString())
stream << "(string) " << std::string(value->GetStringValue());
else if (value->IsFunction())
stream << "(function) " << std::string(value->GetFunctionName());
else if (value->IsArray()) {
stream << "(array) [";
int len = value->GetArrayLength();
for (int i = 0; i < len; ++i) {
stream << "\n " << indent_str.c_str() << i << " = ";
PrintValue(value->GetValue(i), stream, indent+1);
}
stream << "\n" << indent_str.c_str() << "]";
} else if (value->IsObject()) {
stream << "(object) [";
std::vector<CefString> keys;
if (value->GetKeys(keys)) {
for (size_t i = 0; i < keys.size(); ++i) {
stream << "\n " << indent_str.c_str() << keys[i].c_str() << " = ";
PrintValue(value->GetValue(keys[i]), stream, indent+1);
}
}
stream << "\n" << indent_str.c_str() << "]";
}
}
示例2: SetIPCArgumentsValue
void IPC_Container::SetIPCArgumentsValue(
CefRefPtr<CefListValue> args,
int& position,
CefRefPtr<CefV8Value> v8Value,
ContainerAttribute attr)
{
if (attr.GetArraySize() == 0)
{
switch (attr.GetDatatype())
{
case Datatype::INTEGER:
{
if (v8Value->IsInt())
{
args->SetInt(position++, v8Value->GetIntValue());
}
else
{
//DLOG(WARNING) << "ERROR(SetIPCArgumentsValue): Said \"int\", got something else at position=" << position++;
}
break;
}
case Datatype::DOUBLE:
{
if (v8Value->IsDouble())
{
args->SetDouble(position++, v8Value->GetDoubleValue());
}
else
{
//DLOG(WARNING) << "ERROR(SetIPCArgumentsValue): Said \"double\", got something else at position=" << position++;
}
break;
}
case Datatype::STRING:
{
if (v8Value->IsString())
{
args->SetString(position++, v8Value->GetStringValue());
}
else
{
//DLOG(WARNING) << "ERROR(SetIPCArgumentsValue): Said \"string\", got something else at position=" << position++;
}
break;
}
}
}
else if (attr.GetArraySize() > 0) // V8Value is an array
{
for (int i = 0; i < attr.GetArraySize(); i++)
{
switch (attr.GetDatatype())
{
case Datatype::INTEGER:
{
if (v8Value->GetValue(i)->IsInt())
{
args->SetInt(position++, v8Value->GetValue(i)->GetIntValue());
}
else
{
//DLOG(WARNING) << "ERROR(SetIPCArgumentsValue): Said \"int\", got something else at position=" << position++;
}
break;
}
case Datatype::DOUBLE:
{
if (v8Value->GetValue(i)->IsDouble())
{
args->SetDouble(position++, v8Value->GetValue(i)->GetDoubleValue());
}
else
{
//DLOG(WARNING) << "ERROR(SetIPCArgumentsValue): Said \"double\", got something else at position=" << position++;
}
break;
}
case Datatype::STRING:
{
if (v8Value->GetValue(i)->IsString())
{
args->SetString(position++, v8Value->GetValue(i)->GetStringValue());
}
else
{
//DLOG(WARNING) << "ERROR(SetIPCArgumentsValue): Said \"string\", got something else at position=" << position++;
}
break;
}
}
}
}
else // ERROR CASE
{
//.........这里部分代码省略.........
示例3: V8ValueAppendToCefListValue
void V8ValueAppendToCefListValue(CefRefPtr<CefV8Value> v8Value,
CefRefPtr<CefListValue> listValue,
int nestingLevel) {
if (!v8Value->IsValid()) {
DebugLog("V8ValueAppendToCefListValue(): IsValid() FAILED");
return;
}
if (nestingLevel > 8) {
DebugLog("V8ValueAppendToCefListValue(): WARNING: max nesting level (8) " \
"exceeded");
return;
}
if (v8Value->IsUndefined() || v8Value->IsNull()) {
listValue->SetNull((int)listValue->GetSize());
} else if (v8Value->IsBool()) {
listValue->SetBool((int)listValue->GetSize(), v8Value->GetBoolValue());
} else if (v8Value->IsInt()) {
listValue->SetInt((int)listValue->GetSize(), v8Value->GetIntValue());
} else if (v8Value->IsUInt()) {
uint32 uint32_value = v8Value->GetUIntValue();
CefRefPtr<CefBinaryValue> binaryValue = CefBinaryValue::Create(
&uint32_value, sizeof(uint32_value));
listValue->SetBinary((int)listValue->GetSize(), binaryValue);
} else if (v8Value->IsDouble()) {
listValue->SetDouble((int)listValue->GetSize(), v8Value->GetDoubleValue());
} else if (v8Value->IsDate()) {
// TODO: in time_utils.pyx there are already functions for
// converting cef_time_t to python DateTime, we could easily
// add a new function for converting the python DateTime to
// string and then to CefString and expose the function using
// the "public" keyword. But how do we get the cef_time_t
// structure from the CefTime class? GetDateValue() returns
// CefTime class.
listValue->SetNull((int)listValue->GetSize());
} else if (v8Value->IsString()) {
listValue->SetString((int)listValue->GetSize(), v8Value->GetStringValue());
} else if (v8Value->IsArray()) {
// Check for IsArray() must happen before the IsObject() check.
int length = v8Value->GetArrayLength();
CefRefPtr<CefListValue> newListValue = CefListValue::Create();
for (int i = 0; i < length; ++i) {
V8ValueAppendToCefListValue(v8Value->GetValue(i), newListValue,
nestingLevel + 1);
}
listValue->SetList((int)listValue->GetSize(), newListValue);
} else if (v8Value->IsFunction()) {
// Check for IsFunction() must happen before the IsObject() check.
if (CefV8Context::InContext()) {
CefRefPtr<CefV8Context> context = \
CefV8Context::GetCurrentContext();
CefRefPtr<CefFrame> frame = context->GetFrame();
std::string strCallbackId = PutJavascriptCallback(frame, v8Value);
/* strCallbackId = '####cefpython####' \
'{"what"=>"javascript-callback", ..}' */
listValue->SetString((int)listValue->GetSize(), strCallbackId);
} else {
listValue->SetNull((int)listValue->GetSize());
DebugLog("V8ValueAppendToCefListValue() FAILED: not in V8 context"
" , FATAL ERROR!");
}
} else if (v8Value->IsObject()) {
// Check for IsObject() must happen after the IsArray()
// and IsFunction() checks.
listValue->SetDictionary((int)listValue->GetSize(),
V8ObjectToCefDictionaryValue(v8Value, nestingLevel + 1));
} else {
listValue->SetNull((int)listValue->GetSize());
DebugLog("V8ValueAppendToCefListValue() FAILED: unknown V8 type");
}
}