WebCore:
[WebKit-https.git] / WebKitLibraries / WebKitSystemInterface.h
1 /*      
2     WebKitSystemInterface.h
3     Copyright (C) 2005, 2006, 2007, 2008 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 NSString *WKMouseMovedNotification(void);
61 NSString *WKWindowWillOrderOnScreenNotification(void);
62 void WKSetNSWindowShouldPostEventNotifications(NSWindow *window, BOOL post);
63
64 CFTypeID WKGetAXTextMarkerTypeID(void);
65 CFTypeID WKGetAXTextMarkerRangeTypeID(void);
66 CFTypeRef WKCreateAXTextMarker(const void *bytes, size_t len);
67 BOOL WKGetBytesFromAXTextMarker(CFTypeRef textMarker, void *bytes, size_t length);
68 CFTypeRef WKCreateAXTextMarkerRange(CFTypeRef start, CFTypeRef end);
69 CFTypeRef WKCopyAXTextMarkerRangeStart(CFTypeRef range);
70 CFTypeRef WKCopyAXTextMarkerRangeEnd(CFTypeRef range);
71 void WKAccessibilityHandleFocusChanged(void);
72 AXUIElementRef WKCreateAXUIElementRef(id element);
73 void WKUnregisterUniqueIdForElement(id element);
74
75 void WKSetUpFontCache(void);
76
77 void WKSignalCFReadStreamEnd(CFReadStreamRef stream);
78 void WKSignalCFReadStreamHasBytes(CFReadStreamRef stream);
79 void WKSignalCFReadStreamError(CFReadStreamRef stream, CFStreamError *error);
80
81 CFReadStreamRef WKCreateCustomCFReadStream(void *(*formCreate)(CFReadStreamRef, void *), 
82     void (*formFinalize)(CFReadStreamRef, void *), 
83     Boolean (*formOpen)(CFReadStreamRef, CFStreamError *, Boolean *, void *), 
84     CFIndex (*formRead)(CFReadStreamRef, UInt8 *, CFIndex, CFStreamError *, Boolean *, void *), 
85     Boolean (*formCanRead)(CFReadStreamRef, void *), 
86     void (*formClose)(CFReadStreamRef, void *), 
87     void (*formSchedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *), 
88     void (*formUnschedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *),
89     void *context);
90
91 void WKDrawCapsLockIndicator(CGContextRef, CGRect);
92
93 void WKDrawFocusRing(CGContextRef context, CGColorRef color, int radius);
94     // The CG context's current path is the focus ring's path.
95     // A color of 0 means "use system focus ring color".
96     // A radius of 0 means "use default focus ring radius".
97
98 void WKSetDragImage(NSImage *image, NSPoint offset);
99
100 void WKDrawBezeledTextFieldCell(NSRect, BOOL enabled);
101 void WKDrawTextFieldCellFocusRing(NSTextFieldCell*, NSRect);
102 void WKDrawBezeledTextArea(NSRect, BOOL enabled);
103 void WKPopupMenu(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*);
104
105 void WKSendUserChangeNotifications(void);
106 #ifndef __LP64__
107 BOOL WKConvertNSEventToCarbonEvent(EventRecord *carbonEvent, NSEvent *cocoaEvent);
108 void WKSendKeyEventToTSM(NSEvent *theEvent);
109 void WKCallDrawingNotification(CGrafPtr port, Rect *bounds);
110 #endif
111
112 BOOL WKGetGlyphTransformedAdvances(CGFontRef, NSFont*, CGAffineTransform *m, ATSGlyphRef *glyph, CGSize *advance);
113 NSFont *WKGetFontInLanguageForRange(NSFont *font, NSString *string, NSRange range);
114 NSFont *WKGetFontInLanguageForCharacter(NSFont *font, UniChar ch);
115 void WKSetCGFontRenderingMode(CGContextRef cgContext, NSFont *font);
116 void WKReleaseStyleGroup(void *group);
117 BOOL WKCGContextGetShouldSmoothFonts(CGContextRef cgContext);
118
119 #ifdef BUILDING_ON_TIGER
120 // CGFontGetAscent, CGFontGetDescent, CGFontGetLeading and CGFontGetUnitsPerEm were not available until Leopard
121 void WKGetFontMetrics(CGFontRef font, int *ascent, int *descent, int *lineGap, unsigned *unitsPerEm);
122 // CTFontCopyGraphicsFont was not available until Leopard
123 CGFontRef WKGetCGFontFromNSFont(NSFont *font);
124 // CTFontGetPlatformFont was not available until Leopard
125 ATSUFontID WKGetNSFontATSUFontId(NSFont *font);
126 // CGFontCopyFullName was not available until Leopard
127 CFStringRef WKCopyFullFontName(CGFontRef font);
128 #endif
129
130 void WKSetPatternBaseCTM(CGContextRef, CGAffineTransform);
131 void WKSetPatternPhaseInUserSpace(CGContextRef, CGPoint);
132
133 typedef void *WKGlyphVectorRef;
134 OSStatus WKConvertCharToGlyphs(void *styleGroup, const UniChar *characters, unsigned numCharacters, WKGlyphVectorRef glyphs);
135 OSStatus WKGetATSStyleGroup(ATSUStyle fontStyle, void **styleGroup);
136 OSStatus WKInitializeGlyphVector(int count, WKGlyphVectorRef glyphs);
137 void WKClearGlyphVector(WKGlyphVectorRef glyphs);
138
139 int WKGetGlyphVectorNumGlyphs(WKGlyphVectorRef glyphVector);
140 ATSLayoutRecord *WKGetGlyphVectorFirstRecord(WKGlyphVectorRef glyphVector);
141 size_t WKGetGlyphVectorRecordSize(WKGlyphVectorRef glyphVector);
142
143 #ifndef __LP64__
144 NSEvent *WKCreateNSEventWithCarbonEvent(EventRef eventRef);
145 NSEvent *WKCreateNSEventWithCarbonMouseMoveEvent(EventRef inEvent, NSWindow *window);
146 NSEvent *WKCreateNSEventWithCarbonClickEvent(EventRef inEvent, WindowRef windowRef);
147 #endif
148
149 CGContextRef WKNSWindowOverrideCGContext(NSWindow *, CGContextRef);
150 void WKNSWindowRestoreCGContext(NSWindow *, CGContextRef);
151
152 void WKNSWindowMakeBottomCornersSquare(NSWindow *);
153
154 #ifdef BUILDING_ON_TIGER
155 // WKSupportsMultipartXMixedReplace is not required on Leopard as multipart/x-mixed-replace is always handled by NSURLRequest
156 BOOL WKSupportsMultipartXMixedReplace(NSMutableURLRequest *request);
157 #endif
158
159 BOOL WKCGContextIsBitmapContext(CGContextRef context);
160
161 void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, BOOL *continuous);
162
163 BOOL WKAppVersionCheckLessThan(NSString *, int, double);
164
165 int WKQTMovieDataRate(QTMovie* movie);
166 float WKQTMovieMaxTimeLoaded(QTMovie* movie);
167 void WKQTMovieViewSetDrawSynchronously(QTMovieView* view, BOOL sync);
168
169 CFStringRef WKCopyFoundationCacheDirectory(void);
170
171 void WKDrawMediaFullscreenButton(CGContextRef context, CGRect rect, BOOL active);
172 void WKDrawMediaMuteButton(CGContextRef context, CGRect rect, BOOL active);
173 void WKDrawMediaPauseButton(CGContextRef context, CGRect rect, BOOL active);
174 void WKDrawMediaPlayButton(CGContextRef context, CGRect rect, BOOL active);
175 void WKDrawMediaSeekBackButton(CGContextRef context, CGRect rect, BOOL active);
176 void WKDrawMediaSeekForwardButton(CGContextRef context, CGRect rect, BOOL active);
177 void WKDrawMediaSliderTrack(CGContextRef context, CGRect rect, float percentLoaded);
178 void WKDrawMediaSliderThumb(CGContextRef context, CGRect rect, BOOL active);
179 void WKDrawMediaUnMuteButton(CGContextRef context, CGRect rect, BOOL active);
180
181 #ifdef __cplusplus
182 }
183 #endif