Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 // The header files provides APIs for monitoring and controlling input | 5 // The header files provides APIs for monitoring and controlling input |
| 6 // method UI status. The APIs encapsulate the APIs of IBus, the underlying | 6 // method UI status. The APIs encapsulate the APIs of IBus, the underlying |
| 7 // input method framework. | 7 // input method framework. |
| 8 // TODO(nona): Remove InputMethodLookupTable and IBusUiController. | |
| 8 | 9 |
| 9 #ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_ | 10 #ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_ |
| 10 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_ | 11 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_ |
| 11 | 12 |
| 12 #include <string> | 13 #include <string> |
| 13 #include <vector> | 14 #include <vector> |
| 14 | 15 |
| 15 #include "base/basictypes.h" | 16 #include "base/basictypes.h" |
| 16 #include "base/observer_list.h" | 17 #include "base/observer_list.h" |
| 18 #include "chromeos/dbus/ibus/ibus_panel_service.h" | |
| 17 | 19 |
| 18 namespace gfx { | 20 namespace gfx { |
| 19 class Rect; | 21 class Rect; |
| 20 } // namespace gfx | 22 } // namespace gfx |
| 21 | 23 |
| 22 namespace chromeos { | 24 namespace chromeos { |
| 23 namespace input_method { | 25 namespace input_method { |
| 24 | 26 |
| 25 // A key for attaching the |ibus_service_panel_| object to |ibus_|. | 27 // A key for attaching the |ibus_service_panel_| object to |ibus_|. |
| 26 const char kPanelObjectKey[] = "panel-object"; | 28 const char kPanelObjectKey[] = "panel-object"; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 75 std::vector<std::string> labels; | 77 std::vector<std::string> labels; |
| 76 | 78 |
| 77 // Annotation strings in UTF-8 (ex. "Hankaku Katakana"). | 79 // Annotation strings in UTF-8 (ex. "Hankaku Katakana"). |
| 78 std::vector<std::string> annotations; | 80 std::vector<std::string> annotations; |
| 79 | 81 |
| 80 // Description entries. This text is shown in Infolist window. | 82 // Description entries. This text is shown in Infolist window. |
| 81 std::vector<Description> descriptions; | 83 std::vector<Description> descriptions; |
| 82 }; | 84 }; |
| 83 | 85 |
| 84 // IBusUiController is used to interact with the IBus daemon. | 86 // IBusUiController is used to interact with the IBus daemon. |
| 85 class IBusUiController { | 87 class IBusUiController : public ibus::IBusPanelCandidateWindowHandlerInterface { |
| 86 public: | 88 public: |
| 87 class Observer { | 89 class Observer { |
| 88 public: | 90 public: |
| 89 // Called when the auxiliary text becomes hidden. | 91 // Called when the auxiliary text becomes hidden. |
| 90 virtual void OnHideAuxiliaryText() = 0; | 92 virtual void OnHideAuxiliaryText() = 0; |
| 91 | 93 |
| 92 // Called when the lookup table becomes hidden. | 94 // Called when the lookup table becomes hidden. |
| 93 virtual void OnHideLookupTable() = 0; | 95 virtual void OnHideLookupTable() = 0; |
| 94 | 96 |
| 95 // Called when the preedit text becomes hidden. | 97 // Called when the preedit text becomes hidden. |
| 96 virtual void OnHidePreeditText() = 0; | 98 virtual void OnHidePreeditText() = 0; |
| 97 | 99 |
| 98 // Called when the cursor location is set. | 100 // Called when the cursor location is set. |
| 99 virtual void OnSetCursorLocation(const gfx::Rect& cusor_location, | 101 virtual void OnSetCursorLocation(const gfx::Rect& cusor_location, |
| 100 const gfx::Rect& composition_head) = 0; | 102 const gfx::Rect& composition_head) = 0; |
| 101 | 103 |
| 102 // Called when the auxiliary text is updated. | 104 // Called when the auxiliary text is updated. |
| 103 virtual void OnUpdateAuxiliaryText(const std::string& text, | 105 virtual void OnUpdateAuxiliaryText(const std::string& text, |
| 104 bool visible) = 0; | 106 bool visible) = 0; |
| 105 | 107 |
| 106 // Called when the lookup table is updated. | 108 // Called when the lookup table is updated. |
| 107 virtual void OnUpdateLookupTable(const InputMethodLookupTable& table) = 0; | 109 virtual void OnUpdateLookupTable(const InputMethodLookupTable& table) = 0; |
| 108 | 110 |
| 109 // Called when the preedit text is updated. | 111 // Called when the preedit text is updated. |
| 110 virtual void OnUpdatePreeditText(const std::string& utf8_text, | 112 virtual void OnUpdatePreeditText(const std::string& utf8_text, |
| 111 unsigned int cursor, bool visible) = 0; | 113 unsigned int cursor, bool visible) = 0; |
| 114 }; | |
| 112 | 115 |
| 113 // Called when the connection is changed. |connected| is true if the | 116 IBusUiController(); |
| 114 // connection is established, and false if the connection is closed. | 117 virtual ~IBusUiController(); |
| 115 virtual void OnConnectionChange(bool connected) = 0; | |
| 116 }; | |
| 117 | 118 |
| 118 // Creates an instance of the class. The constructor is unused. | 119 // Creates an instance of the class. The constructor is unused. |
| 119 static IBusUiController* Create(); | 120 static IBusUiController* Create(); |
| 120 | 121 |
| 121 virtual ~IBusUiController(); | |
| 122 | |
| 123 // Connects to the IBus daemon. | |
| 124 virtual void Connect() = 0; | |
| 125 | |
| 126 // Adds and removes observers for IBus UI notifications. Clients must be | 122 // Adds and removes observers for IBus UI notifications. Clients must be |
| 127 // sure to remove the observer before they go away. To capture the | 123 // sure to remove the observer before they go away. To capture the |
| 128 // initial connection change, you should add an observer before calling | 124 // initial connection change, you should add an observer before calling |
| 129 // Connect(). | 125 // Connect(). |
| 130 virtual void AddObserver(Observer* observer) = 0; | 126 void AddObserver(Observer* observer); |
| 131 virtual void RemoveObserver(Observer* observer) = 0; | 127 void RemoveObserver(Observer* observer); |
| 132 | 128 |
| 133 // Notifies that a candidate is clicked. |CandidateClicked| signal will be | 129 // Notifies that a candidate is clicked. |CandidateClicked| signal will be |
| 134 // sent to the ibus-daemon. | 130 // sent to the ibus-daemon. |
| 135 // | 131 // |
| 136 // - |index| Index in the Lookup table. The semantics is same with | 132 // - |index| Index in the Lookup table. The semantics is same with |
| 137 // |cursor_absolute_index|. | 133 // |cursor_absolute_index|. |
| 138 // - |button| GdkEventButton::button (1: left button, etc.) | 134 // - |button| GdkEventButton::button (1: left button, etc.) |
| 139 // - |state| GdkEventButton::state (key modifier flags) | 135 // - |state| GdkEventButton::state (key modifier flags) |
| 140 virtual void NotifyCandidateClicked(int index, int button, int flags) = 0; | 136 void NotifyCandidateClicked(int index, int button, int flags); |
| 141 | 137 |
| 142 // Notifies that the cursor up button is clicked. |CursorUp| signal will be | 138 // Notifies that the cursor up button is clicked. |CursorUp| signal will be |
| 143 // sent to the ibus-daemon | 139 // sent to the ibus-daemon |
| 144 virtual void NotifyCursorUp() = 0; | 140 void NotifyCursorUp(); |
| 145 | 141 |
| 146 // Notifies that the cursor down button is clicked. |CursorDown| signal | 142 // Notifies that the cursor down button is clicked. |CursorDown| signal |
| 147 // will be sent to the ibus-daemon | 143 // will be sent to the ibus-daemon |
| 148 virtual void NotifyCursorDown() = 0; | 144 void NotifyCursorDown(); |
| 149 | 145 |
| 150 // Notifies that the page up button is clicked. |PageUp| signal will be | 146 // Notifies that the page up button is clicked. |PageUp| signal will be |
| 151 // sent to the ibus-daemon | 147 // sent to the ibus-daemon |
| 152 virtual void NotifyPageUp() = 0; | 148 void NotifyPageUp(); |
| 153 | 149 |
| 154 // Notifies that the page down button is clicked. |PageDown| signal will be | 150 // Notifies that the page down button is clicked. |PageDown| signal will be |
| 155 // sent to the ibus-daemon | 151 // sent to the ibus-daemon |
| 156 virtual void NotifyPageDown() = 0; | 152 void NotifyPageDown(); |
| 153 | |
| 154 void SetCursorLocation(const gfx::Rect& cursor_location, | |
|
satorux1
2012/11/30 05:37:34
function comment is missing.
Seigo Nonaka
2012/12/01 16:22:42
Done.
| |
| 155 const gfx::Rect& composition_head); | |
| 156 | |
| 157 private: | |
| 158 // IBusPanelHandlerInterface overrides. | |
| 159 virtual void UpdateLookupTable(const ibus::IBusLookupTable& table, | |
| 160 bool visible) OVERRIDE; | |
| 161 virtual void HideLookupTable() OVERRIDE; | |
| 162 virtual void UpdateAuxiliaryText(const std::string& text, | |
| 163 bool visible) OVERRIDE; | |
| 164 virtual void HideAuxiliaryText() OVERRIDE; | |
| 165 virtual void UpdatePreeditText(const std::string& text, uint32 cursor_pos, | |
| 166 bool visible) OVERRIDE; | |
| 167 virtual void HidePreeditText() OVERRIDE; | |
| 168 | |
| 169 ObserverList<Observer> observers_; | |
| 157 }; | 170 }; |
|
satorux1
2012/11/30 05:37:34
Add DISALLOW_COPY_AND_ASSIGN ?
Seigo Nonaka
2012/12/01 16:22:42
Done.
| |
| 158 | 171 |
| 159 bool IsActiveForTesting(const std::string& input_method_id, | 172 bool IsActiveForTesting(const std::string& input_method_id, |
|
satorux1
2012/11/30 05:37:34
Function comment is missing.
Seigo Nonaka
2012/12/01 16:22:42
I investigated this usage but this function and re
| |
| 160 const InputMethodDescriptors* descriptors); | 173 const InputMethodDescriptors* descriptors); |
| 161 | 174 |
| 162 } // namespace input_method | 175 } // namespace input_method |
| 163 } // namespace chromeos | 176 } // namespace chromeos |
| 164 | 177 |
| 165 #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_ | 178 #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_ |
| OLD | NEW |