1 {
2 File: HIServices/HIShape.h
3
4 Contains: Generic Abstract Shape API
5
6 Version: HIServices-416~44
7
8 Copyright: � 2001-2008 by Apple Computer, Inc., all rights reserved.
9
10 Bugs?: For bug reports, consult the following page on
11 the World Wide Web:
12
13 http://bugs.freepascal.org
14
15 }
16 { File: HIShape.p(.pas) }
17 { }
18 { Contains: CodeWarrior Pascal(GPC) translation of Apple's Mac OS X 10.2 introduced HIShape.h. }
19 { Translation compatible with make-gpc-interfaces.pl generated MWPInterfaces }
20 { (GPCPInterfaces) and Mac OS X 10.2.x or higher. The CodeWarrior Pascal translation }
21 { is linkable with Mac OS X 10.2.x or higher CFM CarbonLib. The GPC translation is }
22 { linkable with Mac OS X 10.2.x or higher Mach-O Carbon.framework. }
23 { }
24 { Version: 1.0 }
25 { }
26 { Pascal Translation: Gale Paeper, <gpaeper@empirenet.com>, 2004 }
27 { }
28 { Copyright: Subject to the constraints of Apple's original rights, you're free to use this }
29 { translation as you deem fit. }
30 { }
31 { Bugs?: This is an AS IS translation with no express guarentees of any kind. }
32 { If you do find a bug, please help out the Macintosh Pascal programming community by }
33 { reporting your bug finding and possible fix to either personal e-mail to Gale Paeper }
34 { or a posting to the MacPascal mailing list. }
35 { }
36 { Translation assisted by: }
37 {This file was processed by Dan's Source Converter}
38 {version 1.3 (this version modified by Ingemar Ragnemalm)}
39 { Pascal Translation Updated: Peter N Lewis, <peter@stairways.com.au>, August 2005 }
40 { Pascal Translation Updated: Jonas Maebe, <jonas@freepascal.org>, October 2009 }
41 { Pascal Translation Updated: Jonas Maebe, <jonas@freepascal.org>, October 2012 }
42 {
43 Modified for use with Free Pascal
44 Version 308
45 Please report any bugs to <gpc@microbizz.nl>
46 }
47
48 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
49 {$mode macpas}
50 {$modeswitch cblocks}
51 {$packenum 1}
52 {$macro on}
53 {$inline on}
54 {$calling mwpascal}
55
56 unit HIShape;
57 interface
58 {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
59 {$setc GAP_INTERFACES_VERSION := $0308}
60
61 {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
62 {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
63 {$endc}
64
65 {$ifc defined CPUPOWERPC and defined CPUI386}
66 {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
67 {$endc}
68 {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
69 {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
70 {$endc}
71
72 {$ifc not defined __ppc__ and defined CPUPOWERPC32}
73 {$setc __ppc__ := 1}
74 {$elsec}
75 {$setc __ppc__ := 0}
76 {$endc}
77 {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
78 {$setc __ppc64__ := 1}
79 {$elsec}
80 {$setc __ppc64__ := 0}
81 {$endc}
82 {$ifc not defined __i386__ and defined CPUI386}
83 {$setc __i386__ := 1}
84 {$elsec}
85 {$setc __i386__ := 0}
86 {$endc}
87 {$ifc not defined __x86_64__ and defined CPUX86_64}
88 {$setc __x86_64__ := 1}
89 {$elsec}
90 {$setc __x86_64__ := 0}
91 {$endc}
92 {$ifc not defined __arm__ and defined CPUARM}
93 {$setc __arm__ := 1}
94 {$elsec}
95 {$setc __arm__ := 0}
96 {$endc}
97 {$ifc not defined __arm64__ and defined CPUAARCH64}
98 {$setc __arm64__ := 1}
99 {$elsec}
100 {$setc __arm64__ := 0}
101 {$endc}
102
103 {$ifc defined cpu64}
104 {$setc __LP64__ := 1}
105 {$elsec}
106 {$setc __LP64__ := 0}
107 {$endc}
108
109
110 {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
111 {$error Conflicting definitions for __ppc__ and __i386__}
112 {$endc}
113
114 {$ifc defined __ppc__ and __ppc__}
115 {$setc TARGET_CPU_PPC := TRUE}
116 {$setc TARGET_CPU_PPC64 := FALSE}
117 {$setc TARGET_CPU_X86 := FALSE}
118 {$setc TARGET_CPU_X86_64 := FALSE}
119 {$setc TARGET_CPU_ARM := FALSE}
120 {$setc TARGET_CPU_ARM64 := FALSE}
121 {$setc TARGET_OS_MAC := TRUE}
122 {$setc TARGET_OS_IPHONE := FALSE}
123 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
124 {$setc TARGET_OS_EMBEDDED := FALSE}
125 {$elifc defined __ppc64__ and __ppc64__}
126 {$setc TARGET_CPU_PPC := FALSE}
127 {$setc TARGET_CPU_PPC64 := TRUE}
128 {$setc TARGET_CPU_X86 := FALSE}
129 {$setc TARGET_CPU_X86_64 := FALSE}
130 {$setc TARGET_CPU_ARM := FALSE}
131 {$setc TARGET_CPU_ARM64 := FALSE}
132 {$setc TARGET_OS_MAC := TRUE}
133 {$setc TARGET_OS_IPHONE := FALSE}
134 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
135 {$setc TARGET_OS_EMBEDDED := FALSE}
136 {$elifc defined __i386__ and __i386__}
137 {$setc TARGET_CPU_PPC := FALSE}
138 {$setc TARGET_CPU_PPC64 := FALSE}
139 {$setc TARGET_CPU_X86 := TRUE}
140 {$setc TARGET_CPU_X86_64 := FALSE}
141 {$setc TARGET_CPU_ARM := FALSE}
142 {$setc TARGET_CPU_ARM64 := FALSE}
143 {$ifc defined iphonesim}
144 {$setc TARGET_OS_MAC := FALSE}
145 {$setc TARGET_OS_IPHONE := TRUE}
146 {$setc TARGET_IPHONE_SIMULATOR := TRUE}
147 {$elsec}
148 {$setc TARGET_OS_MAC := TRUE}
149 {$setc TARGET_OS_IPHONE := FALSE}
150 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
151 {$endc}
152 {$setc TARGET_OS_EMBEDDED := FALSE}
153 {$elifc defined __x86_64__ and __x86_64__}
154 {$setc TARGET_CPU_PPC := FALSE}
155 {$setc TARGET_CPU_PPC64 := FALSE}
156 {$setc TARGET_CPU_X86 := FALSE}
157 {$setc TARGET_CPU_X86_64 := TRUE}
158 {$setc TARGET_CPU_ARM := FALSE}
159 {$setc TARGET_CPU_ARM64 := FALSE}
160 {$ifc defined iphonesim}
161 {$setc TARGET_OS_MAC := FALSE}
162 {$setc TARGET_OS_IPHONE := TRUE}
163 {$setc TARGET_IPHONE_SIMULATOR := TRUE}
164 {$elsec}
165 {$setc TARGET_OS_MAC := TRUE}
166 {$setc TARGET_OS_IPHONE := FALSE}
167 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
168 {$endc}
169 {$setc TARGET_OS_EMBEDDED := FALSE}
170 {$elifc defined __arm__ and __arm__}
171 {$setc TARGET_CPU_PPC := FALSE}
172 {$setc TARGET_CPU_PPC64 := FALSE}
173 {$setc TARGET_CPU_X86 := FALSE}
174 {$setc TARGET_CPU_X86_64 := FALSE}
175 {$setc TARGET_CPU_ARM := TRUE}
176 {$setc TARGET_CPU_ARM64 := FALSE}
177 {$setc TARGET_OS_MAC := FALSE}
178 {$setc TARGET_OS_IPHONE := TRUE}
179 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
180 {$setc TARGET_OS_EMBEDDED := TRUE}
181 {$elifc defined __arm64__ and __arm64__}
182 {$setc TARGET_CPU_PPC := FALSE}
183 {$setc TARGET_CPU_PPC64 := FALSE}
184 {$setc TARGET_CPU_X86 := FALSE}
185 {$setc TARGET_CPU_X86_64 := FALSE}
186 {$setc TARGET_CPU_ARM := FALSE}
187 {$setc TARGET_CPU_ARM64 := TRUE}
188 {$ifc defined ios}
189 {$setc TARGET_OS_MAC := FALSE}
190 {$setc TARGET_OS_IPHONE := TRUE}
191 {$setc TARGET_OS_EMBEDDED := TRUE}
192 {$elsec}
193 {$setc TARGET_OS_MAC := TRUE}
194 {$setc TARGET_OS_IPHONE := FALSE}
195 {$setc TARGET_OS_EMBEDDED := FALSE}
196 {$endc}
197 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
198 {$elsec}
199 {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
200 {$endc}
201
202 {$ifc defined __LP64__ and __LP64__ }
203 {$setc TARGET_CPU_64 := TRUE}
204 {$elsec}
205 {$setc TARGET_CPU_64 := FALSE}
206 {$endc}
207
208 {$ifc defined FPC_BIG_ENDIAN}
209 {$setc TARGET_RT_BIG_ENDIAN := TRUE}
210 {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
211 {$elifc defined FPC_LITTLE_ENDIAN}
212 {$setc TARGET_RT_BIG_ENDIAN := FALSE}
213 {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
214 {$elsec}
215 {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
216 {$endc}
217 {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
218 {$setc CALL_NOT_IN_CARBON := FALSE}
219 {$setc OLDROUTINENAMES := FALSE}
220 {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
221 {$setc OPAQUE_UPP_TYPES := TRUE}
222 {$setc OTCARBONAPPLICATION := TRUE}
223 {$setc OTKERNEL := FALSE}
224 {$setc PM_USE_SESSION_APIS := TRUE}
225 {$setc TARGET_API_MAC_CARBON := TRUE}
226 {$setc TARGET_API_MAC_OS8 := FALSE}
227 {$setc TARGET_API_MAC_OSX := TRUE}
228 {$setc TARGET_CARBON := TRUE}
229 {$setc TARGET_CPU_68K := FALSE}
230 {$setc TARGET_CPU_MIPS := FALSE}
231 {$setc TARGET_CPU_SPARC := FALSE}
232 {$setc TARGET_OS_UNIX := FALSE}
233 {$setc TARGET_OS_WIN32 := FALSE}
234 {$setc TARGET_RT_MAC_68881 := FALSE}
235 {$setc TARGET_RT_MAC_CFM := FALSE}
236 {$setc TARGET_RT_MAC_MACHO := TRUE}
237 {$setc TYPED_FUNCTION_POINTERS := TRUE}
238 {$setc TYPE_BOOL := FALSE}
239 {$setc TYPE_EXTENDED := FALSE}
240 {$setc TYPE_LONGLONG := TRUE}
241 uses MacTypes,CFBase,CGBase,CGContext,CGGeometry,Drag,QuickdrawTypes,CarbonEvents,HIGeometry;
242 {$endc} {not MACOSALLINCLUDE}
243
244
245 {$ifc TARGET_OS_MAC}
246
247 {$ALIGN POWER}
248
249
250 {
251 * HIShape
252 *
253 * Discussion:
254 * HIShape is an abstract shape object for use with some of the
255 * HIToolbox APIs. It is designed as a replacement for RgnHandles
256 * (though it is currently implemented in terms of them at the time
257 * of this writing). This abstraction will allow us to avoid using
258 * QD types in our APIs, particularly in HIView.
259 *
260 * One of the biggest benefits of HIShape is that we have mutable
261 * and immutable variants. This means that immutable shapes can be
262 * created and passed around and 'copied' very quickly, since they
263 * are actually refcounted when copied. This avoids needing to do
264 * the handle-to-handle copies that occur right now with
265 * RgnHandle-based APIs.
266 *
267 * Thread Safety Information
268 *
269 * On Mac OS X 10.5 and later, all of the HIShape APIs are thread
270 * safe. However, only the APIs are thread safe; the HIShapeRefs
271 * themselves are not. It is safe to call HIShape APIs on multiple
272 * threads, so long as no two threads try to operate on the same
273 * HIShapeRef at the same time.
274 *
275 * If you need multiple threads to operate on a single HIShapeRef at
276 * the same time, you must implement your own locking mechanism.
277 }
278 type
279 HIShapeRef = ^__HIShape; { an opaque type }
280 __HIShape = record end;
281 HIMutableShapeRef = ^__HIShape; { an opaque type }
282
283 {
284 * Summary:
285 * Messages passed to an HIShapeEnumeratorProcPtr callback.
286 }
287 const
288 {
289 * The callback receives this message at the beginning of enumeration.
290 }
291 kHIShapeEnumerateInit = 1;
292
293 {
294 * The callback receives this message when it is passed a rectangular
295 * portion of the shape.
296 }
297 kHIShapeEnumerateRect = 2;
298
299 {
300 * The callback receives this message at the end of enumeration.
301 }
302 kHIShapeEnumerateTerminate = 3;
303
304
305 {
306 * Summary:
307 * Options for HIShapeEnumerate.
308 }
309 const
310 {
311 * Enumeration should begin at the top of the shape. This is the
312 * default behavior.
313 }
314 kHIShapeParseFromTop = 0;
315
316 {
317 * Enumeration should begin at the bottom of the shape.
318 }
319 kHIShapeParseFromBottom = 1 shl 0;
320
321 {
322 * Enumeration should begin at the left side of the shape. This is
323 * the default behavior.
324 }
325 kHIShapeParseFromLeft = 0;
326
327 {
328 * Enumeration should begin at the right side of the shape.
329 }
330 kHIShapeParseFromRight = 1 shl 1;
331
332 {
333 * Enumeration should begin at the top left corner of the shape. This
334 * is the default behavior.
335 }
336 kHIShapeParseFromTopLeft = kHIShapeParseFromTop or kHIShapeParseFromLeft;
337
338 {
339 * Enumeration should begin at the bottom right corner of the shape.
340 }
341 kHIShapeParseFromBottomRight = kHIShapeParseFromBottom or kHIShapeParseFromRight;
342
343
344 {
345 * HIShapeEnumerateProcPtr
346 *
347 * Summary:
348 * Callback function that receives rectangles parsed from an HIShape.
349 *
350 * Parameters:
351 *
352 * inMessage:
353 * One of kHIShapeEnumerateInit, kHIShapeEnumerateRect, or
354 * kHIShapeEnumerateTerminate.
355 *
356 * inShape:
357 * The shape being enumerated.
358 *
359 * inRect:
360 * If inMessage is kHIShapeEnumerateRect, this parameter is a
361 * rectangle that forms part of the shape. If inMessage is
362 * kHIShapeEnumerateInit or kHIShapeEnumerateTerminate, the value
363 * of this parameter is undefined.
364 *
365 * inRefcon:
366 * Client-provided data that was passed to HIShapeEnumerate.
367 *
368 * Result:
369 * The callback should return noErr to continue enumeration, or any
370 * other error code to stop enumeration. If the callback returns a
371 * value other than noErr in response to the Init message, then the
372 * callback will not be called with the Rect or Terminate messages.
373 * If the callback returns a value other than noErr in response to a
374 * Rect message, then the callback will still be called with a
375 * Terminate message. The first value other than noErr returned by
376 * the callback is also returned from HIShapeEnumerate.
377 }
378 type
inMessagenull379 HIShapeEnumerateProcPtr = function( inMessage: SInt32; inShape: HIShapeRef; const (*var*) inRect: CGRect; inRefcon: UnivPtr ): OSStatus;
380 {
381 * HIShapeGetTypeID()
382 *
383 * Discussion:
384 * Returns the CoreFoundation type ID for the HIShape class.
385 *
386 *
387 * This API is thread safe only on Mac OS X 10.5 and later; see the
388 * Thread Safety Information section at the top of the header for
389 * other important details.
390 *
391 * Mac OS X threading:
392 * Thread safe since version 10.5
393 *
394 * Result:
395 * A CoreFoundation type ID.
396 *
397 * Availability:
398 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
399 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
400 * Non-Carbon CFM: not available
401 }
HIShapeGetTypeIDnull402 function HIShapeGetTypeID: CFTypeID; external name '_HIShapeGetTypeID';
403 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
404
405
406 {======================================================================================}
407 { IMMUTABLE FUNCTIONS }
408 {======================================================================================}
409 {
410 * HIShapeCreateEmpty()
411 *
412 * Discussion:
413 * Creates an immutable empty shape. Useful at times.
414 *
415 * This API is thread safe only on Mac OS X 10.5 and later; see the
416 * Thread Safety Information section at the top of the header for
417 * other important details.
418 *
419 * Mac OS X threading:
420 * Thread safe since version 10.5
421 *
422 * Result:
423 * An immutable, empty HIShape reference.
424 *
425 * Availability:
426 * Mac OS X: in version 10.4 and later in ApplicationServices.framework
427 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
428 * Non-Carbon CFM: not available
429 }
HIShapeCreateEmptynull430 function HIShapeCreateEmpty: HIShapeRef; external name '_HIShapeCreateEmpty';
431 (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
432
433
434 {
435 * HIShapeCreateWithQDRgn()
436 *
437 * Discussion:
438 * Creates an immutable shape based on an existing Quickdraw region
439 * handle.
440 *
441 * This API is thread safe only on Mac OS X 10.5 and later; see the
442 * Thread Safety Information section at the top of the header for
443 * other important details.
444 *
445 * Mac OS X threading:
446 * Thread safe since version 10.5
447 *
448 * Parameters:
449 *
450 * inRgn:
451 * The Quickdraw region from which to create the HIShape.
452 *
453 * Result:
454 * An immutable HIShape reference.
455 *
456 * Availability:
457 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
458 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
459 * Non-Carbon CFM: not available
460 }
HIShapeCreateWithQDRgnnull461 function HIShapeCreateWithQDRgn( inRgn: RgnHandle ): HIShapeRef; external name '_HIShapeCreateWithQDRgn';
462 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
463
464
465 {
466 * HIShapeCreateWithRect()
467 *
468 * Discussion:
469 * Creates an immutable, rectangular shape based on a given
470 * rectangle.
471 *
472 * This API is thread safe only on Mac OS X 10.5 and later; see the
473 * Thread Safety Information section at the top of the header for
474 * other important details.
475 *
476 * Mac OS X threading:
477 * Thread safe since version 10.5
478 *
479 * Parameters:
480 *
481 * inRect:
482 * The CGRect from which to create the resulting shape.
483 *
484 * Result:
485 * An immutable HIShape reference.
486 *
487 * Availability:
488 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
489 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
490 * Non-Carbon CFM: not available
491 }
HIShapeCreateWithRectnull492 function HIShapeCreateWithRect( const (*var*) inRect: CGRect ): HIShapeRef; external name '_HIShapeCreateWithRect';
493 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
494
495
496 {
497 * HIShapeCreateCopy()
498 *
499 * Discussion:
500 * Creates an immutable copy of a mutable or immutable HIShape.
501 *
502 *
503 * This API is thread safe only on Mac OS X 10.5 and later; see the
504 * Thread Safety Information section at the top of the header for
505 * other important details.
506 *
507 * Mac OS X threading:
508 * Thread safe since version 10.5
509 *
510 * Parameters:
511 *
512 * inShape:
513 * The existing HIShapeRef you wish to copy.
514 *
515 * Result:
516 * An immutable HIShape reference.
517 *
518 * Availability:
519 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
520 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
521 * Non-Carbon CFM: not available
522 }
HIShapeCreateCopynull523 function HIShapeCreateCopy( inShape: HIShapeRef ): HIShapeRef; external name '_HIShapeCreateCopy';
524 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
525
526
527 {
528 * HIShapeCreateIntersection()
529 *
530 * Discussion:
531 * Creates a new immutable shape which is the intersection of two
532 * others.
533 *
534 * This API is thread safe only on Mac OS X 10.5 and later; see the
535 * Thread Safety Information section at the top of the header for
536 * other important details.
537 *
538 * Mac OS X threading:
539 * Thread safe since version 10.5
540 *
541 * Parameters:
542 *
543 * inShape1:
544 * An existing HIShapeRef.
545 *
546 * inShape2:
547 * An existing HIShapeRef.
548 *
549 * Result:
550 * A new immutable HIShapeRef.
551 *
552 * Availability:
553 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
554 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
555 * Non-Carbon CFM: not available
556 }
HIShapeCreateIntersectionnull557 function HIShapeCreateIntersection( inShape1: HIShapeRef; inShape2: HIShapeRef ): HIShapeRef; external name '_HIShapeCreateIntersection';
558 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
559
560
561 {
562 * HIShapeCreateDifference()
563 *
564 * Discussion:
565 * Creates a new immutable shape which is the difference of two
566 * others. The second shape is subtracted from the first.
567 *
568 * This API is thread safe only on Mac OS X 10.5 and later; see the
569 * Thread Safety Information section at the top of the header for
570 * other important details.
571 *
572 * Mac OS X threading:
573 * Thread safe since version 10.5
574 *
575 * Parameters:
576 *
577 * inShape1:
578 * An existing HIShapeRef.
579 *
580 * inShape2:
581 * An existing HIShapeRef.
582 *
583 * Result:
584 * A new immutable HIShapeRef.
585 *
586 * Availability:
587 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
588 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
589 * Non-Carbon CFM: not available
590 }
HIShapeCreateDifferencenull591 function HIShapeCreateDifference( inShape1: HIShapeRef; inShape2: HIShapeRef ): HIShapeRef; external name '_HIShapeCreateDifference';
592 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
593
594
595 {
596 * HIShapeCreateUnion()
597 *
598 * Discussion:
599 * Creates a new immutable shape which is the union of two others.
600 *
601 *
602 * This API is thread safe only on Mac OS X 10.5 and later; see the
603 * Thread Safety Information section at the top of the header for
604 * other important details.
605 *
606 * Mac OS X threading:
607 * Thread safe since version 10.5
608 *
609 * Parameters:
610 *
611 * inShape1:
612 * An existing HIShapeRef.
613 *
614 * inShape2:
615 * An existing HIShapeRef.
616 *
617 * Result:
618 * A new immutable HIShapeRef.
619 *
620 * Availability:
621 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
622 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
623 * Non-Carbon CFM: not available
624 }
HIShapeCreateUnionnull625 function HIShapeCreateUnion( inShape1: HIShapeRef; inShape2: HIShapeRef ): HIShapeRef; external name '_HIShapeCreateUnion';
626 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
627
628
629 {
630 * HIShapeCreateXor()
631 *
632 * Discussion:
633 * Creates a new immutable shape which is the difference between the
634 * union and the intersection of the two others.
635 *
636 * This API is thread safe only on Mac OS X 10.5 and later; see the
637 * Thread Safety Information section at the top of the header for
638 * other important details.
639 *
640 * Mac OS X threading:
641 * Thread safe since version 10.5
642 *
643 * Parameters:
644 *
645 * inShape1:
646 * An existing HIShapeRef.
647 *
648 * inShape2:
649 * An existing HIShapeRef.
650 *
651 * Result:
652 * A new immutable HIShapeRef.
653 *
654 * Availability:
655 * Mac OS X: in version 10.5 and later in ApplicationServices.framework
656 * CarbonLib: not available
657 * Non-Carbon CFM: not available
658 }
HIShapeCreateXornull659 function HIShapeCreateXor( inShape1: HIShapeRef; inShape2: HIShapeRef ): HIShapeRef; external name '_HIShapeCreateXor';
660 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
661
662
663 {
664 * HIShapeIsEmpty()
665 *
666 * Discussion:
667 * Returns true if the given HIShapeRef is empty, i.e. its area is
668 * empty.
669 *
670 * This API is thread safe only on Mac OS X 10.5 and later; see the
671 * Thread Safety Information section at the top of the header for
672 * other important details.
673 *
674 * Mac OS X threading:
675 * Thread safe since version 10.5
676 *
677 * Parameters:
678 *
679 * inShape:
680 * The existing HIShapeRef you wish to test.
681 *
682 * Result:
683 * A boolean result.
684 *
685 * Availability:
686 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
687 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
688 * Non-Carbon CFM: not available
689 }
HIShapeIsEmptynull690 function HIShapeIsEmpty( inShape: HIShapeRef ): Boolean; external name '_HIShapeIsEmpty';
691 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
692
693
694 {
695 * HIShapeIsRectangular()
696 *
697 * Discussion:
698 * Returns true if the given HIShapeRef is rectangular.
699 *
700 * This API is thread safe only on Mac OS X 10.5 and later; see the
701 * Thread Safety Information section at the top of the header for
702 * other important details.
703 *
704 * Mac OS X threading:
705 * Thread safe since version 10.5
706 *
707 * Parameters:
708 *
709 * inShape:
710 * The existing HIShapeRef you wish to test.
711 *
712 * Result:
713 * A boolean result.
714 *
715 * Availability:
716 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
717 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
718 * Non-Carbon CFM: not available
719 }
HIShapeIsRectangularnull720 function HIShapeIsRectangular( inShape: HIShapeRef ): Boolean; external name '_HIShapeIsRectangular';
721 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
722
723
724 {
725 * HIShapeContainsPoint()
726 *
727 * Discussion:
728 * Returns true if the given HIShapeRef contains the point passed
729 * in.
730 *
731 * This API is thread safe only on Mac OS X 10.5 and later; see the
732 * Thread Safety Information section at the top of the header for
733 * other important details.
734 *
735 * Mac OS X threading:
736 * Thread safe since version 10.5
737 *
738 * Parameters:
739 *
740 * inShape:
741 * An existing HIShapeRef.
742 *
743 * inPoint:
744 * The point to check.
745 *
746 * Result:
747 * A boolean result.
748 *
749 * Availability:
750 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
751 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
752 * Non-Carbon CFM: not available
753 }
HIShapeContainsPointnull754 function HIShapeContainsPoint( inShape: HIShapeRef; const (*var*) inPoint: CGPoint ): Boolean; external name '_HIShapeContainsPoint';
755 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
756
757
758 {
759 * HIShapeIntersectsRect()
760 *
761 * Discussion:
762 * Returns true if the given HIShapeRef intersects the rect passed
763 * in.
764 *
765 * This API is thread safe only on Mac OS X 10.5 and later; see the
766 * Thread Safety Information section at the top of the header for
767 * other important details.
768 *
769 * Mac OS X threading:
770 * Thread safe since version 10.5
771 *
772 * Parameters:
773 *
774 * inShape:
775 * An existing HIShapeRef.
776 *
777 * inRect:
778 * The rectangle to check.
779 *
780 * Result:
781 * A boolean result.
782 *
783 * Availability:
784 * Mac OS X: in version 10.4 and later in ApplicationServices.framework
785 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
786 * Non-Carbon CFM: not available
787 }
HIShapeIntersectsRectnull788 function HIShapeIntersectsRect( inShape: HIShapeRef; const (*var*) inRect: CGRect ): Boolean; external name '_HIShapeIntersectsRect';
789 (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
790
791
792 {
793 * HIShapeGetBounds()
794 *
795 * Discussion:
796 * Returns the bounding rectangle of a given HIShapeRef.
797 *
798 * This API is thread safe only on Mac OS X 10.5 and later; see the
799 * Thread Safety Information section at the top of the header for
800 * other important details.
801 *
802 * Mac OS X threading:
803 * Thread safe since version 10.5
804 *
805 * Parameters:
806 *
807 * inShape:
808 * An existing HIShapeRef.
809 *
810 * outRect:
811 * Receives the bounding rectangle.
812 *
813 * Result:
814 * A pointer to the rectangle you passed in, for convenience.
815 *
816 * Availability:
817 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
818 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
819 * Non-Carbon CFM: not available
820 }
HIShapeGetBoundsnull821 function HIShapeGetBounds( inShape: HIShapeRef; var outRect: CGRect ): CGRectPtr; external name '_HIShapeGetBounds';
822 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
823
824
825 {
826 * HIShapeGetAsQDRgn()
827 *
828 * Discussion:
829 * Changes a given Quickdraw region handle to have the same shape as
830 * a given HIShapeRef. Essentially you are converting an HIShapeRef
831 * into a RgnHandle. This conversion may lose fidelity depending on
832 * how the shape was created originally.
833 *
834 * This API is thread safe only on Mac OS X 10.5 and later; see the
835 * Thread Safety Information section at the top of the header for
836 * other important details.
837 *
838 * Mac OS X threading:
839 * Thread safe since version 10.5
840 *
841 * Parameters:
842 *
843 * inShape:
844 * An existing HIShapeRef.
845 *
846 * outRgn:
847 * An existing region to change.
848 *
849 * Result:
850 * An operating system status code.
851 *
852 * Availability:
853 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
854 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
855 * Non-Carbon CFM: not available
856 }
HIShapeGetAsQDRgnnull857 function HIShapeGetAsQDRgn( inShape: HIShapeRef; outRgn: RgnHandle ): OSStatus; external name '_HIShapeGetAsQDRgn';
858 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
859
860
861 {
862 * HIShapeReplacePathInCGContext()
863 *
864 * Discussion:
865 * Given an HIShapeRef and a CGContextRef, make the current path in
866 * the context represent the shape. You might use this to clip to a
867 * shape, for example. You could call this function and then
868 * immediately call CGContextClip.
869 *
870 * This API is thread safe only on Mac OS X 10.5 and later; see the
871 * Thread Safety Information section at the top of the header for
872 * other important details.
873 *
874 * Mac OS X threading:
875 * Thread safe since version 10.5
876 *
877 * Parameters:
878 *
879 * inShape:
880 * An existing HIShapeRef.
881 *
882 * inContext:
883 * The context to apply the shape to.
884 *
885 * Result:
886 * An operating system status code.
887 *
888 * Availability:
889 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
890 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
891 * Non-Carbon CFM: not available
892 }
HIShapeReplacePathInCGContextnull893 function HIShapeReplacePathInCGContext( inShape: HIShapeRef; inContext: CGContextRef ): OSStatus; external name '_HIShapeReplacePathInCGContext';
894 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
895
896
897 {$ifc not TARGET_CPU_64}
898 {
899 * HIShapeSetQDClip()
900 *
901 * Discussion:
902 * Given an HIShapeRef and a Quickdraw port, set the current clip in
903 * the port to the shape.
904 *
905 * This API is thread safe only on Mac OS X 10.5 and later; see the
906 * Thread Safety Information section at the top of the header for
907 * other important details.
908 *
909 * Mac OS X threading:
910 * Thread safe since version 10.5
911 *
912 * Parameters:
913 *
914 * inShape:
915 * An existing HIShapeRef.
916 *
917 * inPort:
918 * The port to set the clip for.
919 *
920 * Result:
921 * An operating system status code.
922 *
923 * Availability:
924 * Mac OS X: in version 10.2 and later in ApplicationServices.framework [32-bit only]
925 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
926 * Non-Carbon CFM: not available
927 }
HIShapeSetQDClipnull928 function HIShapeSetQDClip( inShape: HIShapeRef; inPort: CGrafPtr ): OSStatus; external name '_HIShapeSetQDClip';
929 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
930
931
932 {$endc} {not TARGET_CPU_64}
933
934 {
935 * HIShapeEnumerate()
936 *
937 * Discussion:
938 * Parses a shape into its constituent rectangles and passes each
939 * rectangle to a callback function.
940 *
941 * This API is thread safe only on Mac OS X 10.5 and later; see the
942 * Thread Safety Information section at the top of the header for
943 * other important details.
944 *
945 * Mac OS X threading:
946 * Thread safe since version 10.5
947 *
948 * Parameters:
949 *
950 * inShape:
951 * The shape to enumerate.
952 *
953 * inOptions:
954 * Options controlling how to enumerate the shape.
955 *
956 * inProc:
957 * The callback function that will be called with each rectangle.
958 *
959 * inRefcon:
960 * Extra data that will be passed to the callback function.
961 *
962 * Result:
963 * The function result is the value returned by the callback
964 * function: noErr if the callback always returns noErr, or the
965 * first non-noErr value returned by the callback.
966 *
967 * Availability:
968 * Mac OS X: in version 10.5 and later in ApplicationServices.framework
969 * CarbonLib: not available
970 * Non-Carbon CFM: not available
971 }
HIShapeEnumeratenull972 function HIShapeEnumerate( inShape: HIShapeRef; inOptions: OptionBits; inProc: HIShapeEnumerateProcPtr; inRefcon: UnivPtr ): OSStatus; external name '_HIShapeEnumerate';
973 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
974
975
976 {======================================================================================}
977 { MUTABLE FUNCTIONS }
978 {======================================================================================}
979 {
980 * HIShapeCreateMutable()
981 *
982 * Discussion:
983 * Creates a new, mutable, empty shape.
984 *
985 * This API is thread safe only on Mac OS X 10.5 and later; see the
986 * Thread Safety Information section at the top of the header for
987 * other important details.
988 *
989 * Mac OS X threading:
990 * Thread safe since version 10.5
991 *
992 * Result:
993 * A mutable shape reference.
994 *
995 * Availability:
996 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
997 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
998 * Non-Carbon CFM: not available
999 }
HIShapeCreateMutablenull1000 function HIShapeCreateMutable: HIMutableShapeRef; external name '_HIShapeCreateMutable';
1001 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1002
1003
1004 {
1005 * HIShapeCreateMutableCopy()
1006 *
1007 * Discussion:
1008 * Given an existing HIShapeRef, creates a new mutable copy.
1009 *
1010 *
1011 * This API is thread safe only on Mac OS X 10.5 and later; see the
1012 * Thread Safety Information section at the top of the header for
1013 * other important details.
1014 *
1015 * Mac OS X threading:
1016 * Thread safe since version 10.5
1017 *
1018 * Parameters:
1019 *
1020 * inOrig:
1021 * The shape to copy.
1022 *
1023 * Result:
1024 * A mutable shape reference.
1025 *
1026 * Availability:
1027 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
1028 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
1029 * Non-Carbon CFM: not available
1030 }
HIShapeCreateMutableCopynull1031 function HIShapeCreateMutableCopy( inOrig: HIShapeRef ): HIMutableShapeRef; external name '_HIShapeCreateMutableCopy';
1032 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1033
1034
1035 {
1036 * HIShapeCreateMutableWithRect()
1037 *
1038 * Discussion:
1039 * Creates a mutable HIShapeRef based on a given rectangle.
1040 *
1041 * This API is thread safe only on Mac OS X 10.5 and later; see the
1042 * Thread Safety Information section at the top of the header for
1043 * other important details.
1044 *
1045 * Mac OS X threading:
1046 * Thread safe since version 10.5
1047 *
1048 * Parameters:
1049 *
1050 * inRect:
1051 * The rectangle from which to create the shape.
1052 *
1053 * Availability:
1054 * Mac OS X: in version 10.5 and later in ApplicationServices.framework
1055 * CarbonLib: not available
1056 * Non-Carbon CFM: not available
1057 }
HIShapeCreateMutableWithRectnull1058 function HIShapeCreateMutableWithRect( const (*var*) inRect: CGRect ): HIMutableShapeRef; external name '_HIShapeCreateMutableWithRect';
1059 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
1060
1061
1062 {
1063 * HIShapeSetEmpty()
1064 *
1065 * Discussion:
1066 * Sets a mutable shape to be an empty shape.
1067 *
1068 * This API is thread safe only on Mac OS X 10.5 and later; see the
1069 * Thread Safety Information section at the top of the header for
1070 * other important details.
1071 *
1072 * Mac OS X threading:
1073 * Thread safe since version 10.5
1074 *
1075 * Parameters:
1076 *
1077 * inShape:
1078 * The shape to empty.
1079 *
1080 * Result:
1081 * An operating system status code.
1082 *
1083 * Availability:
1084 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
1085 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
1086 * Non-Carbon CFM: not available
1087 }
HIShapeSetEmptynull1088 function HIShapeSetEmpty( inShape: HIMutableShapeRef ): OSStatus; external name '_HIShapeSetEmpty';
1089 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1090
1091
1092 {
1093 * HIShapeSetWithShape()
1094 *
1095 * Discussion:
1096 * Sets a mutable shape to have the same contents as another shape.
1097 *
1098 *
1099 * This API is thread safe only on Mac OS X 10.5 and later; see the
1100 * Thread Safety Information section at the top of the header for
1101 * other important details.
1102 *
1103 * Mac OS X threading:
1104 * Thread safe since version 10.5
1105 *
1106 * Parameters:
1107 *
1108 * inDestShape:
1109 * The mutable destination shape.
1110 *
1111 * inSrcShape:
1112 * The source shape. This shape's contents will be copied into
1113 * inDestShape.
1114 *
1115 * Result:
1116 * An operating system status code.
1117 *
1118 * Availability:
1119 * Mac OS X: in version 10.5 and later in ApplicationServices.framework
1120 * CarbonLib: not available
1121 * Non-Carbon CFM: not available
1122 }
HIShapeSetWithShapenull1123 function HIShapeSetWithShape( inDestShape: HIMutableShapeRef; inSrcShape: HIShapeRef ): OSStatus; external name '_HIShapeSetWithShape';
1124 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
1125
1126
1127 {
1128 * HIShapeIntersect()
1129 *
1130 * Discussion:
1131 * Takes two shapes and sets a third to be their intersection.
1132 *
1133 *
1134 * This API is thread safe only on Mac OS X 10.5 and later; see the
1135 * Thread Safety Information section at the top of the header for
1136 * other important details.
1137 *
1138 * Mac OS X threading:
1139 * Thread safe since version 10.5
1140 *
1141 * Parameters:
1142 *
1143 * inShape1:
1144 * The first shape.
1145 *
1146 * inShape2:
1147 * The second shape.
1148 *
1149 * outResult:
1150 * The shape to receive the result of the intersection. This can
1151 * be one of the source shapes. This shape must be mutable.
1152 *
1153 * Result:
1154 * An operating system status code.
1155 *
1156 * Availability:
1157 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
1158 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
1159 * Non-Carbon CFM: not available
1160 }
HIShapeIntersectnull1161 function HIShapeIntersect( inShape1: HIShapeRef; inShape2: HIShapeRef; outResult: HIMutableShapeRef ): OSStatus; external name '_HIShapeIntersect';
1162 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1163
1164
1165 {
1166 * HIShapeDifference()
1167 *
1168 * Discussion:
1169 * Takes two shapes and sets a third to be their difference. The
1170 * second shape is subtracted from the first.
1171 *
1172 * This API is thread safe only on Mac OS X 10.5 and later; see the
1173 * Thread Safety Information section at the top of the header for
1174 * other important details.
1175 *
1176 * Mac OS X threading:
1177 * Thread safe since version 10.5
1178 *
1179 * Parameters:
1180 *
1181 * inShape1:
1182 * The first shape.
1183 *
1184 * inShape2:
1185 * The second shape.
1186 *
1187 * outResult:
1188 * The shape to receive the result of the intersection. This can
1189 * be one of the source shapes. This shape must be mutable.
1190 *
1191 * Result:
1192 * An operating system status code.
1193 *
1194 * Availability:
1195 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
1196 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
1197 * Non-Carbon CFM: not available
1198 }
HIShapeDifferencenull1199 function HIShapeDifference( inShape1: HIShapeRef; inShape2: HIShapeRef; outResult: HIMutableShapeRef ): OSStatus; external name '_HIShapeDifference';
1200 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1201
1202
1203 {
1204 * HIShapeUnion()
1205 *
1206 * Discussion:
1207 * Takes two shapes and sets a third to be their union.
1208 *
1209 * On Mac OS X 10.2 and 10.3, this API incorrectly required that the
1210 * result shape be immutable. On Mac OS X 10.4 and later, this API
1211 * correctly requires that the result shape be mutable. If you need
1212 * to run on both 10.4 and earlier releases, you will need to
1213 * account for this difference.
1214 *
1215 * This API is thread safe only on Mac OS X 10.5 and later; see the
1216 * Thread Safety Information section at the top of the header for
1217 * other important details.
1218 *
1219 * Mac OS X threading:
1220 * Thread safe since version 10.5
1221 *
1222 * Parameters:
1223 *
1224 * inShape1:
1225 * The first shape.
1226 *
1227 * inShape2:
1228 * The second shape.
1229 *
1230 * outResult:
1231 * The shape to receive the result of the union. This can be one
1232 * of the source shapes. On Mac OS X 10.2 and 10.3, this shape
1233 * must be immutable, but it will be set to the unioned shape
1234 * anyways. On Mac OS X 10.4 and later, this shape must be mutable.
1235 *
1236 * Result:
1237 * An operating system status code.
1238 *
1239 * Availability:
1240 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
1241 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
1242 * Non-Carbon CFM: not available
1243 }
HIShapeUnionnull1244 function HIShapeUnion( inShape1: HIShapeRef; inShape2: HIShapeRef; outResult: HIMutableShapeRef ): OSStatus; external name '_HIShapeUnion';
1245 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1246
1247
1248 {
1249 * HIShapeXor()
1250 *
1251 * Discussion:
1252 * Takes two shapes and sets a third to be the difference between
1253 * the union and the intersection of the two shapes.
1254 *
1255 * This API is thread safe only on Mac OS X 10.5 and later; see the
1256 * Thread Safety Information section at the top of the header for
1257 * other important details.
1258 *
1259 * Mac OS X threading:
1260 * Thread safe since version 10.5
1261 *
1262 * Parameters:
1263 *
1264 * inShape1:
1265 * The first shape.
1266 *
1267 * inShape2:
1268 * The second shape.
1269 *
1270 * outResult:
1271 * The shape to receive the result of the xor operation. This can
1272 * be one of the source shapes. This shape must be mutable.
1273 *
1274 * Result:
1275 * An operating system status code.
1276 *
1277 * Availability:
1278 * Mac OS X: in version 10.5 and later in ApplicationServices.framework
1279 * CarbonLib: not available
1280 * Non-Carbon CFM: not available
1281 }
HIShapeXornull1282 function HIShapeXor( inShape1: HIShapeRef; inShape2: HIShapeRef; outResult: HIMutableShapeRef ): OSStatus; external name '_HIShapeXor';
1283 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
1284
1285
1286 {
1287 * HIShapeOffset()
1288 *
1289 * Discussion:
1290 * Offsets a shape by some delta.
1291 *
1292 * This API is thread safe only on Mac OS X 10.5 and later; see the
1293 * Thread Safety Information section at the top of the header for
1294 * other important details.
1295 *
1296 * Mac OS X threading:
1297 * Thread safe since version 10.5
1298 *
1299 * Parameters:
1300 *
1301 * inShape:
1302 * The shape to offset.
1303 *
1304 * inDX:
1305 * The delta to move the shape on the X axis.
1306 *
1307 * inDY:
1308 * The delta to move the shape on the Y axis.
1309 *
1310 * Result:
1311 * An operating system status code.
1312 *
1313 * Availability:
1314 * Mac OS X: in version 10.2 and later in ApplicationServices.framework
1315 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
1316 * Non-Carbon CFM: not available
1317 }
HIShapeOffsetnull1318 function HIShapeOffset( inShape: HIMutableShapeRef; inDX: CGFloat; inDY: CGFloat ): OSStatus; external name '_HIShapeOffset';
1319 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1320
1321
1322 {
1323 * HIShapeInset()
1324 *
1325 * Discussion:
1326 * Contracts or expands a shape by some delta.
1327 *
1328 * This API is thread safe only on Mac OS X 10.5 and later; see the
1329 * Thread Safety Information section at the top of the header for
1330 * other important details.
1331 *
1332 * Mac OS X threading:
1333 * Thread safe since version 10.5
1334 *
1335 * Parameters:
1336 *
1337 * inShape:
1338 * The shape to inset.
1339 *
1340 * inDX:
1341 * The delta to contract the shape on the X axis. Can be negative
1342 * to expand the shape.
1343 *
1344 * inDY:
1345 * The delta to contract the shape on the Y axis. Can be negative
1346 * to expand the shape.
1347 *
1348 * Result:
1349 * An operating system status code.
1350 *
1351 * Availability:
1352 * Mac OS X: in version 10.5 and later in ApplicationServices.framework
1353 * CarbonLib: not available
1354 * Non-Carbon CFM: not available
1355 }
HIShapeInsetnull1356 function HIShapeInset( inShape: HIMutableShapeRef; inDX: CGFloat; inDY: CGFloat ): OSStatus; external name '_HIShapeInset';
1357 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
1358
1359
1360 {
1361 * HIShapeUnionWithRect()
1362 *
1363 * Discussion:
1364 * Unions a shape with a rectangle.
1365 *
1366 * This API is thread safe only on Mac OS X 10.5 and later; see the
1367 * Thread Safety Information section at the top of the header for
1368 * other important details.
1369 *
1370 * Mac OS X threading:
1371 * Thread safe since version 10.5
1372 *
1373 * Parameters:
1374 *
1375 * inShape:
1376 * The shape to combine with the rectangle.
1377 *
1378 * inRect:
1379 * The rectangle to combine with the shape.
1380 *
1381 * Availability:
1382 * Mac OS X: in version 10.5 and later in ApplicationServices.framework
1383 * CarbonLib: not available
1384 * Non-Carbon CFM: not available
1385 }
HIShapeUnionWithRectnull1386 function HIShapeUnionWithRect( inShape: HIMutableShapeRef; const (*var*) inRect: CGRect ): OSStatus; external name '_HIShapeUnionWithRect';
1387 (* AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER *)
1388
1389 {$endc} {TARGET_OS_MAC}
1390
1391 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
1392
1393 end.
1394 {$endc} {not MACOSALLINCLUDE}
1395