• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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