Windows build fix
[WebKit-https.git] / WebKitLibraries / win / include / WebKitSystemInterface / WebKitSystemInterface.h
1 /*
2  * Copyright (C) 2007, 2008, 2009 Apple Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 #ifndef WebKitSystemInterface_h
27 #define WebKitSystemInterface_h
28
29 struct CGAffineTransform;
30 struct CGPoint;
31 struct CGRect;
32 struct CGSize;
33 struct IDirect3DDevice9;
34 struct WKCACFContext;
35 struct WKCACFUpdateRectEnumerator;
36
37 typedef struct _CACFLayer* CACFLayerRef;
38 typedef const struct __CFData* CFDataRef;
39 typedef const struct __CFString* CFStringRef;
40 typedef double CFTimeInterval;
41 typedef struct CGColor* CGColorRef;
42 typedef struct CGContext* CGContextRef;
43 typedef unsigned short CGFontIndex;
44 typedef struct CGFont* CGFontRef;
45 typedef CGFontIndex CGGlyph;
46 typedef wchar_t UChar;
47 typedef struct _CFURLResponse* CFURLResponseRef;
48 typedef struct OpaqueCFHTTPCookieStorage*  CFHTTPCookieStorageRef;
49 typedef struct _CFURLRequest* CFMutableURLRequestRef;
50 typedef const struct _CFURLRequest* CFURLRequestRef;
51 typedef struct __CFHTTPMessage* CFHTTPMessageRef;
52 typedef const struct __CFNumber* CFNumberRef;
53 typedef struct __CFReadStream* CFReadStreamRef;
54 typedef const struct __CFURL* CFURLRef;
55 typedef struct _CFURLProtectionSpace* CFURLProtectionSpaceRef;
56 typedef struct tagLOGFONTW LOGFONTW;
57 typedef LOGFONTW LOGFONT;
58 typedef struct _CACFLayer *CACFLayerRef;
59 typedef struct __CVBuffer *CVBufferRef;
60 typedef CVBufferRef CVImageBufferRef;
61 typedef CVImageBufferRef CVPixelBufferRef;
62 typedef struct _CAImageQueue *CAImageQueueRef;
63 typedef unsigned long CFTypeID;
64 typedef struct _CFURLCredential* WKCFURLCredentialRef;
65
66 void wkSetFontSmoothingLevel(int type);
67 int wkGetFontSmoothingLevel();
68 void wkSetFontSmoothingContrast(CGFloat);
69 CGFloat wkGetFontSmoothingContrast();
70 void wkSystemFontSmoothingChanged();
71 uint32_t wkSetFontSmoothingStyle(CGContextRef cg, bool fontAllowsSmoothing);
72 void wkRestoreFontSmoothingStyle(CGContextRef cg, uint32_t oldStyle);
73 void wkSetCGContextFontRenderingStyle(CGContextRef, bool isSystemFont, bool isPrinterFont, bool usePlatformNativeGlyphs);
74 void wkGetGlyphAdvances(CGFontRef, const CGAffineTransform&, bool isSystemFont, bool isPrinterFont, CGGlyph, CGSize& advance);
75 void wkGetGlyphs(CGFontRef, const UChar[], CGGlyph[], size_t count);
76 void wkSetUpFontCache(size_t s);
77
78 void wkSetPatternBaseCTM(CGContextRef, CGAffineTransform);
79 void wkSetPatternPhaseInUserSpace(CGContextRef, CGPoint phasePoint);
80 CGAffineTransform wkGetUserToBaseCTM(CGContextRef);
81
82 void wkDrawFocusRing(CGContextRef, CGColorRef, float radius);
83
84 CFDictionaryRef wkGetSSLCertificateInfo(CFURLResponseRef);
85 void* wkGetSSLPeerCertificateData(CFDictionaryRef);
86 void* wkGetSSLCertificateChainContext(CFDictionaryRef);
87 CFHTTPCookieStorageRef wkGetDefaultHTTPCookieStorage();
88 void wkSetCFURLRequestShouldContentSniff(CFMutableURLRequestRef, bool);
89 CFStringRef wkCopyFoundationCacheDirectory();
90 void wkSetClientCertificateInSSLProperties(CFMutableDictionaryRef, CFDataRef);
91
92 CFArrayRef wkCFURLRequestCopyHTTPRequestBodyParts(CFURLRequestRef);
93 void wkCFURLRequestSetHTTPRequestBodyParts(CFMutableURLRequestRef, CFArrayRef bodyParts);
94
95 unsigned wkInitializeMaximumHTTPConnectionCountPerHost(unsigned preferredConnectionCount);
96
97 void wkSetCONNECTProxyForStream(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
98 void wkSetCONNECTProxyAuthorizationForStream(CFReadStreamRef, CFStringRef proxyAuthorizationString);
99 CFHTTPMessageRef wkCopyCONNECTProxyResponse(CFReadStreamRef, CFURLRef responseURL);
100
101 WKCFURLCredentialRef wkCopyCredentialFromCFPersistentStorage(CFURLProtectionSpaceRef protectionSpace);
102
103 CFStringRef wkCFNetworkErrorGetLocalizedDescription(CFIndex errorCode);
104
105
106 enum wkCAImageQueueFlags {
107     kWKCAImageQueueAsync = 1U << 0,
108     kWKCAImageQueueFill = 1U << 1,
109     kWKCAImageQueueProtected = 1U << 2,
110     kWKCAImageQueueUseCleanAperture = 1U << 3,
111     kWKCAImageQueueUseAspectRatio = 1U << 4,
112     kWKCAImageQueueLowQualityColor = 1U << 5,
113 };
114
115 enum wkWKCAImageQueueImageType {
116     kWKCAImageQueueNil = 1,
117     kWKCAImageQueueSurface,
118     kWKCAImageQueueBuffer,
119     kWKCAImageQueueIOSurface,
120 };
121
122 enum wkWKCAImageQueueImageFlags {
123     kWKCAImageQueueOpaque = 1U << 0,
124     kWKCAImageQueueFlush = 1U << 1,
125     kWKCAImageQueueWillFlush = 1U << 2,
126     kWKCAImageQueueFlipped = 1U << 3,
127     kWKCAImageQueueWaitGPU = 1U << 4,
128 };
129
130 typedef void (*wkCAImageQueueReleaseCallback)(unsigned int type, uint64_t id, void *info);
131 CAImageQueueRef wkCAImageQueueCreate(uint32_t width, uint32_t height, uint32_t capacity);
132 void wkCAImageQueueInvalidate(CAImageQueueRef iq);
133 size_t wkCAImageQueueCollect(CAImageQueueRef iq);
134 bool wkCAImageQueueInsertImage(CAImageQueueRef iq, CFTimeInterval t, unsigned int type, uint64_t id, uint32_t flags, wkCAImageQueueReleaseCallback release, void *info);
135 uint64_t wkCAImageQueueRegisterPixelBuffer(CAImageQueueRef iq, void *data, size_t data_size, size_t rowbytes, size_t width, size_t height, OSType pixel_format, CFDictionaryRef attachments, uint32_t flags);
136 void wkCAImageQueueSetFlags(CAImageQueueRef iq, uint32_t mask, uint32_t flags);
137 uint32_t wkCAImageQueueGetFlags(CAImageQueueRef iq);
138 CFTypeID wkCAImageQueueGetTypeID(void);
139
140 WKCACFContext* wkCACFContextCreate();
141 void wkCACFContextDestroy(WKCACFContext*);
142
143 void wkCACFContextSetLayer(WKCACFContext*, CACFLayerRef);
144 void wkCACFContextFlush(WKCACFContext*);
145
146 void wkCACFContextInitializeD3DDevice(WKCACFContext*, IDirect3DDevice9*);
147 void wkCACFContextReleaseD3DResources(WKCACFContext*);
148
149 bool wkCACFContextBeginUpdate(WKCACFContext*, void* buffer, size_t bufferSize, CFTimeInterval time, const CGRect& bounds, const CGRect dirtyRects[], size_t dirtyRectCount);
150 void wkCACFContextRenderUpdate(WKCACFContext*);
151 void wkCACFContextFinishUpdate(WKCACFContext*);
152 void wkCACFContextAddUpdateRect(WKCACFContext*, const CGRect&);
153
154 WKCACFUpdateRectEnumerator* wkCACFContextCopyUpdateRectEnumerator(WKCACFContext*);
155 const CGRect* wkCACFUpdateRectEnumeratorNextRect(WKCACFUpdateRectEnumerator*);
156 void wkCACFUpdateRectEnumeratorRelease(WKCACFUpdateRectEnumerator*);
157
158 typedef enum {
159     WKMediaUIPartFullscreenButton   = 0,
160     WKMediaUIPartMuteButton,
161     WKMediaUIPartPlayButton,
162     WKMediaUIPartSeekBackButton,
163     WKMediaUIPartSeekForwardButton,
164     WKMediaUIPartTimelineSlider,
165     WKMediaUIPartTimelineSliderThumb,
166     WKMediaUIPartRewindButton,
167     WKMediaUIPartSeekToRealtimeButton,
168     WKMediaUIPartShowClosedCaptionsButton,
169     WKMediaUIPartHideClosedCaptionsButton,
170     WKMediaUIPartUnMuteButton,
171     WKMediaUIPartPauseButton,
172     WKMediaUIPartBackground,
173     WKMediaUIPartCurrentTimeDisplay,
174     WKMediaUIPartTimeRemainingDisplay,
175     WKMediaUIPartStatusDisplay,
176     WKMediaUIPartControlsPanel,
177     WKMediaUIPartVolumeSliderContainer,
178     WKMediaUIPartVolumeSlider,
179     WKMediaUIPartVolumeSliderThumb
180 } WKMediaUIPart;
181
182 typedef enum {
183     WKMediaControllerThemeClassic   = 1,
184     WKMediaControllerThemeQuickTime = 2
185 } WKMediaControllerThemeStyle;
186
187 typedef enum {
188     WKMediaControllerFlagDisabled = 1 << 0,
189     WKMediaControllerFlagPressed = 1 << 1,
190     WKMediaControllerFlagDrawEndCaps = 1 << 3,
191     WKMediaControllerFlagFocused = 1 << 4
192 } WKMediaControllerThemeState;
193
194 #ifdef __cplusplus
195 extern "C" {
196 #endif
197
198 bool WKMediaControllerThemeAvailable(int themeStyle);
199 bool WKHitTestMediaUIPart(int part, int themeStyle, CGRect bounds, CGPoint point);
200 void WKMeasureMediaUIPart(int part, int themeStyle, CGRect *bounds, CGSize *naturalSize);
201 void WKDrawMediaUIPart(int part, int themeStyle, CGContextRef context, CGRect rect, unsigned state);
202 void WKDrawMediaSliderTrack(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime, float duration, unsigned state);
203
204 #ifdef __cplusplus
205 }
206 #endif
207
208 #endif // WebKitSystemInterface_h