diff options
Diffstat (limited to 'packages/univint/src/Controls.pas')
-rw-r--r-- | packages/univint/src/Controls.pas | 4091 |
1 files changed, 4091 insertions, 0 deletions
diff --git a/packages/univint/src/Controls.pas b/packages/univint/src/Controls.pas new file mode 100644 index 0000000000..78d04815f1 --- /dev/null +++ b/packages/univint/src/Controls.pas @@ -0,0 +1,4091 @@ +{ + File: HIToolbox/Controls.h + + Contains: Control Manager interfaces + + Version: HIToolbox-219.4.81~2 + + Copyright: © 1985-2005 by Apple Computer, Inc., all rights reserved + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://www.freepascal.org/bugs.html + +} +{ Pascal Translation Updated: Peter N Lewis, <peter@stairways.com.au>, August 2005 } +{ + Modified for use with Free Pascal + Version 200 + Please report any bugs to <gpc@microbizz.nl> +} + +{$mode macpas} +{$packenum 1} +{$macro on} +{$inline on} +{$CALLING MWPASCAL} + +unit Controls; +interface +{$setc UNIVERSAL_INTERFACES_VERSION := $0342} +{$setc GAP_INTERFACES_VERSION := $0200} + +{$ifc not defined USE_CFSTR_CONSTANT_MACROS} + {$setc USE_CFSTR_CONSTANT_MACROS := TRUE} +{$endc} + +{$ifc defined CPUPOWERPC and defined CPUI386} + {$error Conflicting initial definitions for CPUPOWERPC and CPUI386} +{$endc} +{$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN} + {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN} +{$endc} + +{$ifc not defined __ppc__ and defined CPUPOWERPC} + {$setc __ppc__ := 1} +{$elsec} + {$setc __ppc__ := 0} +{$endc} +{$ifc not defined __i386__ and defined CPUI386} + {$setc __i386__ := 1} +{$elsec} + {$setc __i386__ := 0} +{$endc} + +{$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__} + {$error Conflicting definitions for __ppc__ and __i386__} +{$endc} + +{$ifc defined __ppc__ and __ppc__} + {$setc TARGET_CPU_PPC := TRUE} + {$setc TARGET_CPU_X86 := FALSE} +{$elifc defined __i386__ and __i386__} + {$setc TARGET_CPU_PPC := FALSE} + {$setc TARGET_CPU_X86 := TRUE} +{$elsec} + {$error Neither __ppc__ nor __i386__ is defined.} +{$endc} +{$setc TARGET_CPU_PPC_64 := FALSE} + +{$ifc defined FPC_BIG_ENDIAN} + {$setc TARGET_RT_BIG_ENDIAN := TRUE} + {$setc TARGET_RT_LITTLE_ENDIAN := FALSE} +{$elifc defined FPC_LITTLE_ENDIAN} + {$setc TARGET_RT_BIG_ENDIAN := FALSE} + {$setc TARGET_RT_LITTLE_ENDIAN := TRUE} +{$elsec} + {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.} +{$endc} +{$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE} +{$setc CALL_NOT_IN_CARBON := FALSE} +{$setc OLDROUTINENAMES := FALSE} +{$setc OPAQUE_TOOLBOX_STRUCTS := TRUE} +{$setc OPAQUE_UPP_TYPES := TRUE} +{$setc OTCARBONAPPLICATION := TRUE} +{$setc OTKERNEL := FALSE} +{$setc PM_USE_SESSION_APIS := TRUE} +{$setc TARGET_API_MAC_CARBON := TRUE} +{$setc TARGET_API_MAC_OS8 := FALSE} +{$setc TARGET_API_MAC_OSX := TRUE} +{$setc TARGET_CARBON := TRUE} +{$setc TARGET_CPU_68K := FALSE} +{$setc TARGET_CPU_MIPS := FALSE} +{$setc TARGET_CPU_SPARC := FALSE} +{$setc TARGET_OS_MAC := TRUE} +{$setc TARGET_OS_UNIX := FALSE} +{$setc TARGET_OS_WIN32 := FALSE} +{$setc TARGET_RT_MAC_68881 := FALSE} +{$setc TARGET_RT_MAC_CFM := FALSE} +{$setc TARGET_RT_MAC_MACHO := TRUE} +{$setc TYPED_FUNCTION_POINTERS := TRUE} +{$setc TYPE_BOOL := FALSE} +{$setc TYPE_EXTENDED := FALSE} +{$setc TYPE_LONGLONG := TRUE} +uses MacTypes,CFBase,Files,Events,CGImage,Quickdraw,Menus,TextEdit,Drag,Icons,Collections,MacErrors,Appearance; + + +{$ALIGN MAC68K} + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Resource Types } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + kControlDefProcType = $43444546 (* 'CDEF' *); + kControlTemplateResourceType = $434E544C (* 'CNTL' *); + kControlColorTableResourceType = $63637462 (* 'cctb' *); + kControlDefProcResourceType = $43444546 (* 'CDEF' *); + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Format of a ΤCNTLΥ resource } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlTemplate = record + controlRect: Rect; + controlValue: SInt16; + controlVisible: Boolean; + fill: SInt8; + controlMaximum: SInt16; + controlMinimum: SInt16; + controlDefProcID: SInt16; + controlReference: SInt32; + controlTitle: Str255; + end; + ControlTemplatePtr = ^ControlTemplate; +type + ControlTemplateHandle = ^ControlTemplatePtr; + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ ControlRef } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlRef = ^SInt32; { an opaque 32-bit type } + ControlRefPtr = ^ControlRef; { when a var xx:ControlRef parameter can be nil, it is changed to xx: ControlRefPtr } + +{ ControlHandle is obsolete. Use ControlRef.} +type + ControlHandle = ControlRef; +type + ControlPartCode = SInt16; + ControlPartCodePtr = ^ControlPartCode; { when a var xx:ControlPartCode parameter can be nil, it is changed to xx: ControlPartCodePtr } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control ActionProcPtr } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlActionProcPtr = procedure( theControl: ControlRef; partCode: ControlPartCode ); +type + ControlActionUPP = ControlActionProcPtr; + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control ActionProcPtr : Epilogue } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * NewControlActionUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +function NewControlActionUPP( userRoutine: ControlActionProcPtr ): ControlActionUPP; external name '_NewControlActionUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * DisposeControlActionUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +procedure DisposeControlActionUPP( userUPP: ControlActionUPP ); external name '_DisposeControlActionUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * InvokeControlActionUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +procedure InvokeControlActionUPP( theControl: ControlRef; partCode: ControlPartCode; userUPP: ControlActionUPP ); external name '_InvokeControlActionUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Color Table } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + cFrameColor = 0; + cBodyColor = 1; + cTextColor = 2; + cThumbColor = 3; + kNumberCtlCTabEntries = 4; + +type + CtlCTabPtr = ^CtlCTab; + CtlCTab = record + ccSeed: SInt32; + ccRider: SInt16; + ctSize: SInt16; + ctTable: array [0..3] of ColorSpec; + end; +type + CCTabPtr = CtlCTabPtr; +type + CCTabHandle = ^CCTabPtr; + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Variants } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlVariant = SInt16; +const + kControlNoVariant = 0; { No variant} + kControlUsesOwningWindowsFontVariant = 1 shl 3; { Control uses owning windows font to display text} + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Part Codes } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ Basic part codes } +const + kControlNoPart = kAppearancePartMetaNone; + kControlIndicatorPart = kAppearancePartIndicator; + kControlDisabledPart = kAppearancePartMetaDisabled; + kControlInactivePart = kAppearancePartMetaInactive; + +{ Use this constant in Get/SetControlData when the data referred to is not } +{ specific to a part, but rather the entire control, e.g. the list handle of a } +{ list box control. } +const + kControlEntireControl = kControlNoPart; + +{ Meta-Parts } +{ If you haven't guessed from looking at other toolbox headers. We like the word } +{ 'meta'. It's cool. So here's one more for you. A meta-part is a part used in a call } +{ to the GetControlRegion API. These parts are parts that might be defined by a } +{ control, but should not be returned from calls like TestControl, et al. They define } +{ a region of a control, presently the structure and the content region. The content } +{ region is only defined by controls that can embed other controls. It is the area } +{ that embedded content can live. } +{ Along with these parts, you can also pass in normal part codes to get the regions } +{ of the parts. Not all controls fully support this at the time this was written. } +const + kControlStructureMetaPart = -1; + kControlContentMetaPart = -2; + kControlOpaqueMetaPart = -3; { Jaguar or later} + kControlClickableMetaPart = -4; { Panther or later, only used for async window dragging. Default is structure region.} + +{ focusing part codes } +const + kControlFocusNoPart = kControlNoPart; { tells control to clear its focus} + kControlFocusNextPart = -1; { tells control to focus on the next part} + kControlFocusPrevPart = -2; { tells control to focus on the previous part} + +type + ControlFocusPart = ControlPartCode; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Collection Tags } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ These are standard tags that you will find in the initial data Collection that is passed in the } +{ 'param' parameter to the initCntl message, and in the kEventParamInitCollection parameter to the } +{ kEventControlInitialize event (Carbon only). } +{ All tags at ID zero in a control's Collection are reserved for Control Manager use. } +{ Custom control definitions should use other IDs. } +{ Most of these tags are interpreted when you call CreateCustomControl; the Control Manager will put } +{ the value in the right place before calling the control definition with the initialization message. } + + +{ + * Discussion: + * Control Collection Tags + } +const +{ + * Rect - the bounding rectangle. + } + kControlCollectionTagBounds = $626F756E (* 'boun' *); + + { + * SInt32 - the value + } + kControlCollectionTagValue = $76616C75 (* 'valu' *); + + { + * SInt32 - the minimum + } + kControlCollectionTagMinimum = $6D696E20 (* 'min ' *); + + { + * SInt32 - the maximum + } + kControlCollectionTagMaximum = $6D617820 (* 'max ' *); + + { + * SInt32 - the view size + } + kControlCollectionTagViewSize = $76696577 (* 'view' *); + + { + * Boolean - the visible state. Only interpreted on CarbonLib + * versions up through 1.5.x and Mac OS X versions 10.0.x. Not + * interpreted on CarbonLib 1.6 and later. Not interpreted on Mac OS + * 10.1 and later. We recommend you do not use this tag at all. + } + kControlCollectionTagVisibility = $76697369 (* 'visi' *); + + { + * SInt32 - the refCon + } + kControlCollectionTagRefCon = $72656663 (* 'refc' *); + + { + * arbitrarily sized character array - the title + } + kControlCollectionTagTitle = $7469746C (* 'titl' *); + + { + * bytes as received via CFStringCreateExternalRepresentation + } + kControlCollectionTagUnicodeTitle = $7574746C (* 'uttl' *); + + { + * OSType - the ControlID signature + } + kControlCollectionTagIDSignature = $69647369 (* 'idsi' *); + + { + * SInt32 - the ControlID id + } + kControlCollectionTagIDID = $69646964 (* 'idid' *); + + { + * UInt32 - the command + } + kControlCollectionTagCommand = $636D6420 (* 'cmd ' *); + + { + * SInt16 - the variant + } + kControlCollectionTagVarCode = $76617263 (* 'varc' *); + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Image Content } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + kControlContentTextOnly = 0; + kControlNoContent = 0; + kControlContentIconSuiteRes = 1; + kControlContentCIconRes = 2; + kControlContentPictRes = 3; + kControlContentICONRes = 4; + kControlContentIconSuiteHandle = 129; + kControlContentCIconHandle = 130; + kControlContentPictHandle = 131; + kControlContentIconRef = 132; + kControlContentICON = 133; + kControlContentCGImageRef = 134; + +type + ControlContentType = SInt16; +type + ControlButtonContentInfo = record + contentType: ControlContentType; + case SInt16 of + 0: ( + resID: SInt16; + ); + 1: ( + cIconHandle: CIconHandle_fix; + ); + 2: ( + iconSuite: Handle; + ); + 3: ( + iconRef: IconRef_fix; + ); + 4: ( + picture: PicHandle; + ); + 5: ( + ICONHandle: Handle; + ); + 6: ( + imageRef: CGImageRef; + ); + end; + ControlButtonContentInfoPtr = ^ControlButtonContentInfo; +type + ControlImageContentInfo = ControlButtonContentInfo; +type + ControlImageContentInfoPtr = ControlButtonContentInfoPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Key Script Behavior } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + kControlKeyScriptBehaviorAllowAnyScript = $616E7920 (* 'any ' *); { leaves the current keyboard alone and allows user to change the keyboard.} + kControlKeyScriptBehaviorPrefersRoman = $70726D6E (* 'prmn' *); { switches the keyboard to roman, but allows them to change it as desired.} + kControlKeyScriptBehaviorRequiresRoman = $72726D6E (* 'rrmn' *); { switches the keyboard to roman and prevents the user from changing it.} + +type + ControlKeyScriptBehavior = UInt32; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Font Style } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ SPECIAL FONT USAGE NOTES: You can specify the font to use for many control types. + The constants below are meta-font numbers which you can use to set a particular + control's font usage. There are essentially two modes you can use: 1) default, + which is essentially the same as it always has been, i.e. it uses the system font, unless + directed to use the window font via a control variant. 2) you can specify to use + the big or small system font in a generic manner. The Big system font is the font + used in menus, etc. Chicago has filled that role for some time now. Small system + font is currently Geneva 10. The meta-font number implies the size and style. + + NOTE: Not all font attributes are used by all controls. Most, in fact, ignore + the fore and back color (Static Text is the only one that does, for + backwards compatibility). Also size, face, and addFontSize are ignored + when using the meta-font numbering. +} +{ Meta-font numbering - see note above } +const + kControlFontBigSystemFont = -1; { force to big system font} + kControlFontSmallSystemFont = -2; { force to small system font} + kControlFontSmallBoldSystemFont = -3; { force to small bold system font} + kControlFontViewSystemFont = -4; { force to views system font (DataBrowser control only)} + kControlFontMiniSystemFont = -5; { force to mini system font} + +{ Add these masks together to set the flags field of a ControlFontStyleRec } +{ They specify which fields to apply to the text. It is important to make } +{ sure that you specify only the fields that you wish to set. } +const + kControlUseFontMask = $0001; + kControlUseFaceMask = $0002; + kControlUseSizeMask = $0004; + kControlUseForeColorMask = $0008; + kControlUseBackColorMask = $0010; + kControlUseModeMask = $0020; + kControlUseJustMask = $0040; + kControlUseAllMask = $00FF; + kControlAddFontSizeMask = $0100; + +{ AddToMetaFont indicates that we want to start with a standard system } +{ font, but then we'd like to add the other attributes. Normally, the meta } +{ font ignores all other flags } +const + kControlAddToMetaFontMask = $0200; { Available in Appearance 1.1 or later} + +{ UseThemeFontID indicates that the font field of the ControlFontStyleRec } +{ should be interpreted as a ThemeFontID (see Appearance.h). In all other } +{ ways, specifying a ThemeFontID is just like using one of the control } +{ meta-fonts IDs. kControlUseThemeFontIDMask and kControlUseFontMask are } +{ mutually exclusive; you can only specify one of them. If you specify } +{ both of them, the behavior is undefined. } +const + kControlUseThemeFontIDMask = $0080; { Available in Mac OS X or later} + +type + ControlFontStyleRecPtr = ^ControlFontStyleRec; + ControlFontStyleRec = record + flags: SInt16; + font: SInt16; + size: SInt16; + style: SInt16; + mode: SInt16; + just: SInt16; + foreColor: RGBColor; + backColor: RGBColor; + end; + ControlFontStylePtr = ^ControlFontStyleRec; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Click Activation Results } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ These are for use with GetControlClickActivation. The enumerated values should be pretty } +{ self-explanatory, but just in case: } +{ ₯ Activate/DoNotActivate indicates whether or not to change the owning window's z-ordering before } +{ processing the click. If activation is requested, you may also want to immediately redraw the } +{ newly exposed portion of the window. } +{ ₯ Ignore/Handle Click indicates whether or not to call an appropriate click handling API (like } +{ HandleControlClick) in respose to the event. } +const + kDoNotActivateAndIgnoreClick = 0; { probably never used. here for completeness.} + kDoNotActivateAndHandleClick = 1; { let the control handle the click while the window is still in the background.} + kActivateAndIgnoreClick = 2; { control doesn't want to respond directly to the click, but window should still be brought forward.} + kActivateAndHandleClick = 3; { control wants to respond to the click, but only after the window has been activated.} + +type + ClickActivationResult = UInt32; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Common data tags for Get/SetControlData } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} + +{ + * Discussion: + * Get/SetControlData Common Tags + } +const + kControlFontStyleTag = $666F6E74 (* 'font' *); + kControlKeyFilterTag = $666C7472 (* 'fltr' *); + + { + * Sent with a pointer to a ControlKind record to be filled in. Only + * valid for GetControlData. + } + kControlKindTag = $6B696E64 (* 'kind' *); + + { + * Sent with a pointer to a ControlSize. Only valid with explicitly + * sizeable controls. Currently supported by the check box, combo + * box, progress bar, indeterminate progress bar, radio button, round + * button, scroll bar, slider and the tab. Check your return value! + * As of 10.2.5, the push button and data browser accept this tag. + * The data browser only changes the size of its scrollbars. As of + * Mac OS X 10.3, chasing arrows, disclosure button, popup button, + * scroll view, search field and little arrows control also accept + * this tag. As of Mac OS X 10.4, if the font of the editable text + * has not been overridden, the font size of the combo box and search + * field will adjust to respect the size of the control. Still check + * your return values! + } + kControlSizeTag = $73697A65 (* 'size' *); + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Feature Bits } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} + +{ + * Discussion: + * Control Feature Bits - Returned by GetControlFeatures + } +const + kControlSupportsGhosting = 1 shl 0; + kControlSupportsEmbedding = 1 shl 1; + kControlSupportsFocus = 1 shl 2; + kControlWantsIdle = 1 shl 3; + kControlWantsActivate = 1 shl 4; + kControlHandlesTracking = 1 shl 5; + kControlSupportsDataAccess = 1 shl 6; + kControlHasSpecialBackground = 1 shl 7; + kControlGetsFocusOnClick = 1 shl 8; + kControlSupportsCalcBestRect = 1 shl 9; + kControlSupportsLiveFeedback = 1 shl 10; + kControlHasRadioBehavior = 1 shl 11; { Available in Appearance 1.0.1 or later} + kControlSupportsDragAndDrop = 1 shl 12; { Available in Carbon} + kControlAutoToggles = 1 shl 14; { Available in Appearance 1.1 or later} + kControlSupportsGetRegion = 1 shl 17; { Available in Appearance 1.1 or later} + kControlSupportsFlattening = 1 shl 19; { Available in Carbon} + kControlSupportsSetCursor = 1 shl 20; { Available in Carbon} + kControlSupportsContextualMenus = 1 shl 21; { Available in Carbon} + kControlSupportsClickActivation = 1 shl 22; { Available in Carbon} + kControlIdlesWithTimer = 1 shl 23; { Available in Carbon - this bit indicates that the control animates automatically} + + { + * Reported by controls that expect clients to use an action proc + * that increments its value when the up button is pressed and + * decrement its value when the down button is pressed. (Most + * controls, such as scroll bars and sliders, expect the opposite). + * This allows the Control Manager to calculate the proper amount of + * sleep time during a tracking loop. This is only respected in Mac + * OS X 10.3 and later. + } + kControlInvertsUpDownValueMeaning = 1 shl 24; + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Messages } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + drawCntl = 0; + testCntl = 1; + calcCRgns = 2; + initCntl = 3; { Param is Collection, result is OSStatus} + dispCntl = 4; + posCntl = 5; + thumbCntl = 6; + dragCntl = 7; + autoTrack = 8; + calcCntlRgn = 10; + calcThumbRgn = 11; + drawThumbOutline = 12; + kControlMsgDrawGhost = 13; + kControlMsgCalcBestRect = 14; { Calculate best fitting rectangle for control} + kControlMsgHandleTracking = 15; + kControlMsgFocus = 16; { param indicates action.} + kControlMsgKeyDown = 17; + kControlMsgIdle = 18; + kControlMsgGetFeatures = 19; + kControlMsgSetData = 20; + kControlMsgGetData = 21; + kControlMsgActivate = 22; + kControlMsgSetUpBackground = 23; + kControlMsgCalcValueFromPos = 26; + kControlMsgTestNewMsgSupport = 27; { See if this control supports new messaging} + kControlMsgSubValueChanged = 25; { Available in Appearance 1.0.1 or later} + kControlMsgSubControlAdded = 28; { Available in Appearance 1.0.1 or later} + kControlMsgSubControlRemoved = 29; { Available in Appearance 1.0.1 or later} + kControlMsgApplyTextColor = 30; { Available in Appearance 1.1 or later} + kControlMsgGetRegion = 31; { Available in Appearance 1.1 or later} + kControlMsgFlatten = 32; { Available in Carbon. Param is Collection.} + kControlMsgSetCursor = 33; { Available in Carbon. Param is ControlSetCursorRec} + kControlMsgDragEnter = 38; { Available in Carbon. Param is DragRef, result is boolean indicating acceptibility of drag.} + kControlMsgDragLeave = 39; { Available in Carbon. As above.} + kControlMsgDragWithin = 40; { Available in Carbon. As above.} + kControlMsgDragReceive = 41; { Available in Carbon. Param is DragRef, result is OSStatus indicating success/failure.} + kControlMsgDisplayDebugInfo = 46; { Available in Carbon on X.} + kControlMsgContextualMenuClick = 47; { Available in Carbon. Param is ControlContextualMenuClickRec} + kControlMsgGetClickActivation = 48; { Available in Carbon. Param is ControlClickActivationRec} + +type + ControlDefProcMessage = SInt16; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Sizes } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} + +{ + * Discussion: + * ControlSize values to be used in conjunction with SetControlData + * and the kControlSizeTag. + } +const +{ + * Use the control's default drawing variant. This does not apply to + * Scroll Bars, for which Normal is Large. + } + kControlSizeNormal = 0; + + { + * Use the control's small drawing variant. Currently supported by + * the Check Box, Combo Box, Radio Button, Scroll Bar, Slider and Tab + * controls. + } + kControlSizeSmall = 1; + + { + * Use the control's large drawing variant. Currently supported by + * the Indeterminate Progress Bar, Progress Bar and Round Button + * controls. + } + kControlSizeLarge = 2; + + { + * Use the control's miniature drawing variant. This does not apply + * to many of the controls, since this is a brand new control size. + } + kControlSizeMini = 3; + + { + * Control drawing variant determined by the control's bounds. This + * ControlSize is currently only available with Scroll Bars and Popup + * Buttons to support their legacy behavior of drawing differently + * within different bounds. It is preferred to explicitly use one of + * the available control sizes. + } + kControlSizeAuto = $FFFF; + +type + ControlSize = UInt16; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Constants for drawCntl message (passed in param) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + kDrawControlEntireControl = 0; + kDrawControlIndicatorOnly = 129; + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Constants for dragCntl message (passed in param) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + kDragControlEntireControl = 0; + kDragControlIndicator = 1; + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Drag Constraint Structure for thumbCntl message (passed in param) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + IndicatorDragConstraint = record + limitRect: Rect; + slopRect: Rect; + axis: DragConstraint; + end; + IndicatorDragConstraintPtr = ^IndicatorDragConstraint; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ CDEF should return as result of kControlMsgTestNewMsgSupport } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + kControlSupportsNewMessages = $206F6B20 (* ' ok ' *); + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when called with the kControlMsgHandleTracking } +{ message } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlTrackingRecPtr = ^ControlTrackingRec; + ControlTrackingRec = record + startPt: Point; + modifiers: EventModifiers; + action: ControlActionUPP; + end; +type + ControlTrackingPtr = ControlTrackingRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when called with the kControlMsgKeyDown message } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlKeyDownRecPtr = ^ControlKeyDownRec; + ControlKeyDownRec = record + modifiers: EventModifiers; + keyCode: SInt16; + charCode: SInt16; + end; +type + ControlKeyDownPtr = ControlKeyDownRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when called with the kControlMsgGetData or } +{ kControlMsgSetData message } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlDataAccessRecPtr = ^ControlDataAccessRec; + ControlDataAccessRec = record + tag: ResType; + part: ResType; + size: Size_fix; + dataPtr: Ptr; + end; +type + ControlDataAccessPtr = ControlDataAccessRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when called with the kControlCalcBestRect msg } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlCalcSizeRecPtr = ^ControlCalcSizeRec; + ControlCalcSizeRec = record + height: SInt16; + width: SInt16; + baseLine: SInt16; + end; +type + ControlCalcSizePtr = ControlCalcSizeRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when called with the kControlMsgSetUpBackground } +{ message is sent } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlBackgroundRecPtr = ^ControlBackgroundRec; + ControlBackgroundRec = record + depth: SInt16; + colorDevice: Boolean; + end; +type + ControlBackgroundPtr = ControlBackgroundRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when called with the kControlMsgApplyTextColor } +{ message is sent } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlApplyTextColorRecPtr = ^ControlApplyTextColorRec; + ControlApplyTextColorRec = record + depth: SInt16; + colorDevice: Boolean; + active: Boolean; + end; +type + ControlApplyTextColorPtr = ControlApplyTextColorRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when called with the kControlMsgGetRegion } +{ message is sent } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlGetRegionRecPtr = ^ControlGetRegionRec; + ControlGetRegionRec = record + region: RgnHandle; + part: ControlPartCode; + end; +type + ControlGetRegionPtr = ControlGetRegionRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when the kControlMsgSetCursor message is sent } +{ Only sent on Carbon } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlSetCursorRecPtr = ^ControlSetCursorRec; + ControlSetCursorRec = record + localPoint: Point; + modifiers: EventModifiers; + cursorWasSet: Boolean; { your CDEF must set this to true if you set the cursor, or false otherwise} + end; +type + ControlSetCursorPtr = ControlSetCursorRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when the kControlMsgContextualMenuClick message } +{ is sent } +{ Only sent on Carbon } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlContextualMenuClickRecPtr = ^ControlContextualMenuClickRec; + ControlContextualMenuClickRec = record + localPoint: Point; + menuDisplayed: Boolean; { your CDEF must set this to true if you displayed a menu, or false otherwise} + end; +type + ControlContextualMenuClickPtr = ControlContextualMenuClickRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ This structure is passed into a CDEF when the kControlMsgGetClickActivation message } +{ is sent } +{ Only sent on Carbon } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlClickActivationRecPtr = ^ControlClickActivationRec; + ControlClickActivationRec = record + localPoint: Point; + modifiers: EventModifiers; + result: ClickActivationResult; { your CDEF must pass the desired result back} + end; +type + ControlClickActivationPtr = ControlClickActivationRecPtr; +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ ΤCDEFΥ entrypoint } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlDefProcPtr = function( varCode: SInt16; theControl: ControlRef; message: ControlDefProcMessage; param: SInt32 ): SInt32; +type + ControlDefUPP = ControlDefProcPtr; +{ + * NewControlDefUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +function NewControlDefUPP( userRoutine: ControlDefProcPtr ): ControlDefUPP; external name '_NewControlDefUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * DisposeControlDefUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +procedure DisposeControlDefUPP( userUPP: ControlDefUPP ); external name '_DisposeControlDefUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * InvokeControlDefUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +function InvokeControlDefUPP( varCode: SInt16; theControl: ControlRef; message: ControlDefProcMessage; param: SInt32; userUPP: ControlDefUPP ): SInt32; external name '_InvokeControlDefUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ Control Key Filter } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ Certain controls can have a keyfilter attached to them. } +{ Definition of a key filter for intercepting and possibly changing keystrokes } +{ which are destined for a control. } +{ IMPORTANT! Because this filter provides WorldScript-encoded text in its parameters, } +{ it provides no meaningful information for key events generated when a Unicode } +{ keyboard layout or input method is active; these layouts and input methods generate } +{ Unicode text that often cannot be translated into any WorldScript encoding. On } +{ Mac OS X, you should avoid using this filter, or at most, use the filter as an } +{ indication that the text is changing but do not depend on the charCode parameter to } +{ the filter. Use a kEventTextInputUnicodeForKeyEvent Carbon event handler as a } +{ replacement for the ControlKeyFilter callback; on Mac OS X 10.4 and later, you can } +{ also use a kEventTextShouldChangeInRange or kEventTextDidChange event handler. } +{ Key Filter Result Codes } +{ The filter proc should return one of the two constants below. If } +{ kKeyFilterBlockKey is returned, the key is blocked and never makes it to the } +{ control. If kKeyFilterPassKey is returned, the control receives the keystroke. } +const + kControlKeyFilterBlockKey = 0; + kControlKeyFilterPassKey = 1; + +type + ControlKeyFilterResult = SInt16; +type + ControlKeyFilterProcPtr = function( theControl: ControlRef; var keyCode: SInt16; var charCode: SInt16; var modifiers: EventModifiers ): ControlKeyFilterResult; +type + ControlKeyFilterUPP = ControlKeyFilterProcPtr; +{ + * NewControlKeyFilterUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +function NewControlKeyFilterUPP( userRoutine: ControlKeyFilterProcPtr ): ControlKeyFilterUPP; external name '_NewControlKeyFilterUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * DisposeControlKeyFilterUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +procedure DisposeControlKeyFilterUPP( userUPP: ControlKeyFilterUPP ); external name '_DisposeControlKeyFilterUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * InvokeControlKeyFilterUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +function InvokeControlKeyFilterUPP( theControl: ControlRef; var keyCode: SInt16; var charCode: SInt16; var modifiers: EventModifiers; userUPP: ControlKeyFilterUPP ): ControlKeyFilterResult; external name '_InvokeControlKeyFilterUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ DragGrayRgn Constatns } +{ For DragGrayRgnUPP used in TrackControl() } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + noConstraint = kNoConstraint; + hAxisOnly = 1; + vAxisOnly = 2; + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Creation/Deletion/Persistence } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ CreateCustomControl is only available as part of Carbon } +const + kControlDefProcPtr = 0; { raw proc-ptr based access} + kControlDefObjectClass = 1; { event-based definition (Mac OS X only)} + +type + ControlDefType = UInt32; +type + ControlDefSpecPtr = ^ControlDefSpec; + ControlDefSpec = record + defType: ControlDefType; + case SInt16 of + 0: ( + defProc: ControlDefUPP; + ); + 1: ( + classRef: Ptr; + ); + end; +{ + * CreateCustomControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: not available + } +function CreateCustomControl( owningWindow: WindowRef; const (*var*) contBounds: Rect; const (*var*) def: ControlDefSpec; initData: Collection; var outControl: ControlRef ): OSStatus; external name '_CreateCustomControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * NewControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function NewControl( owningWindow: WindowRef; const (*var*) boundsRect: Rect; const (*var*) controlTitle: Str255; initiallyVisible: Boolean; initialValue: SInt16; minimumValue: SInt16; maximumValue: SInt16; procID: SInt16; controlReference: SInt32 ): ControlRef; external name '_NewControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetNewControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function GetNewControl( resourceID: SInt16; owningWindow: WindowRef ): ControlRef; external name '_GetNewControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * DisposeControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure DisposeControl( theControl: ControlRef ); external name '_DisposeControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * KillControls() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure KillControls( theWindow: WindowRef ); external name '_KillControls'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * FlattenControl() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: not available + } + + +{ + * UnflattenControl() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: not available + } + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Definition Registration } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlCNTLToCollectionProcPtr = function( const (*var*) bounds: Rect; value: SInt16; visible: Boolean; max: SInt16; min: SInt16; procID: SInt16; refCon: SInt32; const (*var*) title: Str255; collection_: Collection ): OSStatus; +type + ControlCNTLToCollectionUPP = ControlCNTLToCollectionProcPtr; +{ + * NewControlCNTLToCollectionUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +function NewControlCNTLToCollectionUPP( userRoutine: ControlCNTLToCollectionProcPtr ): ControlCNTLToCollectionUPP; external name '_NewControlCNTLToCollectionUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * DisposeControlCNTLToCollectionUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +procedure DisposeControlCNTLToCollectionUPP( userUPP: ControlCNTLToCollectionUPP ); external name '_DisposeControlCNTLToCollectionUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * InvokeControlCNTLToCollectionUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: available as macro/inline + } +function InvokeControlCNTLToCollectionUPP( const (*var*) bounds: Rect; value: SInt16; visible: Boolean; max: SInt16; min: SInt16; procID: SInt16; refCon: SInt32; const (*var*) title: Str255; collection_: Collection; userUPP: ControlCNTLToCollectionUPP ): OSStatus; external name '_InvokeControlCNTLToCollectionUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * RegisterControlDefinition() + * + * Summary: + * Associates or dissociates a control definition with a virtual + * CDEF resource ID. + * + * Discussion: + * In GetNewControl or NewControl on Carbon, the Control Manager + * needs to know how to map the procID to a ControlDefSpec. With + * RegisterControlDefinition, your application can inform the + * Control Manager which ControlDefSpec to call when it sees a + * request to use a 'CDEF' of a particular resource ID. Since custom + * control definitions receive their initialization data in a + * Collection passed in the 'param' parameter, you must also provide + * a procedure to convert the bounds, min, max, and other parameters + * to NewControl into a Collection. If you don't provide a + * conversion proc, your control will receive an empty collection + * when it is sent the initialization message. If you want the + * value, min, visibility, etc. to be given to the control, you must + * add the appropriate tagged data to the collection. See the + * Control Collection Tags above. If you want to unregister a + * ControlDefSpec that you have already registered, call + * RegisterControlDefinition with the same CDEF resource ID, but + * pass NULL for the inControlDef parameter. In this situation, + * inConversionProc is effectively ignored. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inCDEFResID: + * The virtual CDEF resource ID to which you'd like to associate + * or dissociate the control definition. + * + * inControlDef: + * A pointer to a ControlDefSpec which represents the control + * definition you want to register, or NULL if you are attempting + * to unregister a control definition. + * + * inConversionProc: + * The conversion proc which will translate the NewControl + * parameters into a Collection. + * + * Result: + * An OSStatus code indicating success or failure. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: not available + } +function RegisterControlDefinition( inCDEFResID: SInt16; const (*var*) inControlDef: ControlDefSpec; inConversionProc: ControlCNTLToCollectionUPP ): OSStatus; external name '_RegisterControlDefinition'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Visible State } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * HiliteControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure HiliteControl( theControl: ControlRef; hiliteState: ControlPartCode ); external name '_HiliteControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * ShowControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure ShowControl( theControl: ControlRef ); external name '_ShowControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * HideControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure HideControl( theControl: ControlRef ); external name '_HideControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ following state routines available only with Appearance 1.0 and later} +{ + * IsControlActive() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function IsControlActive( inControl: ControlRef ): Boolean; external name '_IsControlActive'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * IsControlVisible() + * + * Summary: + * Returns whether a control is visible. + * + * Discussion: + * Note that IsControlVisible returns a control's effective + * visibility, which is determined both by the control's own + * visibility and the visibility of its parent controls. If a parent + * control is invisible, then this control is considered to be + * invisible also. + * + * Latent visibility can be determined with HIViewIsLatentlyVisible. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control whose visibility you wish to determine. + * + * Result: + * A boolean value indicating whether the control is visible (true) + * or hidden (false). + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function IsControlVisible( inControl: ControlRef ): Boolean; external name '_IsControlVisible'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * ActivateControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function ActivateControl( inControl: ControlRef ): OSErr; external name '_ActivateControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * DeactivateControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function DeactivateControl( inControl: ControlRef ): OSErr; external name '_DeactivateControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlVisibility() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function SetControlVisibility( inControl: ControlRef; inIsVisible: Boolean; inDoDraw: Boolean ): OSErr; external name '_SetControlVisibility'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ following state routines available only on Mac OS X and later} +{ + * IsControlEnabled() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later + * Non-Carbon CFM: not available + } +function IsControlEnabled( inControl: ControlRef ): Boolean; external name '_IsControlEnabled'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * EnableControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later + * Non-Carbon CFM: not available + } +function EnableControl( inControl: ControlRef ): OSStatus; external name '_EnableControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * DisableControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later + * Non-Carbon CFM: not available + } +function DisableControl( inControl: ControlRef ): OSStatus; external name '_DisableControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Imaging } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * DrawControls() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure DrawControls( theWindow: WindowRef ); external name '_DrawControls'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * Draw1Control() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure Draw1Control( theControl: ControlRef ); external name '_Draw1Control'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +procedure DrawOneControl( theControl: ControlRef ); external name '_Draw1Control'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * UpdateControls() + * + * Summary: + * Redraws the controls that intersect a specified region in a + * window. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window whose controls to redraw. + * + * inUpdateRegion: + * The region (in local coordinates) describing which controls to + * redraw. In Mac OS 10.1 and later, and in CarbonLib 1.5 and + * later, you may pass NULL for this parameter to redraw the + * controls intersecting the visible region of the window. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure UpdateControls( inWindow: WindowRef; inUpdateRegion: RgnHandle { can be NULL } ); external name '_UpdateControls'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ following imaging routines available only with Appearance 1.0 and later} +{ + * GetBestControlRect() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetBestControlRect( inControl: ControlRef; var outRect: Rect; var outBaseLineOffset: SInt16 ): OSErr; external name '_GetBestControlRect'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlFontStyle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function SetControlFontStyle( inControl: ControlRef; const (*var*) inStyle: ControlFontStyleRec ): OSErr; external name '_SetControlFontStyle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * DrawControlInCurrentPort() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +procedure DrawControlInCurrentPort( inControl: ControlRef ); external name '_DrawControlInCurrentPort'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetUpControlBackground() + * + * Summary: + * Applies the proper background color for the given control to the + * current port. + * + * Discussion: + * An embedding-savvy control which erases before drawing must + * ensure that its background color properly matches the body color + * of any parent controls on top of which it draws. This routine + * asks the Control Manager to determine and apply the proper + * background color to the current port. If a ControlColorProc has + * been provided for the given control, the proc will be called to + * set up the background color. If no proc exists, or if the proc + * returns a value other than noErr, the Control Manager ascends the + * parent chain for the given control looking for a control which + * has a special background (see the kControlHasSpecialBackground + * feature bit). The first such parent is asked to set up the + * background color (see the kControlMsgSetUpBackground message). If + * no such parent exists, the Control Manager applies any ThemeBrush + * which has been associated with the owning window (see + * SetThemeWindowBackground). Available in Appearance 1.0 (Mac OS + * 8), CarbonLib 1.0, Mac OS X, and later. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The ControlRef that wants to erase. + * + * inDepth: + * A short integer indicating the color depth of the device onto + * which drawing will take place. + * + * inIsColorDevice: + * A Boolean indicating whether the draw device is a color device. + * + * Result: + * An OSStatus code indicating success or failure. The most likely + * error is a controlHandleInvalidErr, resulting from a bad + * ControlRef. Any non-noErr result indicates that the color set up + * failed, and that the caller should probably give up its attempt + * to draw. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function SetUpControlBackground( inControl: ControlRef; inDepth: SInt16; inIsColorDevice: Boolean ): OSErr; external name '_SetUpControlBackground'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetUpControlTextColor() + * + * Summary: + * Applies the proper text color for the given control to the + * current port. + * + * Discussion: + * An embedding-savvy control which draws text must ensure that its + * text color properly contrasts the background on which it draws. + * This routine asks the Control Manager to determine and apply the + * proper text color to the current port. If a ControlColorProc has + * been provided for the given control, the proc will be called to + * set up the text color. If no proc exists, or if the proc returns + * a value other than noErr, the Control Manager ascends the parent + * chain for the given control looking for a control which has a + * special background (see the kControlHasSpecialBackground feature + * bit). The first such parent is asked to set up the text color + * (see the kControlMsgApplyTextColor message). If no such parent + * exists, the Control Manager chooses a text color which contrasts + * any ThemeBrush which has been associated with the owning window + * (see SetThemeWindowBackground). Available in Appearance 1.1 (Mac + * OS 8.5), CarbonLib 1.0, Mac OS X, and later. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The ControlRef that wants to draw text. + * + * inDepth: + * A short integer indicating the color depth of the device onto + * which drawing will take place. + * + * inIsColorDevice: + * A Boolean indicating whether the draw device is a color device. + * + * Result: + * An OSStatus code indicating success or failure. The most likely + * error is a controlHandleInvalidErr, resulting from a bad + * ControlRef. Any non-noErr result indicates that the color set up + * failed, and that the caller should probably give up its attempt + * to draw. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function SetUpControlTextColor( inControl: ControlRef; inDepth: SInt16; inIsColorDevice: Boolean ): OSErr; external name '_SetUpControlTextColor'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * ControlColorProcPtr + * + * Discussion: + * Callback allowing clients to specify/override the background + * color and text color that a Control will use during drawing. Your + * procedure should make the color changes to the current port. See + * SetControlColorProc, SetUpControlBackground, and + * SetUpControlTextColor for more information. Available on Mac OS + * 8.5, CarbonLib 1.1, Mac OS X, and later. + * + * Parameters: + * + * inControl: + * A reference to the Control for whom your proc is setting up + * colors. + * + * inMessage: + * A ControlDefProcMessage indicating what sort of color your + * procedure should set up. It will be either + * kControlMsgApplyTextColor or kControlMsgSetUpBackground. + * kControlMsgApplyTextColor is a request to set up the + * appropriate text color (by setting the current port's + * foreground color, pen information, etc.). + * kControlMsgSetUpBackground is a request to set up the + * appropriate background color (the current port's background + * color, pattern, etc.). + * + * inDrawDepth: + * A short integer indicating the bit depth of the device into + * which the Control is drawing. The bit depth is typically passed + * in as a result of someone someone trying to draw properly + * across multiple monitors with different bit depths. If your + * procedure wants to handle proper color set up based on bit + * depth, it should use this parameter to help decide what color + * to apply. + * + * inDrawInColor: + * A Boolean indicating whether or not the device that the Control + * is drawing into is a color device. The value is typically + * passed in as a result of someone trying to draw properly across + * multiple monitors which may or may not be color devices. If + * your procedure wants to handle proper color set up for both + * color and grayscale devices, it should use this parameter to + * help decide what color to apply. + * + * Result: + * An OSStatus code indicating success or failure. Returning noErr + * is an indication that your proc completely handled the color set + * up. If you return any other value, the Control Manager will fall + * back to the normal color set up mechanism. + } +type + ControlColorProcPtr = function( inControl: ControlRef; inMessage: SInt16; inDrawDepth: SInt16; inDrawInColor: Boolean ): OSStatus; +type + ControlColorUPP = ControlColorProcPtr; +{ + * NewControlColorUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: available as macro/inline + } +function NewControlColorUPP( userRoutine: ControlColorProcPtr ): ControlColorUPP; external name '_NewControlColorUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * DisposeControlColorUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: available as macro/inline + } +procedure DisposeControlColorUPP( userUPP: ControlColorUPP ); external name '_DisposeControlColorUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * InvokeControlColorUPP() + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: available as macro/inline + } +function InvokeControlColorUPP( inControl: ControlRef; inMessage: SInt16; inDrawDepth: SInt16; inDrawInColor: Boolean; userUPP: ControlColorUPP ): OSStatus; external name '_InvokeControlColorUPP'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + +{ + * SetControlColorProc() + * + * Summary: + * Associates a ControlColorUPP with a given Control, thereby + * allowing you to bypass the embedding hierarchy-based color setup + * of SetUpControlBackground/SetUpControlTextColor and replace it + * with your own. + * + * Discussion: + * Before an embedded Control can erase, it calls + * SetUpControlBackground to have its background color set up by any + * parent controls. Similarly, any Control which draws text calls + * SetUpControlTextColor to have the appropriate text color set up. + * This allows certain controls (such as Tabs and Placards) to offer + * special backgrounds and text colors for any child controls. By + * default, the SetUp routines only move up the Control Manager + * embedding hierarchy looking for a parent which has a special + * background. This is fine in a plain vanilla embedding case, but + * many application frameworks find it troublesome; if there are + * interesting views between two Controls in the embedding + * hierarchy, the framework needs to be in charge of the background + * and text colors, otherwise drawing defects will occur. You can + * only associate a single color proc with a given ControlRef. + * Available on Mac OS 8.5, CarbonLib 1.1, Mac OS X, and later. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The ControlRef with whom the color proc should be associated. + * + * inProc: + * The color proc to associate with the ControlRef. If you pass + * NULL, the ControlRef will be dissociated from any previously + * installed color proc. + * + * Result: + * An OSStatus code indicating success or failure. The most likely + * error is a controlHandleInvalidErr resulting from a bad + * ControlRef. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function SetControlColorProc( inControl: ControlRef; inProc: ControlColorUPP ): OSStatus; external name '_SetControlColorProc'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Mousing } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + NOTE ON CONTROL ACTION PROCS + + When using the TrackControl() call when tracking an indicator, the actionProc parameter + (type ControlActionUPP) should be replaced by a parameter of type DragGrayRgnUPP + (see Quickdraw.h). + + If, however, you are using the live feedback variants of scroll bars or sliders, you + must pass a ControlActionUPP in when tracking the indicator as well. This functionality + is available in Appearance 1.0 or later. +} +{ + * TrackControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function TrackControl( theControl: ControlRef; startPoint: Point; actionProc: ControlActionUPP { can be NULL } ): ControlPartCode; external name '_TrackControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * DragControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure DragControl( theControl: ControlRef; startPoint: Point; const (*var*) limitRect: Rect; const (*var*) slopRect: Rect; axis: DragConstraint ); external name '_DragControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * TestControl() + * + * Summary: + * Determines the control part that is at a given point. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * theControl: + * The control to test. + * + * testPoint: + * The location to test. For a non-compositing control, this + * location should be in port-local coordinates; for a compositing + * control, this location should be in view-local coordinates. + * + * Result: + * The control part code that was at the specified location. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function TestControl( theControl: ControlRef; testPoint: Point ): ControlPartCode; external name '_TestControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * FindControl() + * + * Summary: + * Finds the control in a window that is at a given point. + * + * Discussion: + * FindControl does not work properly in compositing windows prior + * to Mac OS X 10.4. In earlier releases of Mac OS X, it will return + * the correct control, but the part code parameter will be invalid + * (usually kControlNoPart). + * + * In Mac OS X 10.2 and later, we recommend using + * HIViewGetViewForMouseEvent or HIViewGetSubviewHit instead of + * FindControl. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * testPoint: + * The point to test. The point should be given in port-local + * coordinates for the specified window. + * + * theWindow: + * The window whose controls to test. + * + * theControl: + * On exit, contains the control that was at the specified + * location. + * + * Result: + * The control part code that was at the specified location. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function FindControl( testPoint: Point; theWindow: WindowRef; var theControl: ControlRef ): ControlPartCode; external name '_FindControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ The following mousing routines available only with Appearance 1.0 and later } +{ HandleControlClick is preferable to TrackControl when running under } +{ Appearance 1.0 as you can pass in modifiers, which some of the new controls } +{ use, such as edit text and list boxes. } +{ NOTE: Passing NULL for the outPart parameter of FindControlUnderMouse is only} +{ supported in systems later than 10.1.x } +{ + * FindControlUnderMouse() + * + * Summary: + * Finds the control in a window that is at a given point. + * + * Discussion: + * FindControlUnderMouse does not work properly in compositing + * windows prior to Mac OS X 10.4. In earlier releases of Mac OS X, + * it will return the correct control, but the part code parameter + * will be invalid (usually kControlNoPart). + * + * In Mac OS X 10.2 and later, we recommend using + * HIViewGetViewForMouseEvent or HIViewGetSubviewHit instead of + * FindControlUnderMouse. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWhere: + * The point to test. The point should be given in port-local + * coordinates for the specified window. + * + * inWindow: + * The window whose controls to test. + * + * outPart: + * On exit, contains the control part code that was at the + * specified location. You may pass NULL for this parameter if you + * don't need this information. + * + * Result: + * The control that was at the specified location. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function FindControlUnderMouse( inWhere: Point; inWindow: WindowRef; outPart: ControlPartCodePtr { can be NULL } ): ControlRef; external name '_FindControlUnderMouse'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * HandleControlClick() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function HandleControlClick( inControl: ControlRef; inWhere: Point; inModifiers: EventModifiers; inAction: ControlActionUPP { can be NULL } ): ControlPartCode; external name '_HandleControlClick'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ Contextual Menu support in the Control Manager is only available on Carbon. } +{ If the control didn't display a contextual menu (possibly because the point } +{ was in a non-interesting part), the menuDisplayed output parameter will be } +{ false. If the control did display a menu, menuDisplayed will be true. } +{ This in on Carbon only } +{ + * HandleControlContextualMenuClick() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function HandleControlContextualMenuClick( inControl: ControlRef; inWhere: Point; var menuDisplayed: Boolean ): OSStatus; external name '_HandleControlContextualMenuClick'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ Some complex controls (like Data Browser) require proper sequencing of } +{ window activation and click processing. In some cases, the control might } +{ want the window to be left inactive yet still handle the click, or vice- } +{ versa. The GetControlClickActivation routine lets a control client ask the } +{ control how it wishes to behave for a particular click. } +{ This in on Carbon only. } +{ + * GetControlClickActivation() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function GetControlClickActivation( inControl: ControlRef; inWhere: Point; inModifiers: EventModifiers; var outResult: ClickActivationResult ): OSStatus; external name '_GetControlClickActivation'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Events (available only with Appearance 1.0 and later) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * HandleControlKey() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function HandleControlKey( inControl: ControlRef; inKeyCode: SInt16; inCharCode: SInt16; inModifiers: EventModifiers ): ControlPartCode; external name '_HandleControlKey'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Mouse Tracking (available with Carbon) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ The HandleControlSetCursor routine requests that a given control set the cursor to } +{ something appropriate based on the mouse location. } +{ If the control didn't want to set the cursor (because the point was in a } +{ non-interesting part), the cursorWasSet output parameter will be false. If the } +{ control did set the cursor, cursorWasSet will be true. } +{ Carbon only. } +{ + * HandleControlSetCursor() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function HandleControlSetCursor( control: ControlRef; localPoint: Point; modifiers: EventModifiers; var cursorWasSet: Boolean ): OSStatus; external name '_HandleControlSetCursor'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Positioning } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * MoveControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure MoveControl( theControl: ControlRef; h: SInt16; v: SInt16 ); external name '_MoveControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SizeControl() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure SizeControl( theControl: ControlRef; w: SInt16; h: SInt16 ); external name '_SizeControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Title } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * SetControlTitle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure SetControlTitle( theControl: ControlRef; const (*var*) title: Str255 ); external name '_SetControlTitle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlTitle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure GetControlTitle( theControl: ControlRef; var title: Str255 ); external name '_GetControlTitle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlTitleWithCFString() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: not available + } +function SetControlTitleWithCFString( inControl: ControlRef; inString: CFStringRef ): OSStatus; external name '_SetControlTitleWithCFString'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * CopyControlTitleAsCFString() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: not available + } +function CopyControlTitleAsCFString( inControl: ControlRef; var outString: CFStringRef ): OSStatus; external name '_CopyControlTitleAsCFString'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Value } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * GetControlValue() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function GetControlValue( theControl: ControlRef ): SInt16; external name '_GetControlValue'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlValue() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure SetControlValue( theControl: ControlRef; newValue: SInt16 ); external name '_SetControlValue'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlMinimum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function GetControlMinimum( theControl: ControlRef ): SInt16; external name '_GetControlMinimum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlMinimum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure SetControlMinimum( theControl: ControlRef; newMinimum: SInt16 ); external name '_SetControlMinimum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlMaximum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function GetControlMaximum( theControl: ControlRef ): SInt16; external name '_GetControlMaximum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlMaximum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure SetControlMaximum( theControl: ControlRef; newMaximum: SInt16 ); external name '_SetControlMaximum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ proportional scrolling/32-bit value support is new with Appearance 1.1} + +{ + * GetControlViewSize() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function GetControlViewSize( theControl: ControlRef ): SInt32; external name '_GetControlViewSize'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlViewSize() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +procedure SetControlViewSize( theControl: ControlRef; newViewSize: SInt32 ); external name '_SetControlViewSize'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControl32BitValue() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function GetControl32BitValue( theControl: ControlRef ): SInt32; external name '_GetControl32BitValue'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControl32BitValue() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +procedure SetControl32BitValue( theControl: ControlRef; newValue: SInt32 ); external name '_SetControl32BitValue'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControl32BitMaximum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function GetControl32BitMaximum( theControl: ControlRef ): SInt32; external name '_GetControl32BitMaximum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControl32BitMaximum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +procedure SetControl32BitMaximum( theControl: ControlRef; newMaximum: SInt32 ); external name '_SetControl32BitMaximum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControl32BitMinimum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function GetControl32BitMinimum( theControl: ControlRef ): SInt32; external name '_GetControl32BitMinimum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControl32BitMinimum() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +procedure SetControl32BitMinimum( theControl: ControlRef; newMinimum: SInt32 ); external name '_SetControl32BitMinimum'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + IsValidControlHandle will tell you if the handle you pass in belongs to a control + the Control Manager knows about. It does not sanity check the data in the control. +} + +{ + * IsValidControlHandle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function IsValidControlHandle( theControl: ControlRef ): Boolean; external name '_IsValidControlHandle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control IDs } +{ Carbon only. } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} + +{ + * ControlID + * + * Summary: + * A unique identifier for a control in a window. + } +type + ControlIDPtr = ^ControlID; + ControlID = record +{ + * A four-character signature. When assigning a control ID to your + * own controls, you should typically use your application signature + * here, or some other signature with an uppercase character. Apple + * reserves signatures that contain only lowercase characters. + } + signature: OSType; + + { + * A integer identifying the control. This value should be unique for + * a given control across all controls in the same window with the + * same signature. + } + id: SInt32; + end; +{ + * SetControlID() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: not available + } +function SetControlID( inControl: ControlRef; const (*var*) inID: ControlID ): OSStatus; external name '_SetControlID'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlID() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: not available + } +function GetControlID( inControl: ControlRef; var outID: ControlID ): OSStatus; external name '_GetControlID'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlByID() + * + * Discussion: + * Find a control in a window by its unique ID. + * + * HIView Notes: This call is replaced as of Mac OS X 10.3 by + * HIViewFindByID. That call lets you start your search at any point + * in the hierarchy, as the first parameter is a view and not a + * window. Either will work, but the HIView API is preferred. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window to search. + * + * inID: + * The ID to search for. + * + * outControl: + * The control that was found, or NULL if no control in the window + * had the ID specified. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: not available + } +function GetControlByID( inWindow: WindowRef; const (*var*) inID: ControlID; var outControl: ControlRef ): OSStatus; external name '_GetControlByID'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Command IDs } +{ Carbon only. } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * SetControlCommandID() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: not available + } +function SetControlCommandID( inControl: ControlRef; inCommandID: UInt32 ): OSStatus; external name '_SetControlCommandID'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlCommandID() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.1 and later + * Non-Carbon CFM: not available + } +function GetControlCommandID( inControl: ControlRef; var outCommandID: UInt32 ): OSStatus; external name '_GetControlCommandID'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Identification } +{ Carbon only. } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +type + ControlKindPtr = ^ControlKind; + ControlKind = record + signature: OSType; + kind: OSType; + end; + +{ + * Discussion: + * Control signature kind + } +const +{ + * Signature of all system controls. + } + kControlKindSignatureApple = $6170706C (* 'appl' *); + +{ + * GetControlKind() + * + * Summary: + * Returns the kind of the given control. + * + * Discussion: + * GetControlKind allows you to query the kind of any control. This + * function is only available in Mac OS X. + * + * HIView Note: With the advent of HIView, you can just as easily + * use HIObjectCopyClassID to determine what kind of control you are + * looking at. This is only truly deterministic for + * HIToolbox-supplied controls as of Mac OS X 10.3 or later due to + * the fact that the class IDs underwent naming changes before that + * release. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The ControlRef to find the kind of. + * + * outControlKind: + * On successful exit, this will contain the control signature and + * kind. See ControlDefinitions.h for the kinds of each system + * control. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.5 and later + * Non-Carbon CFM: not available + } +function GetControlKind( inControl: ControlRef; var outControlKind: ControlKind ): OSStatus; external name '_GetControlKind'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Properties } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + kControlPropertyPersistent = $00000001; { whether this property gets saved when flattening the control} + +{ + * GetControlProperty() + * + * Discussion: + * Obtains a piece of data that has been previously associated with + * a control. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * control: + * A ControlRef to the control whose associated data you wish to + * obtain. + * + * propertyCreator: + * An OSType signature, usually the signature of your application. + * Do not use all lower case signatures, as these are reserved for + * use by Apple. + * + * propertyTag: + * An OSType signature, application-defined, identifying the + * property. + * + * bufferSize: + * A value specifying the size of the data to be retrieved. If the + * size of the data is unknown, use the function + * GetControlPropertySize to get the dataΥs size. If the size + * specified in the bufferSize parameter does not match the actual + * size of the property, GetControlProperty only retrieves data up + * to the size specified or up to the actual size of the property, + * whichever is smaller, and an error is returned. + * + * actualSize: + * On input, a pointer to an unsigned 32-bit integer. On return, + * this value is set to the actual size of the associated data. + * You may pass null for the actualSize parameter if you are not + * interested in this information. + * + * propertyBuffer: + * On input, a pointer to a buffer. This buffer must be big enough + * to fit bufferSize bytes of data. On return, this buffer + * contains a copy of the data that is associated with the + * specified control. + * + * Result: + * A result code indicating success or failure. Most common return + * values are: noErr, paramErr, controlHandleInvalidErr, + * controlPropertyInvalid and controlPropertyNotFoundErr. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function GetControlProperty( control: ControlRef; propertyCreator: OSType; propertyTag: OSType; bufferSize: UInt32; actualSize: UInt32Ptr { can be NULL }; propertyBuffer: UnivPtr ): OSStatus; external name '_GetControlProperty'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlPropertySize() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function GetControlPropertySize( control: ControlRef; propertyCreator: OSType; propertyTag: OSType; var size: UInt32 ): OSStatus; external name '_GetControlPropertySize'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlProperty() + * + * Discussion: + * Obtains a piece of data that has been previously associated with + * a control. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * control: + * A ControlRef to the control whose associated data you wish to + * obtain. + * + * propertyCreator: + * An OSType signature, usually the signature of your application. + * Do not use all lower case signatures, as these are reserved for + * use by Apple. + * + * propertyTag: + * An OSType signature, application-defined, identifying the + * property. + * + * propertySize: + * A value specifying the size of the data. + * + * propertyData: + * On input, a pointer to data of any type. Pass a pointer to a + * buffer containing the data to be associated; this buffer should + * be at least as large as the value specified in the propertySize + * parameter. + * + * propertyBuffer: + * On input, a pointer to a buffer. This buffer must be big enough + * to fit bufferSize bytes of data. On return, this buffer + * contains a copy of the data that is associated with the + * specified control. + * + * Result: + * A result code indicating success or failure. Most common return + * values are: noErr, paramErr, controlHandleInvalidErr and + * controlPropertyInvalid + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function SetControlProperty( control: ControlRef; propertyCreator: OSType; propertyTag: OSType; propertySize: UInt32; propertyData: {const} UnivPtr ): OSStatus; external name '_SetControlProperty'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * RemoveControlProperty() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function RemoveControlProperty( control: ControlRef; propertyCreator: OSType; propertyTag: OSType ): OSStatus; external name '_RemoveControlProperty'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlPropertyAttributes() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: not available + } +function GetControlPropertyAttributes( control: ControlRef; propertyCreator: OSType; propertyTag: OSType; var attributes: UInt32 ): OSStatus; external name '_GetControlPropertyAttributes'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * ChangeControlPropertyAttributes() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: not available + } +function ChangeControlPropertyAttributes( control: ControlRef; propertyCreator: OSType; propertyTag: OSType; attributesToSet: UInt32; attributesToClear: UInt32 ): OSStatus; external name '_ChangeControlPropertyAttributes'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Regions (Appearance 1.1 or later) } +{ See the discussion on meta-parts in this header for more information } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * GetControlRegion() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 8.5 and later + } +function GetControlRegion( inControl: ControlRef; inPart: ControlPartCode; outRegion: RgnHandle ): OSStatus; external name '_GetControlRegion'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Variant } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * GetControlVariant() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function GetControlVariant( theControl: ControlRef ): ControlVariant; external name '_GetControlVariant'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Action } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * SetControlAction() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure SetControlAction( theControl: ControlRef; actionProc: ControlActionUPP ); external name '_SetControlAction'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlAction() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function GetControlAction( theControl: ControlRef ): ControlActionUPP; external name '_GetControlAction'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Accessors } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * SetControlReference() + * + * Summary: + * This is somewhat of a legacy API. The Set/GetControlProperty API + * is a better mechanism to associate data with a control. + * + * Discussion: + * When you create a control, you specify an initial reference + * value, either in the control resource or in the refCon parameter + * of the function NewControl. You can use the function + * GetControlReference to obtain the current value. You can use this + * value for any purpose. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * theControl: + * A ControlRef to the control whose reference value you wish to + * change. + * + * data: + * The new reference value for the control. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +procedure SetControlReference( theControl: ControlRef; data: SInt32 ); external name '_SetControlReference'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlReference() + * + * Summary: + * This is somewhat of a legacy API. The Set/GetControlProperty API + * is a better mechanism to associate data with a control. + * + * Discussion: + * When you create a control, you specify an initial reference + * value, either in the control resource or in the refCon parameter + * of the function NewControl. You can use this reference value for + * any purpose, and you can use the function SetControlReference to + * change this value. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * theControl: + * A ControlRef to the control whose reference value you wish to + * retrieve. + * + * Result: + * The current reference value for the specified control. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } +function GetControlReference( theControl: ControlRef ): SInt32; external name '_GetControlReference'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlColor() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Hierarchy (Appearance 1.0 and later only) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * SendControlMessage() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function SendControlMessage( inControl: ControlRef; inMessage: SInt16; inParam: UnivPtr ): SInt32; external name '_SendControlMessage'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * DumpControlHierarchy() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function DumpControlHierarchy( inWindow: WindowRef; const (*var*) inDumpFile: FSSpec ): OSErr; external name '_DumpControlHierarchy'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * CreateRootControl() + * + * Discussion: + * Creates a new 'root control' for a window. This root is actually + * the content area of a window, and spans all of Quickdraw space. + * + * + * HIView Notes: In a composited window, this routine will return + * errRootAlreadyExists. Technically, you cannot create a root + * control in such a window. Instead you would embed views into the + * content view of the window. GetRootControl will return the + * content view in that situation as well. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window for which to create a root control. + * + * outControl: + * On exit, contains the window's root control. In Mac OS 10.1 and + * CarbonLib 1.5 and later, this parameter may be NULL if you + * don't need the ControlRef. + * + * Result: + * A result code indicating success or failure. errRootAlreadyExists + * is returned if the window already has a root control. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function CreateRootControl( inWindow: WindowRef; outControl: ControlRefPtr { can be NULL } ): OSErr; external name '_CreateRootControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetRootControl() + * + * Discussion: + * Returns the 'root control' for a given window. If no root exists + * for the window, errNoRootControl is returned. This root control + * represents the content area of the window, and spans all of + * Quickdraw space. + * + * HIView Notes: With the advent of HIView, this API and concept are + * considered deprecated. The root of the window in a composited + * window is actually the structure view, and all views (window + * widgets, content view, etc.) are subviews of that top-level view. + * It can be fetched with HIViewGetRoot. In a composited window, + * calling GetRootControl will return the content view, not the true + * root to maintain compatibility with past usage of GetRootControl. + * We recommend using HIViewFindByID with the kHIViewWindowContentID + * control ID to fetch the content view instead of using this call. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window to query. + * + * outControl: + * The root control, on output. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetRootControl( inWindow: WindowRef; var outControl: ControlRef ): OSErr; external name '_GetRootControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * EmbedControl() + * + * Discussion: + * Adds a subcontrol to the given parent. + * + * HIView Note: This is replaced by HIViewAddSubview in Mac OS X + * 10.2 and beyond. You can call either function in a composited or + * non-composited window, but the HIView variant is preferred. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The subcontrol being added. + * + * inContainer: + * The control which will receive the new subcontrol. + * + * Result: + * An operating system result code. + * errNeedsCompositedWindow will be returned when you try to embed + * into the content view in a non-compositing window; you can only + * embed into the content view in compositing windows. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function EmbedControl( inControl: ControlRef; inContainer: ControlRef ): OSErr; external name '_EmbedControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * AutoEmbedControl() + * + * Discussion: + * Based on the bounds of the given control, embed it in the window + * specified. It basically finds the deepest parent the control + * would fit into and embeds it there. This was invented primarily + * for the Dialog Manager so that hierarchies could be generated + * from the flattened DITL list. + * + * HIView Note: Do NOT call this API in a composited window, its + * results will be unpredictable as the coordinate systems are very + * different. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The subcontrol being added. + * + * inWindow: + * The window which will receive the new subcontrol. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function AutoEmbedControl( inControl: ControlRef; inWindow: WindowRef ): OSErr; external name '_AutoEmbedControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetSuperControl() + * + * Discussion: + * Returns the parent control of the given one. + * + * HIView Note: HIViewGetSuperview is the preferred API as of Mac OS + * X 10.2. Either call will work in a composited or non- composited + * window. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control to query. + * + * outParent: + * The parent control. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetSuperControl( inControl: ControlRef; var outParent: ControlRef ): OSErr; external name '_GetSuperControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * CountSubControls() + * + * Discussion: + * Returns the number of children a given control has. This count + * can then be used for calls to GetIndexedSubControl. + * + * + * HIView Note: As of Mac OS X 10.2, the preferred way to walk the + * control hierarchy is to use HIViewGetFirstSubView followed by + * repeated calls to HIViewGetNextView until NULL is returned. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control to query. + * + * outNumChildren: + * A pointer to a UInt16 to receive the number of children + * controls. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function CountSubControls( inControl: ControlRef; var outNumChildren: UInt16 ): OSErr; external name '_CountSubControls'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetIndexedSubControl() + * + * Discussion: + * Returns the child control at a given index in the list of + * subcontrols for the specified parent. + * + * HIView Note: As of Mac OS X 10.2, the preferred way to walk the + * control hierarchy is to use HIViewGetFirstSubView followed by + * repeated calls to HIViewGetNextView until NULL is returned. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The parent control to query. + * + * inIndex: + * The index of the subcontrol to fetch. + * + * outSubControl: + * A pointer to a control reference to receive the subcontrol. If + * the index is out of range, the contents of this parameter are + * undefined after the call. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetIndexedSubControl( inControl: ControlRef; inIndex: UInt16; var outSubControl: ControlRef ): OSErr; external name '_GetIndexedSubControl'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlSupervisor() + * + * Discussion: + * Allow one view to intercept clicks for another. When something + * like FindControl or the like is called on the target, it will + * instead return the supervisor. This is largely deprecated these + * days. + * + * HIView Note: As of Mac OS X 10.2, you can intercept subview + * clicks by overriding the kEventControlInterceptSubviewClick event + * (see CarbonEvents.h). + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control to intercept clicks for. + * + * inBoss: + * The new supervisor control (can be NULL). + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function SetControlSupervisor( inControl: ControlRef; inBoss: ControlRef { can be NULL } ): OSErr; external name '_SetControlSupervisor'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Keyboard Focus (available only with Appearance 1.0 and later) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * GetKeyboardFocus() + * + * Discussion: + * Passes back the currently focused control within the given window. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window to get the focus of. + * + * outControl: + * On output, this will contain the ControlRef that is currently + * focused in the given window. If there is no currently focused + * control, outControl will contain NULL. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetKeyboardFocus( inWindow: WindowRef; var outControl: ControlRef ): OSErr; external name '_GetKeyboardFocus'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetKeyboardFocus() + * + * Discussion: + * Focuses the given part of the given control in a particular + * window. If another control is currently focused in the window, + * focus will be removed from the other control before focus is + * given to the desired control. SetKeyboardFocus respects the full + * keyboard navigation mode. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window which contains the control you want to focus. If the + * window does not contain the control, an error will be returned. + * + * inControl: + * The control you want to focus. + * + * inPart: + * The part of the control you wish to focus. You may pass + * kControlFocusNoPart to clear the focus in the given control. + * You may pass kControlFocusNextPart or kControlFocusPrevPart to + * move the focus within the given control. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function SetKeyboardFocus( inWindow: WindowRef; inControl: ControlRef; inPart: ControlFocusPart ): OSErr; external name '_SetKeyboardFocus'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * AdvanceKeyboardFocus() + * + * Discussion: + * Advances the focus to the next most appropriate control. Unless + * overriden in some fashion (either by overriding certain carbon + * events or using the HIViewSetNextFocus API), the Toolbox will use + * a spacially determinant method of focusing, attempting to focus + * left to right, top to bottom in a window, taking groups of + * controls into account. AdvanceKeyboardFocus does not respect the + * full keyboard navigation mode. It will only advance the focus + * between traditionally focusable controls. If you want to advance + * the focus in a way that respects the full keyboard navigation + * mode, use the HIViewAdvanceFocus API. AdvanceKeyboardFocus does + * not work for windows in compositing mode. For compositing + * windows, you must call HIViewAdvanceFocus instead. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window to advance the focus in. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function AdvanceKeyboardFocus( inWindow: WindowRef ): OSErr; external name '_AdvanceKeyboardFocus'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * ReverseKeyboardFocus() + * + * Discussion: + * Reverses the focus to the next most appropriate control. Unless + * overriden in some fashion (either by overriding certain carbon + * events or using the HIViewSetNextFocus API), the Toolbox will use + * a spacially determinant method of focusing, attempting to focus + * left to right, top to bottom in a window, taking groups of + * controls into account. ReverseKeyboardFocus does not respect the + * full keyboard navigation mode. It will only reverse the focus + * between traditionally focusable controls. If you want to reverse + * the focus in a way that respects the full keyboard navigation + * mode, use the HIViewAdvanceFocus API. ReverseKeyboardFocus does + * not work for windows in compositing mode. For compositing + * windows, you must call HIViewAdvanceFocus instead. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window to reverse the focus in. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function ReverseKeyboardFocus( inWindow: WindowRef ): OSErr; external name '_ReverseKeyboardFocus'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * ClearKeyboardFocus() + * + * Discussion: + * Clears focus from the currently focused control in a given + * window. The window will be left such that no control is focused + * within it. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window that you want to clear the focus in. + * + * Result: + * An operating system result code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function ClearKeyboardFocus( inWindow: WindowRef ): OSErr; external name '_ClearKeyboardFocus'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Data (available only with Appearance 1.0 and later) } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} + +{ + * GetControlFeatures() + * + * Discussion: + * Returns the set of behaviors, etc. the given view supports. This + * set of features is immutable before Mac OS X 10.3. As of that + * release, the features can be changed with HIViewChangeFeatures. + * That API is the recommended call on Mac OS X 10.3 and later. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control to query. + * + * outFeatures: + * A pointer to a 32-bit feature bitfield. + * + * Result: + * An operating system error code. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetControlFeatures( inControl: ControlRef; var outFeatures: UInt32 ): OSErr; external name '_GetControlFeatures'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlData() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function SetControlData( inControl: ControlRef; inPart: ControlPartCode; inTagName: ResType; inSize: Size; inData: {const} UnivPtr ): OSErr; external name '_SetControlData'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlData() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetControlData( inControl: ControlRef; inPart: ControlPartCode; inTagName: ResType; inBufferSize: Size; inBuffer: UnivPtr; outActualSize: SizePtr { can be NULL } ): OSErr; external name '_GetControlData'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlDataSize() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +function GetControlDataSize( inControl: ControlRef; inPart: ControlPartCode; inTagName: ResType; var outMaxSize: Size ): OSErr; external name '_GetControlDataSize'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ Control Drag & Drop } +{ Carbon only. } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} + +{ + * Discussion: + * DragTrackingMessage values for use with + * HandleControlDragTracking. These are deprecated in favor of the + * drag Carbon Events introduced in Mac OS X 10.2 via HIView. + } +const +{ + * The drag was previously outside the control and it just now + * entered the control. + } + kDragTrackingEnterControl = 2; + + { + * The drag was previously inside the control and it is still inside + * the control. + } + kDragTrackingInControl = 3; + + { + * The drag was previously inside the control and it just now left + * the control. + } + kDragTrackingLeaveControl = 4; + + +{ + * HandleControlDragTracking() + * + * Summary: + * Tells a control to respond visually to a drag. + * + * Discussion: + * Call HandleControlDragTracking when a drag is above a control in + * your window and you want to give that control a chance to draw + * appropriately in response to the drag. Note that in order for a + * control to have any chance of responding to this API, you must + * enable the control's drag and drop support with + * SetControlDragTrackingEnabled. + * <br>HIView Note: This should not be called in a composited window. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control the drag is over. Most controls won't track drags + * unless you enable drag tracking on it with + * SetControlDragTrackingEnabled. + * + * inMessage: + * A drag message indicating the state of the drag above the + * control. The meaning of the value you pass in must be relative + * to the control, not the whole window. For when the drag first + * enters the control, you should pass kDragTrackingEnterControl. + * While the drag stays within the control, pass + * kDragTrackingInControl. When the drag leaves the control, pass + * kDragTrackingLeaveControl. + * + * inDrag: + * The drag reference that is over the control. + * + * outLikesDrag: + * On output, this will be a boolean indicating whether the + * control "likes" the drag. A control "likes" the drag if the + * data in the drag ref can be accepted by the control. If the + * control does not like the drag, don't bother calling + * HandleControlDragReceive if the user drops the dragged object + * onto the control. + * + * Result: + * A result code indicating success or failure. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function HandleControlDragTracking( inControl: ControlRef; inMessage: DragTrackingMessage; inDrag: DragReference; var outLikesDrag: Boolean ): OSStatus; external name '_HandleControlDragTracking'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * HandleControlDragReceive() + * + * Summary: + * Tells a control to accept the data in drag reference. + * + * Discussion: + * Call HandleControlDragReceive when the user dropped a drag on a + * control in your window. This gives the control the opportunity to + * pull any interesting data out of the drag and insert the data + * into itself. Note that in order for a control to have any chance + * of responding to this API, you must enable the control's drag and + * drop support with SetControlDragTrackingEnabled. + * <br>HIView Note: This should not be called in a composited window. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control who should accept the data. Most controls won't + * accept drags unless you enable drag tracking on it with + * SetControlDragTrackingEnabled. + * + * inDrag: + * The drag reference that was dropped on the control. + * + * Result: + * A result code indicating success or failure. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function HandleControlDragReceive( inControl: ControlRef; inDrag: DragReference ): OSStatus; external name '_HandleControlDragReceive'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlDragTrackingEnabled() + * + * Summary: + * Tells a control that it should track and receive drags. + * + * Discussion: + * Call SetControlDragTrackingEnabled to turn enable a control's + * support for drag and drop. Controls won't track drags unless you + * first turn on drag and drop support with this API. Some controls + * don't support drag and drop at all; these controls won't track or + * receive drags even if you call this API with true. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control whose drag tracking enabled state you'd like to set. + * + * inTracks: + * A Boolean indicating whether you want this control to track and + * receive drags. + * + * Result: + * A result code indicating success or failure. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function SetControlDragTrackingEnabled( inControl: ControlRef; inTracks: Boolean ): OSStatus; external name '_SetControlDragTrackingEnabled'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * IsControlDragTrackingEnabled() + * + * Summary: + * Tells you whether a control's drag track and receive support is + * enabled. + * + * Discussion: + * Call IsControlDragTrackingEnabled to query a whether a control's + * drag and drop support is enabled. Some controls don't support + * drag and drop at all; these controls won't track or receive drags + * even if you call this API and see a true output value. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inControl: + * The control whose drag tracking enabled state you'd like to + * query. + * + * outTracks: + * On output, this will contain a Boolean value whether the + * control's drag and drop support is enabled. + * + * Result: + * A result code indicating success or failure. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function IsControlDragTrackingEnabled( inControl: ControlRef; var outTracks: Boolean ): OSStatus; external name '_IsControlDragTrackingEnabled'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetAutomaticControlDragTrackingEnabledForWindow() + * + * Summary: + * Enables or disables the Control Manager's automatic drag tracking + * for a given window. + * + * Discussion: + * Call SetAutomaticControlDragTrackingEnabledForWindow to turn on + * or off the Control Manager's automatic drag tracking support for + * a given window. By default, your application code is responsible + * for installing drag tracking and receive handlers on a given + * window. The Control Manager, however, has support for + * automatically tracking and receiving drags over controls. The + * Control Manager will detect the control the drag is over and call + * HandleControlDragTracking and HandleControlDragReceive + * appropriately. By default, this automatic support is turned off. + * You can turn on this support by calling + * SetAutomaticControlDragTrackingEnabledForWindow with true. Note + * that earlier versions of system software incorrectly enable this + * support by default; do not rely on this buggy behavior. As of Mac + * OS 10.1.3, Mac OS 9.2, and CarbonLib 1.4, the buggy behavior is + * fixed, and you must call this routine with true to enable + * automatic drag tracking. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window for which you'd like to enable or disable the + * Control Manager's automatic drag tracking support. + * + * inTracks: + * A Boolean value indicating whether you want to enable the + * Control Manager's automatic drag tracking support. + * + * Result: + * A result code indicating success or failure. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function SetAutomaticControlDragTrackingEnabledForWindow( inWindow: WindowRef; inTracks: Boolean ): OSStatus; external name '_SetAutomaticControlDragTrackingEnabledForWindow'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * IsAutomaticControlDragTrackingEnabledForWindow() + * + * Summary: + * Tells you whether the Control Manager's automatic drag tracking + * is enabled for a given window. + * + * Discussion: + * Call IsAutomaticControlDragTrackingEnabledForWindow to query the + * enabled state of the Control Manager's automatic drag tracking + * support for a given window. See the information on + * SetAutomaticControlDragTrackingEnabledForWindow for more details. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The window whose Control Manager automatic drag tracking enable + * state you'd like to query. + * + * outTracks: + * On output, this will contain a Boolean value whether the + * Control Manager's automatic drag tracking is enabled. + * + * Result: + * A result code indicating success or failure. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in ControlsLib 9.0 and later + } +function IsAutomaticControlDragTrackingEnabledForWindow( inWindow: WindowRef; var outTracks: Boolean ): OSStatus; external name '_IsAutomaticControlDragTrackingEnabledForWindow'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ C Glue } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ + * dragcontrol() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + +{ + * newcontrol() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + +{ + * findcontrol() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + +{ + * getcontroltitle() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + +{ + * setcontroltitle() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + +{ + * trackcontrol() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + +{ + * testcontrol() + * + * Availability: + * Mac OS X: not available + * CarbonLib: not available + * Non-Carbon CFM: in InterfaceLib 7.1 and later + } + + + +(* +#if OLDROUTINENAMES +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +{ ₯ OLDROUTINENAMES } +{ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ} +const + useWFont = kControlUsesOwningWindowsFontVariant; + +const + inThumb = kControlIndicatorPart; + kNoHiliteControlPart = kControlNoPart; + kInIndicatorControlPart = kControlIndicatorPart; + kReservedControlPart = kControlDisabledPart; + kControlInactiveControlPart = kControlInactivePart; + + +#define SetCTitle(theControl, title) SetControlTitle(theControl, title) +#define GetCTitle(theControl, title) GetControlTitle(theControl, title) +#define UpdtControl(theWindow, updateRgn) UpdateControls(theWindow, updateRgn) +#define SetCtlValue(theControl, theValue) SetControlValue(theControl, theValue) +#define GetCtlValue(theControl) GetControlValue(theControl) +#define SetCtlMin(theControl, minValue) SetControlMinimum(theControl, minValue) +#define GetCtlMin(theControl) GetControlMinimum(theControl) +#define SetCtlMax(theControl, maxValue) SetControlMaximum(theControl, maxValue) +#define GetCtlMax(theControl) GetControlMaximum(theControl) +#define GetAuxCtl(theControl, acHndl) GetAuxiliaryControlRecord(theControl, acHndl) +#define SetCRefCon(theControl, data) SetControlReference(theControl, data) +#define GetCRefCon(theControl) GetControlReference(theControl) +#define SetCtlAction(theControl, actionProc) SetControlAction(theControl, actionProc) +#define GetCtlAction(theControl) GetControlAction(theControl) +#define SetCtlColor(theControl, newColorTable) SetControlColor(theControl, newColorTable) +#define GetCVariant(theControl) GetControlVariant(theControl) +#define getctitle(theControl, title) getcontroltitle(theControl, title) +#define setctitle(theControl, title) setcontroltitle(theControl, title) +#endif { OLDROUTINENAMES } +*) + +{ Getters } +{ + * GetControlBounds() + * + * Discussion: + * Returns the bounds of a control, assumed to be in port + * coordinates. + * + * HIView Notes: When called in a composited window, this routine + * returns the view's frame, i.e. it is equivalent to calling + * HIViewGetFrame. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * control: + * The control to query + * + * bounds: + * A pointer to a Quickdraw rectangle to be filled in by this call. + * + * Result: + * A pointer to the rectangle passed in bounds. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +function GetControlBounds( control: ControlRef; var bounds: Rect ): RectPtr; external name '_GetControlBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * IsControlHilited() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +function IsControlHilited( control: ControlRef ): Boolean; external name '_IsControlHilited'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlHilite() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +function GetControlHilite( control: ControlRef ): UInt16; external name '_GetControlHilite'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlOwner() + * + * Discussion: + * Returns the window a control is bound to, or NULL if the control + * is not currently attached to any window. + * + * HIView replacement: HIViewGetWindow (Mac OS X 10.3 or later). + * Either call will work in a composited or non-composited view. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * control: + * The control to query + * + * Result: + * A window reference, or NULL if the control is not attached to a + * window + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +function GetControlOwner( control: ControlRef ): WindowRef; external name '_GetControlOwner'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlDataHandle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +function GetControlDataHandle( control: ControlRef ): Handle; external name '_GetControlDataHandle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * GetControlPopupMenuHandle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +function GetControlPopupMenuHandle( control: ControlRef ): MenuRef; external name '_GetControlPopupMenuHandle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +function GetControlPopupMenuRef( control: ControlRef ): MenuRef; external name '_GetControlPopupMenuHandle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) +{ + * GetControlPopupMenuID() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +function GetControlPopupMenuID( control: ControlRef ): SInt16; external name '_GetControlPopupMenuID'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ Setters } +{ + * SetControlDataHandle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +procedure SetControlDataHandle( control: ControlRef; dataHandle: Handle ); external name '_SetControlDataHandle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlBounds() + * + * Discussion: + * Sets the bounds of a control, assumed to be in port coordinates. + * + * + * HIView Notes: When called in a composited window, this routine + * sets the view's frame, i.e. it is equivalent to calling + * HIViewSetFrame. The view will be invalidated as necessary in a + * composited window. HIViewSetFrame is the recommended call in that + * environment. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * control: + * The control to query + * + * bounds: + * A pointer to a Quickdraw rectangle to be used by this call. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +procedure SetControlBounds( control: ControlRef; const (*var*) bounds: Rect ); external name '_SetControlBounds'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{ + * SetControlPopupMenuHandle() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +procedure SetControlPopupMenuHandle( control: ControlRef; popupMenu: MenuRef ); external name '_SetControlPopupMenuHandle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +procedure SetControlPopupMenuRef( control: ControlRef; popupMenu: MenuRef ); external name '_SetControlPopupMenuHandle'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) +{ + * SetControlPopupMenuID() + * + * Mac OS X threading: + * Not thread safe + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in CarbonAccessors.o 1.0 and later + } +procedure SetControlPopupMenuID( control: ControlRef; menuID: SInt16 ); external name '_SetControlPopupMenuID'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *) + + +{--------------------------------------------------------------------------------------} +{ ₯ DEPRECATED } +{ All functions below this point are either deprecated (they continue to function } +{ but are not the most modern nor most efficient solution to a problem), or they are } +{ completely unavailable on Mac OS X. } +{--------------------------------------------------------------------------------------} + +{ + * IdleControls() *** DEPRECATED *** + * + * Deprecated: + * Applications should remove calls to IdleControls. Custom control + * definitions should use Carbon event loop timers instead. + * + * Summary: + * Gives idle time to any controls that want the kControlMsgIdle + * message. + * + * Discussion: + * IdleControls gives idle processing time for controls that set the + * kControlWantsIdle feature bit. IdleControls is deprecated on Mac + * OS X. System-supplied controls do not respond to IdleControls + * being called on Mac OS X. + * + * Custom controls should use repeating Carbon event loop timers to + * perform tasks, such as animation, that previously used time given + * with IdleControls(). See InstallEventLoopTimer() in + * CarbonEventsCore.h for more information. + * + * Mac OS X threading: + * Not thread safe + * + * Parameters: + * + * inWindow: + * The WindowRef whose controls are offered idle time. + * + * Availability: + * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.4 + * CarbonLib: in CarbonLib 1.0 and later + * Non-Carbon CFM: in AppearanceLib 1.0 and later + } +procedure IdleControls( inWindow: WindowRef ); external name '_IdleControls'; +(* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 *) + + + + +end. |