18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen * Copyright 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef WebCoreSystemInterface_h
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WebCoreSystemInterface_h
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <ApplicationServices/ApplicationServices.h>
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <objc/objc.h>
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
322daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if PLATFORM(MAC) && USE(CA) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
33f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#include <IOSurface/IOSurface.h>
34f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#endif
35f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _NSRange NSRange;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct CGPoint NSPoint;
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct CGRect NSRect;
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _NSPoint NSPoint;
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _NSRect NSRect;
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef __OBJC__
478f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSArray;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSButtonCell;
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSData;
508f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSDate;
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSEvent;
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSFont;
5381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch@class NSHTTPCookie;
548f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSImage;
558f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSMenu;
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSMutableURLRequest;
578f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSString;
588f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSTextFieldCell;
5981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch@class NSURL;
608f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSURLConnection;
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSURLRequest;
628f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSURLResponse;
638f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian@class NSView;
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class QTMovie;
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class QTMovieView;
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else
6706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSArray;
6806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSButtonCell;
6906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSData;
7006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSDate;
7106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSEvent;
7206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSFont;
7381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochclass NSHTTPCookie;
7406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSImage;
7506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSMenu;
7606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSMutableArray;
7706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSMutableURLRequest;
7881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochclass NSURL;
7906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSURLRequest;
8006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSString;
8106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSTextFieldCell;
8206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSURLConnection;
8306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSURLResponse;
8406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass NSView;
8506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass QTMovie;
8606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenclass QTMovieView;
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
892bde8e466a4451c7319e3a072d118917957d6554Steve Blocktypedef struct _CFURLResponse *CFURLResponseRef;
902bde8e466a4451c7319e3a072d118917957d6554Steve Block
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern "C" {
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// In alphabetical order.
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkAdvanceDefaultButtonPulseAnimation)(NSButtonCell *);
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern BOOL (*wkCGContextGetShouldSmoothFonts)(CGContextRef);
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern CFReadStreamRef (*wkCreateCustomCFReadStream)(void *(*formCreate)(CFReadStreamRef, void *),
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void (*formFinalize)(CFReadStreamRef, void *),
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Boolean (*formOpen)(CFReadStreamRef, CFStreamError *, Boolean *, void *),
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    CFIndex (*formRead)(CFReadStreamRef, UInt8 *, CFIndex, CFStreamError *, Boolean *, void *),
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Boolean (*formCanRead)(CFReadStreamRef, void *),
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void (*formClose)(CFReadStreamRef, void *),
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void (*formSchedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *),
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void (*formUnschedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *),
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void *context);
106a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochextern CFStringRef (*wkCopyCFLocalizationPreferredName)(CFStringRef);
107dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockextern NSString* (*wkCopyNSURLResponseStatusLine)(NSURLResponse*);
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern id (*wkCreateNSURLConnectionDelegateProxy)(void);
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkDrawBezeledTextFieldCell)(NSRect, BOOL enabled);
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkDrawTextFieldCellFocusRing)(NSTextFieldCell*, NSRect);
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkDrawCapsLockIndicator)(CGContextRef, CGRect);
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkDrawBezeledTextArea)(NSRect, BOOL enabled);
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkDrawFocusRing)(CGContextRef, CGColorRef, int radius);
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern NSFont* (*wkGetFontInLanguageForRange)(NSFont*, NSString*, NSRange);
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern NSFont* (*wkGetFontInLanguageForCharacter)(NSFont*, UniChar);
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern BOOL (*wkGetGlyphTransformedAdvances)(CGFontRef, NSFont*, CGAffineTransform*, ATSGlyphRef*, CGSize* advance);
1170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochextern void (*wkDrawMediaSliderTrack)(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime,
1180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    float duration, unsigned state);
1190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochextern void (*wkDrawMediaUIPart)(int part, int themeStyle, CGContextRef context, CGRect rect, unsigned state);
1202bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern CFStringRef (*wkSignedPublicKeyAndChallengeString)(unsigned keySize, CFStringRef challenge, CFStringRef keyDescription);
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern NSString* (*wkGetPreferredExtensionForMIMEType)(NSString*);
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern NSArray* (*wkGetExtensionsForMIMEType)(NSString*);
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern NSString* (*wkGetMIMETypeForExtension)(NSString*);
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern ATSUFontID (*wkGetNSFontATSUFontId)(NSFont*);
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern double (*wkGetNSURLResponseCalculatedExpiration)(NSURLResponse *response);
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern NSDate *(*wkGetNSURLResponseLastModifiedDate)(NSURLResponse *response);
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern BOOL (*wkGetNSURLResponseMustRevalidate)(NSURLResponse *response);
128545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdochextern void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, BOOL* continuous);
129635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectextern BOOL (*wkHitTestMediaUIPart)(int part, int themeStyle, CGRect bounds, CGPoint point);
130635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectextern void (*wkMeasureMediaUIPart)(int part, int themeStyle, CGRect *bounds, CGSize *naturalSize);
131643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockextern BOOL (*wkMediaControllerThemeAvailable)(int themeStyle);
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*);
1335f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianextern unsigned (*wkQTIncludeOnlyModernMediaFileTypes)(void);
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern int (*wkQTMovieDataRate)(QTMovie*);
1355ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsenextern void (*wkQTMovieDisableComponent)(uint32_t[5]);
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern float (*wkQTMovieMaxTimeLoaded)(QTMovie*);
1375f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianextern NSString *(*wkQTMovieMaxTimeLoadedChangeNotification)(void);
1385f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianextern float (*wkQTMovieMaxTimeSeekable)(QTMovie*);
139dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockextern int (*wkQTMovieGetType)(QTMovie*);
140dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockextern BOOL (*wkQTMovieHasClosedCaptions)(QTMovie*);
141dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockextern void (*wkQTMovieSetShowClosedCaptions)(QTMovie*, BOOL);
142dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockextern void (*wkQTMovieSelectPreferredAlternates)(QTMovie*);
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkQTMovieViewSetDrawSynchronously)(QTMovieView*, BOOL);
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*);
145e14391e94c850b8bd03680c23b38978db68687a8John Reckextern void (*wkSetCookieStoragePrivateBrowsingEnabled)(BOOL);
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSetDragImage)(NSImage*, NSPoint offset);
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSetNSURLConnectionDefersCallbacks)(NSURLConnection *, BOOL);
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSetNSURLRequestShouldContentSniff)(NSMutableURLRequest *, BOOL);
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSetPatternBaseCTM)(CGContextRef, CGAffineTransform);
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSetPatternPhaseInUserSpace)(CGContextRef, CGPoint);
151d0825bca7fe65beaee391d30da42e937db621564Steve Blockextern CGAffineTransform (*wkGetUserToBaseCTM)(CGContextRef);
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSetUpFontCache)();
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSignalCFReadStreamEnd)(CFReadStreamRef stream);
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSignalCFReadStreamError)(CFReadStreamRef stream, CFStreamError *error);
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkSignalCFReadStreamHasBytes)(CFReadStreamRef stream);
1565f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianextern unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
1572fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern int (*wkGetHTTPPipeliningPriority)(NSURLRequest *);
1582daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochextern void (*wkSetHTTPPipeliningMaximumPriority)(int maximumPriority);
1592fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkSetHTTPPipeliningPriority)(NSMutableURLRequest *, int priority);
1602daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochextern void (*wkSetHTTPPipeliningMinimumFastLanePriority)(int priority);
161643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockextern void (*wkSetCONNECTProxyForStream)(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
162643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockextern void (*wkSetCONNECTProxyAuthorizationForStream)(CFReadStreamRef, CFStringRef proxyAuthorizationString);
163643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockextern CFHTTPMessageRef (*wkCopyCONNECTProxyResponse)(CFReadStreamRef, CFURLRef responseURL);
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef BUILDING_ON_TIGER
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkGetGlyphsForCharacters)(CGFontRef, const UniChar[], CGGlyph[], size_t);
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define GLYPH_VECTOR_SIZE (50 * 32)
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkClearGlyphVector)(void* glyphs);
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern OSStatus (*wkConvertCharToGlyphs)(void* styleGroup, const UniChar*, unsigned numCharacters, void* glyphs);
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern CFStringRef (*wkCopyFullFontName)(CGFontRef font);
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern OSStatus (*wkGetATSStyleGroup)(ATSUStyle, void** styleGroup);
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern CGFontRef (*wkGetCGFontFromNSFont)(NSFont*);
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkGetFontMetrics)(CGFontRef, int* ascent, int* descent, int* lineGap, unsigned* unitsPerEm);
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern ATSLayoutRecord* (*wkGetGlyphVectorFirstRecord)(void* glyphVector);
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void* wkGetGlyphsForCharacters;
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern int (*wkGetGlyphVectorNumGlyphs)(void* glyphVector);
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern size_t (*wkGetGlyphVectorRecordSize)(void* glyphVector);
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern OSStatus (*wkInitializeGlyphVector)(int count, void* glyphs);
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern void (*wkReleaseStyleGroup)(void* group);
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectextern BOOL (*wkSupportsMultipartXMixedReplace)(NSMutableURLRequest *);
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
185635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectextern BOOL (*wkUseSharedMediaUI)();
186635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
187d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
18806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenextern void* wkGetHyphenationLocationBeforeIndex;
189d0825bca7fe65beaee391d30da42e937db621564Steve Block#else
19006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenextern CFIndex (*wkGetHyphenationLocationBeforeIndex)(CFStringRef string, CFIndex index);
1912daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
1922daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochtypedef enum {
1932daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    wkEventPhaseNone = 0,
1942daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    wkEventPhaseBegan = 1,
1952daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    wkEventPhaseChanged = 2,
1962daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    wkEventPhaseEnded = 3,
1972daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} wkEventPhase;
1982daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
1992daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochextern int (*wkGetNSEventMomentumPhase)(NSEvent *);
200d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif
201d0825bca7fe65beaee391d30da42e937db621564Steve Block
2026b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerextern CTLineRef (*wkCreateCTLineWithUniCharProvider)(const UniChar* (*provide)(CFIndex stringIndex, CFIndex* charCount, CFDictionaryRef* attributes, void*), void (*dispose)(const UniChar* chars, void*), void*);
2036b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
2046b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerextern CTTypesetterRef (*wkCreateCTTypesetterWithUniCharProviderAndOptions)(const UniChar* (*provide)(CFIndex stringIndex, CFIndex* charCount, CFDictionaryRef* attributes, void*), void (*dispose)(const UniChar* chars, void*), void*, CFDictionaryRef options);
205f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
206f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochextern CGContextRef (*wkIOSurfaceContextCreate)(IOSurfaceRef surface, unsigned width, unsigned height, CGColorSpaceRef colorSpace);
207f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochextern CGImageRef (*wkIOSurfaceContextCreateImage)(CGContextRef context);
208ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch
209ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochtypedef struct __WKScrollbarPainter *WKScrollbarPainterRef;
2102bde8e466a4451c7319e3a072d118917957d6554Steve Blocktypedef struct __WKScrollbarPainterController *WKScrollbarPainterControllerRef;
2112bde8e466a4451c7319e3a072d118917957d6554Steve Block
212ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochextern WKScrollbarPainterRef (*wkMakeScrollbarPainter)(int controlSize, bool isHorizontal);
2132fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern WKScrollbarPainterRef (*wkMakeScrollbarReplacementPainter)(WKScrollbarPainterRef oldPainter, int newStyle, int controlSize, bool isHorizontal);
2142fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkScrollbarPainterSetDelegate)(WKScrollbarPainterRef, id scrollbarPainterDelegate);
215ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochextern void (*wkScrollbarPainterPaint)(WKScrollbarPainterRef, bool enabled, double value, CGFloat proportion, CGRect frameRect);
2162bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern void (*wkScrollbarPainterForceFlashScrollers)(WKScrollbarPainterControllerRef);
2172fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern int (*wkScrollbarThickness)(int controlSize);
2182fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern int (*wkScrollbarMinimumThumbLength)(WKScrollbarPainterRef);
2192fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern int (*wkScrollbarMinimumTotalLengthNeededForThumb)(WKScrollbarPainterRef);
2202fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CGFloat (*wkScrollbarPainterKnobAlpha)(WKScrollbarPainterRef);
2212fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkSetScrollbarPainterKnobAlpha)(WKScrollbarPainterRef, CGFloat);
2222fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CGFloat (*wkScrollbarPainterTrackAlpha)(WKScrollbarPainterRef);
2232fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkSetScrollbarPainterTrackAlpha)(WKScrollbarPainterRef, CGFloat);
2242fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern bool (*wkScrollbarPainterIsHorizontal)(WKScrollbarPainterRef);
2252fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkScrollbarPainterSetOverlayState)(WKScrollbarPainterRef, int overlayScrollerState);
2262fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
2272fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern WKScrollbarPainterControllerRef (*wkMakeScrollbarPainterController)(id painterControllerDelegate);
2282fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkSetPainterForPainterController)(WKScrollbarPainterControllerRef, WKScrollbarPainterRef, bool isHorizontal);
2292fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern WKScrollbarPainterRef (*wkVerticalScrollbarPainterForController)(WKScrollbarPainterControllerRef);
2302fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern WKScrollbarPainterRef (*wkHorizontalScrollbarPainterForController)(WKScrollbarPainterControllerRef);
2312fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkSetScrollbarPainterControllerStyle)(WKScrollbarPainterControllerRef, int newStyle);
2322fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkContentAreaScrolled)(WKScrollbarPainterControllerRef);
2332fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkContentAreaWillPaint)(WKScrollbarPainterControllerRef);
2342fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkMouseEnteredContentArea)(WKScrollbarPainterControllerRef);
2352fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkMouseExitedContentArea)(WKScrollbarPainterControllerRef);
2362fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkMouseMovedInContentArea)(WKScrollbarPainterControllerRef);
2372fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkWillStartLiveResize)(WKScrollbarPainterControllerRef);
2382fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkContentAreaResized)(WKScrollbarPainterControllerRef);
2392fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkWillEndLiveResize)(WKScrollbarPainterControllerRef);
2402fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkContentAreaDidShow)(WKScrollbarPainterControllerRef);
2412fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkContentAreaDidHide)(WKScrollbarPainterControllerRef);
2422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochextern void (*wkDidBeginScrollGesture)(WKScrollbarPainterControllerRef);
2432daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochextern void (*wkDidEndScrollGesture)(WKScrollbarPainterControllerRef);
2442fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
2452fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern bool (*wkScrollbarPainterUsesOverlayScrollers)(void);
2466b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#endif
2476b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
2482fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkUnregisterUniqueIdForElement)(id element);
2492fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern void (*wkAccessibilityHandleFocusChanged)(void);
2502fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CFTypeID (*wkGetAXTextMarkerTypeID)(void);
2512fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CFTypeID (*wkGetAXTextMarkerRangeTypeID)(void);
2522fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CFTypeRef (*wkCreateAXTextMarkerRange)(CFTypeRef start, CFTypeRef end);
2532fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CFTypeRef (*wkCopyAXTextMarkerRangeStart)(CFTypeRef range);
2542fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CFTypeRef (*wkCopyAXTextMarkerRangeEnd)(CFTypeRef range);
2552fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern CFTypeRef (*wkCreateAXTextMarker)(const void *bytes, size_t len);
2562fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern BOOL (*wkGetBytesFromAXTextMarker)(CFTypeRef textMarker, void *bytes, size_t length);
2572fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockextern AXUIElementRef (*wkCreateAXUIElementRef)(id element);
2582fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
25981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochtypedef const struct __CFURLStorageSession* CFURLStorageSessionRef;
26081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern CFURLStorageSessionRef (*wkCreatePrivateStorageSession)(CFStringRef);
26181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSURLRequest* (*wkCopyRequestWithStorageSession)(CFURLStorageSessionRef, NSURLRequest*);
26281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
26381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochtypedef struct OpaqueCFHTTPCookieStorage* CFHTTPCookieStorageRef;
2642bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern CFHTTPCookieStorageRef (*wkCopyHTTPCookieStorage)(CFURLStorageSessionRef);
26581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern unsigned (*wkGetHTTPCookieAcceptPolicy)(CFHTTPCookieStorageRef);
26681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern NSArray *(*wkHTTPCookiesForURL)(CFHTTPCookieStorageRef, NSURL *);
26781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern void (*wkSetHTTPCookiesForURL)(CFHTTPCookieStorageRef, NSArray *, NSURL *, NSURL *);
26881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochextern void (*wkDeleteHTTPCookie)(CFHTTPCookieStorageRef, NSHTTPCookie *);
26981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
2702bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern CFStringRef (*wkGetCFURLResponseMIMEType)(CFURLResponseRef);
2712bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern CFURLRef (*wkGetCFURLResponseURL)(CFURLResponseRef);
2722bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern CFHTTPMessageRef (*wkGetCFURLResponseHTTPResponse)(CFURLResponseRef);
2732bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern CFStringRef (*wkCopyCFURLResponseSuggestedFilename)(CFURLResponseRef);
2742bde8e466a4451c7319e3a072d118917957d6554Steve Blockextern void (*wkSetCFURLResponseMIMEType)(CFURLResponseRef, CFStringRef mimeType);
2752bde8e466a4451c7319e3a072d118917957d6554Steve Block
2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
279