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

Unified Diff: chrome/browser/chromeos/input_method/ibus_ui_controller.h

Issue 11280159: Remove ibus dependency from PanelService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 8 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/input_method/ibus_ui_controller.h
diff --git a/chrome/browser/chromeos/input_method/ibus_ui_controller.h b/chrome/browser/chromeos/input_method/ibus_ui_controller.h
index bd79345c435b9ff5094280adf8141799693c2fb5..c08dc5e4d7d1fc4ab82e0c34d6307baae0f9db5f 100644
--- a/chrome/browser/chromeos/input_method/ibus_ui_controller.h
+++ b/chrome/browser/chromeos/input_method/ibus_ui_controller.h
@@ -5,6 +5,7 @@
// The header files provides APIs for monitoring and controlling input
// method UI status. The APIs encapsulate the APIs of IBus, the underlying
// input method framework.
+// TODO(nona): Remove InputMethodLookupTable and IBusUiController.
#ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_
#define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_UI_CONTROLLER_H_
@@ -14,6 +15,7 @@
#include "base/basictypes.h"
#include "base/observer_list.h"
+#include "chromeos/dbus/ibus/ibus_panel_service.h"
namespace gfx {
class Rect;
@@ -82,7 +84,7 @@ struct InputMethodLookupTable {
};
// IBusUiController is used to interact with the IBus daemon.
-class IBusUiController {
+class IBusUiController : public ibus::IBusPanelCandidateWindowHandlerInterface {
public:
class Observer {
public:
@@ -109,26 +111,20 @@ class IBusUiController {
// Called when the preedit text is updated.
virtual void OnUpdatePreeditText(const std::string& utf8_text,
unsigned int cursor, bool visible) = 0;
-
- // Called when the connection is changed. |connected| is true if the
- // connection is established, and false if the connection is closed.
- virtual void OnConnectionChange(bool connected) = 0;
};
- // Creates an instance of the class. The constructor is unused.
- static IBusUiController* Create();
-
+ IBusUiController();
virtual ~IBusUiController();
- // Connects to the IBus daemon.
- virtual void Connect() = 0;
+ // Creates an instance of the class. The constructor is unused.
+ static IBusUiController* Create();
// Adds and removes observers for IBus UI notifications. Clients must be
// sure to remove the observer before they go away. To capture the
// initial connection change, you should add an observer before calling
// Connect().
- virtual void AddObserver(Observer* observer) = 0;
- virtual void RemoveObserver(Observer* observer) = 0;
+ void AddObserver(Observer* observer);
+ void RemoveObserver(Observer* observer);
// Notifies that a candidate is clicked. |CandidateClicked| signal will be
// sent to the ibus-daemon.
@@ -137,28 +133,47 @@ class IBusUiController {
// |cursor_absolute_index|.
// - |button| GdkEventButton::button (1: left button, etc.)
// - |state| GdkEventButton::state (key modifier flags)
- virtual void NotifyCandidateClicked(int index, int button, int flags) = 0;
+ void NotifyCandidateClicked(int index, int button, int flags);
// Notifies that the cursor up button is clicked. |CursorUp| signal will be
// sent to the ibus-daemon
- virtual void NotifyCursorUp() = 0;
+ void NotifyCursorUp();
// Notifies that the cursor down button is clicked. |CursorDown| signal
// will be sent to the ibus-daemon
- virtual void NotifyCursorDown() = 0;
+ void NotifyCursorDown();
// Notifies that the page up button is clicked. |PageUp| signal will be
// sent to the ibus-daemon
- virtual void NotifyPageUp() = 0;
+ void NotifyPageUp();
// Notifies that the page down button is clicked. |PageDown| signal will be
// sent to the ibus-daemon
- virtual void NotifyPageDown() = 0;
+ void NotifyPageDown();
+
+ // Handles cursor location update event. This is originate from
+ // SetCursorLocation method call, but we can bypass it on Chrome OS because
+ // candidate window is integrated with Chrome.
+ void SetCursorLocation(const gfx::Rect& cursor_location,
+ const gfx::Rect& composition_head);
+
+ private:
+ // IBusPanelHandlerInterface overrides.
+ virtual void UpdateLookupTable(const ibus::IBusLookupTable& table,
+ bool visible) OVERRIDE;
+ virtual void HideLookupTable() OVERRIDE;
+ virtual void UpdateAuxiliaryText(const std::string& text,
+ bool visible) OVERRIDE;
+ virtual void HideAuxiliaryText() OVERRIDE;
+ virtual void UpdatePreeditText(const std::string& text, uint32 cursor_pos,
+ bool visible) OVERRIDE;
+ virtual void HidePreeditText() OVERRIDE;
+
+ ObserverList<Observer> observers_;
+
+ DISALLOW_COPY_AND_ASSIGN(IBusUiController);
};
-bool IsActiveForTesting(const std::string& input_method_id,
- const InputMethodDescriptors* descriptors);
-
} // namespace input_method
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698