Chromium Code Reviews| Index: content/child/dwrite_font_proxy/dwrite_localized_strings_win.cc |
| diff --git a/content/child/dwrite_font_proxy/dwrite_localized_strings_win.cc b/content/child/dwrite_font_proxy/dwrite_localized_strings_win.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..961f6b4178b1068e9cfbd1b9b89a18c18ba39125 |
| --- /dev/null |
| +++ b/content/child/dwrite_font_proxy/dwrite_localized_strings_win.cc |
| @@ -0,0 +1,76 @@ |
| +// Copyright 2015 The Chromium 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 "content/child/dwrite_font_proxy/dwrite_localized_strings_win.h" |
| + |
| +#include "base/logging.h" |
| + |
| +namespace content { |
| + |
| +HRESULT DWriteLocalizedStrings::FindLocaleName(const WCHAR* localeName, |
| + UINT32* index, |
| + BOOL* exists) { |
| + for (unsigned int n = 0; n < strings_.size(); n++) { |
| + if (_wcsicmp(strings_[n].first.data(), localeName) == 0) { |
| + *index = n; |
| + *exists = TRUE; |
| + return S_OK; |
| + } |
| + } |
| + |
| + *index = UINT_MAX; |
| + *exists = FALSE; |
| + return S_OK; |
| +} |
| + |
| +UINT32 DWriteLocalizedStrings::GetCount() { |
| + return strings_.size(); |
| +} |
| + |
| +HRESULT DWriteLocalizedStrings::GetLocaleName(UINT32 index, |
| + WCHAR* localeName, |
| + UINT32 size) { |
| + if (index >= strings_.size()) |
| + return E_INVALIDARG; |
| + if (size <= strings_[index].first.size()) |
| + return E_INVALIDARG; |
| + wcsncpy(localeName, strings_[index].first.data(), size); |
| + return S_OK; |
| +} |
| + |
| +HRESULT DWriteLocalizedStrings::GetLocaleNameLength(UINT32 index, |
| + UINT32* length) { |
| + if (index >= strings_.size()) { |
| + return E_INVALIDARG; |
| + } |
| + *length = strings_[index].first.size(); |
| + return S_OK; |
| +} |
| + |
| +HRESULT DWriteLocalizedStrings::GetString(UINT32 index, |
| + WCHAR* stringBuffer, |
|
Alexei Svitkine (slow)
2015/11/06 22:11:46
hacker_style
Ilya Kulshin
2015/11/11 01:22:11
Done.
|
| + UINT32 size) { |
| + if (index >= strings_.size()) |
| + return E_INVALIDARG; |
| + if (size <= strings_[index].second.size()) |
| + return E_INVALIDARG; |
| + wcsncpy(stringBuffer, strings_[index].second.data(), size); |
| + return S_OK; |
| +} |
| + |
| +HRESULT DWriteLocalizedStrings::GetStringLength(UINT32 index, UINT32* length) { |
| + if (index >= strings_.size()) { |
|
Alexei Svitkine (slow)
2015/11/06 22:11:46
Nit: No {}s
Ilya Kulshin
2015/11/11 01:22:11
Done.
|
| + return E_INVALIDARG; |
| + } |
| + *length = strings_[index].second.size(); |
| + return S_OK; |
| +} |
| + |
| +HRESULT DWriteLocalizedStrings::RuntimeClassInitialize( |
| + std::vector<std::pair<base::string16, base::string16>>* strings) { |
| + strings_.swap(*strings); |
| + return S_OK; |
| +} |
| + |
| +} // namespace content |