1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file.
4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef UI_METRO_VIEWER_IME_TYPES_H_
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define UI_METRO_VIEWER_IME_TYPES_H_
7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include <vector>
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/basictypes.h"
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/strings/string16.h"
12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace metro_viewer {
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// An equivalent to ui::CompositionUnderline defined in
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// "ui/base/ime/composition_underline.h". Redefined here to avoid dependency
17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// on ui.gyp from metro_driver.gyp.
18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct UnderlineInfo {
19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  UnderlineInfo();
20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 start_offset;
21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 end_offset;
22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  bool thick;
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)};
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// An equivalent to ui::CompositionText defined in
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// "ui/base/ime/composition_text.h". Redefined here to avoid dependency
27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// on ui.gyp from metro_driver.gyp.
28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct Composition {
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  Composition();
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  ~Composition();
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  base::string16 text;
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 selection_start;
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 selection_end;
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  std::vector<UnderlineInfo> underlines;
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)};
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// An equivalent to Win32 RECT structure. This can be gfx::Rect but redefined
38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// here to avoid dependency on gfx.gyp from metro_driver.gyp.
39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct CharacterBounds {
40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CharacterBounds();
41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 left;
42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 top;
43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 right;
44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  int32 bottom;
45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)};
46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}  // namespace metro_viewer
48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif  // UI_METRO_VIEWER_IME_TYPES_H_
50