1// Copyright 2013 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#ifndef UI_METRO_VIEWER_IME_TYPES_H_
6#define UI_METRO_VIEWER_IME_TYPES_H_
7
8#include <vector>
9
10#include "base/basictypes.h"
11#include "base/strings/string16.h"
12
13namespace metro_viewer {
14
15// An equivalent to ui::CompositionUnderline defined in
16// "ui/base/ime/composition_underline.h". Redefined here to avoid dependency
17// on ui.gyp from metro_driver.gyp.
18struct UnderlineInfo {
19  UnderlineInfo();
20  int32 start_offset;
21  int32 end_offset;
22  bool thick;
23};
24
25// An equivalent to ui::CompositionText defined in
26// "ui/base/ime/composition_text.h". Redefined here to avoid dependency
27// on ui.gyp from metro_driver.gyp.
28struct Composition {
29  Composition();
30  ~Composition();
31  base::string16 text;
32  int32 selection_start;
33  int32 selection_end;
34  std::vector<UnderlineInfo> underlines;
35};
36
37// An equivalent to Win32 RECT structure. This can be gfx::Rect but redefined
38// here to avoid dependency on gfx.gyp from metro_driver.gyp.
39struct CharacterBounds {
40  CharacterBounds();
41  int32 left;
42  int32 top;
43  int32 right;
44  int32 bottom;
45};
46
47}  // namespace metro_viewer
48
49#endif  // UI_METRO_VIEWER_IME_TYPES_H_
50