Mercurial > projects > dstep
comparison dstep/appkit/NSFontDescriptor.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | |
children | b9de51448c6b |
comparison
equal
deleted
inserted
replaced
15:7ff919f595d5 | 16:19885b43130e |
---|---|
1 /** | |
2 * Copyright: Copyright (c) 2009 Jacob Carlborg. | |
3 * Authors: Jacob Carlborg | |
4 * Version: Initial created: Sep 24, 2009 | |
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) | |
6 */ | |
7 module dstep.appkit.NSFontDescriptor; | |
8 | |
9 import dstep.appkit.AppKitDefines; | |
10 import dstep.applicationservices.coregraphics.CGBase; | |
11 import dstep.foundation.NSAffineTransform; | |
12 import dstep.foundation.NSArray; | |
13 import dstep.foundation.NSCoder; | |
14 import dstep.foundation.NSDictionary; | |
15 import dstep.foundation.NSGeometry; | |
16 import dstep.foundation.NSObject; | |
17 import dstep.foundation.NSSet; | |
18 import dstep.foundation.NSString; | |
19 import dstep.foundation.NSZone; | |
20 import dstep.objc.bridge.Bridge; | |
21 import dstep.objc.objc; | |
22 | |
23 import bindings = dstep.appkit.NSFontDescriptor_bindings; | |
24 | |
25 alias uint NSFontSymbolicTraits; | |
26 alias uint NSFontFamilyClass; | |
27 | |
28 private | |
29 { | |
30 NSString NSFontFamilyAttribute_; | |
31 NSString NSFontNameAttribute_; | |
32 NSString NSFontFaceAttribute_; | |
33 NSString NSFontSizeAttribute_; | |
34 NSString NSFontVisibleNameAttribute_; | |
35 NSString NSFontMatrixAttribute_; | |
36 NSString NSFontVariationAttribute_; | |
37 NSString NSFontCharacterSetAttribute_; | |
38 NSString NSFontCascadeListAttribute_; | |
39 NSString NSFontTraitsAttribute_; | |
40 NSString NSFontFixedAdvanceAttribute_; | |
41 NSString NSFontFeatureSettingsAttribute_; | |
42 NSString NSFontSymbolicTrait_; | |
43 NSString NSFontWeightTrait_; | |
44 NSString NSFontWidthTrait_; | |
45 NSString NSFontSlantTrait_; | |
46 NSString NSFontVariationAxisIdentifierKey_; | |
47 NSString NSFontVariationAxisMinimumValueKey_; | |
48 NSString NSFontVariationAxisMaximumValueKey_; | |
49 NSString NSFontVariationAxisDefaultValueKey_; | |
50 NSString NSFontVariationAxisNameKey_; | |
51 NSString NSFontFeatureTypeIdentifierKey_; | |
52 NSString NSFontFeatureSelectorIdentifierKey_; | |
53 } | |
54 | |
55 NSString NSFontFamilyAttribute () | |
56 { | |
57 if (NSFontFamilyAttribute_) | |
58 return NSFontFamilyAttribute_; | |
59 | |
60 return NSFontFamilyAttribute_ = new NSString(bindings.NSFontFamilyAttribute); | |
61 } | |
62 | |
63 NSString NSFontNameAttribute () | |
64 { | |
65 if (NSFontNameAttribute_) | |
66 return NSFontNameAttribute_; | |
67 | |
68 return NSFontNameAttribute_ = new NSString(bindings.NSFontNameAttribute); | |
69 } | |
70 | |
71 NSString NSFontFaceAttribute () | |
72 { | |
73 if (NSFontFaceAttribute_) | |
74 return NSFontFaceAttribute_; | |
75 | |
76 return NSFontFaceAttribute_ = new NSString(bindings.NSFontFaceAttribute); | |
77 } | |
78 | |
79 NSString NSFontSizeAttribute () | |
80 { | |
81 if (NSFontSizeAttribute_) | |
82 return NSFontSizeAttribute_; | |
83 | |
84 return NSFontSizeAttribute_ = new NSString(bindings.NSFontSizeAttribute); | |
85 } | |
86 | |
87 NSString NSFontVisibleNameAttribute () | |
88 { | |
89 if (NSFontVisibleNameAttribute_) | |
90 return NSFontVisibleNameAttribute_; | |
91 | |
92 return NSFontVisibleNameAttribute_ = new NSString(bindings.NSFontVisibleNameAttribute); | |
93 } | |
94 | |
95 NSString NSFontMatrixAttribute () | |
96 { | |
97 if (NSFontMatrixAttribute_) | |
98 return NSFontMatrixAttribute_; | |
99 | |
100 return NSFontMatrixAttribute_ = new NSString(bindings.NSFontMatrixAttribute); | |
101 } | |
102 | |
103 NSString NSFontVariationAttribute () | |
104 { | |
105 if (NSFontVariationAttribute_) | |
106 return NSFontVariationAttribute_; | |
107 | |
108 return NSFontVariationAttribute_ = new NSString(bindings.NSFontVariationAttribute); | |
109 } | |
110 | |
111 NSString NSFontCharacterSetAttribute () | |
112 { | |
113 if (NSFontCharacterSetAttribute_) | |
114 return NSFontCharacterSetAttribute_; | |
115 | |
116 return NSFontCharacterSetAttribute_ = new NSString(bindings.NSFontCharacterSetAttribute); | |
117 } | |
118 | |
119 NSString NSFontCascadeListAttribute () | |
120 { | |
121 if (NSFontCascadeListAttribute_) | |
122 return NSFontCascadeListAttribute_; | |
123 | |
124 return NSFontCascadeListAttribute_ = new NSString(bindings.NSFontCascadeListAttribute); | |
125 } | |
126 | |
127 NSString NSFontTraitsAttribute () | |
128 { | |
129 if (NSFontTraitsAttribute_) | |
130 return NSFontTraitsAttribute_; | |
131 | |
132 return NSFontTraitsAttribute_ = new NSString(bindings.NSFontTraitsAttribute); | |
133 } | |
134 | |
135 NSString NSFontFixedAdvanceAttribute () | |
136 { | |
137 if (NSFontFixedAdvanceAttribute_) | |
138 return NSFontFixedAdvanceAttribute_; | |
139 | |
140 return NSFontFixedAdvanceAttribute_ = new NSString(bindings.NSFontFixedAdvanceAttribute); | |
141 } | |
142 | |
143 NSString NSFontFeatureSettingsAttribute () | |
144 { | |
145 if (NSFontFeatureSettingsAttribute_) | |
146 return NSFontFeatureSettingsAttribute_; | |
147 | |
148 return NSFontFeatureSettingsAttribute_ = new NSString(bindings.NSFontFeatureSettingsAttribute); | |
149 } | |
150 | |
151 NSString NSFontSymbolicTrait () | |
152 { | |
153 if (NSFontSymbolicTrait_) | |
154 return NSFontSymbolicTrait_; | |
155 | |
156 return NSFontSymbolicTrait_ = new NSString(bindings.NSFontSymbolicTrait); | |
157 } | |
158 | |
159 NSString NSFontWeightTrait () | |
160 { | |
161 if (NSFontWeightTrait_) | |
162 return NSFontWeightTrait_; | |
163 | |
164 return NSFontWeightTrait_ = new NSString(bindings.NSFontWeightTrait); | |
165 } | |
166 | |
167 NSString NSFontWidthTrait () | |
168 { | |
169 if (NSFontWidthTrait_) | |
170 return NSFontWidthTrait_; | |
171 | |
172 return NSFontWidthTrait_ = new NSString(bindings.NSFontWidthTrait); | |
173 } | |
174 | |
175 NSString NSFontSlantTrait () | |
176 { | |
177 if (NSFontSlantTrait_) | |
178 return NSFontSlantTrait_; | |
179 | |
180 return NSFontSlantTrait_ = new NSString(bindings.NSFontSlantTrait); | |
181 } | |
182 | |
183 NSString NSFontVariationAxisIdentifierKey () | |
184 { | |
185 if (NSFontVariationAxisIdentifierKey_) | |
186 return NSFontVariationAxisIdentifierKey_; | |
187 | |
188 return NSFontVariationAxisIdentifierKey_ = new NSString(bindings.NSFontVariationAxisIdentifierKey); | |
189 } | |
190 | |
191 NSString NSFontVariationAxisMinimumValueKey () | |
192 { | |
193 if (NSFontVariationAxisMinimumValueKey_) | |
194 return NSFontVariationAxisMinimumValueKey_; | |
195 | |
196 return NSFontVariationAxisMinimumValueKey_ = new NSString(bindings.NSFontVariationAxisMinimumValueKey); | |
197 } | |
198 | |
199 NSString NSFontVariationAxisMaximumValueKey () | |
200 { | |
201 if (NSFontVariationAxisMaximumValueKey_) | |
202 return NSFontVariationAxisMaximumValueKey_; | |
203 | |
204 return NSFontVariationAxisMaximumValueKey_ = new NSString(bindings.NSFontVariationAxisMaximumValueKey); | |
205 } | |
206 | |
207 NSString NSFontVariationAxisDefaultValueKey () | |
208 { | |
209 if (NSFontVariationAxisDefaultValueKey_) | |
210 return NSFontVariationAxisDefaultValueKey_; | |
211 | |
212 return NSFontVariationAxisDefaultValueKey_ = new NSString(bindings.NSFontVariationAxisDefaultValueKey); | |
213 } | |
214 | |
215 NSString NSFontVariationAxisNameKey () | |
216 { | |
217 if (NSFontVariationAxisNameKey_) | |
218 return NSFontVariationAxisNameKey_; | |
219 | |
220 return NSFontVariationAxisNameKey_ = new NSString(bindings.NSFontVariationAxisNameKey); | |
221 } | |
222 | |
223 NSString NSFontFeatureTypeIdentifierKey () | |
224 { | |
225 if (NSFontFeatureTypeIdentifierKey_) | |
226 return NSFontFeatureTypeIdentifierKey_; | |
227 | |
228 return NSFontFeatureTypeIdentifierKey_ = new NSString(bindings.NSFontFeatureTypeIdentifierKey); | |
229 } | |
230 | |
231 NSString NSFontFeatureSelectorIdentifierKey () | |
232 { | |
233 if (NSFontFeatureSelectorIdentifierKey_) | |
234 return NSFontFeatureSelectorIdentifierKey_; | |
235 | |
236 return NSFontFeatureSelectorIdentifierKey_ = new NSString(bindings.NSFontFeatureSelectorIdentifierKey); | |
237 } | |
238 | |
239 enum | |
240 { | |
241 NSFontUnknownClass = 0 << 28, | |
242 NSFontOldStyleSerifsClass = 1 << 28, | |
243 NSFontTransitionalSerifsClass = 2 << 28, | |
244 NSFontModernSerifsClass = 3 << 28, | |
245 NSFontClarendonSerifsClass = 4 << 28, | |
246 NSFontSlabSerifsClass = 5 << 28, | |
247 NSFontFreeformSerifsClass = 7 << 28, | |
248 NSFontSansSerifClass = 8 << 28, | |
249 NSFontOrnamentalsClass = 9 << 28, | |
250 NSFontScriptsClass = 10 << 28, | |
251 NSFontSymbolicClass = 12 << 28 | |
252 } | |
253 | |
254 enum | |
255 { | |
256 NSFontFamilyClassMask = 0xF0000000 | |
257 } | |
258 | |
259 enum | |
260 { | |
261 NSFontItalicTrait = (1 << 0), | |
262 NSFontBoldTrait = (1 << 1), | |
263 NSFontExpandedTrait = (1 << 5), | |
264 NSFontCondensedTrait = (1 << 6), | |
265 NSFontMonoSpaceTrait = (1 << 10), | |
266 NSFontVerticalTrait = (1 << 11), | |
267 NSFontUIOptimizedTrait = (1 << 12) | |
268 } | |
269 | |
270 class NSFontDescriptor : NSObject, INSCopying, INSCoding | |
271 { | |
272 mixin (ObjcWrap); | |
273 | |
274 this (NSCoder aDecoder) | |
275 { | |
276 super(typeof(this).alloc.initWithCoder(aDecoder).objcObject); | |
277 } | |
278 | |
279 void encodeWithCoder (NSCoder aCoder) | |
280 { | |
281 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder); | |
282 } | |
283 | |
284 typeof(this) initWithCoder (NSCoder aDecoder) | |
285 { | |
286 return invokeObjcSelf!(typeof(this), "initWithCoder:", NSCoder)(aDecoder); | |
287 } | |
288 | |
289 typeof(this) copyWithZone (NSZone* zone) | |
290 { | |
291 return invokeObjcSelf!(typeof(this), "copyWithZone:", NSZone*)(zone); | |
292 } | |
293 | |
294 NSString postscriptName () | |
295 { | |
296 return invokeObjcSelf!(NSString, "postscriptName"); | |
297 } | |
298 | |
299 CGFloat pointSize () | |
300 { | |
301 return invokeObjcSelf!(CGFloat, "pointSize"); | |
302 } | |
303 | |
304 NSAffineTransform matrix () | |
305 { | |
306 return invokeObjcSelf!(NSAffineTransform, "matrix"); | |
307 } | |
308 | |
309 uint symbolicTraits () | |
310 { | |
311 return invokeObjcSelf!(uint, "symbolicTraits"); | |
312 } | |
313 | |
314 Object objectForKey (NSString anAttribute) | |
315 { | |
316 return invokeObjcSelf!(Object, "objectForKey:", NSString)(anAttribute); | |
317 } | |
318 | |
319 NSDictionary fontAttributes () | |
320 { | |
321 return invokeObjcSelf!(NSDictionary, "fontAttributes"); | |
322 } | |
323 | |
324 static NSFontDescriptor fontDescriptorWithFontAttributes (NSDictionary attributes) | |
325 { | |
326 return invokeObjcSelfClass!(NSFontDescriptor, "fontDescriptorWithFontAttributes:", NSDictionary)(attributes); | |
327 } | |
328 | |
329 static NSFontDescriptor fontDescriptorWithName (NSString fontName, CGFloat size) | |
330 { | |
331 return invokeObjcSelfClass!(NSFontDescriptor, "fontDescriptorWithName:size:", NSString, CGFloat)(fontName, size); | |
332 } | |
333 | |
334 static NSFontDescriptor fontDescriptorWithName (NSString fontName, NSAffineTransform matrix) | |
335 { | |
336 return invokeObjcSelfClass!(NSFontDescriptor, "fontDescriptorWithName:matrix:", NSString, NSAffineTransform)(fontName, matrix); | |
337 } | |
338 | |
339 NSFontDescriptor initWithFontAttributes (NSDictionary attributes) | |
340 { | |
341 id result = invokeObjcSelf!(id, "initWithFontAttributes:", NSDictionary)(attributes); | |
342 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
343 } | |
344 | |
345 this (NSDictionary attributes) | |
346 { | |
347 super(NSFontDescriptor.alloc.initWithFontAttributes(attributes).objcObject); | |
348 } | |
349 | |
350 NSArray matchingFontDescriptorsWithMandatoryKeys (NSSet mandatoryKeys) | |
351 { | |
352 return invokeObjcSelf!(NSArray, "matchingFontDescriptorsWithMandatoryKeys:", NSSet)(mandatoryKeys); | |
353 } | |
354 | |
355 NSFontDescriptor matchingFontDescriptorWithMandatoryKeys (NSSet mandatoryKeys) | |
356 { | |
357 id result = invokeObjcSelf!(id, "matchingFontDescriptorWithMandatoryKeys:", NSSet)(mandatoryKeys); | |
358 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
359 } | |
360 | |
361 NSFontDescriptor fontDescriptorByAddingAttributes (NSDictionary attributes) | |
362 { | |
363 id result = invokeObjcSelf!(id, "fontDescriptorByAddingAttributes:", NSDictionary)(attributes); | |
364 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
365 } | |
366 | |
367 NSFontDescriptor fontDescriptorWithSymbolicTraits (uint symbolicTraits) | |
368 { | |
369 id result = invokeObjcSelf!(id, "fontDescriptorWithSymbolicTraits:", uint)(symbolicTraits); | |
370 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
371 } | |
372 | |
373 NSFontDescriptor fontDescriptorWithSize (CGFloat newPointSize) | |
374 { | |
375 id result = invokeObjcSelf!(id, "fontDescriptorWithSize:", CGFloat)(newPointSize); | |
376 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
377 } | |
378 | |
379 NSFontDescriptor fontDescriptorWithMatrix (NSAffineTransform matrix) | |
380 { | |
381 id result = invokeObjcSelf!(id, "fontDescriptorWithMatrix:", NSAffineTransform)(matrix); | |
382 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
383 } | |
384 | |
385 NSFontDescriptor fontDescriptorWithFace (NSString newFace) | |
386 { | |
387 id result = invokeObjcSelf!(id, "fontDescriptorWithFace:", NSString)(newFace); | |
388 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
389 } | |
390 | |
391 NSFontDescriptor fontDescriptorWithFamily (NSString newFamily) | |
392 { | |
393 id result = invokeObjcSelf!(id, "fontDescriptorWithFamily:", NSString)(newFamily); | |
394 return result is this.objcObject ? this : (result !is null ? new NSFontDescriptor(result) : null); | |
395 } | |
396 | |
397 } | |
398 |