~chrisccoulson/oxide/lp1504853

« back to all changes in this revision

Viewing changes to shared/browser/input/oxide_ime_bridge_impl.h

  • Committer: Chris Coulson
  • Date: 2015-10-21 19:06:54 UTC
  • mfrom: (1215.1.13 oxide)
  • Revision ID: chris.coulson@canonical.com-20151021190654-cfcbueitgzojv7jc
MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// vim:expandtab:shiftwidth=2:tabstop=2:
 
2
// Copyright (C) 2015 Canonical Ltd.
 
3
 
 
4
// This library is free software; you can redistribute it and/or
 
5
// modify it under the terms of the GNU Lesser General Public
 
6
// License as published by the Free Software Foundation; either
 
7
// version 2.1 of the License, or (at your option) any later version.
 
8
 
 
9
// This library is distributed in the hope that it will be useful,
 
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
12
// Lesser General Public License for more details.
 
13
 
 
14
// You should have received a copy of the GNU Lesser General Public
 
15
// License along with this library; if not, write to the Free Software
 
16
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
17
 
 
18
#ifndef _OXIDE_SHARED_BROWSER_INPUT_IME_BRIDGE_IMPL_H_
 
19
#define _OXIDE_SHARED_BROWSER_INPUT_IME_BRIDGE_IMPL_H_
 
20
 
 
21
#include "base/macros.h"
 
22
#include "ui/base/ime/text_input_type.h"
 
23
 
 
24
#include "shared/browser/input/oxide_ime_bridge.h"
 
25
 
 
26
namespace gfx {
 
27
class Rect;
 
28
}
 
29
 
 
30
namespace oxide {
 
31
 
 
32
class InputMethodContext;
 
33
class RenderWidgetHostView;
 
34
 
 
35
class ImeBridgeImpl : public ImeBridge {
 
36
 public:
 
37
  ImeBridgeImpl(RenderWidgetHostView* rwhv);
 
38
  ~ImeBridgeImpl() override;
 
39
 
 
40
  InputMethodContext* context() const { return context_; }
 
41
  void SetContext(InputMethodContext* context);
 
42
 
 
43
  void TextInputStateChanged(ui::TextInputType type,
 
44
                             bool show_ime_if_needed);
 
45
  void SelectionBoundsChanged(const gfx::Rect& caret_rect,
 
46
                              size_t selection_cursor_position,
 
47
                              size_t selection_anchor_position);
 
48
  void FocusedNodeChanged(bool is_editable_node);
 
49
 
 
50
 private:
 
51
  base::string16 GetSelectionText() const override;
 
52
  base::string16 GetSelectedText() const override;
 
53
  void CommitText(const base::string16& text,
 
54
                  const gfx::Range& replacement_range) override;
 
55
  void SetComposingText(
 
56
      const base::string16& text,
 
57
      const std::vector<blink::WebCompositionUnderline>& underlines,
 
58
      const gfx::Range& selection_range) override;
 
59
 
 
60
  RenderWidgetHostView* rwhv_; // Owns us
 
61
 
 
62
  InputMethodContext* context_;
 
63
 
 
64
  DISALLOW_COPY_AND_ASSIGN(ImeBridgeImpl);
 
65
};
 
66
 
 
67
} // namespace oxide
 
68
 
 
69
#endif // _OXIDE_SHARED_BROWSER_INPUT_IME_BRIDGE_IMPL_H_