41048d7e96aa72b20384d7e9bf350f2015d43747
[WebKit-https.git] / Source / WebCore / platform / ios / wak / WAKAppKitStubs.h
1 /*
2  * Copyright (C) 2005, 2006, 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 INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 /* Unicodes we reserve for function keys on the keyboard,  OpenStep reserves the range 0xF700-0xF8FF for this purpose.  The availability of various keys will be system dependent. */
27
28 #ifndef WAKAppKitStubs_h
29 #define WAKAppKitStubs_h
30
31 #if TARGET_OS_IPHONE
32
33 #import <CoreGraphics/CoreGraphics.h>
34 #import <Foundation/Foundation.h>
35
36 #ifndef NSClipView
37 #define NSClipView WAKClipView
38 #endif
39 #ifndef NSView
40 #define NSView WAKView
41 #endif
42 #ifndef NSScrollView
43 #define NSScrollView WAKScrollView
44 #endif
45 #ifndef WebDynamicScrollBarsView
46 #define WebDynamicScrollBarsView WAKScrollView
47 #endif
48 #ifndef NSWindow
49 #define NSWindow WAKWindow
50 #endif
51 #ifndef NSResponder
52 #define NSResponder WAKResponder
53 #endif
54
55 // FIXME: <rdar://problem/6669434> Switch from using NSGeometry methods to CGGeometry methods
56 //
57 // We explicitly use __has_include() instead of the macro define USE_APPLE_INTERNAL_SDK as
58 // the condition for including the header Foundation/NSGeometry.h to support internal Apple
59 // clients that build without header wtf/Platform.h.
60 #if __has_include(<Foundation/NSGeometry.h>)
61
62 #import <Foundation/NSGeometry.h>
63
64 #else
65
66 typedef CGPoint NSPoint;
67 typedef CGRect NSRect;
68 typedef CGSize NSSize;
69 typedef NSUInteger NSRectEdge;
70
71 #ifndef NSZeroPoint
72 #define NSZeroPoint CGPointZero
73 #endif
74 #ifndef NSZeroRect
75 #define NSZeroRect CGRectZero
76 #endif
77 #ifndef NSZeroSize
78 #define NSZeroSize CGSizeZero
79 #endif
80 #ifndef NSMakePoint
81 #define NSMakePoint CGPointMake
82 #endif
83 #ifndef NSMakeRect
84 #define NSMakeRect CGRectMake
85 #endif
86 #ifndef NSMakeSize
87 #define NSMakeSize CGSizeMake
88 #endif
89 #ifndef NSEqualPoints
90 #define NSEqualPoints CGPointEqualToPoint
91 #endif
92 #ifndef NSEqualRects
93 #define NSEqualRects CGRectEqualToRect
94 #endif
95 #ifndef NSEqualSizes
96 #define NSEqualSizes CGSizeEqualToSize
97 #endif
98 #ifndef NSInsetRect
99 #define NSInsetRect CGRectInset
100 #endif
101 #ifndef NSIntersectionRect
102 #define NSIntersectionRect CGRectIntersection
103 #endif
104 #ifndef NSIsEmptyRect
105 #define NSIsEmptyRect CGRectIsEmpty
106 #endif
107 #ifndef NSContainsRect
108 #define NSContainsRect CGRectContainsRect
109 #endif
110 #ifndef NSPointInRect
111 #define NSPointInRect(x, y) CGRectContainsPoint((y), (x))
112 #endif
113 #ifndef NSMinX
114 #define NSMinX CGRectGetMinX
115 #endif
116 #ifndef NSMinY
117 #define NSMinY CGRectGetMinY
118 #endif
119 #ifndef NSMaxX
120 #define NSMaxX CGRectGetMaxX
121 #endif
122 #ifndef NSMaxY
123 #define NSMaxY CGRectGetMaxY
124 #endif
125 #ifndef NSMinXEdge
126 #define NSMinXEdge CGRectMinXEdge
127 #endif
128 #ifndef NSMinYEdge
129 #define NSMinYEdge CGRectMinYEdge
130 #endif
131 #ifndef NSMaxXEdge
132 #define NSMaxXEdge CGRectMaxXEdge
133 #endif
134 #ifndef NSMaxYEdge
135 #define NSMaxYEdge CGRectMaxYEdge
136 #endif
137
138 @interface NSValue (NSGeometryDetails)
139 + (NSValue *)valueWithPoint:(NSPoint)point;
140 + (NSValue *)valueWithRect:(NSRect)rect;
141 + (NSValue *)valueWithSize:(NSSize)size;
142 @property (readonly) NSPoint pointValue;
143 @property (readonly) NSRect rectValue;
144 @property (readonly) NSSize sizeValue;
145 @end
146
147 #endif // __has_include(<Foundation/NSGeometry.h>)
148
149 @class WAKClipView;
150 @class WAKResponder;
151 @class WAKScrollView;
152 @class WAKView;
153 @class WAKWindow;
154
155 /* Device-independent bits found in event modifier flags */
156 enum {
157     NSEventModifierFlagCapsLock = 1 << 16,
158     NSEventModifierFlagShift = 1 << 17,
159     NSEventModifierFlagControl = 1 << 18,
160     NSEventModifierFlagOption = 1 << 19,
161     NSEventModifierFlagCommand = 1 << 20,
162     NSEventModifierFlagNumericPad = 1 << 21,
163     NSEventModifierFlagHelp = 1 << 22,
164     NSEventModifierFlagFunction = 1 << 23,
165     NSEventModifierFlagDeviceIndependentFlagsMask = 0xffff0000U
166 };
167
168 typedef enum _WKWritingDirection {
169     WKWritingDirectionNatural     = -1, /* Determines direction using the Unicode Bidi Algorithm rules P2 and P3 */
170     WKWritingDirectionLeftToRight = 0,  /* Left to right writing direction */
171     WKWritingDirectionRightToLeft       /* Right to left writing direction */
172 } WKWritingDirection;
173
174 typedef enum _NSSelectionAffinity {
175     NSSelectionAffinityUpstream = 0,
176     NSSelectionAffinityDownstream = 1
177 } NSSelectionAffinity;
178
179 typedef enum _NSCellState {
180     NSControlStateValueMixed = -1,
181     NSControlStateValueOff   =  0,
182     NSControlStateValueOn    =  1
183 } NSControlStateValue;
184
185 typedef enum _NSCompositingOperation {
186     NSCompositeClear           = 0,
187     NSCompositeCopy            = 1,
188     NSCompositeSourceOver      = 2,
189     NSCompositeSourceIn        = 3,
190     NSCompositeSourceOut       = 4,
191     NSCompositeSourceAtop      = 5,
192     NSCompositeDestinationOver = 6,
193     NSCompositeDestinationIn   = 7,
194     NSCompositeDestinationOut  = 8,
195     NSCompositeDestinationAtop = 9,
196     NSCompositeXOR             = 10,
197     NSCompositePlusDarker      = 11,
198     NSCompositeHighlight       = 12,
199     NSCompositePlusLighter     = 13
200 } NSCompositingOperation;
201
202 typedef enum _NSSelectionDirection {
203     NSDirectSelection = 0,
204     NSSelectingNext,
205     NSSelectingPrevious
206 } NSSelectionDirection;
207
208 WEBCORE_EXPORT @interface NSCursor : NSObject
209 + (void)setHiddenUntilMouseMoves:(BOOL)flag;
210 @end
211
212 #endif // TARGET_OS_IPHONE
213
214 #endif // WAKAppKitStubs_h