Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: chrome/browser/chromeos/input_method/mock_input_method_engine.h

Issue 119133003: Make InputMethodEngine manage its descriptor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHOD_ENGINE_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_ENGINE_H_
6 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHOD_ENGINE_H_ 6 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_ENGINE_H_
7 7
8 #include <map>
9 #include <string> 8 #include <string>
10 #include <vector> 9 #include <vector>
11 #include "chrome/browser/chromeos/input_method/input_method_engine_interface.h" 10 #include "chrome/browser/chromeos/input_method/input_method_engine_interface.h"
11 #include "chromeos/ime/input_method_descriptor.h"
12 #include "url/gurl.h" 12 #include "url/gurl.h"
13 13
14 namespace ui { 14 namespace ui {
15 class KeyEvent; 15 class KeyEvent;
16 } // namespace ui 16 } // namespace ui
17 17
18 namespace chromeos { 18 namespace chromeos {
19 19
20 class IBusText; 20 class IBusText;
21 21
22 namespace input_method { 22 namespace input_method {
23 class CandidateWindow; 23 class CandidateWindow;
24 struct InputMethodProperty; 24 struct InputMethodProperty;
25 struct KeyEventHandle; 25 struct KeyEventHandle;
26 } // namespace input_method 26 } // namespace input_method
27 27
28 class InputMethodEngine : public InputMethodEngineInterface { 28 class MockInputMethodEngine : public InputMethodEngineInterface {
29 public: 29 public:
30 InputMethodEngine(); 30 explicit MockInputMethodEngine(
31 31 const input_method::InputMethodDescriptor& descriptor);
32 virtual ~InputMethodEngine(); 32 virtual ~MockInputMethodEngine();
33
34 void Initialize(
35 InputMethodEngineInterface::Observer* observer,
36 const char* engine_name,
37 const char* extension_id,
38 const char* engine_id,
39 const std::vector<std::string>& languages,
40 const std::vector<std::string>& layouts,
41 const GURL& options_page,
42 const GURL& input_view);
43 33
44 // InputMethodEngineInterface overrides. 34 // InputMethodEngineInterface overrides.
35 virtual const input_method::InputMethodDescriptor& GetDescriptor()
36 const OVERRIDE;
45 virtual void StartIme() OVERRIDE; 37 virtual void StartIme() OVERRIDE;
46 virtual bool SetComposition(int context_id, 38 virtual bool SetComposition(int context_id,
47 const char* text, 39 const char* text,
48 int selection_start, 40 int selection_start,
49 int selection_end, 41 int selection_end,
50 int cursor, 42 int cursor,
51 const std::vector<SegmentInfo>& segments, 43 const std::vector<SegmentInfo>& segments,
52 std::string* error) OVERRIDE; 44 std::string* error) OVERRIDE;
53 virtual bool ClearComposition(int context_id, std::string* error) OVERRIDE; 45 virtual bool ClearComposition(int context_id, std::string* error) OVERRIDE;
54 virtual bool CommitText(int context_id, const char* text, 46 virtual bool CommitText(int context_id, const char* text,
(...skipping 30 matching lines...) Expand all
85 virtual void PropertyActivate(const std::string& property_name) OVERRIDE; 77 virtual void PropertyActivate(const std::string& property_name) OVERRIDE;
86 virtual void Reset() OVERRIDE; 78 virtual void Reset() OVERRIDE;
87 virtual void ProcessKeyEvent(const ui::KeyEvent& key_event, 79 virtual void ProcessKeyEvent(const ui::KeyEvent& key_event,
88 const KeyEventDoneCallback& callback) OVERRIDE; 80 const KeyEventDoneCallback& callback) OVERRIDE;
89 virtual void CandidateClicked(uint32 index) OVERRIDE; 81 virtual void CandidateClicked(uint32 index) OVERRIDE;
90 virtual void SetSurroundingText(const std::string& text, uint32 cursor_pos, 82 virtual void SetSurroundingText(const std::string& text, uint32 cursor_pos,
91 uint32 anchor_pos) OVERRIDE; 83 uint32 anchor_pos) OVERRIDE;
92 virtual void HideInputView() OVERRIDE; 84 virtual void HideInputView() OVERRIDE;
93 85
94 private: 86 private:
95 // Converts MenuItem to InputMethodProperty. 87 // Descriptor of this input method.
96 void MenuItemToProperty(const MenuItem& item, 88 input_method::InputMethodDescriptor descriptor_;
97 input_method::InputMethodProperty* property);
98
99 // True if the current context has focus.
100 bool focused_;
101
102 // True if this engine is active.
103 bool active_;
104
105 // ID that is used for the current input context. False if there is no focus.
106 int context_id_;
107
108 // Next id that will be assigned to a context.
109 int next_context_id_;
110
111 // This IME ID in Chrome Extension.
112 std::string engine_id_;
113
114 // This IME ID in ibus.
115 std::string ibus_id_;
116
117 // Pointer to the object recieving events for this IME.
118 InputMethodEngineInterface::Observer* observer_;
119
120 // The current preedit text, and it's cursor position.
121 scoped_ptr<IBusText> preedit_text_;
122 int preedit_cursor_;
123
124 // The current candidate window.
125 scoped_ptr<input_method::CandidateWindow> candidate_window_;
126 89
127 // The current candidate window property. 90 // The current candidate window property.
128 CandidateWindowProperty candidate_window_property_; 91 CandidateWindowProperty candidate_window_property_;
129
130 // Indicates whether the candidate window is visible.
131 bool window_visible_;
132
133 // Mapping of candidate index to candidate id.
134 std::vector<int> candidate_ids_;
135
136 // Mapping of candidate id to index.
137 std::map<int, int> candidate_indexes_;
138
139 // Used for input view window.
140 GURL input_view_url_;
141 }; 92 };
142 93
143 } // namespace chromeos 94 } // namespace chromeos
144 95
145 #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHOD_ENGINE_H_ 96 #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_ENGINE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698