📄 webnetscapepluginview.h
字号:
/* * Copyright (C) 2005, 2007 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#if ENABLE(NETSCAPE_PLUGIN_API)#import "WebBaseNetscapePluginView.h"#import <WebKit/npfunctions.h>#import <WebKit/npapi.h>#import <wtf/HashMap.h>#import <wtf/HashSet.h>#import <wtf/OwnPtr.h>@class WebDataSource;@class WebFrame;@class WebNetscapePluginPackage;@class WebView;class PluginTimer;class WebNetscapePluginStream;class WebNetscapePluginEventHandler;typedef union PluginPort {#ifndef NP_NO_QUICKDRAW NP_Port qdPort;#endif NP_CGContext cgPort;} PluginPort;typedef struct _NPPluginTextInputFuncs NPPluginTextInputFuncs;// Because the Adobe 7.x Acrobat plug-in has a hard coded check for a view named // "WebNetscapePluginDocumentView", this class must retain the old name in order // for the plug-in to function correctly. (rdar://problem/4699455)#define WebNetscapePluginView WebNetscapePluginDocumentView@interface WebNetscapePluginView : WebBaseNetscapePluginView<WebPluginManualLoader, NSTextInput>{ RefPtr<WebNetscapePluginStream> _manualStream;#ifndef BUILDING_ON_TIGER RetainPtr<CALayer> _pluginLayer;#endif unsigned _dataLengthReceived; RetainPtr<NSError> _error; unsigned argsCount; char **cAttributes; char **cValues; NPP plugin; NPWindow window; NPWindow lastSetWindow; PluginPort nPort; PluginPort lastSetPort; NPDrawingModel drawingModel; NPEventModel eventModel; #ifndef NP_NO_QUICKDRAW // This is only valid when drawingModel is NPDrawingModelQuickDraw GWorldPtr offscreenGWorld;#endif OwnPtr<WebNetscapePluginEventHandler> _eventHandler; BOOL inSetWindow; BOOL shouldStopSoon; uint32 currentTimerID; HashMap<uint32, PluginTimer*>* timers; unsigned pluginFunctionCallDepth; int32 specifiedHeight; int32 specifiedWidth; HashSet<RefPtr<WebNetscapePluginStream> > streams; RetainPtr<NSMutableDictionary> _pendingFrameLoads; BOOL _isSilverlight; NPPluginTextInputFuncs *textInputFuncs;}+ (WebNetscapePluginView *)currentPluginView;- (id)initWithFrame:(NSRect)r pluginPackage:(WebNetscapePluginPackage *)thePluginPackage URL:(NSURL *)URL baseURL:(NSURL *)baseURL MIMEType:(NSString *)MIME attributeKeys:(NSArray *)keys attributeValues:(NSArray *)values loadManually:(BOOL)loadManually element:(PassRefPtr<WebCore::HTMLPlugInElement>)element;- (NPP)plugin;- (void)disconnectStream:(WebNetscapePluginStream*)stream;// Returns the NPObject that represents the plugin interface.// The return value is expected to be retained.- (NPObject *)createPluginScriptableObject;// -willCallPlugInFunction must be called before calling any of the NPP_* functions for this view's plugin.// This is necessary to ensure that plug-ins are not destroyed while WebKit calls into them. Some plug-ins (Flash// at least) are written with the assumption that nothing they do in their plug-in functions can cause NPP_Destroy()// to be called. Unfortunately, this is not true, especially if the plug-in uses NPN_Invoke() to execute a// document.write(), which clears the document and destroys the plug-in.// See <rdar://problem/4480737>.- (void)willCallPlugInFunction;// -didCallPlugInFunction should be called after returning from a plug-in function. It should be called exactly// once for every call to -willCallPlugInFunction.// See <rdar://problem/4480737>.- (void)didCallPlugInFunction;- (void)handleMouseMoved:(NSEvent *)event;@end@interface WebNetscapePluginView (WebInternal)- (BOOL)sendEvent:(void*)event isDrawRect:(BOOL)eventIsDrawRect;- (NPEventModel)eventModel;- (NPError)loadRequest:(NSURLRequest *)request inTarget:(NSString *)target withNotifyData:(void *)notifyData sendNotification:(BOOL)sendNotification;- (NPError)getURLNotify:(const char *)URL target:(const char *)target notifyData:(void *)notifyData;- (NPError)getURL:(const char *)URL target:(const char *)target;- (NPError)postURLNotify:(const char *)URL target:(const char *)target len:(UInt32)len buf:(const char *)buf file:(NPBool)file notifyData:(void *)notifyData;- (NPError)postURL:(const char *)URL target:(const char *)target len:(UInt32)len buf:(const char *)buf file:(NPBool)file;- (NPError)newStream:(NPMIMEType)type target:(const char *)target stream:(NPStream**)stream;- (NPError)write:(NPStream*)stream len:(SInt32)len buffer:(void *)buffer;- (NPError)destroyStream:(NPStream*)stream reason:(NPReason)reason;- (void)status:(const char *)message;- (const char *)userAgent;- (void)invalidateRect:(NPRect *)invalidRect;- (void)invalidateRegion:(NPRegion)invalidateRegion;- (void)forceRedraw;- (NPError)getVariable:(NPNVariable)variable value:(void *)value;- (NPError)setVariable:(NPPVariable)variable value:(void *)value;- (uint32)scheduleTimerWithInterval:(uint32)interval repeat:(NPBool)repeat timerFunc:(void (*)(NPP npp, uint32 timerID))timerFunc;- (void)unscheduleTimer:(uint32)timerID;- (NPError)popUpContextMenu:(NPMenu *)menu;@end#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -