diff options
Diffstat (limited to 'WebKitExamplePlugins')
32 files changed, 0 insertions, 3554 deletions
diff --git a/WebKitExamplePlugins/ChangeLog b/WebKitExamplePlugins/ChangeLog deleted file mode 100644 index eafec02..0000000 --- a/WebKitExamplePlugins/ChangeLog +++ /dev/null @@ -1,358 +0,0 @@ -2010-11-03 Darin Adler <darin@apple.com> - - Updated Xcode projects by opening them with Xcode 3.2.4. - Updated svn:ignore for Xcode projects. - - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj: Added property svn:ignore. - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: Updated with Xcode 3.2.4. - * NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj: Added property svn:ignore. - * NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj/project.pbxproj: - * NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj: Added property svn:ignore. - * NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj/project.pbxproj: - * NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj: Added property svn:ignore. - * NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj/project.pbxproj: Updated with Xcode 3.2.4. - -2010-06-16 Anders Carlsson <andersca@apple.com> - - Fix build. - - * NetscapeCoreAnimationMoviePlugin/main.m: - (NPP_New): - (NPP_WriteReady): - (NPP_Write): - (NPP_HandleEvent): - -2010-06-10 Anders Carlsson <andersca@apple.com> - - Fix build. - - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: - * NetscapeCocoaPlugin/main.m: - (NPP_New): - (NPP_NewStream): - (NPP_WriteReady): - (NPP_Write): - (NPP_HandleEvent): - -2010-03-02 Anders Carlsson <andersca@apple.com> - - Reviewed by Kevin Decker. - - NPWindow is now null in the Cocoa event model. - - * NetscapeInputMethodPlugin/main.m: - (handleDraw): - (NPP_HandleEvent): - -2009-07-10 Adam Roben <aroben@apple.com> - - Sort all our Xcode projects - - Accomplished using sort-Xcode-project-file. - - Requested by Dave Kilzer. - - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: - * NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj/project.pbxproj: - * NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj/project.pbxproj: - -2009-06-15 Anders Carlsson <andersca@apple.com> - - Reviewed by Kevin Decker. - - Add Core Animation movie plug-in example. - - * NetscapeCoreAnimationMoviePlugin: Added. - * NetscapeCoreAnimationMoviePlugin/English.lproj: Added. - * NetscapeCoreAnimationMoviePlugin/English.lproj/InfoPlist.strings: Added. - * NetscapeCoreAnimationMoviePlugin/Info.plist: Added. - * NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.h: Added. - * NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.m: Added. - (createImageNamed): - (-[MovieControllerLayer init]): - (-[MovieControllerLayer dealloc]): - (-[MovieControllerLayer _playPauseButtonRect]): - (-[MovieControllerLayer _sliderRect]): - (-[MovieControllerLayer _sliderThumbRect]): - (-[MovieControllerLayer _innerSliderRect]): - (-[MovieControllerLayer _drawPlayPauseButtonInContext:]): - (-[MovieControllerLayer _drawSliderInContext:]): - (-[MovieControllerLayer drawInContext:]): - (-[MovieControllerLayer _currentTime]): - (-[MovieControllerLayer _duration]): - (-[MovieControllerLayer _isPlaying]): - (-[MovieControllerLayer _updateTime:]): - (-[MovieControllerLayer _rateDidChange:]): - (-[MovieControllerLayer _timeDidChange:]): - (-[MovieControllerLayer actionForKey:]): - (-[MovieControllerLayer setMovie:]): - (-[MovieControllerLayer _setNewTimeForThumbCenterX:]): - (-[MovieControllerLayer handleMouseDown:]): - (-[MovieControllerLayer handleMouseUp:]): - (-[MovieControllerLayer handleMouseDragged:]): - * NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj: Added. - * NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj/project.pbxproj: Added. - * NetscapeCoreAnimationMoviePlugin/Pause.tiff: Added. - * NetscapeCoreAnimationMoviePlugin/Play.tiff: Added. - * NetscapeCoreAnimationMoviePlugin/SliderTrackCenter.tiff: Added. - * NetscapeCoreAnimationMoviePlugin/SliderTrackLeft.tiff: Added. - * NetscapeCoreAnimationMoviePlugin/SliderTrackRight.tiff: Added. - * NetscapeCoreAnimationMoviePlugin/Thumb.tiff: Added. - * NetscapeCoreAnimationMoviePlugin/main.m: Added. - (NP_Initialize): - (NP_GetEntryPoints): - (NP_Shutdown): - (NPP_New): - (NPP_Destroy): - (NPP_SetWindow): - (NPP_NewStream): - (NPP_DestroyStream): - (NPP_WriteReady): - (NPP_Write): - (NPP_StreamAsFile): - (NPP_Print): - (handleMouseDown): - (togglePlayPause): - (handleMouseUp): - (handleMouseDragged): - (handleMouseEntered): - (handleMouseExited): - (handleKeyDown): - (handleScrollEvent): - (NPP_HandleEvent): - (NPP_URLNotify): - (NPP_GetValue): - (NPP_SetValue): - * NetscapeCoreAnimationMoviePlugin/test.html: Added. - -2009-04-27 Anders Carlsson <andersca@apple.com> - - Reviewed by Adam Roben. - - Update the example plug-in for new changes to the Cocoa event model. - - * NetscapeCocoaPlugin/main.m: - (handleDraw): - (handleMouseEvent): - (NPP_HandleEvent): - -2009-03-13 Anders Carlsson <andersca@apple.com> - - Reviewed by Kevin Decker. - - Update to match new API. - - * NetscapeInputMethodPlugin/main.m: - (NPP_New): - (NPP_Destroy): - (NPP_SetWindow): - (handleDraw): - (invalidatePlugin): - (handleFocusChanged): - (handleMouseMoved): - (handleMouseDown): - (handleTextFieldKeyDown): - (handleTextInput): - (NPP_HandleEvent): - (NPP_URLNotify): - (NPP_GetValue): - (NPP_SetValue): - -2008-12-12 Anders Carlsson <andersca@apple.com> - - Reviewed by Darin Adler. - - There's no need to hold on to the QCComposition. Also, toggle between a gold and silver compass - when a mouse button is pressed. - - * NetscapeCoreAnimationPlugin/Composition.qtz: - * NetscapeCoreAnimationPlugin/main.m: - (NPP_Destroy): - (handleMouseClick): - (NPP_GetValue): - -2008-12-12 Anders Carlsson <andersca@apple.com> - - Revert some accidentally committed changes. - - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: - * NetscapeCocoaPlugin/main.m: - (handleDraw): - (handleMouseEvent): - (NPP_HandleEvent): - -2008-12-12 Anders Carlsson <andersca@apple.com> - - Reviewed by Kevin Decker. - - Add a sample Core Animation NPAPI plug-in. - - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: - * NetscapeCocoaPlugin/main.m: - (handleDraw): - (handleMouseEvent): - (NPP_HandleEvent): - * NetscapeCoreAnimationPlugin: Added. - * NetscapeCoreAnimationPlugin/Composition.qtz: Added. - * NetscapeCoreAnimationPlugin/English.lproj: Added. - * NetscapeCoreAnimationPlugin/English.lproj/InfoPlist.strings: Added. - * NetscapeCoreAnimationPlugin/Info.plist: Added. - * NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj: Added. - * NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj/project.pbxproj: Added. - * NetscapeCoreAnimationPlugin/main.m: Added. - (NP_Initialize): - (NP_GetEntryPoints): - (NP_Shutdown): - (NPP_New): - (NPP_Destroy): - (NPP_SetWindow): - (NPP_NewStream): - (NPP_DestroyStream): - (NPP_WriteReady): - (NPP_Write): - (NPP_StreamAsFile): - (NPP_Print): - (handleMouseClick): - (NPP_HandleEvent): - (NPP_URLNotify): - (NPP_GetValue): - (NPP_SetValue): - * NetscapeCoreAnimationPlugin/test.html: Added. - -2008-12-08 David Kilzer <ddkilzer@apple.com> - - Bug 22555: Sort "children" sections in Xcode project files - - <https://bugs.webkit.org/show_bug.cgi?id=22555> - - Reviewed by Eric Seidel. - - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: Sorted. - -2008-08-20 Josh Aas <joshmoz@gmail.com> - - Reviewed and landed by Anders. - - <rdar://problem/6163636> - rename NPCocoaEvent's "event" struct to "data" (20446) - - * NetscapeCocoaPlugin/main.m: - (handleMouseEvent): - (handleKeyboardEvent): - (NPP_HandleEvent): - -2008-05-22 Josh Aas <joshmoz@gmail.com> - - Reviewed by Anders. - - Use correct enum. - - * NetscapeCocoaPlugin/main.m: - (NPP_New): - * NetscapeInputMethodPlugin/main.m: - (NPP_New): - -2008-05-12 Anders Carlsson <andersca@apple.com> - - Reviewed by Alexey. - - Add input method test plug-in. - - * NetscapeInputMethodPlugin: Added. - * NetscapeInputMethodPlugin/English.lproj: Added. - * NetscapeInputMethodPlugin/English.lproj/InfoPlist.strings: Added. - * NetscapeInputMethodPlugin/Info.plist: Added. - * NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj: Added. - * NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj/project.pbxproj: Added. - * NetscapeInputMethodPlugin/main.m: Added. - (NP_Initialize): - (NP_GetEntryPoints): - (NP_Shutdown): - (NPP_New): - (NPP_Destroy): - (NPP_SetWindow): - (NPP_NewStream): - (NPP_DestroyStream): - (NPP_WriteReady): - (NPP_Write): - (NPP_StreamAsFile): - (NPP_Print): - (handleDraw): - (invalidatePlugin): - (handleFocusChanged): - (handleMouseMoved): - (handleMouseDown): - (NPP_HandleEvent): - (NPP_URLNotify): - (selectionRange): - (NPP_InsertText): - (NPP_DoCommandBySelector): - (markedTextAttributes): - (NPP_SetMarkedText): - (NPP_UnmarkText): - (NPP_HasMarkedText): - (NPP_AttributedSubstringFromRange): - (NPP_MarkedRange): - (NPP_SelectedRange): - (NPP_FirstRectForCharacterRange): - (pluginTextInputFuncs): - (NPP_GetValue): - (NPP_SetValue): - * NetscapeInputMethodPlugin/test.html: Added. - -2008-05-06 Anders Carlsson <andersca@apple.com> - - Reviewed by Mitz. - - Add NPN_PopUpContextMenu example. - - * NetscapeCocoaPlugin/MenuHandler.h: Added. - * NetscapeCocoaPlugin/MenuHandler.m: Added. - (-[MenuHandler _openURL:]): - (-[MenuHandler _disabledItem:]): - (-[MenuHandler validateUserInterfaceItem:]): - (-[MenuHandler initWithBrowserFuncs:instance:]): - (-[MenuHandler dealloc]): - (-[MenuHandler menu]): - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: - * NetscapeCocoaPlugin/main.m: - (NPP_Destroy): - (handleMouseEvent): - -2008-05-06 Anders Carlsson <andersca@apple.com> - - Reviewed by Jon, Tim and Mark. - - Add a sample NPAPI plugin that uses the Cocoa event model. - - * .: Added. - * ChangeLog: Added. - * NetscapeCocoaPlugin: Added. - * NetscapeCocoaPlugin/English.lproj: Added. - * NetscapeCocoaPlugin/English.lproj/InfoPlist.strings: Added. - * NetscapeCocoaPlugin/Info.plist: Added. - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj: Added. - * NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: Added. - * NetscapeCocoaPlugin/main.m: Added. - (NP_Initialize): - (NP_GetEntryPoints): - (NP_Shutdown): - (NPP_New): - (NPP_Destroy): - (NPP_SetWindow): - (NPP_NewStream): - (NPP_DestroyStream): - (NPP_WriteReady): - (NPP_Write): - (NPP_StreamAsFile): - (NPP_Print): - (handleDraw): - (eventType): - (invalidatePlugin): - (handleMouseEvent): - (handleKeyboardEvent): - (NPP_HandleEvent): - (NPP_URLNotify): - (NPP_GetValue): - (NPP_SetValue): - * NetscapeCocoaPlugin/test.html: Added. diff --git a/WebKitExamplePlugins/NetscapeCocoaPlugin/English.lproj/InfoPlist.strings b/WebKitExamplePlugins/NetscapeCocoaPlugin/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100644 index 5e45963..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/English.lproj/InfoPlist.strings +++ /dev/null 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 c9a0b70..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj +++ /dev/null @@ -1,247 +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"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - 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_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; - ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - }; - name = Debug; - }; - 149C298908902C53008A9EFC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; - ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - }; - 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 3f0396a..0000000 --- a/WebKitExamplePlugins/NetscapeCocoaPlugin/main.m +++ /dev/null @@ -1,368 +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_t mode, int16_t 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_t* stype); -NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason); -int32_t NPP_WriteReady(NPP instance, NPStream* stream); -int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer); -void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname); -void NPP_Print(NPP instance, NPPrint* platformPrint); -int16_t 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_t mode, int16_t 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_t* stype) -{ - *stype = NP_ASFILEONLY; - return NPERR_NO_ERROR; -} - -NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason) -{ - return NPERR_NO_ERROR; -} - -int32_t NPP_WriteReady(NPP instance, NPStream* stream) -{ - return 0; -} - -int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t 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, NPCocoaEvent *event) -{ - NSGraphicsContext *oldContext = [[NSGraphicsContext currentContext] retain]; - - NSGraphicsContext *context = [NSGraphicsContext graphicsContextWithGraphicsPort:event->data.draw.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]); - } -} - -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_t 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, cocoaEvent); - 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> diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/English.lproj/InfoPlist.strings b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100644 index 5e45963..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/English.lproj/InfoPlist.strings +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Info.plist b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Info.plist deleted file mode 100644 index 5809a14..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/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>NetscapeCoreAnimationMoviePlugin</string> - <key>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>com.apple.netscapecoreanimationmovieplugin</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 Core Animation and handles events using the Cocoa event model</string> - <key>WebPluginMIMETypes</key> - <dict> - <key>test/x-netscape-core-animation-movie-plugin</key> - <dict> - <key>WebPluginTypeDescription</key> - <string>Netscape Core Animation Movie Plug-in</string> - </dict> - </dict> - <key>WebPluginName</key> - <string>Netscape Core Animation Movie Plug-in</string> -</dict> -</plist> diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.h b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.h deleted file mode 100644 index d29c916..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - File: MovieControllerLayer.h - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple - 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 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. - - Copyright (C) 2009 Apple Inc. All Rights Reserved. - - */ - - -#import <QuartzCore/QuartzCore.h> - -@class QTMovie; - -@interface MovieControllerLayer : CALayer { - CGImageRef _playImage; - CGImageRef _pauseImage; - - CGImageRef _sliderTrackLeft; - CGImageRef _sliderTrackRight; - CGImageRef _sliderTrackCenter; - - CGImageRef _thumb; - - QTMovie *_movie; - NSTimer *_updateTimeTimer; - - BOOL _wasPlayingBeforeMouseDown; - BOOL _isScrubbing; - CGFloat _mouseDownXDelta; -} - -- (void)setMovie:(QTMovie *)movie; - -- (void)handleMouseDown:(CGPoint)point; -- (void)handleMouseUp:(CGPoint)point; -- (void)handleMouseDragged:(CGPoint)point; - -@end diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.m b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.m deleted file mode 100644 index 171dab4..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/MovieControllerLayer.m +++ /dev/null @@ -1,355 +0,0 @@ -/* - File: MovieControllerLayer.m - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple - 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 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. - - Copyright (C) 2009 Apple Inc. All Rights Reserved. - - */ - -#import "MovieControllerLayer.h" - -#import <QTKit/QTKit.h> - -@interface MovieControllerLayer () -- (BOOL)_isPlaying; -- (NSTimeInterval)_currentTime; -- (NSTimeInterval)_duration; -@end - -@implementation MovieControllerLayer - -static CGImageRef createImageNamed(NSString *name) -{ - NSURL *url = [[NSBundle bundleForClass:[MovieControllerLayer class]] URLForResource:name withExtension:@"tiff"]; - - if (!url) - return NULL; - - CGImageSourceRef imageSource = CGImageSourceCreateWithURL((CFURLRef)url, NULL); - if (!imageSource) - return NULL; - - CGImageRef image = CGImageSourceCreateImageAtIndex(imageSource, 0, NULL); - CFRelease(imageSource); - - return image; -} - -- (id)init -{ - if (self = [super init]) { - self.needsDisplayOnBoundsChange = YES; - self.frame = CGRectMake(0, 0, 0, 25); - self.autoresizingMask = kCALayerWidthSizable; - - _playImage = createImageNamed(@"Play"); - _pauseImage = createImageNamed(@"Pause"); - _sliderTrackLeft = createImageNamed(@"SliderTrackLeft"); - _sliderTrackRight = createImageNamed(@"SliderTrackRight"); - _sliderTrackCenter = createImageNamed(@"SliderTrackCenter"); - - _thumb = createImageNamed(@"Thumb"); - } - - return self; -} - -- (void)dealloc -{ - CGImageRelease(_playImage); - CGImageRelease(_pauseImage); - - CGImageRelease(_sliderTrackLeft); - CGImageRelease(_sliderTrackRight); - CGImageRelease(_sliderTrackCenter); - - CGImageRelease(_thumb); - - [self setMovie:nil]; - [_updateTimeTimer invalidate]; - - [super dealloc]; -} - -#pragma mark Drawing - -- (CGRect)_playPauseButtonRect -{ - return CGRectMake(0, 0, 25, 25); -} - -- (CGRect)_sliderRect -{ - CGFloat sliderYPosition = (self.bounds.size.height - CGImageGetHeight(_sliderTrackLeft)) / 2.0; - CGFloat playPauseButtonWidth = [self _playPauseButtonRect].size.width; - - return CGRectMake(playPauseButtonWidth, sliderYPosition, - self.bounds.size.width - playPauseButtonWidth - 7, CGImageGetHeight(_sliderTrackLeft)); -} - -- (CGRect)_sliderThumbRect -{ - CGRect sliderRect = [self _sliderRect]; - - CGFloat fraction = 0.0; - if (_movie) - fraction = [self _currentTime] / [self _duration]; - - CGFloat x = fraction * (CGRectGetWidth(sliderRect) - CGImageGetWidth(_thumb)); - - return CGRectMake(CGRectGetMinX(sliderRect) + x, CGRectGetMinY(sliderRect) - 1, - CGImageGetWidth(_thumb), CGImageGetHeight(_thumb)); -} - -- (CGRect)_innerSliderRect -{ - return CGRectInset([self _sliderRect], CGRectGetWidth([self _sliderThumbRect]) / 2, 0); -} - -- (void)_drawPlayPauseButtonInContext:(CGContextRef)context -{ - CGContextDrawImage(context, [self _playPauseButtonRect], [self _isPlaying] ? _pauseImage : _playImage); -} - -- (void)_drawSliderInContext:(CGContextRef)context -{ - // Draw the thumb - CGRect sliderThumbRect = [self _sliderThumbRect]; - CGContextDrawImage(context, sliderThumbRect, _thumb); - - CGRect sliderRect = [self _sliderRect]; - - // Draw left part - CGRect sliderLeftTrackRect = CGRectMake(CGRectGetMinX(sliderRect), CGRectGetMinY(sliderRect), - CGImageGetWidth(_sliderTrackLeft), CGImageGetHeight(_sliderTrackLeft)); - CGContextDrawImage(context, sliderLeftTrackRect, _sliderTrackLeft); - - // Draw center part - CGRect sliderCenterTrackRect = CGRectInset(sliderRect, CGImageGetWidth(_sliderTrackLeft), 0); - CGContextDrawImage(context, sliderCenterTrackRect, _sliderTrackCenter); - - // Draw right part - CGRect sliderRightTrackRect = CGRectMake(CGRectGetMaxX(sliderCenterTrackRect), CGRectGetMinY(sliderRect), - CGImageGetWidth(_sliderTrackRight), CGImageGetHeight(_sliderTrackRight)); - CGContextDrawImage(context, sliderRightTrackRect, _sliderTrackRight); - -} - -- (void)drawInContext:(CGContextRef)context -{ - CGContextSaveGState(context); - CGContextSetFillColorWithColor(context, CGColorGetConstantColor(kCGColorBlack)); - CGContextFillRect(context, self.bounds); - CGContextRestoreGState(context); - - [self _drawPlayPauseButtonInContext:context]; - [self _drawSliderInContext:context]; -} - -#pragma mark Movie handling - -- (NSTimeInterval)_currentTime -{ - if (!_movie) - return 0; - - QTTime time = [_movie currentTime]; - NSTimeInterval timeInterval; - if (!QTGetTimeInterval(time, &timeInterval)) - return 0; - - return timeInterval; -} - -- (NSTimeInterval)_duration -{ - if (!_movie) - return 0; - - QTTime time = [_movie duration]; - NSTimeInterval timeInterval; - if (!QTGetTimeInterval(time, &timeInterval)) - return 0; - - return timeInterval; -} - -- (BOOL)_isPlaying -{ - return [_movie rate] != 0.0; -} - -- (void)_updateTime:(NSTimer *)timer -{ - [self setNeedsDisplay]; -} - -- (void)_rateDidChange:(NSNotification *)notification -{ - float rate = [[[notification userInfo] objectForKey:QTMovieRateDidChangeNotificationParameter] floatValue]; - - if (rate == 0.0) { - [_updateTimeTimer invalidate]; - _updateTimeTimer = nil; - } else - _updateTimeTimer = [NSTimer scheduledTimerWithTimeInterval:0.035 target:self selector:@selector(_updateTime:) userInfo:nil repeats:YES]; - - [self setNeedsDisplay]; -} - -- (void)_timeDidChange:(NSNotification *)notification -{ - [self setNeedsDisplay]; -} - -- (id<CAAction>)actionForKey:(NSString *)key -{ - // We don't want to animate the contents of the layer. - if ([key isEqualToString:@"contents"]) - return nil; - - return [super actionForKey:key]; -} - -- (void)setMovie:(QTMovie *)movie -{ - if (_movie == movie) - return; - - if (_movie) { - [[NSNotificationCenter defaultCenter] removeObserver:self - name:QTMovieRateDidChangeNotification - object:_movie]; - [[NSNotificationCenter defaultCenter] removeObserver:self - name:QTMovieTimeDidChangeNotification - object:_movie]; - [_movie release]; - } - - _movie = [movie retain]; - - if (_movie) { - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(_rateDidChange:) - name:QTMovieRateDidChangeNotification - object:_movie]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(_timeDidChange:) - name:QTMovieTimeDidChangeNotification - object:_movie]; - [self setNeedsDisplay]; - } - -} - -# pragma mark Event handling - -- (void)_setNewTimeForThumbCenterX:(CGFloat)centerX -{ - CGRect innerRect = [self _innerSliderRect]; - - CGFloat fraction = (centerX - CGRectGetMinX(innerRect)) / CGRectGetWidth(innerRect); - if (fraction > 1.0) - fraction = 1.0; - else if (fraction < 0.0) - fraction = 0.0; - - NSTimeInterval newTime = fraction * [self _duration]; - - [_movie setCurrentTime:QTMakeTimeWithTimeInterval(newTime)]; - [self setNeedsDisplay]; -} - -- (void)handleMouseDown:(CGPoint)point -{ - if (!_movie) - return; - - if (CGRectContainsPoint([self _sliderRect], point)) { - _wasPlayingBeforeMouseDown = [self _isPlaying]; - _isScrubbing = YES; - - [_movie stop]; - if (CGRectContainsPoint([self _sliderThumbRect], point)) - _mouseDownXDelta = point.x - CGRectGetMidX([self _sliderThumbRect]); - else { - [self _setNewTimeForThumbCenterX:point.x]; - _mouseDownXDelta = 0; - } - } -} - -- (void)handleMouseUp:(CGPoint)point -{ - if (!_movie) - return; - - if (_isScrubbing) { - _isScrubbing = NO; - _mouseDownXDelta = 0; - - if (_wasPlayingBeforeMouseDown) - [_movie play]; - return; - } - - if (CGRectContainsPoint([self _playPauseButtonRect], point)) { - if ([self _isPlaying]) - [_movie stop]; - else - [_movie play]; - return; - } -} - -- (void)handleMouseDragged:(CGPoint)point -{ - if (!_movie) - return; - - if (!_isScrubbing) - return; - - point.x -= _mouseDownXDelta; - - [self _setNewTimeForThumbCenterX:point.x]; -} - -@end diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj/project.pbxproj b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj/project.pbxproj deleted file mode 100644 index fef3db9..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/NetscapeCoreAnimationMoviePlugin.xcodeproj/project.pbxproj +++ /dev/null @@ -1,279 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - 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 */; }; - 1A80001B0FDB2C85000F3646 /* MovieControllerLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A80001A0FDB2C85000F3646 /* MovieControllerLayer.m */; }; - 1A80011A0FDB2CB2000F3646 /* Pause.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001140FDB2CB2000F3646 /* Pause.tiff */; }; - 1A80011B0FDB2CB2000F3646 /* Play.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001150FDB2CB2000F3646 /* Play.tiff */; }; - 1A80011C0FDB2CB2000F3646 /* SliderTrackCenter.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001160FDB2CB2000F3646 /* SliderTrackCenter.tiff */; }; - 1A80011D0FDB2CB2000F3646 /* SliderTrackLeft.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001170FDB2CB2000F3646 /* SliderTrackLeft.tiff */; }; - 1A80011E0FDB2CB2000F3646 /* SliderTrackRight.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001180FDB2CB2000F3646 /* SliderTrackRight.tiff */; }; - 1A80011F0FDB2CB2000F3646 /* Thumb.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001190FDB2CB2000F3646 /* Thumb.tiff */; }; - 1A8001470FDB2E65000F3646 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A8001460FDB2E65000F3646 /* QTKit.framework */; }; - 1A8C87AA0EF2FBB3003F6E81 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */; }; - 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>"; }; - 1A8000190FDB2C85000F3646 /* MovieControllerLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MovieControllerLayer.h; sourceTree = "<group>"; }; - 1A80001A0FDB2C85000F3646 /* MovieControllerLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MovieControllerLayer.m; sourceTree = "<group>"; }; - 1A8001140FDB2CB2000F3646 /* Pause.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Pause.tiff; sourceTree = "<group>"; }; - 1A8001150FDB2CB2000F3646 /* Play.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Play.tiff; sourceTree = "<group>"; }; - 1A8001160FDB2CB2000F3646 /* SliderTrackCenter.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = SliderTrackCenter.tiff; sourceTree = "<group>"; }; - 1A8001170FDB2CB2000F3646 /* SliderTrackLeft.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = SliderTrackLeft.tiff; sourceTree = "<group>"; }; - 1A8001180FDB2CB2000F3646 /* SliderTrackRight.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = SliderTrackRight.tiff; sourceTree = "<group>"; }; - 1A8001190FDB2CB2000F3646 /* Thumb.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Thumb.tiff; sourceTree = "<group>"; }; - 1A8001460FDB2E65000F3646 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; }; - 1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; }; - 8D576316048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetscapeCoreAnimationMoviePlugin.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 */, - 1A8001470FDB2E65000F3646 /* QTKit.framework in Frameworks */, - 1A8C87AA0EF2FBB3003F6E81 /* QuartzCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* NetscapeCoreAnimationMoviePlugin */ = { - isa = PBXGroup; - children = ( - 08FB77AFFE84173DC02AAC07 /* Source */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - 1A8001460FDB2E65000F3646 /* QTKit.framework */, - ); - name = NetscapeCoreAnimationMoviePlugin; - sourceTree = "<group>"; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1A6250410DCBC81B006898C8 /* Cocoa.framework */, - 1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = "<group>"; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8D576317048677EA00EA77CD /* Info.plist */, - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - 1A8001140FDB2CB2000F3646 /* Pause.tiff */, - 1A8001150FDB2CB2000F3646 /* Play.tiff */, - 1A8001160FDB2CB2000F3646 /* SliderTrackCenter.tiff */, - 1A8001170FDB2CB2000F3646 /* SliderTrackLeft.tiff */, - 1A8001180FDB2CB2000F3646 /* SliderTrackRight.tiff */, - 1A8001190FDB2CB2000F3646 /* Thumb.tiff */, - ); - name = Resources; - sourceTree = "<group>"; - }; - 08FB77AFFE84173DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 1A624E580DCBC7F6006898C8 /* main.m */, - 1A8000190FDB2C85000F3646 /* MovieControllerLayer.h */, - 1A80001A0FDB2C85000F3646 /* MovieControllerLayer.m */, - ); - name = Source; - sourceTree = "<group>"; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin.plugin */, - ); - name = Products; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin */ = { - isa = PBXNativeTarget; - buildConfigurationList = 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCoreAnimationMoviePlugin" */; - buildPhases = ( - 8D576311048677EA00EA77CD /* Sources */, - 8D57630F048677EA00EA77CD /* Resources */, - 8D576313048677EA00EA77CD /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = NetscapeCoreAnimationMoviePlugin; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = NetscapeCoreAnimationMoviePlugin; - productReference = 8D576316048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin.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 "NetscapeCoreAnimationMoviePlugin" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 089C166AFE841209C02AAC07 /* NetscapeCoreAnimationMoviePlugin */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D57630D048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D57630F048677EA00EA77CD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */, - 1A80011A0FDB2CB2000F3646 /* Pause.tiff in Resources */, - 1A80011B0FDB2CB2000F3646 /* Play.tiff in Resources */, - 1A80011C0FDB2CB2000F3646 /* SliderTrackCenter.tiff in Resources */, - 1A80011D0FDB2CB2000F3646 /* SliderTrackLeft.tiff in Resources */, - 1A80011E0FDB2CB2000F3646 /* SliderTrackRight.tiff in Resources */, - 1A80011F0FDB2CB2000F3646 /* Thumb.tiff in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D576311048677EA00EA77CD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1A624E590DCBC7F6006898C8 /* main.m in Sources */, - 1A80001B0FDB2C85000F3646 /* MovieControllerLayer.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 = NetscapeCoreAnimationMoviePlugin; - 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 = NetscapeCoreAnimationMoviePlugin; - WRAPPER_EXTENSION = plugin; - }; - name = Release; - }; - 149C298808902C53008A9EFC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = macosx10.6; - }; - name = Debug; - }; - 149C298908902C53008A9EFC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - 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; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCoreAnimationMoviePlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298408902C53008A9EFC /* Debug */, - 149C298508902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NetscapeCoreAnimationMoviePlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298808902C53008A9EFC /* Debug */, - 149C298908902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Pause.tiff b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Pause.tiff Binary files differdeleted file mode 100644 index b46fa57..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Pause.tiff +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Play.tiff b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Play.tiff Binary files differdeleted file mode 100644 index 3071a6f..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Play.tiff +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackCenter.tiff b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackCenter.tiff Binary files differdeleted file mode 100644 index bef6508..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackCenter.tiff +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackLeft.tiff b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackLeft.tiff Binary files differdeleted file mode 100644 index 1609297..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackLeft.tiff +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackRight.tiff b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackRight.tiff Binary files differdeleted file mode 100644 index 270c42b..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/SliderTrackRight.tiff +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Thumb.tiff b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Thumb.tiff Binary files differdeleted file mode 100644 index 392ce56..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/Thumb.tiff +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/main.m b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/main.m deleted file mode 100644 index b23283f..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/main.m +++ /dev/null @@ -1,393 +0,0 @@ -/* - File: MovieControllerLayer.m - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple - 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 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. - - Copyright (C) 2009 Apple Inc. All Rights Reserved. - - */ - -#import <WebKit/npapi.h> -#import <WebKit/npfunctions.h> -#import <WebKit/npruntime.h> - -#import <QuartzCore/QuartzCore.h> -#import <QTKit/QTKit.h> - -#import "MovieControllerLayer.h" - -// Browser function table -static NPNetscapeFuncs* browser; - -// Structure for per-instance storage -typedef struct PluginObject -{ - NPP npp; - - NPWindow window; - - CALayer *rootLayer; - MovieControllerLayer *controllerLayer; - QTMovieLayer *movieLayer; - - CALayer *mouseDownLayer; - - NSURL *movieURL; - QTMovie *movie; -} PluginObject; - -NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t 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_t NPP_WriteReady(NPP instance, NPStream* stream); -int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer); -void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname); -void NPP_Print(NPP instance, NPPrint* platformPrint); -int16_t 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_t mode, int16_t 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 Core Animation drawing model - NPBool supportsCoreAnimation; - if (browser->getvalue(instance, NPNVsupportsCoreAnimationBool, &supportsCoreAnimation) != NPERR_NO_ERROR) - supportsCoreAnimation = FALSE; - - if (!supportsCoreAnimation) - return NPERR_INCOMPATIBLE_VERSION_ERROR; - - // If the browser supports the Core Animation drawing model, enable it. - browser->setvalue(instance, NPPVpluginDrawingModel, (void *)NPDrawingModelCoreAnimation); - - // 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); - - for (int16_t i = 0; i < argc; i++) { - if (strcasecmp(argn[i], "movieurl") == 0) { - NSString *urlString = [NSString stringWithUTF8String:argv[i]]; - if (urlString) - obj->movieURL = [[NSURL URLWithString:urlString] retain]; - break; - } - - } - - return NPERR_NO_ERROR; -} - -NPError NPP_Destroy(NPP instance, NPSavedData** save) -{ - // Free per-instance storage - PluginObject *obj = instance->pdata; - - [obj->movie stop]; - [obj->rootLayer 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_t NPP_WriteReady(NPP instance, NPStream* stream) -{ - return 0; -} - -int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer) -{ - return 0; -} - -void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname) -{ -} - -void NPP_Print(NPP instance, NPPrint* platformPrint) -{ - -} - -static void handleMouseDown(PluginObject *obj, NPCocoaEvent *event) -{ - CGPoint point = CGPointMake(event->data.mouse.pluginX, - // Flip the y coordinate - obj->window.height - event->data.mouse.pluginY); - - obj->mouseDownLayer = [obj->rootLayer hitTest:point]; - if (obj->mouseDownLayer == obj->controllerLayer) { - [obj->controllerLayer handleMouseDown:[obj->rootLayer convertPoint:point toLayer:obj->controllerLayer]]; - return; - } -} - -static void togglePlayPause(PluginObject *obj) -{ - if (!obj->movie) - return; - - if ([obj->movie rate] == 0) - [obj->movie play]; - else - [obj->movie stop]; - -} - -static void handleMouseUp(PluginObject *obj, NPCocoaEvent *event) -{ - CGPoint point = CGPointMake(event->data.mouse.pluginX, - // Flip the y coordinate - obj->window.height - event->data.mouse.pluginY); - - CALayer *mouseDownLayer = obj->mouseDownLayer; - obj->mouseDownLayer = nil; - if (mouseDownLayer == obj->controllerLayer) { - [obj->controllerLayer handleMouseUp:[obj->rootLayer convertPoint:point toLayer:obj->controllerLayer]]; - return; - } -} - -static void handleMouseDragged(PluginObject *obj, NPCocoaEvent *event) -{ - CGPoint point = CGPointMake(event->data.mouse.pluginX, - // Flip the y coordinate - obj->window.height - event->data.mouse.pluginY); - - if (obj->mouseDownLayer == obj->controllerLayer) { - [obj->controllerLayer handleMouseDragged:[obj->rootLayer convertPoint:point toLayer:obj->controllerLayer]]; - return; - } -} - -static void handleMouseEntered(PluginObject *obj) -{ - // Show the controller layer. - obj->controllerLayer.opacity = 1.0; -} - -static void handleMouseExited(PluginObject *obj) -{ - // Hide the controller layer if the movie is playing. - if ([obj->movie rate]) - obj->controllerLayer.opacity = 0.0; -} - -static int handleKeyDown(PluginObject *obj, NPCocoaEvent *event) -{ - NSString *characters = (NSString *)event->data.key.characters; - - if ([characters length] == 1 && [characters characterAtIndex:0] == ' ') { - togglePlayPause(obj); - return 1; - } - - return 0; -} - - -static int handleScrollEvent(PluginObject *obj, NPCocoaEvent *event) -{ - double delta = event->data.mouse.deltaY; - if (delta < 0) - [obj->movie stepForward]; - else - [obj->movie stepBackward]; - return 0; -} - - - -int16_t NPP_HandleEvent(NPP instance, void* event) -{ - PluginObject *obj = instance->pdata; - - NPCocoaEvent *cocoaEvent = event; - - switch(cocoaEvent->type) { - case NPCocoaEventMouseDown: - handleMouseDown(obj, cocoaEvent); - return 1; - case NPCocoaEventMouseUp: - handleMouseUp(obj, cocoaEvent); - return 1; - case NPCocoaEventMouseDragged: - handleMouseDragged(obj, cocoaEvent); - return 1; - case NPCocoaEventMouseEntered: - handleMouseEntered(obj); - return 1; - case NPCocoaEventMouseExited: - handleMouseExited(obj); - return 1; - case NPCocoaEventKeyDown: - return handleKeyDown(obj, cocoaEvent); - case NPCocoaEventScrollWheel: - return handleScrollEvent(obj, cocoaEvent); - } - - return 0; -} - -void NPP_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData) -{ - -} - -NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) -{ - PluginObject *obj = instance->pdata; - - switch (variable) { - case NPPVpluginCoreAnimationLayer: - if (!obj->rootLayer) { - // Setup layer hierarchy. - obj->rootLayer = [[CALayer layer] retain]; - - obj->movieLayer = [QTMovieLayer layer]; - obj->movieLayer.autoresizingMask = kCALayerWidthSizable | kCALayerHeightSizable; - [obj->rootLayer addSublayer:obj->movieLayer]; - - obj->controllerLayer = [MovieControllerLayer layer]; - [obj->rootLayer addSublayer:obj->controllerLayer]; - - if (obj->movieURL) { - NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:obj->movieURL, QTMovieURLAttribute, - [NSNumber numberWithBool:YES], QTMovieOpenForPlaybackAttribute, - [NSNumber numberWithBool:YES], QTMovieLoopsAttribute, - nil]; - obj->movie = [QTMovie movieWithAttributes:attributes error:nil]; - - if (obj->movie) { - obj->movieLayer.movie = obj->movie; - [obj->controllerLayer setMovie:obj->movie]; - } - } - - } - - // Make sure to return a retained layer - *((CALayer **)value) = [obj->rootLayer retain]; - - return NPERR_NO_ERROR; - - default: - return NPERR_GENERIC_ERROR; - } -} - -NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value) -{ - return NPERR_GENERIC_ERROR; -} diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/test.html b/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/test.html deleted file mode 100644 index 0ffb77b..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationMoviePlugin/test.html +++ /dev/null @@ -1,18 +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>Netscape Core Animation Movie Plug-In</title> -</head> -<body> -<div> -<!-- - <embed width="848" height="480" movieurl="http://movies.apple.com/movies/disney/up/up-tlr2_480p.mov" - type="test/x-netscape-core-animation-movie-plugin"></embed> ---> - <embed width="1280" height="720" movieurl="http://movies.apple.com/movies/disney/up/up-tlr2_720p.mov" - type="test/x-netscape-core-animation-movie-plugin"></embed> - - -</div> -</body> -</html> diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/Composition.qtz b/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/Composition.qtz Binary files differdeleted file mode 100644 index 53c0843..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/Composition.qtz +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/English.lproj/InfoPlist.strings b/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100644 index 5e45963..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/English.lproj/InfoPlist.strings +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/Info.plist b/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/Info.plist deleted file mode 100644 index 146bc0d..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/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>NetscapeCoreAnimationPlugin</string> - <key>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>com.apple.netscapecoreanimationplugin</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 Core Animation and handles events using the Cocoa event model</string> - <key>WebPluginMIMETypes</key> - <dict> - <key>test/x-netscape-core-animation-plugin</key> - <dict> - <key>WebPluginTypeDescription</key> - <string>Netscape Core Animation Plug-in</string> - </dict> - </dict> - <key>WebPluginName</key> - <string>Netscape Core Animation Plug-in</string> -</dict> -</plist> diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj/project.pbxproj b/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj/project.pbxproj deleted file mode 100644 index a1e3390..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/NetscapeCoreAnimationPlugin.xcodeproj/project.pbxproj +++ /dev/null @@ -1,251 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 1A1BA1760EF2FB3200754486 /* Composition.qtz in Resources */ = {isa = PBXBuildFile; fileRef = 1A1BA1750EF2FB3200754486 /* Composition.qtz */; }; - 1A624E590DCBC7F6006898C8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A624E580DCBC7F6006898C8 /* main.m */; }; - 1A6250420DCBC81B006898C8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A6250410DCBC81B006898C8 /* Cocoa.framework */; }; - 1A8C86AA0EF2FB8F003F6E81 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A8C86A90EF2FB8F003F6E81 /* Quartz.framework */; }; - 1A8C87AA0EF2FBB3003F6E81 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */; }; - 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>"; }; - 1A1BA1750EF2FB3200754486 /* Composition.qtz */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = Composition.qtz; 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>"; }; - 1A8C86A90EF2FB8F003F6E81 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = "<absolute>"; }; - 1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; }; - 8D576316048677EA00EA77CD /* NetscapeCoreAnimationPlugin.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetscapeCoreAnimationPlugin.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 */, - 1A8C86AA0EF2FB8F003F6E81 /* Quartz.framework in Frameworks */, - 1A8C87AA0EF2FBB3003F6E81 /* QuartzCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* NetscapeCoreAnimationPlugin */ = { - isa = PBXGroup; - children = ( - 08FB77AFFE84173DC02AAC07 /* Source */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - ); - name = NetscapeCoreAnimationPlugin; - sourceTree = "<group>"; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1A6250410DCBC81B006898C8 /* Cocoa.framework */, - 1A8C86A90EF2FB8F003F6E81 /* Quartz.framework */, - 1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = "<group>"; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 1A1BA1750EF2FB3200754486 /* Composition.qtz */, - 8D576317048677EA00EA77CD /* Info.plist */, - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = "<group>"; - }; - 08FB77AFFE84173DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 1A624E580DCBC7F6006898C8 /* main.m */, - ); - name = Source; - sourceTree = "<group>"; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* NetscapeCoreAnimationPlugin.plugin */, - ); - name = Products; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* NetscapeCoreAnimationPlugin */ = { - isa = PBXNativeTarget; - buildConfigurationList = 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCoreAnimationPlugin" */; - buildPhases = ( - 8D576311048677EA00EA77CD /* Sources */, - 8D57630F048677EA00EA77CD /* Resources */, - 8D576313048677EA00EA77CD /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = NetscapeCoreAnimationPlugin; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = NetscapeCoreAnimationPlugin; - productReference = 8D576316048677EA00EA77CD /* NetscapeCoreAnimationPlugin.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 "NetscapeCoreAnimationPlugin" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 089C166AFE841209C02AAC07 /* NetscapeCoreAnimationPlugin */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D57630D048677EA00EA77CD /* NetscapeCoreAnimationPlugin */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D57630F048677EA00EA77CD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1A1BA1760EF2FB3200754486 /* Composition.qtz in Resources */, - 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 */, - ); - 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 = NetscapeCoreAnimationPlugin; - 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 = NetscapeCoreAnimationPlugin; - WRAPPER_EXTENSION = plugin; - }; - name = Release; - }; - 149C298808902C53008A9EFC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - 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; - }; - name = Debug; - }; - 149C298908902C53008A9EFC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - 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; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCoreAnimationPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298408902C53008A9EFC /* Debug */, - 149C298508902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NetscapeCoreAnimationPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298808902C53008A9EFC /* Debug */, - 149C298908902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/main.m b/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/main.m deleted file mode 100644 index 1f9e96b..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/main.m +++ /dev/null @@ -1,246 +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 <Quartz/Quartz.h> -#import <QuartzCore/QuartzCore.h> - -// Browser function table -static NPNetscapeFuncs* browser; - -// Structure for per-instance storage -typedef struct PluginObject -{ - NPP npp; - - NPWindow window; - - QCCompositionLayer *layer; - bool gold; -} 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 Core Animation drawing model - NPBool supportsCoreAnimation; - if (browser->getvalue(instance, NPNVsupportsCoreAnimationBool, &supportsCoreAnimation) != NPERR_NO_ERROR) - supportsCoreAnimation = FALSE; - - if (!supportsCoreAnimation) - return NPERR_INCOMPATIBLE_VERSION_ERROR; - - // If the browser supports the Core Animation drawing model, enable it. - browser->setvalue(instance, NPPVpluginDrawingModel, (void *)NPDrawingModelCoreAnimation); - - // 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->layer 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 handleMouseClick(PluginObject *obj, NPCocoaEvent *event) -{ - obj->gold = !obj->gold; - - [obj->layer setValue:[NSNumber numberWithBool:obj->gold] forInputKey:@"gold"]; -} - -int16 NPP_HandleEvent(NPP instance, void* event) -{ - PluginObject *obj = instance->pdata; - - NPCocoaEvent *cocoaEvent = event; - - switch(cocoaEvent->type) { - case NPCocoaEventMouseDown: - handleMouseClick(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) -{ - PluginObject *obj = instance->pdata; - - switch (variable) { - case NPPVpluginCoreAnimationLayer: - if (!obj->layer) { - NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.netscapecoreanimationplugin"] pathForResource:@"Composition" ofType:@"qtz"]; - - QCComposition *composition = [QCComposition compositionWithFile:path]; - obj->layer = [[QCCompositionLayer compositionLayerWithComposition:composition] retain]; - } - - // Make sure to return a retained layer - *((CALayer **)value) = [obj->layer retain]; - - return NPERR_NO_ERROR; - - default: - return NPERR_GENERIC_ERROR; - } -} - -NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value) -{ - return NPERR_GENERIC_ERROR; -} diff --git a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/test.html b/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/test.html deleted file mode 100644 index 8e0b4be..0000000 --- a/WebKitExamplePlugins/NetscapeCoreAnimationPlugin/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-core-animation-plugin"></embed> -</div> -</body> -</html> diff --git a/WebKitExamplePlugins/NetscapeInputMethodPlugin/English.lproj/InfoPlist.strings b/WebKitExamplePlugins/NetscapeInputMethodPlugin/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100644 index 5e45963..0000000 --- a/WebKitExamplePlugins/NetscapeInputMethodPlugin/English.lproj/InfoPlist.strings +++ /dev/null diff --git a/WebKitExamplePlugins/NetscapeInputMethodPlugin/Info.plist b/WebKitExamplePlugins/NetscapeInputMethodPlugin/Info.plist deleted file mode 100644 index a09cb1f..0000000 --- a/WebKitExamplePlugins/NetscapeInputMethodPlugin/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>NetscapeInputMethodPlugin</string> - <key>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>com.apple.netscapeinputmethodplugin</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 shows how to use input methods</string> - <key>WebPluginMIMETypes</key> - <dict> - <key>test/x-netscape-input-method-plugin</key> - <dict> - <key>WebPluginTypeDescription</key> - <string>Netscape Input Method Plug-in</string> - </dict> - </dict> - <key>WebPluginName</key> - <string>Netscape Input Method Plug-in</string> -</dict> -</plist> diff --git a/WebKitExamplePlugins/NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj/project.pbxproj b/WebKitExamplePlugins/NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj/project.pbxproj deleted file mode 100644 index 474c2cb..0000000 --- a/WebKitExamplePlugins/NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj/project.pbxproj +++ /dev/null @@ -1,243 +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 */; }; - 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>"; }; - 8D576316048677EA00EA77CD /* NetscapeInputMethodPlugin.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetscapeInputMethodPlugin.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 /* NetscapeInputMethodPlugin */ = { - isa = PBXGroup; - children = ( - 08FB77AFFE84173DC02AAC07 /* Source */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - ); - name = NetscapeInputMethodPlugin; - 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 */, - ); - name = Source; - sourceTree = "<group>"; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* NetscapeInputMethodPlugin.plugin */, - ); - name = Products; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* NetscapeInputMethodPlugin */ = { - isa = PBXNativeTarget; - buildConfigurationList = 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeInputMethodPlugin" */; - buildPhases = ( - 8D576311048677EA00EA77CD /* Sources */, - 8D57630F048677EA00EA77CD /* Resources */, - 8D576313048677EA00EA77CD /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = NetscapeInputMethodPlugin; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = NetscapeInputMethodPlugin; - productReference = 8D576316048677EA00EA77CD /* NetscapeInputMethodPlugin.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 "NetscapeInputMethodPlugin" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 089C166AFE841209C02AAC07 /* NetscapeInputMethodPlugin */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D57630D048677EA00EA77CD /* NetscapeInputMethodPlugin */, - ); - }; -/* 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 */, - ); - 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 = NetscapeInputMethodPlugin; - 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 = NetscapeInputMethodPlugin; - 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_C_LANGUAGE_STANDARD = c99; - 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_C_LANGUAGE_STANDARD = c99; - 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 "NetscapeInputMethodPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298408902C53008A9EFC /* Debug */, - 149C298508902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NetscapeInputMethodPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 149C298808902C53008A9EFC /* Debug */, - 149C298908902C53008A9EFC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/WebKitExamplePlugins/NetscapeInputMethodPlugin/main.m b/WebKitExamplePlugins/NetscapeInputMethodPlugin/main.m deleted file mode 100644 index 0adc21b..0000000 --- a/WebKitExamplePlugins/NetscapeInputMethodPlugin/main.m +++ /dev/null @@ -1,398 +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> - -// Browser function table -static NPNetscapeFuncs* browser; - -// Structure for per-instance storage -typedef struct PluginObject -{ - NPP npp; - - NPWindow window; - - bool pluginHasFocus; - - bool textFieldHasFocus; - NSRect textFieldRect; - - NSRange selectedRange; - NSTextStorage *textStorage; - NSLayoutManager *layoutManager; - NSTextContainer *textContainer; - -} 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); - - obj->textFieldRect = NSMakeRect(10, 10, 200, 100); - - obj->textStorage = [[NSTextStorage alloc] initWithString:@""]; - obj->layoutManager = [[NSLayoutManager alloc] init]; - [obj->textStorage addLayoutManager:obj->layoutManager]; - - obj->textContainer = [[NSTextContainer alloc] initWithContainerSize:obj->textFieldRect.size]; - [obj->layoutManager addTextContainer:obj->textContainer]; - - obj->selectedRange.location = [obj->textStorage length]; - - return NPERR_NO_ERROR; -} - -NPError NPP_Destroy(NPP instance, NPSavedData** save) -{ - // Free per-instance storage - PluginObject* obj = instance->pdata; - - [obj->textStorage release]; - [obj->layoutManager 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, NPCocoaEvent *event) -{ - NSGraphicsContext *oldContext = [[NSGraphicsContext currentContext] retain]; - - NSGraphicsContext *context = [NSGraphicsContext graphicsContextWithGraphicsPort:event->data.draw.context - flipped:YES]; - - - [NSGraphicsContext setCurrentContext:context]; - - NSRect rect = NSMakeRect(0, 0, obj->window.width, obj->window.height); - - [[NSColor lightGrayColor] set]; - [NSBezierPath fillRect:rect]; - - if (obj->pluginHasFocus) { - [[NSColor blackColor] set]; - [NSBezierPath strokeRect:rect]; - } - - [[NSColor whiteColor] set]; - [NSBezierPath fillRect:obj->textFieldRect]; - - // Draw the text - NSRange glyphRange = [obj->layoutManager glyphRangeForTextContainer:obj->textContainer]; - if (glyphRange.length > 0) { - [obj->layoutManager drawBackgroundForGlyphRange:glyphRange atPoint:obj->textFieldRect.origin]; - [obj->layoutManager drawGlyphsForGlyphRange:glyphRange atPoint:obj->textFieldRect.origin]; - } - - NSBezierPath *textInputBorder = [NSBezierPath bezierPathWithRect:obj->textFieldRect]; - [[NSColor blackColor] set]; - - if (obj->pluginHasFocus && obj->textFieldHasFocus) - [textInputBorder setLineWidth:2]; - else - [textInputBorder setLineWidth:1]; - - [textInputBorder stroke]; - - if (obj->pluginHasFocus && obj->textFieldHasFocus) { - NSUInteger rectCount; - NSRect *rectArray = [obj->layoutManager rectArrayForCharacterRange:obj->selectedRange - withinSelectedCharacterRange:obj->selectedRange - inTextContainer:obj->textContainer - rectCount:&rectCount]; - - [[NSColor blackColor] set]; - for (unsigned i = 0; i < rectCount; i++) { - NSRect rect = rectArray[i]; - rect.origin.x += obj->textFieldRect.origin.x; - rect.origin.y += obj->textFieldRect.origin.y; - - [NSBezierPath strokeRect:rect]; - } - } - - [NSGraphicsContext setCurrentContext:oldContext]; -} - -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 handleFocusChanged(NPCocoaEvent* cocoaEvent, PluginObject* obj) -{ - obj->pluginHasFocus = cocoaEvent->data.focus.hasFocus; - - invalidatePlugin(obj); -} - -static void handleMouseMoved(NPCocoaEvent* cocoaEvent, PluginObject* obj) -{ - NSPoint point = NSMakePoint(cocoaEvent->data.mouse.pluginX, cocoaEvent->data.mouse.pluginY); - - if (NSPointInRect(point, obj->textFieldRect)) - [[NSCursor IBeamCursor] set]; - else - [[NSCursor arrowCursor] set]; -} - -static void handleMouseDown(NPCocoaEvent* cocoaEvent, PluginObject* obj) -{ - NSPoint point = NSMakePoint(cocoaEvent->data.mouse.pluginX, cocoaEvent->data.mouse.pluginY); - - obj->textFieldHasFocus = NSPointInRect(point, obj->textFieldRect); - - invalidatePlugin(obj); -} - -static int16_t handleTextFieldKeyDown(NPCocoaEvent* event, PluginObject* obj) -{ - NSString *string = (NSString *)event->data.key.charactersIgnoringModifiers; - - unichar c = [string length] > 0 ? [string characterAtIndex:0] : 0; - - switch (c) { - case NSLeftArrowFunctionKey: - if (obj->selectedRange.location > 0) { - obj->selectedRange.location--; - invalidatePlugin(obj); - } - return 1; - - case NSRightArrowFunctionKey: - if (obj->selectedRange.location < [obj->textStorage length]) { - obj->selectedRange.location++; - invalidatePlugin(obj); - } - - return 1; - - default: - // Return 0 and let the text input system handle it. - return 0; - } -} - - -static int16_t handleTextInput(NPCocoaEvent* event, PluginObject* obj) -{ - NSString *string = (NSString *)event->data.text.text; - NSRange range = obj->selectedRange; - - [obj->textStorage replaceCharactersInRange:range withString:string]; - - obj->selectedRange.location = range.location + [string length]; - obj->selectedRange.length = 0; - - invalidatePlugin(obj); - - return 1; -} - -int16 NPP_HandleEvent(NPP instance, void* event) -{ - PluginObject* obj = instance->pdata; - - NPCocoaEvent* cocoaEvent = event; - - switch (cocoaEvent->type) { - case NPCocoaEventDrawRect: - handleDraw(obj, cocoaEvent); - return 1; - case NPCocoaEventFocusChanged: - handleFocusChanged(cocoaEvent, obj); - return 1; - case NPCocoaEventMouseMoved: - handleMouseMoved(cocoaEvent, obj); - return 1; - case NPCocoaEventMouseDown: - handleMouseDown(cocoaEvent, obj); - return 1; - case NPCocoaEventKeyDown: - // If the text field has focus we ignore the event, causing it - // to be sent to the input manager. - if (obj->textFieldHasFocus) - return handleTextFieldKeyDown(cocoaEvent, obj); - else - return 1; - case NPCocoaEventTextInput: - return handleTextInput(cocoaEvent, obj); - 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/NetscapeInputMethodPlugin/test.html b/WebKitExamplePlugins/NetscapeInputMethodPlugin/test.html deleted file mode 100644 index d41a4c0..0000000 --- a/WebKitExamplePlugins/NetscapeInputMethodPlugin/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>Netscape Input Method Plug-In</title> -</head> -<body> -<div> - <embed width="400" height="400" type="test/x-netscape-input-method-plugin"></embed> -</div> -</body> -</html> |
