Index: win8/metro_driver/chrome_app_view_ash.h |
diff --git a/win8/metro_driver/chrome_app_view_ash.h b/win8/metro_driver/chrome_app_view_ash.h |
index 9efd3f77994f427aec4bd4559275461642030aa2..d50255b1efec8e1ad8cea346325731aff56519ef 100644 |
--- a/win8/metro_driver/chrome_app_view_ash.h |
+++ b/win8/metro_driver/chrome_app_view_ash.h |
@@ -15,6 +15,7 @@ |
#include "base/strings/string16.h" |
#include "ui/events/event_constants.h" |
#include "win8/metro_driver/direct3d_helper.h" |
+#include "win8/metro_driver/ime/text_service_delegate.h" |
namespace base { |
class FilePath; |
@@ -25,6 +26,15 @@ class Listener; |
class ChannelProxy; |
} |
+namespace metro_driver { |
+class TextService; |
+} |
+ |
+namespace metro_viewer { |
+struct CharacterBounds; |
+struct UnderlineInfo; |
+} |
+ |
class OpenFilePickerSession; |
class SaveFilePickerSession; |
class FolderPickerSession; |
@@ -33,7 +43,8 @@ class FilePickerSessionBase; |
struct MetroViewerHostMsg_SaveAsDialogParams; |
class ChromeAppViewAsh |
- : public mswr::RuntimeClass<winapp::Core::IFrameworkView> { |
+ : public mswr::RuntimeClass<winapp::Core::IFrameworkView>, |
+ public metro_driver::TextServiceDelegate { |
public: |
ChromeAppViewAsh(); |
~ChromeAppViewAsh(); |
@@ -82,9 +93,23 @@ class ChromeAppViewAsh |
void OnFolderPickerCompleted(FolderPickerSession* folder_picker, |
bool success); |
+ void OnImeCancelComposition(); |
+ void OnImeUpdateTextInputClient( |
+ const std::vector<int32>& input_scopes, |
+ const std::vector<metro_viewer::CharacterBounds>& character_bounds); |
+ |
HWND core_window_hwnd() const { return core_window_hwnd_; } |
+ |
private: |
+ // TextServiceDelegate overrides. |
+ virtual void OnCompositionChanged( |
+ const string16& text, |
+ int32 selection_start, |
+ int32 selection_end, |
+ const std::vector<metro_viewer::UnderlineInfo>& underlines) OVERRIDE; |
+ virtual void OnTextCommitted(const string16& text) OVERRIDE; |
+ |
HRESULT OnActivate(winapp::Core::ICoreApplicationView* view, |
winapp::Activation::IActivatedEventArgs* args); |
@@ -163,6 +188,9 @@ class ChromeAppViewAsh |
// UI message loop to allow message passing into this thread. |
base::MessageLoop ui_loop_; |
+ |
+ // For IME support. |
+ scoped_ptr<metro_driver::TextService> text_service_; |
}; |
#endif // WIN8_METRO_DRIVER_CHROME_APP_VIEW_ASH_H_ |