| // 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 <stdint.h> |
| |
| #include <utility> |
| #include <vector> |
| |
| #include "base/strings/string16.h" |
| #include "content/common/content_export.h" |
| #include "ipc/ipc_message_macros.h" |
| #include "ipc/ipc_platform_file.h" |
| |
| #undef IPC_MESSAGE_EXPORT |
| #define IPC_MESSAGE_EXPORT CONTENT_EXPORT |
| #define IPC_MESSAGE_START DWriteFontProxyMsgStart |
| |
| #ifndef CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ |
| #define CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ |
| |
| // The macros can't handle a complex template declaration, so we typedef it. |
| typedef std::pair<base::string16, base::string16> DWriteStringPair; |
| |
| #endif // CONTENT_COMMON_DWRITE_FONT_PROXY_MESSAGES_H_ |
| |
| IPC_STRUCT_BEGIN(DWriteFontStyle) |
| IPC_STRUCT_MEMBER(uint16_t, font_weight) |
| IPC_STRUCT_MEMBER(uint8_t, font_slant) |
| IPC_STRUCT_MEMBER(uint8_t, font_stretch) |
| IPC_STRUCT_END() |
| |
| IPC_STRUCT_BEGIN(MapCharactersResult) |
| IPC_STRUCT_MEMBER(uint32_t, family_index) |
| IPC_STRUCT_MEMBER(base::string16, family_name) |
| IPC_STRUCT_MEMBER(uint32_t, mapped_length) |
| IPC_STRUCT_MEMBER(float, scale) |
| IPC_STRUCT_MEMBER(DWriteFontStyle, font_style) |
| IPC_STRUCT_END() |
| |
| // Locates the index of the specified font family within the system collection. |
| IPC_SYNC_MESSAGE_CONTROL1_1(DWriteFontProxyMsg_FindFamily, |
| base::string16 /* family_name */, |
| uint32_t /* out index */) |
| |
| // Returns the number of font families in the system collection. |
| IPC_SYNC_MESSAGE_CONTROL0_1(DWriteFontProxyMsg_GetFamilyCount, |
| uint32_t /* out count */) |
| |
| // Returns the list of locale and family name pairs for the font family at the |
| // specified index. |
| IPC_SYNC_MESSAGE_CONTROL1_1( |
| DWriteFontProxyMsg_GetFamilyNames, |
| uint32_t /* family_index */, |
| std::vector<DWriteStringPair> /* out family_names */) |
| |
| // Returns the list of font file paths in the system font directory that contain |
| // font data for the font family at the specified index. |
| IPC_SYNC_MESSAGE_CONTROL1_2( |
| DWriteFontProxyMsg_GetFontFiles, |
| uint32_t /* family_index */, |
| std::vector<base::string16> /* out file_paths */, |
| std::vector<IPC::PlatformFileForTransit> /* out file_handles*/) |
| |
| // Locates a font family that is able to render the specified text using the |
| // specified style. If successful, the family_index and family_name will |
| // indicate which family in the system font collection can render the requested |
| // text and the mapped_length will indicate how many characters can be |
| // rendered. If no font exists that can render the text, family_index will be |
| // UINT32_MAX and mapped_length will indicate how many characters cannot be |
| // rendered by any installed font. |
| IPC_SYNC_MESSAGE_CONTROL5_1(DWriteFontProxyMsg_MapCharacters, |
| base::string16 /* text */, |
| DWriteFontStyle /* font_style */, |
| base::string16 /* locale_name */, |
| uint32_t /* reading_direction */, |
| base::string16 /* base_family_name - optional */, |
| MapCharactersResult /* out */) |