| Index: chrome/browser/renderer_host/render_widget_host_view_mac.h
|
| ===================================================================
|
| --- chrome/browser/renderer_host/render_widget_host_view_mac.h (revision 22136)
|
| +++ chrome/browser/renderer_host/render_widget_host_view_mac.h (working copy)
|
| @@ -29,7 +29,8 @@
|
| // but that means that the view needs to own the delegate and will dispose of it
|
| // when it's removed from the view system.
|
|
|
| -@interface RenderWidgetHostViewCocoa : BaseView <RenderWidgetHostViewMacOwner> {
|
| +@interface RenderWidgetHostViewCocoa
|
| + : BaseView <RenderWidgetHostViewMacOwner, NSTextInput> {
|
| @private
|
| RenderWidgetHostViewMac* renderWidgetHostView_;
|
| BOOL canBeKeyView_;
|
| @@ -130,6 +131,49 @@
|
| // value returns true for is_null() if we are not recording whiteout times.
|
| base::TimeTicks whiteout_start_time_;
|
|
|
| + // Variables used by our implementaion of the NSTextInput protocol.
|
| + // An input method of Mac calls the methods of this protocol not only to
|
| + // notify an application of its status, but also to retrieve the status of
|
| + // the application. That is, an application cannot control an input method
|
| + // directly.
|
| + // This object keeps the status of a composition of the renderer and returns
|
| + // it when an input method asks for it.
|
| + // We need to implement Objective-C methods for the NSTextInput protocol. On
|
| + // the other hand, we need to implement a C++ method for an IPC-message
|
| + // handler which receives input-method events from the renderer.
|
| + // To avoid fragmentation of variables used by our input-method
|
| + // implementation, we define all variables as public member variables of
|
| + // this C++ class so both the C++ methods and the Objective-C methods can
|
| + // access them.
|
| +
|
| + // Represents the input-method attributes supported by this object.
|
| + NSArray* im_attributes_;
|
| +
|
| + // Represents whether or not an input method is composing a text.
|
| + bool im_composing_;
|
| +
|
| + // Represents the range of the composition string (i.e. a text being
|
| + // composed by an input method), and the range of the selected text of the
|
| + // composition string.
|
| + // TODO(hbono): need to save the composition string itself for the
|
| + // attributedSubstringFromRange method?
|
| + NSRange im_marked_range_;
|
| + NSRange im_selected_range_;
|
| +
|
| + // Represents the state of modifier keys.
|
| + // An input method doesn't notify the state of modifier keys. On the other
|
| + // hand, the state of modifier keys are required by Char events because they
|
| + // are dispatched to onkeypress() event handlers of JavaScript.
|
| + // To create a Char event in NSTextInput methods, we save the latest state
|
| + // of modifier keys when we receive it.
|
| + int im_modifiers_;
|
| +
|
| + // Represents the cursor position in this view coordinate.
|
| + // The renderer sends the cursor position through an IPC message.
|
| + // We save the latest cursor position here and return it when an input
|
| + // methods needs it.
|
| + NSRect im_caret_rect_;
|
| +
|
| private:
|
| // Updates the display cursor to the current cursor if the cursor is over this
|
| // render view.
|
|
|