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////////////////////////////////////////////////////////////////////////////////
37
38// Renderer -> Browser Replies /////////////////////////////////////////////////
39// These messages are sent in reply to the above messages.
40////////////////////////////////////////////////////////////////////////////////
41
42// Reply message for TextInputClientMsg_CharacterIndexForPoint.
43IPC_MESSAGE_ROUTED1(TextInputClientReplyMsg_GotCharacterIndexForPoint,
44                    size_t /* character index */)
45
46// Reply message for TextInputClientMsg_FirstRectForCharacterRange.
47IPC_MESSAGE_ROUTED1(TextInputClientReplyMsg_GotFirstRectForRange,
48                    gfx::Rect /* frame rectangle */)
49
50#if defined(OS_MACOSX)
51// Reply message for TextInputClientMsg_StringForRange.
52IPC_MESSAGE_ROUTED1(TextInputClientReplyMsg_GotStringForRange,
53                    mac::AttributedStringCoder::EncodedString)
54#endif  // defined(OS_MACOSX)
55
56