Index: webkit/plugins/ppapi/ppapi_plugin_instance.h |
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.h b/webkit/plugins/ppapi/ppapi_plugin_instance.h |
index 6109278760af78b3679f5202e8e2e156c9b61bea..8447ee46ee892284dcc7a7e0ee4197d3e3efeda5 100644 |
--- a/webkit/plugins/ppapi/ppapi_plugin_instance.h |
+++ b/webkit/plugins/ppapi/ppapi_plugin_instance.h |
@@ -22,6 +22,7 @@ |
#include "ppapi/c/pp_instance.h" |
#include "ppapi/c/pp_resource.h" |
#include "ppapi/c/pp_var.h" |
+#include "ppapi/c/ppb_input_event.h" |
#include "ppapi/c/ppp_graphics_3d.h" |
#include "ppapi/c/ppp_instance.h" |
#include "ppapi/shared_impl/function_group_base.h" |
@@ -31,6 +32,7 @@ |
#include "third_party/skia/include/core/SkBitmap.h" |
#include "third_party/skia/include/core/SkRefCnt.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebCanvas.h" |
+#include "ui/base/ime/text_input_type.h" |
#include "ui/gfx/rect.h" |
#include "webkit/plugins/ppapi/plugin_delegate.h" |
@@ -48,14 +50,11 @@ struct PPP_Zoom_Dev; |
class SkBitmap; |
class TransportDIB; |
-namespace gfx { |
-class Rect; |
-} |
- |
namespace WebKit { |
struct WebCursorInfo; |
kochi
2011/10/04 08:52:45
Please move this line down after line 57.
(see co
kinaba
2011/10/05 04:43:19
Done.
|
class WebInputEvent; |
class WebPluginContainer; |
+struct WebCompositionUnderline; |
} |
namespace ppapi { |
@@ -167,6 +166,26 @@ class PluginInstance : public base::RefCounted<PluginInstance>, |
PP_Var GetInstanceObject(); |
void ViewChanged(const gfx::Rect& position, const gfx::Rect& clip); |
+ // Handlers for composition events. |
+ bool HandleCompositionStart(const string16& text); |
+ bool HandleCompositionUpdate( |
+ const string16& text, |
+ const std::vector<WebKit::WebCompositionUnderline>& underlines, |
+ int selection_start, |
+ int selection_end); |
+ bool HandleCompositionEnd(const string16& text); |
+ bool HandleTextInput(const string16& text); |
+ |
+ // Implementation of composition API. |
+ void UpdateCaretPosition(const gfx::Rect& caret, |
+ const gfx::Rect& bounding_box); |
+ void SetTextInputType(ui::TextInputType type); |
+ |
+ // Gets the current text input status. |
+ ui::TextInputType text_input_type() const { return text_input_type_; } |
+ gfx::Rect GetCaretBounds() const; |
+ bool IsPluginAcceptingCompositionEvents() const; |
+ |
// Notifications about focus changes, see has_webkit_focus_ below. |
void SetWebKitFocus(bool has_focus); |
void SetContentAreaFocus(bool has_focus); |
@@ -399,6 +418,17 @@ class PluginInstance : public base::RefCounted<PluginInstance>, |
void DoSetCursor(WebKit::WebCursorInfo* cursor); |
+ // Internal helper functions for HandleCompositionXXX(). |
+ bool SendCompositionEventToPlugin( |
+ PP_InputEvent_Type type, |
+ const string16& text); |
+ bool SendCompositionEventWithUnderlineInformationToPlugin( |
+ PP_InputEvent_Type type, |
+ const string16& text, |
+ const std::vector<WebKit::WebCompositionUnderline>& underlines, |
+ int selection_start, |
+ int selection_end); |
+ |
PluginDelegate* delegate_; |
scoped_refptr<PluginModule> module_; |
scoped_ptr< ::ppapi::PPP_Instance_Combined> instance_interface_; |
@@ -534,6 +564,12 @@ class PluginInstance : public base::RefCounted<PluginInstance>, |
uint32_t input_event_mask_; |
uint32_t filtered_input_event_mask_; |
+ // Text composition status. |
+ ui::TextInputType text_input_type_; |
+ gfx::Rect text_input_caret_; |
+ gfx::Rect text_input_caret_bounds_; |
+ bool text_input_caret_set_; |
+ |
PP_CompletionCallback lock_mouse_callback_; |
DISALLOW_COPY_AND_ASSIGN(PluginInstance); |