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 12namespace ui { 13class TextInputClient; 14} 15 16namespace views { 17class 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