@@ -27,6 +27,16 @@ public struct CGFloat {
27
27
public var native : NativeType
28
28
}
29
29
30
+ extension CGFloat : Comparable { }
31
+
32
+ public func == ( lhs: CGFloat , rhs: CGFloat ) -> Bool {
33
+ return lhs. native == rhs. native
34
+ }
35
+
36
+ public func < ( lhs: CGFloat , rhs: CGFloat ) -> Bool {
37
+ return lhs. native < rhs. native
38
+ }
39
+
30
40
public struct CGPoint {
31
41
public var x : CGFloat
32
42
public var y : CGFloat
@@ -40,6 +50,12 @@ public struct CGPoint {
40
50
}
41
51
}
42
52
53
+ extension CGPoint : Equatable { }
54
+
55
+ public func == ( lhs: CGPoint , rhs: CGPoint ) -> Bool {
56
+ return ( lhs. x == rhs. x) && ( lhs. y == rhs. y)
57
+ }
58
+
43
59
public struct CGSize {
44
60
public var width : CGFloat
45
61
public var height : CGFloat
@@ -53,6 +69,12 @@ public struct CGSize {
53
69
}
54
70
}
55
71
72
+ extension CGSize : Equatable { }
73
+
74
+ public func == ( lhs: CGSize , rhs: CGSize ) -> Bool {
75
+ return ( lhs. width == rhs. width) && ( lhs. height == rhs. height)
76
+ }
77
+
56
78
public struct CGRect {
57
79
public var origin : CGPoint
58
80
public var size : CGSize
@@ -66,6 +88,12 @@ public struct CGRect {
66
88
}
67
89
}
68
90
91
+ extension CGRect : Equatable { }
92
+
93
+ public func == ( lhs: CGRect , rhs: CGRect ) -> Bool {
94
+ return ( lhs. origin == rhs. origin) && ( lhs. size == rhs. size)
95
+ }
96
+
69
97
public typealias NSPoint = CGPoint
70
98
71
99
public typealias NSPointPointer = UnsafeMutablePointer < NSPoint >
@@ -98,16 +126,35 @@ public enum CGRectEdge : UInt32 {
98
126
}
99
127
100
128
extension NSRectEdge {
101
- public init ( rectEdge: CGRectEdge ) { NSUnimplemented ( ) }
129
+ public init ( rectEdge: CGRectEdge ) {
130
+ switch rectEdge {
131
+ case . MinXEdge: self = . MinX
132
+ case . MinYEdge: self = . MinY
133
+ case . MaxXEdge: self = . MaxX
134
+ case . MaxYEdge: self = . MaxY
135
+ }
136
+ }
102
137
}
103
138
104
139
public struct NSEdgeInsets {
105
140
public var top : CGFloat
106
141
public var left : CGFloat
107
142
public var bottom : CGFloat
108
143
public var right : CGFloat
109
- public init ( ) { NSUnimplemented ( ) }
110
- public init ( top: CGFloat , left: CGFloat , bottom: CGFloat , right: CGFloat ) { NSUnimplemented ( ) }
144
+
145
+ public init ( ) {
146
+ self . top = CGFloat ( )
147
+ self . left = CGFloat ( )
148
+ self . bottom = CGFloat ( )
149
+ self . right = CGFloat ( )
150
+ }
151
+
152
+ public init ( top: CGFloat , left: CGFloat , bottom: CGFloat , right: CGFloat ) {
153
+ self . top = top
154
+ self . left = left
155
+ self . bottom = bottom
156
+ self . right = right
157
+ }
111
158
}
112
159
113
160
public struct NSAlignmentOptions : OptionSetType {
@@ -148,49 +195,57 @@ public let NSZeroSize: NSSize = NSSize()
148
195
public let NSZeroRect : NSRect = NSRect ( )
149
196
public let NSEdgeInsetsZero : NSEdgeInsets = NSEdgeInsets ( )
150
197
151
- public func NSMakePoint( x: CGFloat , _ y: CGFloat ) -> NSPoint { NSUnimplemented ( ) }
198
+ public func NSMakePoint( x: CGFloat , _ y: CGFloat ) -> NSPoint { return NSPoint ( x: x, y: y) }
199
+
200
+ public func NSMakeSize( w: CGFloat , _ h: CGFloat ) -> NSSize { return NSSize ( width: w, height: h) }
152
201
153
- public func NSMakeSize ( w: CGFloat , _ h: CGFloat ) -> NSSize { NSUnimplemented ( ) }
202
+ public func NSMakeRect ( x : CGFloat , _ y : CGFloat , _ w: CGFloat , _ h: CGFloat ) -> NSRect { return NSRect ( origin : NSPoint ( x : x , y : y ) , size : NSSize ( width : w , height : h ) ) }
154
203
155
- public func NSMakeRect ( x : CGFloat , _ y : CGFloat , _ w : CGFloat , _ h : CGFloat ) -> NSRect { NSUnimplemented ( ) }
204
+ public func NSMaxX ( aRect : NSRect ) -> CGFloat { return CGFloat ( aRect . origin . x . native + aRect . size . width . native ) }
156
205
157
- public func NSMaxX ( aRect: NSRect ) -> CGFloat { NSUnimplemented ( ) }
206
+ public func NSMaxY ( aRect: NSRect ) -> CGFloat { return CGFloat ( aRect . origin . y . native + aRect . size . height . native ) }
158
207
159
- public func NSMaxY ( aRect: NSRect ) -> CGFloat { NSUnimplemented ( ) }
208
+ public func NSMidX ( aRect: NSRect ) -> CGFloat { return CGFloat ( aRect . origin . x . native + ( aRect . size . width . native / 2 ) ) }
160
209
161
- public func NSMidX ( aRect: NSRect ) -> CGFloat { NSUnimplemented ( ) }
210
+ public func NSMidY ( aRect: NSRect ) -> CGFloat { return CGFloat ( aRect . origin . y . native + ( aRect . size . height . native / 2 ) ) }
162
211
163
- public func NSMidY ( aRect: NSRect ) -> CGFloat { NSUnimplemented ( ) }
212
+ public func NSMinX ( aRect: NSRect ) -> CGFloat { return aRect . origin . x }
164
213
165
- public func NSMinX ( aRect: NSRect ) -> CGFloat { NSUnimplemented ( ) }
214
+ public func NSMinY ( aRect: NSRect ) -> CGFloat { return aRect . origin . y }
166
215
167
- public func NSMinY ( aRect: NSRect ) -> CGFloat { NSUnimplemented ( ) }
216
+ public func NSWidth ( aRect: NSRect ) -> CGFloat { return aRect . size . width }
168
217
169
- public func NSWidth ( aRect: NSRect ) -> CGFloat { NSUnimplemented ( ) }
218
+ public func NSHeight ( aRect: NSRect ) -> CGFloat { return aRect . size . height }
170
219
171
- public func NSHeight ( aRect : NSRect ) -> CGFloat { NSUnimplemented ( ) }
220
+ public func NSRectFromCGRect ( cgrect : CGRect ) -> NSRect { return cgrect }
172
221
173
- public func NSRectFromCGRect ( cgrect : CGRect ) -> NSRect { NSUnimplemented ( ) }
222
+ public func NSRectToCGRect ( nsrect : NSRect ) -> CGRect { return nsrect }
174
223
175
- public func NSRectToCGRect ( nsrect : NSRect ) -> CGRect { NSUnimplemented ( ) }
224
+ public func NSPointFromCGPoint ( cgpoint : CGPoint ) -> NSPoint { return cgpoint }
176
225
177
- public func NSPointFromCGPoint ( cgpoint : CGPoint ) -> NSPoint { NSUnimplemented ( ) }
226
+ public func NSPointToCGPoint ( nspoint : NSPoint ) -> CGPoint { return nspoint }
178
227
179
- public func NSPointToCGPoint ( nspoint : NSPoint ) -> CGPoint { NSUnimplemented ( ) }
228
+ public func NSSizeFromCGSize ( cgsize : CGSize ) -> NSSize { return cgsize }
180
229
181
- public func NSSizeFromCGSize ( cgsize : CGSize ) -> NSSize { NSUnimplemented ( ) }
230
+ public func NSSizeToCGSize ( nssize : NSSize ) -> CGSize { return nssize }
182
231
183
- public func NSSizeToCGSize ( nssize : NSSize ) -> CGSize { NSUnimplemented ( ) }
232
+ public func NSEdgeInsetsMake ( top : CGFloat , _ left : CGFloat , _ bottom : CGFloat , _ right : CGFloat ) -> NSEdgeInsets { return NSEdgeInsets ( top : top , left : left , bottom : bottom , right : right ) }
184
233
185
- public func NSEdgeInsetsMake( top: CGFloat , _ left: CGFloat , _ bottom: CGFloat , _ right: CGFloat ) -> NSEdgeInsets { NSUnimplemented ( ) }
234
+ public func NSEqualPoints( aPoint: NSPoint , _ bPoint: NSPoint ) -> Bool { return aPoint == bPoint }
235
+ public func NSEqualSizes( aSize: NSSize , _ bSize: NSSize ) -> Bool { return aSize == bSize }
236
+ public func NSEqualRects( aRect: NSRect , _ bRect: NSRect ) -> Bool { return aRect == bRect }
237
+ public func NSIsEmptyRect( aRect: NSRect ) -> Bool { return ( aRect. size. width. native <= 0 ) || ( aRect. size. height. native <= 0 ) }
238
+ public func NSEdgeInsetsEqual( aInsets: NSEdgeInsets , _ bInsets: NSEdgeInsets ) -> Bool { return ( aInsets. top == bInsets. top) && ( aInsets. left == bInsets. left) && ( aInsets. bottom == bInsets. bottom) && ( aInsets. right == bInsets. right) }
186
239
187
- public func NSEqualPoints( aPoint: NSPoint , _ bPoint: NSPoint ) -> Bool { NSUnimplemented ( ) }
188
- public func NSEqualSizes( aSize: NSSize , _ bSize: NSSize ) -> Bool { NSUnimplemented ( ) }
189
- public func NSEqualRects( aRect: NSRect , _ bRect: NSRect ) -> Bool { NSUnimplemented ( ) }
190
- public func NSIsEmptyRect( aRect: NSRect ) -> Bool { NSUnimplemented ( ) }
191
- public func NSEdgeInsetsEqual( aInsets: NSEdgeInsets , _ bInsets: NSEdgeInsets ) -> Bool { NSUnimplemented ( ) }
240
+ public func NSInsetRect( aRect: NSRect , _ dX: CGFloat , _ dY: CGFloat ) -> NSRect {
241
+ let x = CGFloat ( aRect. origin. x. native + dX. native)
242
+ let y = CGFloat ( aRect. origin. y. native + dY. native)
243
+ let w = CGFloat ( aRect. size. width. native - ( dX. native * 2 ) )
244
+ let h = CGFloat ( aRect. size. height. native - ( dY. native * 2 ) )
245
+
246
+ return NSMakeRect ( x, y, w, h)
247
+ }
192
248
193
- public func NSInsetRect( aRect: NSRect , _ dX: CGFloat , _ dY: CGFloat ) -> NSRect { NSUnimplemented ( ) }
194
249
public func NSIntegralRect( aRect: NSRect ) -> NSRect { NSUnimplemented ( ) }
195
250
public func NSIntegralRectWithOptions( aRect: NSRect , _ opts: NSAlignmentOptions ) -> NSRect { NSUnimplemented ( ) }
196
251
0 commit comments