1/* 2 * Copyright (C) 2004-2006 Apple Inc. All rights reserved. 3 * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27#import <WebCore/DOMAttr.h> 28#import <WebCore/DOMCSS.h> 29#import <WebCore/DOMCSSStyleDeclaration.h> 30#import <WebCore/DOMDocument.h> 31#import <WebCore/DOMElement.h> 32#import <WebCore/DOMHTML.h> 33#import <WebCore/DOMHTMLAnchorElement.h> 34#import <WebCore/DOMHTMLAreaElement.h> 35#import <WebCore/DOMHTMLDocument.h> 36#import <WebCore/DOMHTMLElement.h> 37#import <WebCore/DOMHTMLEmbedElement.h> 38#import <WebCore/DOMHTMLImageElement.h> 39#import <WebCore/DOMHTMLInputElement.h> 40#import <WebCore/DOMHTMLLinkElement.h> 41#import <WebCore/DOMHTMLObjectElement.h> 42#import <WebCore/DOMNode.h> 43#import <WebCore/DOMRGBColor.h> 44#import <WebCore/DOMRange.h> 45 46#if TARGET_OS_IPHONE 47#import <CoreGraphics/CoreGraphics.h> 48#endif 49 50@class NSArray; 51#if !TARGET_OS_IPHONE 52@class NSImage; 53#endif 54@class NSURL; 55 56 57#if TARGET_OS_IPHONE 58@interface DOMHTMLElement (DOMHTMLElementExtensions) 59- (int)scrollXOffset; 60- (int)scrollYOffset; 61- (void)setScrollXOffset:(int)x scrollYOffset:(int)y; 62- (void)setScrollXOffset:(int)x scrollYOffset:(int)y adjustForIOSCaret:(BOOL)adjustForIOSCaret; 63- (void)absolutePosition:(int *)x :(int *)y :(int *)w :(int *)h; 64@end 65#endif 66 67#if TARGET_OS_IPHONE 68typedef struct _WKQuad { 69 CGPoint p1; 70 CGPoint p2; 71 CGPoint p3; 72 CGPoint p4; 73} WKQuad; 74 75@interface WKQuadObject : NSObject 76{ 77 WKQuad _quad; 78} 79 80- (id)initWithQuad:(WKQuad)quad; 81- (WKQuad)quad; 82- (CGRect)boundingBox; 83@end 84#endif 85 86@interface DOMNode (DOMNodeExtensions) 87#if TARGET_OS_IPHONE 88- (CGRect)boundingBox; 89#else 90- (NSRect)boundingBox WEBKIT_AVAILABLE_MAC(10_5); 91#endif 92- (NSArray *)lineBoxRects WEBKIT_AVAILABLE_MAC(10_5); 93 94#if TARGET_OS_IPHONE 95- (CGRect)boundingBoxUsingTransforms; // takes transforms into account 96 97- (WKQuad)absoluteQuad; 98- (WKQuad)absoluteQuadAndInsideFixedPosition:(BOOL *)insideFixed; 99- (NSArray *)lineBoxQuads; // returns array of WKQuadObject 100 101- (NSURL *)hrefURL; 102- (CGRect)hrefFrame; 103- (NSString *)hrefTarget; 104- (NSString *)hrefLabel; 105- (NSString *)hrefTitle; 106- (CGRect)boundingFrame; 107- (WKQuad)innerFrameQuad; // takes transforms into account 108- (float)computedFontSize; 109- (DOMNode *)nextFocusNode; 110- (DOMNode *)previousFocusNode; 111#endif 112@end 113 114@interface DOMElement (DOMElementAppKitExtensions) 115#if !TARGET_OS_IPHONE 116- (NSImage *)image WEBKIT_AVAILABLE_MAC(10_5); 117#endif 118@end 119 120@interface DOMHTMLDocument (DOMHTMLDocumentExtensions) 121- (DOMDocumentFragment *)createDocumentFragmentWithMarkupString:(NSString *)markupString baseURL:(NSURL *)baseURL WEBKIT_AVAILABLE_MAC(10_5); 122- (DOMDocumentFragment *)createDocumentFragmentWithText:(NSString *)text WEBKIT_AVAILABLE_MAC(10_5); 123@end 124 125#if TARGET_OS_IPHONE 126@interface DOMHTMLAreaElement (DOMHTMLAreaElementExtensions) 127- (CGRect)boundingFrameForOwner:(DOMNode *)anOwner; 128@end 129 130@interface DOMHTMLSelectElement (DOMHTMLSelectElementExtensions) 131- (DOMNode *)listItemAtIndex:(int)anIndex; 132@end 133#endif 134