2010-10-23 19:00:47 +02:00
|
|
|
// Copyright (c) 2008 The Chromium Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
|
|
// found in the LICENSE file.
|
|
|
|
|
|
|
|
#import <Cocoa/Cocoa.h>
|
2011-09-16 18:17:19 +02:00
|
|
|
#import "base/mac/cocoa_protocols.h"
|
2011-08-02 18:50:06 +02:00
|
|
|
#include "base/memory/scoped_nsobject.h"
|
2010-10-23 19:00:47 +02:00
|
|
|
|
|
|
|
class CefBrowserImpl;
|
2011-08-02 18:50:06 +02:00
|
|
|
@class WebDragSource;
|
|
|
|
@class WebDropTarget;
|
|
|
|
struct WebDropData;
|
2010-10-23 19:00:47 +02:00
|
|
|
|
|
|
|
// A view to wrap the WebCore view and help it live in a Cocoa world. The
|
|
|
|
// (rough) equivalent of Apple's WebView.
|
|
|
|
|
2011-09-16 18:17:19 +02:00
|
|
|
@interface BrowserWebView : NSView <NSMenuDelegate> {
|
2010-10-23 19:00:47 +02:00
|
|
|
@private
|
|
|
|
CefBrowserImpl *browser_; // weak
|
|
|
|
NSTrackingArea *trackingArea_;
|
2011-08-02 18:50:06 +02:00
|
|
|
|
|
|
|
scoped_nsobject<WebDragSource> dragSource_;
|
|
|
|
scoped_nsobject<WebDropTarget> dropTarget_;
|
2010-10-23 19:00:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
- (void)mouseDown:(NSEvent *)theEvent;
|
|
|
|
- (void)rightMouseDown:(NSEvent *)theEvent;
|
|
|
|
- (void)otherMouseDown:(NSEvent *)theEvent;
|
|
|
|
- (void)mouseUp:(NSEvent *)theEvent;
|
|
|
|
- (void)rightMouseUp:(NSEvent *)theEvent;
|
|
|
|
- (void)otherMouseUp:(NSEvent *)theEvent;
|
|
|
|
- (void)mouseMoved:(NSEvent *)theEvent;
|
|
|
|
- (void)mouseDragged:(NSEvent *)theEvent;
|
|
|
|
- (void)scrollWheel:(NSEvent *)theEvent;
|
|
|
|
- (void)rightMouseDragged:(NSEvent *)theEvent;
|
|
|
|
- (void)otherMouseDragged:(NSEvent *)theEvent;
|
|
|
|
- (void)mouseEntered:(NSEvent *)theEvent;
|
|
|
|
- (void)mouseExited:(NSEvent *)theEvent;
|
|
|
|
- (void)keyDown:(NSEvent *)theEvent;
|
|
|
|
- (void)keyUp:(NSEvent *)theEvent;
|
|
|
|
- (BOOL)isOpaque;
|
|
|
|
- (void)setFrame:(NSRect)frameRect;
|
|
|
|
|
2011-09-12 21:49:38 +02:00
|
|
|
// Called when a context menu item is selected by the user.
|
|
|
|
- (void)menuItemSelected:(id)sender;
|
|
|
|
|
2011-08-02 19:30:11 +02:00
|
|
|
// Register this WebView as a drag/drop target.
|
|
|
|
- (void)registerDragDrop;
|
|
|
|
|
2011-08-02 18:50:06 +02:00
|
|
|
// Called from BrowserWebViewDelegate::startDragging() to initiate dragging.
|
|
|
|
- (void)startDragWithDropData:(const WebDropData&)dropData
|
|
|
|
dragOperationMask:(NSDragOperation)operationMask
|
|
|
|
image:(NSImage*)image
|
|
|
|
offset:(NSPoint)offset;
|
|
|
|
|
2010-10-23 19:00:47 +02:00
|
|
|
@property (nonatomic, assign) CefBrowserImpl *browser;
|
|
|
|
|
|
|
|
@end
|