OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
11 #include "content/common/content_export.h" | 11 #include "content/common/content_export.h" |
12 #include "ipc/ipc_message_macros.h" | 12 #include "ipc/ipc_message_macros.h" |
13 | 13 |
14 #undef IPC_MESSAGE_EXPORT | 14 #undef IPC_MESSAGE_EXPORT |
15 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT | 15 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT |
16 #define IPC_MESSAGE_START DWriteFontProxyMsgStart | 16 #define IPC_MESSAGE_START DWriteFontProxyMsgStart |
17 | 17 |
18 #ifndef CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ | 18 #ifndef CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ |
19 #define CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ | 19 #define CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ |
20 | 20 |
21 // The macros can't handle a complex template declaration, so we typedef it. | 21 // The macros can't handle a complex template declaration, so we typedef it. |
22 typedef std::pair<base::string16, base::string16> DWriteStringPair; | 22 typedef std::pair<base::string16, base::string16> DWriteStringPair; |
23 | 23 |
24 #endif // CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ | 24 #endif // CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ |
25 | 25 |
| 26 IPC_STRUCT_BEGIN(DWriteFontStyle) |
| 27 IPC_STRUCT_MEMBER(uint16_t, font_weight) |
| 28 IPC_STRUCT_MEMBER(uint8_t, font_slant) |
| 29 IPC_STRUCT_MEMBER(uint8_t, font_stretch) |
| 30 IPC_STRUCT_END() |
| 31 |
| 32 IPC_STRUCT_BEGIN(MapCharactersResult) |
| 33 IPC_STRUCT_MEMBER(uint32_t, family_index) |
| 34 IPC_STRUCT_MEMBER(base::string16, family_name) |
| 35 IPC_STRUCT_MEMBER(uint32_t, mapped_length) |
| 36 IPC_STRUCT_MEMBER(float, scale) |
| 37 IPC_STRUCT_MEMBER(DWriteFontStyle, font_style) |
| 38 IPC_STRUCT_END() |
| 39 |
26 // Locates the index of the specified font family within the system collection. | 40 // Locates the index of the specified font family within the system collection. |
27 IPC_SYNC_MESSAGE_CONTROL1_1(DWriteFontProxyMsg_FindFamily, | 41 IPC_SYNC_MESSAGE_CONTROL1_1(DWriteFontProxyMsg_FindFamily, |
28 base::string16 /* family_name */, | 42 base::string16 /* family_name */, |
29 uint32_t /* out index */) | 43 uint32_t /* out index */) |
30 | 44 |
31 // Returns the number of font families in the system collection. | 45 // Returns the number of font families in the system collection. |
32 IPC_SYNC_MESSAGE_CONTROL0_1(DWriteFontProxyMsg_GetFamilyCount, | 46 IPC_SYNC_MESSAGE_CONTROL0_1(DWriteFontProxyMsg_GetFamilyCount, |
33 uint32_t /* out count */) | 47 uint32_t /* out count */) |
34 | 48 |
35 // Returns the list of locale and family name pairs for the font family at the | 49 // Returns the list of locale and family name pairs for the font family at the |
36 // specified index. | 50 // specified index. |
37 IPC_SYNC_MESSAGE_CONTROL1_1( | 51 IPC_SYNC_MESSAGE_CONTROL1_1( |
38 DWriteFontProxyMsg_GetFamilyNames, | 52 DWriteFontProxyMsg_GetFamilyNames, |
39 uint32_t /* family_index */, | 53 uint32_t /* family_index */, |
40 std::vector<DWriteStringPair> /* out family_names */) | 54 std::vector<DWriteStringPair> /* out family_names */) |
41 | 55 |
42 // Returns the list of font file paths in the system font directory that contain | 56 // Returns the list of font file paths in the system font directory that contain |
43 // font data for the font family at the specified index. | 57 // font data for the font family at the specified index. |
44 IPC_SYNC_MESSAGE_CONTROL1_1(DWriteFontProxyMsg_GetFontFiles, | 58 IPC_SYNC_MESSAGE_CONTROL1_1(DWriteFontProxyMsg_GetFontFiles, |
45 uint32_t /* family_index */, | 59 uint32_t /* family_index */, |
46 std::vector<base::string16> /* out file_paths */) | 60 std::vector<base::string16> /* out file_paths */) |
| 61 |
| 62 // Locates a font family that is able to render the specified text using the |
| 63 // specified style. If successful, the family_index and family_name will |
| 64 // indicate which family in the system font collection can render the requested |
| 65 // text and the mapped_length will indicate how many characters can be |
| 66 // rendered. If no font exists that can render the text, family_index will be |
| 67 // UINT32_MAX and mapped_length will indicate how many characters cannot be |
| 68 // rendered by any installed font. |
| 69 IPC_SYNC_MESSAGE_CONTROL5_1(DWriteFontProxyMsg_MapCharacters, |
| 70 base::string16 /* text */, |
| 71 DWriteFontStyle /* font_style */, |
| 72 base::string16 /* locale_name */, |
| 73 uint32_t /* reading_direction */, |
| 74 base::string16 /* base_family_name - optional */, |
| 75 MapCharactersResult /* out */) |
OLD | NEW |