1// Copyright (c) 2012 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// Multiply-included message file, hence no include guard
6
7#include "ipc/ipc_message_macros.h"
8#include "ui/gfx/range/range.h"
9#include "ui/gfx/rect.h"
10
11#if defined(OS_MACOSX)
12#include "content/common/mac/attributed_string_coder.h"
13#endif
14
15#define IPC_MESSAGE_START TextInputClientMsgStart
16#undef IPC_MESSAGE_EXPORT
17#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
18
19// Browser -> Renderer Messages ////////////////////////////////////////////////
20// These messages are sent from the browser to the renderer. Each one has a
21// corresponding reply message.
22////////////////////////////////////////////////////////////////////////////////
23
24// Tells the renderer to send back the character index for a point.
25IPC_MESSAGE_ROUTED1(TextInputClientMsg_CharacterIndexForPoint,
26                    gfx::Point)
27
28// Tells the renderer to send back the rectangle for a given character range.
29IPC_MESSAGE_ROUTED1(TextInputClientMsg_FirstRectForCharacterRange,
30                    gfx::Range)
31
32// Tells the renderer to send back the text fragment in a given range.
33IPC_MESSAGE_ROUTED1(TextInputClientMsg_StringForRange,
34                    gfx::Range)
35
36// Tells the renderer to send back the word under the given point and its
37// baseline point.
38IPC_MESSAGE_ROUTED1(TextInputClientMsg_StringAtPoint, gfx::Point)
39
40////////////////////////////////////////////////////////////////////////////////
41
42// Renderer -> Browser Replies /////////////////////////////////////////////////
43// These messages are sent in reply to the above messages.
44////////////////////////////////////////////////////////////////////////////////
45
46// Reply message for TextInputClientMsg_CharacterIndexForPoint.
47IPC_MESSAGE_ROUTED1(TextInputClientReplyMsg_GotCharacterIndexForPoint,
48                    size_t /* character index */)
49
50// Reply message for TextInputClientMsg_FirstRectForCharacterRange.
51IPC_MESSAGE_ROUTED1(TextInputClientReplyMsg_GotFirstRectForRange,
52                    gfx::Rect /* frame rectangle */)
53
54#if defined(OS_MACOSX)
55// Reply message for TextInputClientMsg_StringForRange.
56IPC_MESSAGE_ROUTED1(TextInputClientReplyMsg_GotStringForRange,
57                    mac::AttributedStringCoder::EncodedString)
58
59// Reply message for TextInputClientMsg_StringAtPoint
60IPC_MESSAGE_ROUTED2(TextInputClientReplyMsg_GotStringAtPoint,
61                    mac::AttributedStringCoder::EncodedString,
62                    gfx::Point)
63#endif  // defined(OS_MACOSX)
64
65