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 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ | 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ |
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ | 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ |
7 | 7 |
8 #import <Cocoa/Cocoa.h> | 8 #import <Cocoa/Cocoa.h> |
9 #include <IOSurface/IOSurfaceAPI.h> | 9 #include <IOSurface/IOSurfaceAPI.h> |
10 #include <list> | 10 #include <list> |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "content/browser/renderer_host/input/mouse_wheel_rails_filter_mac.h" | 24 #include "content/browser/renderer_host/input/mouse_wheel_rails_filter_mac.h" |
25 #include "content/browser/renderer_host/render_widget_host_view_base.h" | 25 #include "content/browser/renderer_host/render_widget_host_view_base.h" |
26 #include "content/common/content_export.h" | 26 #include "content/common/content_export.h" |
27 #include "content/common/cursors/webcursor.h" | 27 #include "content/common/cursors/webcursor.h" |
28 #include "content/common/edit_command.h" | 28 #include "content/common/edit_command.h" |
29 #import "content/public/browser/render_widget_host_view_mac_base.h" | 29 #import "content/public/browser/render_widget_host_view_mac_base.h" |
30 #include "ipc/ipc_sender.h" | 30 #include "ipc/ipc_sender.h" |
31 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" | 31 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" |
32 #include "ui/accelerated_widget_mac/accelerated_widget_mac.h" | 32 #include "ui/accelerated_widget_mac/accelerated_widget_mac.h" |
33 #include "ui/accelerated_widget_mac/io_surface_layer.h" | 33 #include "ui/accelerated_widget_mac/io_surface_layer.h" |
34 #include "ui/base/cocoa/base_view.h" | |
35 #include "ui/base/cocoa/remote_layer_api.h" | 34 #include "ui/base/cocoa/remote_layer_api.h" |
| 35 #import "ui/base/cocoa/tool_tip_base_view.h" |
36 #include "ui/gfx/display_observer.h" | 36 #include "ui/gfx/display_observer.h" |
37 | 37 |
38 namespace content { | 38 namespace content { |
39 class RenderWidgetHostImpl; | 39 class RenderWidgetHostImpl; |
40 class RenderWidgetHostViewMac; | 40 class RenderWidgetHostViewMac; |
41 class RenderWidgetHostViewMacEditCommandHelper; | 41 class RenderWidgetHostViewMacEditCommandHelper; |
42 class WebContents; | 42 class WebContents; |
43 } | 43 } |
44 | 44 |
45 namespace ui { | 45 namespace ui { |
46 class Compositor; | 46 class Compositor; |
47 class Layer; | 47 class Layer; |
48 } | 48 } |
49 | 49 |
50 @class FullscreenWindowManager; | 50 @class FullscreenWindowManager; |
51 @protocol RenderWidgetHostViewMacDelegate; | 51 @protocol RenderWidgetHostViewMacDelegate; |
52 @class ToolTip; | |
53 | 52 |
54 @protocol RenderWidgetHostViewMacOwner | 53 @protocol RenderWidgetHostViewMacOwner |
55 - (content::RenderWidgetHostViewMac*)renderWidgetHostViewMac; | 54 - (content::RenderWidgetHostViewMac*)renderWidgetHostViewMac; |
56 @end | 55 @end |
57 | 56 |
58 // This is the view that lives in the Cocoa view hierarchy. In Windows-land, | 57 // This is the view that lives in the Cocoa view hierarchy. In Windows-land, |
59 // RenderWidgetHostViewWin is both the view and the delegate. We split the roles | 58 // RenderWidgetHostViewWin is both the view and the delegate. We split the roles |
60 // but that means that the view needs to own the delegate and will dispose of it | 59 // but that means that the view needs to own the delegate and will dispose of it |
61 // when it's removed from the view system. | 60 // when it's removed from the view system. |
62 @interface RenderWidgetHostViewCocoa | 61 @interface RenderWidgetHostViewCocoa |
63 : BaseView <RenderWidgetHostViewMacBase, | 62 : ToolTipBaseView<RenderWidgetHostViewMacBase, |
64 RenderWidgetHostViewMacOwner, | 63 RenderWidgetHostViewMacOwner, |
65 NSTextInputClient> { | 64 NSTextInputClient> { |
66 @private | 65 @private |
67 scoped_ptr<content::RenderWidgetHostViewMac> renderWidgetHostView_; | 66 scoped_ptr<content::RenderWidgetHostViewMac> renderWidgetHostView_; |
68 // This ivar is the cocoa delegate of the NSResponder. | 67 // This ivar is the cocoa delegate of the NSResponder. |
69 base::scoped_nsobject<NSObject<RenderWidgetHostViewMacDelegate>> | 68 base::scoped_nsobject<NSObject<RenderWidgetHostViewMacDelegate>> |
70 responderDelegate_; | 69 responderDelegate_; |
71 BOOL canBeKeyView_; | 70 BOOL canBeKeyView_; |
72 BOOL closeOnDeactivate_; | 71 BOOL closeOnDeactivate_; |
73 BOOL opaque_; | 72 BOOL opaque_; |
74 scoped_ptr<content::RenderWidgetHostViewMacEditCommandHelper> | 73 scoped_ptr<content::RenderWidgetHostViewMacEditCommandHelper> |
75 editCommand_helper_; | 74 editCommand_helper_; |
76 | 75 |
77 // These are part of the magic tooltip code from WebKit's WebHTMLView: | |
78 id trackingRectOwner_; // (not retained) | |
79 void* trackingRectUserData_; | |
80 NSTrackingRectTag lastToolTipTag_; | |
81 base::scoped_nsobject<NSString> toolTip_; | |
82 | |
83 // Is YES if there was a mouse-down as yet unbalanced with a mouse-up. | 76 // Is YES if there was a mouse-down as yet unbalanced with a mouse-up. |
84 BOOL hasOpenMouseDown_; | 77 BOOL hasOpenMouseDown_; |
85 | 78 |
86 NSWindow* lastWindow_; // weak | 79 NSWindow* lastWindow_; // weak |
87 | 80 |
88 // The cursor for the page. This is passed up from the renderer. | 81 // The cursor for the page. This is passed up from the renderer. |
89 base::scoped_nsobject<NSCursor> currentCursor_; | 82 base::scoped_nsobject<NSCursor> currentCursor_; |
90 | 83 |
91 // Variables used by our implementaion of the NSTextInput protocol. | 84 // Variables used by our implementaion of the NSTextInput protocol. |
92 // An input method of Mac calls the methods of this protocol not only to | 85 // An input method of Mac calls the methods of this protocol not only to |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 // orientation. | 180 // orientation. |
188 content::MouseWheelRailsFilterMac mouseWheelFilter_; | 181 content::MouseWheelRailsFilterMac mouseWheelFilter_; |
189 } | 182 } |
190 | 183 |
191 @property(nonatomic, readonly) NSRange selectedRange; | 184 @property(nonatomic, readonly) NSRange selectedRange; |
192 @property(nonatomic, readonly) BOOL suppressNextEscapeKeyUp; | 185 @property(nonatomic, readonly) BOOL suppressNextEscapeKeyUp; |
193 | 186 |
194 - (void)setCanBeKeyView:(BOOL)can; | 187 - (void)setCanBeKeyView:(BOOL)can; |
195 - (void)setCloseOnDeactivate:(BOOL)b; | 188 - (void)setCloseOnDeactivate:(BOOL)b; |
196 - (void)setOpaque:(BOOL)opaque; | 189 - (void)setOpaque:(BOOL)opaque; |
197 - (void)setToolTipAtMousePoint:(NSString *)string; | |
198 // True for always-on-top special windows (e.g. Balloons and Panels). | 190 // True for always-on-top special windows (e.g. Balloons and Panels). |
199 - (BOOL)acceptsMouseEventsWhenInactive; | 191 - (BOOL)acceptsMouseEventsWhenInactive; |
200 // Cancel ongoing composition (abandon the marked text). | 192 // Cancel ongoing composition (abandon the marked text). |
201 - (void)cancelComposition; | 193 - (void)cancelComposition; |
202 // Confirm ongoing composition. | 194 // Confirm ongoing composition. |
203 - (void)confirmComposition; | 195 - (void)confirmComposition; |
204 // Enables or disables plugin IME. | 196 // Enables or disables plugin IME. |
205 - (void)setPluginImeActive:(BOOL)active; | 197 - (void)setPluginImeActive:(BOOL)active; |
206 // Updates the current plugin focus state. | 198 // Updates the current plugin focus state. |
207 - (void)pluginFocusChanged:(BOOL)focused forPlugin:(int)pluginId; | 199 - (void)pluginFocusChanged:(BOOL)focused forPlugin:(int)pluginId; |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
591 | 583 |
592 // Factory used to safely scope delayed calls to ShutdownHost(). | 584 // Factory used to safely scope delayed calls to ShutdownHost(). |
593 base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_; | 585 base::WeakPtrFactory<RenderWidgetHostViewMac> weak_factory_; |
594 | 586 |
595 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewMac); | 587 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewMac); |
596 }; | 588 }; |
597 | 589 |
598 } // namespace content | 590 } // namespace content |
599 | 591 |
600 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ | 592 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_MAC_H_ |
OLD | NEW |