1 /* 2 WebKitSystemInterface.h 3 Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 4 5 Public header file. 6 */ 7 8 #import <Cocoa/Cocoa.h> 9 #import <Carbon/Carbon.h> 10 11 @class QTMovie; 12 @class QTMovieView; 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 typedef enum { 19 WKCertificateParseResultSucceeded = 0, 20 WKCertificateParseResultFailed = 1, 21 WKCertificateParseResultPKCS7 = 2, 22 } WKCertificateParseResult; 23 24 CFStringRef WKCopyCFLocalizationPreferredName(CFStringRef localization); 25 CFStringRef WKSignedPublicKeyAndChallengeString(unsigned keySize, CFStringRef challenge, CFStringRef keyDescription); 26 WKCertificateParseResult WKAddCertificatesToKeychainFromData(const void *bytes, unsigned length); 27 28 NSString *WKGetPreferredExtensionForMIMEType(NSString *type); 29 NSArray *WKGetExtensionsForMIMEType(NSString *type); 30 NSString *WKGetMIMETypeForExtension(NSString *extension); 31 32 NSDate *WKGetNSURLResponseLastModifiedDate(NSURLResponse *response); 33 NSTimeInterval WKGetNSURLResponseFreshnessLifetime(NSURLResponse *response); 34 35 CFStringEncoding WKGetWebDefaultCFStringEncoding(void); 36 37 void WKSetMetadataURL(NSString *URLString, NSString *referrer, NSString *path); 38 void WKSetNSURLConnectionDefersCallbacks(NSURLConnection *connection, BOOL defers); 39 40 void WKShowKeyAndMain(void); 41 #ifndef __LP64__ 42 OSStatus WKSyncWindowWithCGAfterMove(WindowRef); 43 unsigned WKCarbonWindowMask(void); 44 void *WKGetNativeWindowFromWindowRef(WindowRef); 45 OSType WKCarbonWindowPropertyCreator(void); 46 OSType WKCarbonWindowPropertyTag(void); 47 #endif 48 49 typedef id WKNSURLConnectionDelegateProxyPtr; 50 51 WKNSURLConnectionDelegateProxyPtr WKCreateNSURLConnectionDelegateProxy(void); 52 53 void WKDisableCGDeferredUpdates(void); 54 55 Class WKNSURLProtocolClassForRequest(NSURLRequest *request); 56 void WKSetNSURLRequestShouldContentSniff(NSMutableURLRequest *request, BOOL shouldContentSniff); 57 58 unsigned WKGetNSAutoreleasePoolCount(void); 59 60 void WKAdvanceDefaultButtonPulseAnimation(NSButtonCell *button); 61 62 NSString *WKMouseMovedNotification(void); 63 NSString *WKWindowWillOrderOnScreenNotification(void); 64 void WKSetNSWindowShouldPostEventNotifications(NSWindow *window, BOOL post); 65 66 CFTypeID WKGetAXTextMarkerTypeID(void); 67 CFTypeID WKGetAXTextMarkerRangeTypeID(void); 68 CFTypeRef WKCreateAXTextMarker(const void *bytes, size_t len); 69 BOOL WKGetBytesFromAXTextMarker(CFTypeRef textMarker, void *bytes, size_t length); 70 CFTypeRef WKCreateAXTextMarkerRange(CFTypeRef start, CFTypeRef end); 71 CFTypeRef WKCopyAXTextMarkerRangeStart(CFTypeRef range); 72 CFTypeRef WKCopyAXTextMarkerRangeEnd(CFTypeRef range); 73 void WKAccessibilityHandleFocusChanged(void); 74 AXUIElementRef WKCreateAXUIElementRef(id element); 75 void WKUnregisterUniqueIdForElement(id element); 76 77 void WKSetUpFontCache(void); 78 79 void WKSignalCFReadStreamEnd(CFReadStreamRef stream); 80 void WKSignalCFReadStreamHasBytes(CFReadStreamRef stream); 81 void WKSignalCFReadStreamError(CFReadStreamRef stream, CFStreamError *error); 82 83 CFReadStreamRef WKCreateCustomCFReadStream(void *(*formCreate)(CFReadStreamRef, void *), 84 void (*formFinalize)(CFReadStreamRef, void *), 85 Boolean (*formOpen)(CFReadStreamRef, CFStreamError *, Boolean *, void *), 86 CFIndex (*formRead)(CFReadStreamRef, UInt8 *, CFIndex, CFStreamError *, Boolean *, void *), 87 Boolean (*formCanRead)(CFReadStreamRef, void *), 88 void (*formClose)(CFReadStreamRef, void *), 89 void (*formSchedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *), 90 void (*formUnschedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *), 91 void *context); 92 93 void WKDrawCapsLockIndicator(CGContextRef, CGRect); 94 95 void WKDrawFocusRing(CGContextRef context, CGColorRef color, int radius); 96 // The CG context's current path is the focus ring's path. 97 // A color of 0 means "use system focus ring color". 98 // A radius of 0 means "use default focus ring radius". 99 100 void WKSetDragImage(NSImage *image, NSPoint offset); 101 102 void WKDrawBezeledTextFieldCell(NSRect, BOOL enabled); 103 void WKDrawTextFieldCellFocusRing(NSTextFieldCell*, NSRect); 104 void WKDrawBezeledTextArea(NSRect, BOOL enabled); 105 void WKPopupMenu(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*); 106 107 void WKSendUserChangeNotifications(void); 108 #ifndef __LP64__ 109 BOOL WKConvertNSEventToCarbonEvent(EventRecord *carbonEvent, NSEvent *cocoaEvent); 110 void WKSendKeyEventToTSM(NSEvent *theEvent); 111 void WKCallDrawingNotification(CGrafPtr port, Rect *bounds); 112 #endif 113 114 BOOL WKGetGlyphTransformedAdvances(CGFontRef, NSFont*, CGAffineTransform *m, ATSGlyphRef *glyph, CGSize *advance); 115 NSFont *WKGetFontInLanguageForRange(NSFont *font, NSString *string, NSRange range); 116 NSFont *WKGetFontInLanguageForCharacter(NSFont *font, UniChar ch); 117 void WKSetCGFontRenderingMode(CGContextRef cgContext, NSFont *font); 118 BOOL WKCGContextGetShouldSmoothFonts(CGContextRef cgContext); 119 120 #ifdef BUILDING_ON_TIGER 121 // CGFontGetAscent, CGFontGetDescent, CGFontGetLeading and CGFontGetUnitsPerEm were not available until Leopard 122 void WKGetFontMetrics(CGFontRef font, int *ascent, int *descent, int *lineGap, unsigned *unitsPerEm); 123 // CTFontCopyGraphicsFont was not available until Leopard 124 CGFontRef WKGetCGFontFromNSFont(NSFont *font); 125 // CTFontGetPlatformFont was not available until Leopard 126 ATSUFontID WKGetNSFontATSUFontId(NSFont *font); 127 // CGFontCopyFullName was not available until Leopard 128 CFStringRef WKCopyFullFontName(CGFontRef font); 129 #endif 130 131 void WKSetPatternBaseCTM(CGContextRef, CGAffineTransform); 132 void WKSetPatternPhaseInUserSpace(CGContextRef, CGPoint); 133 CGAffineTransform WKGetUserToBaseCTM(CGContextRef); 134 135 #ifndef BUILDING_ON_TIGER 136 void WKGetGlyphsForCharacters(CGFontRef, const UniChar[], CGGlyph[], size_t); 137 #else 138 typedef void *WKGlyphVectorRef; 139 OSStatus WKConvertCharToGlyphs(void *styleGroup, const UniChar *characters, unsigned numCharacters, WKGlyphVectorRef glyphs); 140 OSStatus WKGetATSStyleGroup(ATSUStyle fontStyle, void **styleGroup); 141 void WKReleaseStyleGroup(void *group); 142 OSStatus WKInitializeGlyphVector(int count, WKGlyphVectorRef glyphs); 143 void WKClearGlyphVector(WKGlyphVectorRef glyphs); 144 145 int WKGetGlyphVectorNumGlyphs(WKGlyphVectorRef glyphVector); 146 ATSLayoutRecord *WKGetGlyphVectorFirstRecord(WKGlyphVectorRef glyphVector); 147 size_t WKGetGlyphVectorRecordSize(WKGlyphVectorRef glyphVector); 148 #endif 149 150 #ifndef __LP64__ 151 NSEvent *WKCreateNSEventWithCarbonEvent(EventRef eventRef); 152 NSEvent *WKCreateNSEventWithCarbonMouseMoveEvent(EventRef inEvent, NSWindow *window); 153 NSEvent *WKCreateNSEventWithCarbonClickEvent(EventRef inEvent, WindowRef windowRef); 154 #endif 155 156 CGContextRef WKNSWindowOverrideCGContext(NSWindow *, CGContextRef); 157 void WKNSWindowRestoreCGContext(NSWindow *, CGContextRef); 158 159 void WKNSWindowMakeBottomCornersSquare(NSWindow *); 160 161 // These constants match the ones used by ThemeScrollbarArrowStyle (some of the values are private, so we can't just 162 // use that enum directly). 163 typedef enum { 164 WKThemeScrollBarArrowsSingle = 0, 165 WKThemeScrollBarArrowsLowerRight = 1, 166 WKThemeScrollBarArrowsDouble = 2, 167 WKThemeScrollBarArrowsUpperLeft = 3, 168 } WKThemeScrollBarArrowStyle; 169 170 OSStatus WKThemeDrawTrack(const HIThemeTrackDrawInfo* inDrawInfo, CGContextRef inContext, int inArrowStyle); 171 172 #ifdef BUILDING_ON_TIGER 173 // WKSupportsMultipartXMixedReplace is not required on Leopard as multipart/x-mixed-replace is always handled by NSURLRequest 174 BOOL WKSupportsMultipartXMixedReplace(NSMutableURLRequest *request); 175 #endif 176 177 BOOL WKCGContextIsBitmapContext(CGContextRef context); 178 179 void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, BOOL *continuous); 180 181 BOOL WKAppVersionCheckLessThan(NSString *, int, double); 182 183 typedef enum { 184 WKMovieTypeUnknown, 185 WKMovieTypeDownload, 186 WKMovieTypeStoredStream, 187 WKMovieTypeLiveStream 188 } WKMovieType; 189 190 int WKQTMovieGetType(QTMovie* movie); 191 192 BOOL WKQTMovieHasClosedCaptions(QTMovie* movie); 193 void WKQTMovieSetShowClosedCaptions(QTMovie* movie, BOOL showClosedCaptions); 194 195 unsigned WKQTIncludeOnlyModernMediaFileTypes(void); 196 int WKQTMovieDataRate(QTMovie* movie); 197 float WKQTMovieMaxTimeLoaded(QTMovie* movie); 198 float WKQTMovieMaxTimeSeekable(QTMovie* movie); 199 NSString *WKQTMovieMaxTimeLoadedChangeNotification(void); 200 void WKQTMovieViewSetDrawSynchronously(QTMovieView* view, BOOL sync); 201 202 CFStringRef WKCopyFoundationCacheDirectory(void); 203 204 typedef enum { 205 WKMediaUIPartFullscreenButton = 0, 206 WKMediaUIPartMuteButton, 207 WKMediaUIPartPlayButton, 208 WKMediaUIPartSeekBackButton, 209 WKMediaUIPartSeekForwardButton, 210 WKMediaUIPartSlider, 211 WKMediaUIPartSliderThumb, 212 WKMediaUIPartRewindButton, 213 WKMediaUIPartSeekToRealtimeButton, 214 WKMediaUIPartShowClosedCaptionsButton, 215 WKMediaUIPartHideClosedCaptionsButton, 216 WKMediaUIPartUnMuteButton, 217 WKMediaUIPartPauseButton, 218 WKMediaUIPartBackground, 219 WKMediaUIPartCurrentTimeDisplay, 220 WKMediaUIPartTimeRemainingDisplay 221 } WKMediaUIPart; 222 223 typedef enum { 224 WKMediaControllerThemeClassic = 1, 225 WKMediaControllerThemeQuickTime = 2 226 } WKMediaControllerThemeStyle; 227 228 typedef enum { 229 WKMediaControllerFlagDisabled = 1 << 0, 230 WKMediaControllerFlagPressed = 1 << 1, 231 WKMediaControllerFlagDrawEndCaps = 1 << 3, 232 WKMediaControllerFlagFocused = 1 << 4 233 } WKMediaControllerThemeState; 234 235 BOOL WKMediaControllerThemeAvailable(int themeStyle); 236 BOOL WKHitTestMediaUIPart(int part, int themeStyle, CGRect bounds, CGPoint point); 237 void WKMeasureMediaUIPart(int part, int themeStyle, CGRect *bounds, CGSize *naturalSize); 238 void WKDrawMediaUIPart(int part, int themeStyle, CGContextRef context, CGRect rect, unsigned state); 239 void WKDrawMediaSliderTrack(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime, float duration, unsigned state); 240 NSView *WKCreateMediaUIBackgroundView(void); 241 242 typedef enum { 243 WKMediaUIControlTimeline, 244 WKMediaUIControlSlider, 245 WKMediaUIControlPlayPauseButton, 246 WKMediaUIControlExitFullscreenButton, 247 WKMediaUIControlRewindButton, 248 WKMediaUIControlFastForwardButton, 249 WKMediaUIControlVolumeUpButton, 250 WKMediaUIControlVolumeDownButton 251 252 } WKMediaUIControlType; 253 254 NSControl *WKCreateMediaUIControl(int controlType); 255 256 #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && defined(__x86_64__) 257 mach_port_t WKInitializeRenderServer(void); 258 259 @class CALayer; 260 261 CALayer *WKMakeRenderLayer(uint32_t contextID); 262 263 typedef struct __WKSoftwareCARendererRef *WKSoftwareCARendererRef; 264 265 WKSoftwareCARendererRef WKSoftwareCARendererCreate(uint32_t contextID); 266 void WKSoftwareCARendererDestroy(WKSoftwareCARendererRef); 267 void WKSoftwareCARendererRender(WKSoftwareCARendererRef, CGContextRef, CGRect); 268 269 #import <mach/mig.h> 270 271 CFRunLoopSourceRef WKCreateMIGServerSource(mig_subsystem_t subsystem, mach_port_t serverPort); 272 273 NSUInteger WKGetInputPanelWindowStyle(void); 274 275 UInt8 WKGetNSEventKeyChar(NSEvent *); 276 277 #endif 278 279 @class CAPropertyAnimation; 280 void WKSetCAAnimationValueFunction(CAPropertyAnimation*, NSString* function); 281 282 unsigned WKInitializeMaximumHTTPConnectionCountPerHost(unsigned preferredConnectionCount); 283 284 void WKSetCONNECTProxyForStream(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort); 285 void WKSetCONNECTProxyAuthorizationForStream(CFReadStreamRef, CFStringRef proxyAuthorizationString); 286 CFHTTPMessageRef WKCopyCONNECTProxyResponse(CFReadStreamRef, CFURLRef responseURL); 287 288 BOOL WKIsLatchingWheelEvent(NSEvent *); 289 290 #ifndef BUILDING_ON_TIGER 291 void WKWindowSetAlpha(NSWindow *window, float alphaValue); 292 void WKWindowSetScaledFrame(NSWindow *window, NSRect scaleFrame, NSRect nonScaledFrame); 293 #endif 294 295 #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) 296 NSMutableArray *WKNoteOpenPanelFiles(NSArray *paths); 297 #endif 298 299 #ifdef __cplusplus 300 } 301 #endif 302