| OLD | NEW |
| (Empty) |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CONTENT_COMMON_DWRITE_TEXT_ANALYSIS_SOURCE_WIN_H_ | |
| 6 #define CONTENT_COMMON_DWRITE_TEXT_ANALYSIS_SOURCE_WIN_H_ | |
| 7 | |
| 8 #include <dwrite.h> | |
| 9 #include <wrl.h> | |
| 10 | |
| 11 #include "base/macros.h" | |
| 12 #include "base/strings/string16.h" | |
| 13 #include "content/common/content_export.h" | |
| 14 | |
| 15 namespace content { | |
| 16 | |
| 17 // Implements an IDWriteTextAnalysisSource, describing a single pre-defined | |
| 18 // chunk of text with a uniform locale, reading direction, and number | |
| 19 // substitution. | |
| 20 class CONTENT_EXPORT TextAnalysisSource | |
| 21 : public Microsoft::WRL::RuntimeClass< | |
| 22 Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>, | |
| 23 IDWriteTextAnalysisSource> { | |
| 24 public: | |
| 25 TextAnalysisSource(); | |
| 26 | |
| 27 // IDWriteTextAnalysisSource: | |
| 28 HRESULT STDMETHODCALLTYPE GetLocaleName(UINT32 text_position, | |
| 29 UINT32* text_length, | |
| 30 const WCHAR** locale_name) override; | |
| 31 HRESULT STDMETHODCALLTYPE GetNumberSubstitution( | |
| 32 UINT32 text_position, | |
| 33 UINT32* text_length, | |
| 34 IDWriteNumberSubstitution** number_substitution) override; | |
| 35 DWRITE_READING_DIRECTION STDMETHODCALLTYPE | |
| 36 GetParagraphReadingDirection() override; | |
| 37 HRESULT STDMETHODCALLTYPE GetTextAtPosition(UINT32 text_position, | |
| 38 const WCHAR** text_string, | |
| 39 UINT32* text_length) override; | |
| 40 HRESULT STDMETHODCALLTYPE GetTextBeforePosition(UINT32 text_position, | |
| 41 const WCHAR** text_string, | |
| 42 UINT32* text_length) override; | |
| 43 | |
| 44 HRESULT STDMETHODCALLTYPE | |
| 45 RuntimeClassInitialize(const base::string16& text, | |
| 46 const base::string16& locale_name, | |
| 47 IDWriteNumberSubstitution* number_substitution, | |
| 48 DWRITE_READING_DIRECTION reading_direction); | |
| 49 | |
| 50 protected: | |
| 51 ~TextAnalysisSource() override; | |
| 52 | |
| 53 private: | |
| 54 base::string16 text_; | |
| 55 base::string16 locale_name_; | |
| 56 Microsoft::WRL::ComPtr<IDWriteNumberSubstitution> number_substitution_; | |
| 57 DWRITE_READING_DIRECTION reading_direction_; | |
| 58 | |
| 59 DISALLOW_ASSIGN(TextAnalysisSource); | |
| 60 }; | |
| 61 | |
| 62 } // namespace content | |
| 63 | |
| 64 #endif // CONTENT_COMMON_DWRITE_TEXT_ANALYSIS_SOURCE_WIN_H_ | |
| OLD | NEW |