diff options
Diffstat (limited to 'WebKitExamplePlugins/NetscapeCocoaPlugin')
6 files changed, 0 insertions, 803 deletions
diff --git a/WebKitExamplePlugins/NetscapeCocoaPlugin/Info.plist b/WebKitExamplePlugins/NetscapeCocoaPlugin/Info.plist deleted file mode 100644 index 47ae1a5..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>English</string> - <key>CFBundleExecutable</key> - <string>NetscapeCocoaPlugin</string> - <key>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>com.apple.netscapecocoaplugin</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundlePackageType</key> - <string>BRPL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1.0</string> - <key>WebPluginDescription</key> - <string>Simple Netscape plug-in that draws using CoreGraphics and handles events using the Cocoa event model</string> - <key>WebPluginMIMETypes</key> - <dict> - <key>test/x-netscape-cocoa-plugin</key> - <dict> - <key>WebPluginTypeDescription</key> - <string>Netscape Cocoa Plug-in</string> - </dict> - </dict> - <key>WebPluginName</key> - <string>Netscape Cocoa Plug-in</string> -</dict> -</plist> diff --git a/WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.h b/WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.h deleted file mode 100644 index 19070f0..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in - consideration of your agreement to the following terms, and your use, installation, - modification or redistribution of this Apple software constitutes acceptance of these - terms. If you do not agree with these terms, please do not use, install, modify or - redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject to these - terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in - this original Apple software (the "Apple Software"), to use, reproduce, modify and - redistribute the Apple Software, with or without modifications, in source and/or binary - forms; provided that if you redistribute the Apple Software in its entirety and without - modifications, you must retain this notice and the following text and disclaimers in all - such redistributions of the Apple Software. Neither the name, trademarks, service marks - or logos of Apple Computer, Inc. may be used to endorse or promote products derived from - the Apple Software without specific prior written permission from Apple. Except as expressly - stated in this notice, no other rights or licenses, express or implied, are granted by Apple - herein, including but not limited to any patent rights that may be infringed by your - derivative works or by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, - EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS - USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, - REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND - WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR - OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> -#import <WebKit/npfunctions.h> - -@interface MenuHandler : NSObject { - NSMenu *menu; - NPNetscapeFuncs *browserFuncs; - NPP instance; -} - -- (id)initWithBrowserFuncs:(NPNetscapeFuncs *)theBrowserFuncs instance:(NPP)theInstance; - -- (NSMenu *)menu; - -@end diff --git a/WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.m b/WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.m deleted file mode 100644 index b9feb1c..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/MenuHandler.m +++ /dev/null @@ -1,99 +0,0 @@ -/* - IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in - consideration of your agreement to the following terms, and your use, installation, - modification or redistribution of this Apple software constitutes acceptance of these - terms. If you do not agree with these terms, please do not use, install, modify or - redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject to these - terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in - this original Apple software (the "Apple Software"), to use, reproduce, modify and - redistribute the Apple Software, with or without modifications, in source and/or binary - forms; provided that if you redistribute the Apple Software in its entirety and without - modifications, you must retain this notice and the following text and disclaimers in all - such redistributions of the Apple Software. Neither the name, trademarks, service marks - or logos of Apple Computer, Inc. may be used to endorse or promote products derived from - the Apple Software without specific prior written permission from Apple. Except as expressly - stated in this notice, no other rights or licenses, express or implied, are granted by Apple - herein, including but not limited to any patent rights that may be infringed by your - derivative works or by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, - EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS - USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, - REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND - WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR - OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "MenuHandler.h" - -@implementation MenuHandler - -- (void)_openURL:(id)sender -{ - browserFuncs->geturl(instance, "http://www.apple.com/", "_blank"); -} - -- (void)_disabledItem:(id)sender -{ - // This should never be called -} - -- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem -{ - SEL sel = [anItem action]; - - if (sel == @selector(_openURL:)) - return YES; - - if (sel == @selector(_disabledItem:)) - return NO; - - return NO; -} - -- (id)initWithBrowserFuncs:(NPNetscapeFuncs *)theBrowserFuncs instance:(NPP)theInstance; -{ - self = [super init]; - if (!self) - return nil; - - browserFuncs = theBrowserFuncs; - instance = theInstance; - - // Create the menu - menu = [[NSMenu alloc] initWithTitle:@"Menu"]; - - NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:@"Open URL" action:@selector(_openURL:) keyEquivalent:@""]; - [item setTarget:self]; - [menu addItem:item]; - [item release]; - - item = [[NSMenuItem alloc] initWithTitle:@"Disabled Item" action:@selector(_disabledItem:) keyEquivalent:@""]; - [item setTarget:self]; - [menu addItem:item]; - [item release]; - - return self; -} - -- (void)dealloc -{ - [menu release]; - - [super dealloc]; -} - - -- (NSMenu *)menu -{ - return menu; -} - -@end diff --git a/WebKitExamplePlugins/NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj b/WebKitExamplePlugins/NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj deleted file mode 100644 index 1c78769..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj +++ /dev/null @@ -1,240 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 1A624E590DCBC7F6006898C8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A624E580DCBC7F6006898C8 /* main.m */; }; - 1A6250420DCBC81B006898C8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A6250410DCBC81B006898C8 /* Cocoa.framework */; }; - 1AAD6A090DD0DC52003985DA /* MenuHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AAD6A080DD0DC52003985DA /* MenuHandler.m */; }; - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 1A624E580DCBC7F6006898C8 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; - 1A6250410DCBC81B006898C8 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; - 1AAD6A070DD0DC52003985DA /* MenuHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuHandler.h; sourceTree = "<group>"; }; - 1AAD6A080DD0DC52003985DA /* MenuHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuHandler.m; sourceTree = "<group>"; }; - 8D576316048677EA00EA77CD /* NetscapeCocoaPlugin.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetscapeCocoaPlugin.plugin; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D576313048677EA00EA77CD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1A6250420DCBC81B006898C8 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* NetscapeCocoaPlugin */ = { - isa = PBXGroup; - children = ( - 08FB77AFFE84173DC02AAC07 /* Source */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - ); - name = NetscapeCocoaPlugin; - sourceTree = "<group>"; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1A6250410DCBC81B006898C8 /* Cocoa.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = "<group>"; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8D576317048677EA00EA77CD /* Info.plist */, - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = "<group>"; - }; - 08FB77AFFE84173DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 1A624E580DCBC7F6006898C8 /* main.m */, - 1AAD6A070DD0DC52003985DA /* MenuHandler.h */, - 1AAD6A080DD0DC52003985DA /* MenuHandler.m */, - ); - name = Source; - sourceTree = "<group>"; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* NetscapeCocoaPlugin.plugin */, - ); - name = Products; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* NetscapeCocoaPlugin */ = { - isa = PBXNativeTarget; - buildConfigurationList = 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCocoaPlugin" */; - buildPhases = ( - 8D576311048677EA00EA77CD /* Sources */, - 8D57630F048677EA00EA77CD /* Resources */, - 8D576313048677EA00EA77CD /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = NetscapeCocoaPlugin; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = NetscapeCocoaPlugin; - productReference = 8D576316048677EA00EA77CD /* NetscapeCocoaPlugin.plugin */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NetscapeCocoaPlugin" */; - compatibilityVersion = "Xcode 2.4"; - hasScannedForEncodings = 1; - mainGroup = 089C166AFE841209C02AAC07 /* NetscapeCocoaPlugin */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D57630D048677EA00EA77CD /* NetscapeCocoaPlugin */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D57630F048677EA00EA77CD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D576311048677EA00EA77CD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1A624E590DCBC7F6006898C8 /* main.m in Sources */, - 1AAD6A090DD0DC52003985DA /* MenuHandler.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C167EFE841241C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 149C298408902C53008A9EFC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DEBUGGING_SYMBOLS = full; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Library/Bundles"; - PRODUCT_NAME = NetscapeCocoaPlugin; - WRAPPER_EXTENSION = plugin; - ZERO_LINK = YES; - }; - name = Debug; - }; - 149C298508902C53008A9EFC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - ppc, - i386, - ); - GCC_DEBUGGING_SYMBOLS = full; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Library/Bundles"; - PRODUCT_NAME = NetscapeCocoaPlugin; - WRAPPER_EXTENSION = plugin; - }; - name = Release; - }; - 149C298808902C53008A9EFC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; - }; - name = Debug; - }; - 149C298908902C53008A9EFC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCocoaPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298408902C53008A9EFC /* Debug */, - 149C298508902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NetscapeCocoaPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298808902C53008A9EFC /* Debug */, - 149C298908902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/WebKitExamplePlugins/NetscapeCocoaPlugin/main.m b/WebKitExamplePlugins/NetscapeCocoaPlugin/main.m deleted file mode 100644 index 1f66ac1..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/main.m +++ /dev/null @@ -1,370 +0,0 @@ -/* - IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in - consideration of your agreement to the following terms, and your use, installation, - modification or redistribution of this Apple software constitutes acceptance of these - terms. If you do not agree with these terms, please do not use, install, modify or - redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject to these - terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in - this original Apple software (the "Apple Software"), to use, reproduce, modify and - redistribute the Apple Software, with or without modifications, in source and/or binary - forms; provided that if you redistribute the Apple Software in its entirety and without - modifications, you must retain this notice and the following text and disclaimers in all - such redistributions of the Apple Software. Neither the name, trademarks, service marks - or logos of Apple Computer, Inc. may be used to endorse or promote products derived from - the Apple Software without specific prior written permission from Apple. Except as expressly - stated in this notice, no other rights or licenses, express or implied, are granted by Apple - herein, including but not limited to any patent rights that may be infringed by your - derivative works or by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, - EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS - USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, - REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND - WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR - OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <WebKit/npapi.h> -#import <WebKit/npfunctions.h> -#import <WebKit/npruntime.h> - -#import <Cocoa/Cocoa.h> - -#import "MenuHandler.h" - -// Browser function table -static NPNetscapeFuncs* browser; - -// Structure for per-instance storage -typedef struct PluginObject -{ - NPP npp; - - NPWindow window; - - NSString *string; - bool hasFocus; - bool mouseIsInsidePlugin; - - MenuHandler *menuHandler; -} PluginObject; - -NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved); -NPError NPP_Destroy(NPP instance, NPSavedData** save); -NPError NPP_SetWindow(NPP instance, NPWindow* window); -NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype); -NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason); -int32 NPP_WriteReady(NPP instance, NPStream* stream); -int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer); -void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname); -void NPP_Print(NPP instance, NPPrint* platformPrint); -int16 NPP_HandleEvent(NPP instance, void* event); -void NPP_URLNotify(NPP instance, const char* URL, NPReason reason, void* notifyData); -NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value); -NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value); - -#pragma export on -// Mach-o entry points -NPError NP_Initialize(NPNetscapeFuncs *browserFuncs); -NPError NP_GetEntryPoints(NPPluginFuncs *pluginFuncs); -void NP_Shutdown(void); -#pragma export off - -NPError NP_Initialize(NPNetscapeFuncs* browserFuncs) -{ - browser = browserFuncs; - return NPERR_NO_ERROR; -} - -NPError NP_GetEntryPoints(NPPluginFuncs* pluginFuncs) -{ - pluginFuncs->version = 11; - pluginFuncs->size = sizeof(pluginFuncs); - pluginFuncs->newp = NPP_New; - pluginFuncs->destroy = NPP_Destroy; - pluginFuncs->setwindow = NPP_SetWindow; - pluginFuncs->newstream = NPP_NewStream; - pluginFuncs->destroystream = NPP_DestroyStream; - pluginFuncs->asfile = NPP_StreamAsFile; - pluginFuncs->writeready = NPP_WriteReady; - pluginFuncs->write = (NPP_WriteProcPtr)NPP_Write; - pluginFuncs->print = NPP_Print; - pluginFuncs->event = NPP_HandleEvent; - pluginFuncs->urlnotify = NPP_URLNotify; - pluginFuncs->getvalue = NPP_GetValue; - pluginFuncs->setvalue = NPP_SetValue; - - return NPERR_NO_ERROR; -} - -void NP_Shutdown(void) -{ - -} - -NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved) -{ - // Create per-instance storage - PluginObject *obj = (PluginObject *)malloc(sizeof(PluginObject)); - bzero(obj, sizeof(PluginObject)); - - obj->npp = instance; - instance->pdata = obj; - - // Ask the browser if it supports the CoreGraphics drawing model - NPBool supportsCoreGraphics; - if (browser->getvalue(instance, NPNVsupportsCoreGraphicsBool, &supportsCoreGraphics) != NPERR_NO_ERROR) - supportsCoreGraphics = FALSE; - - if (!supportsCoreGraphics) - return NPERR_INCOMPATIBLE_VERSION_ERROR; - - // If the browser supports the CoreGraphics drawing model, enable it. - browser->setvalue(instance, NPPVpluginDrawingModel, (void *)NPDrawingModelCoreGraphics); - - // If the browser supports the Cocoa event model, enable it. - NPBool supportsCocoa; - if (browser->getvalue(instance, NPNVsupportsCocoaBool, &supportsCocoa) != NPERR_NO_ERROR) - supportsCocoa = FALSE; - - if (!supportsCocoa) - return NPERR_INCOMPATIBLE_VERSION_ERROR; - - browser->setvalue(instance, NPPVpluginEventModel, (void *)NPEventModelCocoa); - - return NPERR_NO_ERROR; -} - -NPError NPP_Destroy(NPP instance, NPSavedData** save) -{ - // Free per-instance storage - PluginObject *obj = instance->pdata; - - [obj->string release]; - [obj->menuHandler release]; - - free(obj); - - return NPERR_NO_ERROR; -} - -NPError NPP_SetWindow(NPP instance, NPWindow* window) -{ - PluginObject *obj = instance->pdata; - obj->window = *window; - - return NPERR_NO_ERROR; -} - - -NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype) -{ - *stype = NP_ASFILEONLY; - return NPERR_NO_ERROR; -} - -NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason) -{ - return NPERR_NO_ERROR; -} - -int32 NPP_WriteReady(NPP instance, NPStream* stream) -{ - return 0; -} - -int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer) -{ - return 0; -} - -void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname) -{ -} - -void NPP_Print(NPP instance, NPPrint* platformPrint) -{ - -} - -static void handleDraw(PluginObject *obj) -{ - NSGraphicsContext *oldContext = [[NSGraphicsContext currentContext] retain]; - - NSGraphicsContext *context = [NSGraphicsContext graphicsContextWithGraphicsPort:((NP_CGContext *)obj->window.window)->context - flipped:YES]; - - - [NSGraphicsContext setCurrentContext:context]; - - NSRect rect = NSMakeRect(0, 0, obj->window.width, obj->window.height); - - [[NSColor lightGrayColor] set]; - [NSBezierPath fillRect:rect]; - - // If the plugin has focus, draw a focus indicator - if (obj->hasFocus) { - [[NSColor blackColor] set]; - NSBezierPath *path = [NSBezierPath bezierPathWithRect:rect]; - [path setLineWidth:5]; - [path stroke]; - } - - [obj->string drawAtPoint:NSMakePoint(10, 10) withAttributes:nil]; - - [NSGraphicsContext setCurrentContext:oldContext]; -} - -static NSString *eventType(NPCocoaEventType type) -{ - switch (type) { - case NPCocoaEventScrollWheel: - return @"NPCocoaEventScrollWheel"; - case NPCocoaEventMouseDown: - return @"NPCocoaEventMouseDown"; - case NPCocoaEventMouseUp: - return @"NPCocoaEventMouseUp"; - case NPCocoaEventMouseMoved: - return @"NPCocoaEventMouseMoved"; - case NPCocoaEventMouseDragged: - return @"NPCocoaEventMouseDragged"; - case NPCocoaEventMouseEntered: - return @"NPCocoaEventMouseEntered"; - case NPCocoaEventMouseExited: - return @"NPCocoaEventMouseExited"; - case NPCocoaEventKeyDown: - return @"NPCocoaEventKeyDown"; - case NPCocoaEventKeyUp: - return @"NPCocoaEventKeyUp"; - case NPCocoaEventFlagsChanged: - return @"NPCocoaEventFlagsChanged"; - default: - return @"unknown"; - } -} - -static void invalidatePlugin(PluginObject *obj) -{ - NPRect rect; - rect.left = 0; - rect.top = 0; - rect.right = obj->window.width; - rect.bottom = obj->window.height; - - browser->invalidaterect(obj->npp, &rect); -} - - -static void handleMouseEvent(PluginObject *obj, NPCocoaEvent *event) -{ - NSString *string = [NSString stringWithFormat:@"Type: %@\n" - "Modifier flags: 0x%x\n" - "Coordinates: (%g, %g)\n" - "Button number: %d\n" - "Click count: %d\n" - "Delta: (%g, %g, %g)", - eventType(event->type), - event->data.mouse.modifierFlags, - event->data.mouse.pluginX, - event->data.mouse.pluginY, - event->data.mouse.buttonNumber, - event->data.mouse.clickCount, - event->data.mouse.deltaX, event->data.mouse.deltaY, event->data.mouse.deltaZ]; - - - [obj->string release]; - obj->string = [string retain]; - - invalidatePlugin(obj); - - if (event->data.mouse.buttonNumber == 1) { - if (!obj->menuHandler) - obj->menuHandler = [[MenuHandler alloc] initWithBrowserFuncs:browser instance:obj->npp]; - - browser->popupcontextmenu(obj->npp, (NPNSMenu *)[obj->menuHandler menu]); - NSLog(@"foo"); - } -} - -static void handleKeyboardEvent(PluginObject *obj, NPCocoaEvent *event) -{ - NSString *string = [NSString stringWithFormat:@"Type: %@\n" - "Modifier flags: 0x%x\n" - "Characters: %@\n" - "Characters ignoring modifiers: %@\n" - "Is a repeat: %@\n" - "Key code: %d", - eventType(event->type), - event->data.key.modifierFlags, - event->data.key.characters, - event->data.key.charactersIgnoringModifiers, - event->data.key.isARepeat ? @"YES" : @"NO", - event->data.key.keyCode]; - - - [obj->string release]; - obj->string = [string retain]; - - invalidatePlugin(obj); -} - -int16 NPP_HandleEvent(NPP instance, void* event) -{ - PluginObject *obj = instance->pdata; - - NPCocoaEvent *cocoaEvent = event; - - switch(cocoaEvent->type) { - case NPCocoaEventFocusChanged: - obj->hasFocus = cocoaEvent->data.focus.hasFocus; - invalidatePlugin(obj); - return 1; - - case NPCocoaEventDrawRect: - handleDraw(obj); - return 1; - - case NPCocoaEventKeyDown: - case NPCocoaEventKeyUp: - case NPCocoaEventFlagsChanged: - handleKeyboardEvent(obj, cocoaEvent); - return 1; - - case NPCocoaEventMouseDown: - case NPCocoaEventMouseUp: - - // FIXME: NPCocoaEventMouseMoved is currently disabled in order to see other events more clearly - // without "drowning" in mouse moved events. -// case NPCocoaEventMouseMoved: - case NPCocoaEventMouseEntered: - case NPCocoaEventMouseExited: - case NPCocoaEventMouseDragged: - case NPCocoaEventScrollWheel: - handleMouseEvent(obj, cocoaEvent); - return 1; - } - - return 0; -} - -void NPP_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData) -{ - -} - -NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) -{ - return NPERR_GENERIC_ERROR; -} - -NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value) -{ - return NPERR_GENERIC_ERROR; -} diff --git a/WebKitExamplePlugins/NetscapeCocoaPlugin/test.html b/WebKitExamplePlugins/NetscapeCocoaPlugin/test.html deleted file mode 100644 index 368cb1c..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/test.html +++ /dev/null @@ -1,11 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> -<html> -<head> -<title>Cocoa Netscape Plug-In</title> -</head> -<body> -<div> - <embed width="400" height="400" type="test/x-netscape-cocoa-plugin"></embed> -</div> -</body> -</html> |