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