// Copyright © 2018 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. #include "Stdafx.h" #include "TypeConversion.h" #include "CefValueWrapper.h" bool CefValueWrapper::GetBool() { ThrowIfDisposed(); return _cefValue->GetBool(); } double CefValueWrapper::GetDouble() { ThrowIfDisposed(); return _cefValue->GetDouble(); } int CefValueWrapper::GetInt() { ThrowIfDisposed(); return _cefValue->GetInt(); } String^ CefValueWrapper::GetString() { ThrowIfDisposed(); return StringUtils::ToClr(_cefValue->GetString()); } IDictionary^ CefValueWrapper::GetDictionary() { ThrowIfDisposed(); auto dictionary = _cefValue->GetDictionary(); if (!dictionary.get() || dictionary->GetSize() == 0) { return nullptr; } auto result = gcnew Dictionary(); CefDictionaryValue::KeyList keys; dictionary->GetKeys(keys); for (auto i = 0; i < keys.size(); i++) { auto key = keys[i]; auto keyValue = StringUtils::ToClr(key); auto valueWrapper = gcnew CefValueWrapper(dictionary->GetValue(keys[i])); result->Add(keyValue, valueWrapper); } return result; } IList^ CefValueWrapper::GetList() { ThrowIfDisposed(); auto list = _cefValue->GetList(); auto result = gcnew List(list->GetSize()); for (auto i = 0; i < list->GetSize(); i++) { result->Add(gcnew CefValueWrapper(list->GetValue(i))); } return result; } Object^ CefValueWrapper::GetObject() { ThrowIfDisposed(); return TypeConversion::FromNative(_cefValue.get()); }