Repository URL to install this package:
Version:
3.0.0 ▾
|
{
File: HIToolbox/HIComboBox.h
Contains: Definition of the combo box view provided by HIToolbox.
Version: HIToolbox-624~3
Copyright: © 2006-2008 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
}
{ Translation Updated: Jonas Maebe, <jonas@freepascal.org>, October 2009 }
{ Pascal Translation Updated: Jonas Maebe, <jonas@freepascal.org>, October 2012 }
{
Modified for use with Free Pascal
Version 308
Please report any bugs to <gpc@microbizz.nl>
}
{$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
{$mode macpas}
{$packenum 1}
{$macro on}
{$inline on}
{$calling mwpascal}
unit HIComboBox;
interface
{$setc UNIVERSAL_INTERFACES_VERSION := $0400}
{$setc GAP_INTERFACES_VERSION := $0308}
{$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 CPUPOWERPC32}
{$setc __ppc__ := 1}
{$elsec}
{$setc __ppc__ := 0}
{$endc}
{$ifc not defined __ppc64__ and defined CPUPOWERPC64}
{$setc __ppc64__ := 1}
{$elsec}
{$setc __ppc64__ := 0}
{$endc}
{$ifc not defined __i386__ and defined CPUI386}
{$setc __i386__ := 1}
{$elsec}
{$setc __i386__ := 0}
{$endc}
{$ifc not defined __x86_64__ and defined CPUX86_64}
{$setc __x86_64__ := 1}
{$elsec}
{$setc __x86_64__ := 0}
{$endc}
{$ifc not defined __arm__ and defined CPUARM}
{$setc __arm__ := 1}
{$elsec}
{$setc __arm__ := 0}
{$endc}
{$ifc defined cpu64}
{$setc __LP64__ := 1}
{$elsec}
{$setc __LP64__ := 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_PPC64 := FALSE}
{$setc TARGET_CPU_X86 := FALSE}
{$setc TARGET_CPU_X86_64 := FALSE}
{$setc TARGET_CPU_ARM := FALSE}
{$setc TARGET_OS_MAC := TRUE}
{$setc TARGET_OS_IPHONE := FALSE}
{$setc TARGET_IPHONE_SIMULATOR := FALSE}
{$setc TARGET_OS_EMBEDDED := FALSE}
{$elifc defined __ppc64__ and __ppc64__}
{$setc TARGET_CPU_PPC := FALSE}
{$setc TARGET_CPU_PPC64 := TRUE}
{$setc TARGET_CPU_X86 := FALSE}
{$setc TARGET_CPU_X86_64 := FALSE}
{$setc TARGET_CPU_ARM := FALSE}
{$setc TARGET_OS_MAC := TRUE}
{$setc TARGET_OS_IPHONE := FALSE}
{$setc TARGET_IPHONE_SIMULATOR := FALSE}
{$setc TARGET_OS_EMBEDDED := FALSE}
{$elifc defined __i386__ and __i386__}
{$setc TARGET_CPU_PPC := FALSE}
{$setc TARGET_CPU_PPC64 := FALSE}
{$setc TARGET_CPU_X86 := TRUE}
{$setc TARGET_CPU_X86_64 := FALSE}
{$setc TARGET_CPU_ARM := FALSE}
{$ifc defined(iphonesim)}
{$setc TARGET_OS_MAC := FALSE}
{$setc TARGET_OS_IPHONE := TRUE}
{$setc TARGET_IPHONE_SIMULATOR := TRUE}
{$elsec}
{$setc TARGET_OS_MAC := TRUE}
{$setc TARGET_OS_IPHONE := FALSE}
{$setc TARGET_IPHONE_SIMULATOR := FALSE}
{$endc}
{$setc TARGET_OS_EMBEDDED := FALSE}
{$elifc defined __x86_64__ and __x86_64__}
{$setc TARGET_CPU_PPC := FALSE}
{$setc TARGET_CPU_PPC64 := FALSE}
{$setc TARGET_CPU_X86 := FALSE}
{$setc TARGET_CPU_X86_64 := TRUE}
{$setc TARGET_CPU_ARM := FALSE}
{$setc TARGET_OS_MAC := TRUE}
{$setc TARGET_OS_IPHONE := FALSE}
{$setc TARGET_IPHONE_SIMULATOR := FALSE}
{$setc TARGET_OS_EMBEDDED := FALSE}
{$elifc defined __arm__ and __arm__}
{$setc TARGET_CPU_PPC := FALSE}
{$setc TARGET_CPU_PPC64 := FALSE}
{$setc TARGET_CPU_X86 := FALSE}
{$setc TARGET_CPU_X86_64 := FALSE}
{$setc TARGET_CPU_ARM := TRUE}
{ will require compiler define when/if other Apple devices with ARM cpus ship }
{$setc TARGET_OS_MAC := FALSE}
{$setc TARGET_OS_IPHONE := TRUE}
{$setc TARGET_IPHONE_SIMULATOR := FALSE}
{$setc TARGET_OS_EMBEDDED := TRUE}
{$elsec}
{$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ is defined.}
{$endc}
{$ifc defined __LP64__ and __LP64__ }
{$setc TARGET_CPU_64 := TRUE}
{$elsec}
{$setc TARGET_CPU_64 := FALSE}
{$endc}
{$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_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,Appearance,CarbonEvents,Controls,CFBase,CFArray,HIGeometry,HIObject,HIView;
{$endc} {not MACOSALLINCLUDE}
{$ifc TARGET_OS_MAC}
{$ALIGN POWER}
{
* HIComboBox.h
*
* Discussion:
* API definitions for the combo box view.
}
{==============================================================================}
{ HIComboBox }
{ The combo box is a new view starting in Mac OS 10.2. It can be used in }
{ both the new compositing mode, as well as the traditional Control Manager }
{ mode. Like all new HIFoo views, this view is created invisible. You must }
{ show the view after creation if you want to, like, see it and stuff. }
{==============================================================================}
{ The HIObject class ID for the HIComboBox class. }
{$ifc USE_CFSTR_CONSTANT_MACROS}
{$definec kHIComboBoxClassID CFSTRP('com.apple.HIComboBox')}
{$endc}
{
kEventClassHIComboBox quick reference:
kEventComboBoxListItemSelected = 1
}
const
kEventClassHIComboBox = FourCharCode('hicb');
const
kEventParamComboBoxListSelectedItemIndex = FourCharCode('cbli');
{
* kEventClassHIComboBox / kEventComboBoxListItemSelected
*
* Summary:
* Notification that an item in the ComboBox disclosure list has
* been selected.
*
* Discussion:
* This event is sent as a notification when an item in the ComboBox
* disclosure list has been selected. This event is sent to all
* handlers installed on the view. This does not imply that the
* selection has been accepted; for that you will need to register
* for the kEventClassTextField/kEventTextAccepted event; you can
* register for that event in order to make live selections however.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* --> kEventParamDirectObject (in, typeControlRef)
* The ComboBox view that has sent the notification.
*
* --> kEventParamComboBoxListSelectedItemIndex (in, typeCFIndex)
* The index of the combo box list item that has been selected.
*
* Availability:
* Mac OS X: in version 10.4 and later in Carbon.framework
* CarbonLib: not available
}
const
kEventComboBoxListItemSelected = 1;
{
* Summary:
* ComboBox attributes
}
const
{
* A constant with value zero; the lack of any attributes.
}
kHIComboBoxNoAttributes = 0;
{
* The view will attempt to auto complete the text the user is typing
* with an item in the ComboBox list that is the closest appropriate
* match.
}
kHIComboBoxAutoCompletionAttribute = 1 shl 0;
{
* The view will disclose the ComboBox list after the user enters
* text.
}
kHIComboBoxAutoDisclosureAttribute = 1 shl 1;
{
* The items in the ComboBox list will be automatically sorted in
* alphabetical order.
}
kHIComboBoxAutoSortAttribute = 1 shl 2;
{
* The ComboBox list will be automatically sized to fit the Human
* Interface Guidelines.
}
kHIComboBoxAutoSizeListAttribute = 1 shl 3;
{
* The minimum set of ComboBox attributes commonly used.
}
kHIComboBoxStandardAttributes = kHIComboBoxAutoCompletionAttribute or kHIComboBoxAutoDisclosureAttribute or kHIComboBoxAutoSizeListAttribute;
{ ControlKind}
const
kControlKindHIComboBox = FourCharCode('cbbx');
{ ComboBox Part codes}
const
kHIComboBoxEditTextPart = 5;
kHIComboBoxDisclosurePart = 28;
{
The ComboBox view supports these tags previously defined for the EditUnicodeText view.
These tags are available through Get/SetControlData with a ControlPartCode of kHIComboBoxEditTextPart:
kControlFontStyleTag
kControlEditTextFixedTextTag
kControlEditTextTextTag
kControlEditTextKeyFilterTag
kControlEditTextValidationProcTag
kControlEditUnicodeTextPostUpdateProcTag
kControlEditTextSelectionTag
kControlEditTextKeyScriptBehaviorTag
kControlEditTextCharCount
kControlEditTextCFStringTag
}
{
* Discussion:
* ComboBox ControlData tags available with Mac OS X 10.2 and later.
}
const
{
* Extract the contents of the ComboBox list as a CFArray. The
* CFArray will be retained: if you get the array, you own it and
* will be required to release it; if you set it the toolbox makes a
* copy of it and you are free to release your reference.
}
kHIComboBoxListTag = FourCharCode('cbls'); { CFArrayRef; bumps the refCount on get/retains on set}
{
* The width of the ComboBox list. This can be customized. This
* disables the autosize attribute.
}
kHIComboBoxListPixelWidthTag = FourCharCode('cblw'); { UInt32 }
{
* The height of the ComboBox list. This can be customized. This
* disables the autosize attribute.
}
kHIComboBoxListPixelHeightTag = FourCharCode('cblh'); { UInt32}
{
* The number of visible items in the list. This can be customized.
* This disables the autosize attribute.
}
kHIComboBoxNumVisibleItemsTag = FourCharCode('cbni'); { UInt32}
{$ifc not TARGET_CPU_64}
{
* HIComboBoxCreate()
*
* Summary:
* Creates a combo box view. The new view is initially invisible.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* boundsRect:
* The bounding box of the view.
*
* text:
* The default text in the editable portion of the view. Can be
* NULL.
*
* style:
* The font style of the both editable text and the text in the
* disclosure list. Can be NULL.
*
* list:
* The default values available in the disclosure list. Can be
* NULL.
*
* inAttributes:
* The default attributes of the combo box.
*
* outComboBox:
* On exit, contains the new view.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxCreate( const (*var*) boundsRect: HIRect; text: CFStringRef { can be NULL }; {const} style: ControlFontStyleRecPtr { can be NULL }; list: CFArrayRef { can be NULL }; inAttributes: OptionBits; var outComboBox: HIViewRef ): OSStatus; external name '_HIComboBoxCreate';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxGetItemCount()
*
* Summary:
* Get the number of items in the combo box disclosure list.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box.
*
* Result:
* The number of items in the combo box disclosure list.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxGetItemCount( inComboBox: HIViewRef ): ItemCount; external name '_HIComboBoxGetItemCount';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxInsertTextItemAtIndex()
*
* Summary:
* Inserts a CFString in the disclosure list
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box whose disclosure list the text will be inserted
* in.
*
* inIndex:
* The index that the text should be inserted in. If the index
* does not fall within the number of items in the combo box list,
* it will be appended to the end of the list.
*
* inText:
* The text item to be inserted in the combo box disclosure list.
*
* Result:
* An operating system status code.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxInsertTextItemAtIndex( inComboBox: HIViewRef; inIndex: CFIndex; inText: CFStringRef ): OSStatus; external name '_HIComboBoxInsertTextItemAtIndex';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxAppendTextItem()
*
* Summary:
* Appends a text item to the combo box disclosure list.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box whose disclosure list the text will be appended
* to.
*
* inText:
* The text item to be appended to the combo box disclosure list.
*
* outIndex:
* On exit, the index of the new item. Can be NULL if the caller
* does not require this information.
*
* Result:
* An operating system status code.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxAppendTextItem( inComboBox: HIViewRef; inText: CFStringRef; outIndex: CFIndexPtr { can be NULL } ): OSStatus; external name '_HIComboBoxAppendTextItem';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxCopyTextItemAtIndex()
*
* Summary:
* Copy the text from the combo box disclosure list
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box that contains the text item you would like to
* copy.
*
* inIndex:
* The index of the text item. Will return paramErr if the index
* is out of bounds of the combo box list.
*
* outString:
* A copy of the string at the given index. Remember this is now
* your copy that you will need to release.
*
* Result:
* An operating system status code.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxCopyTextItemAtIndex( inComboBox: HIViewRef; inIndex: CFIndex; var outString: CFStringRef ): OSStatus; external name '_HIComboBoxCopyTextItemAtIndex';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxRemoveItemAtIndex()
*
* Summary:
* Remove an item from a combo box disclosure list.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box that contains the disclosure list that you would
* like to remove an item from.
*
* inIndex:
* The index of the item to remove.
*
* Result:
* An operating system status code.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxRemoveItemAtIndex( inComboBox: HIViewRef; inIndex: CFIndex ): OSStatus; external name '_HIComboBoxRemoveItemAtIndex';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxChangeAttributes()
*
* Summary:
* Change the attributes of a combo box
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box whose attributes you would like to change.
*
* inAttributesToSet:
* The attributes to set.
*
* inAttributesToClear:
* The attributes to clear.
*
* Result:
* An operating system status code.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxChangeAttributes( inComboBox: HIViewRef; inAttributesToSet: OptionBits; inAttributesToClear: OptionBits ): OSStatus; external name '_HIComboBoxChangeAttributes';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxGetAttributes()
*
* Summary:
* Get the attributes of a combo box.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box whose attributes you would like to obtain.
*
* outAttributes:
* The attributes of the combo box.
*
* Result:
* An operating system status code.
*
* Availability:
* Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
* Non-Carbon CFM: not available
}
function HIComboBoxGetAttributes( inComboBox: HIViewRef; var outAttributes: OptionBits ): OSStatus; external name '_HIComboBoxGetAttributes';
(* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
{
* HIComboBoxIsListVisible()
*
* Summary:
* Returns whether the combo box list is currently disclosed.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box whose list visibility you would like to obtain.
*
* Result:
* A boolean value indicating whether the combo box list is
* disclosed (true) or hidden (false).
*
* Availability:
* Mac OS X: in version 10.4 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
* Non-Carbon CFM: not available
}
function HIComboBoxIsListVisible( inComboBox: HIViewRef ): Boolean; external name '_HIComboBoxIsListVisible';
(* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
{
* HIComboBoxSetListVisible()
*
* Summary:
* Hides or shows the combo box list.
*
* Mac OS X threading:
* Not thread safe
*
* Parameters:
*
* inComboBox:
* The combo box whose list will be hidden or shown.
*
* inVisible:
* A boolean value indicating whether you wish to hide the list
* (false) or show the list (true).
*
* Result:
* An operating system result code.
*
* Availability:
* Mac OS X: in version 10.4 and later in Carbon.framework [32-bit only]
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.4 and later
* Non-Carbon CFM: not available
}
function HIComboBoxSetListVisible( inComboBox: HIViewRef; inVisible: Boolean ): OSStatus; external name '_HIComboBoxSetListVisible';
(* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
{$endc} {not TARGET_CPU_64}
{$endc} {TARGET_OS_MAC}
{$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
end.
{$endc} {not MACOSALLINCLUDE}