1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_ 6 #define UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_ 7 8 #import <Cocoa/Cocoa.h> 9 10 #import "ui/base/cocoa/tracking_area.h" 11 12 namespace ui { 13 class TextInputClient; 14 } 15 16 namespace views { 17 class View; 18 } 19 20 // The NSView that sits as the root contentView of the NSWindow, whilst it has 21 // a views::RootView present. Bridges requests from Cocoa to the hosted 22 // views::View. 23 @interface BridgedContentView : NSView<NSTextInputClient> { 24 @private 25 // Weak. The hosted RootView, owned by hostedView_->GetWidget(). 26 views::View* hostedView_; 27 28 // Weak. If non-null the TextInputClient of the currently focused View in the 29 // hierarchy rooted at |hostedView_|. Owned by the focused View. 30 ui::TextInputClient* textInputClient_; 31 32 // A tracking area installed to enable mouseMoved events. 33 ui::ScopedCrTrackingArea trackingArea_; 34 } 35 36 @property(readonly, nonatomic) views::View* hostedView; 37 @property(assign, nonatomic) ui::TextInputClient* textInputClient; 38 39 // Initialize the NSView -> views::View bridge. |viewToHost| must be non-NULL. 40 - (id)initWithView:(views::View*)viewToHost; 41 42 // Clear the hosted view. For example, if it is about to be destroyed. 43 - (void)clearView; 44 45 @end 46 47 #endif // UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_ 48