/* File: ControlDefinitions.h Contains: Definitions of controls provided by the Control Manager Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1999-2001 by Apple Computer, Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __CONTROLDEFINITIONS__ #define __CONTROLDEFINITIONS__ #ifndef __MACTYPES__ #include #endif #ifndef __CFSTRING__ #include #endif #ifndef __APPEARANCE__ #include #endif #ifndef __CARBONEVENTS__ #include #endif #ifndef __CONTROLS__ #include #endif #ifndef __LISTS__ #include #endif #ifndef __MACHELP__ #include #endif #ifndef __MENUS__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif /* * ControlDefinitions.h * * Discussion: * System software supplies a variety of controls for your * applications to use. They are described herein. */ /*------------------------------------------------------------------------------------------------------*/ /* o Resource Types */ /*------------------------------------------------------------------------------------------------------*/ enum { kControlTabListResType = FOUR_CHAR_CODE('tab#'), /* used for tab control (Appearance 1.0 and later)*/ kControlListDescResType = FOUR_CHAR_CODE('ldes') /* used for list box control (Appearance 1.0 and later)*/ }; /*--------------------------------------------------------------------------------------*/ /* o Check Box Values */ /*--------------------------------------------------------------------------------------*/ enum { kControlCheckBoxUncheckedValue = 0, kControlCheckBoxCheckedValue = 1, kControlCheckBoxMixedValue = 2 }; /*--------------------------------------------------------------------------------------*/ /* o Radio Button Values */ /*--------------------------------------------------------------------------------------*/ enum { kControlRadioButtonUncheckedValue = 0, kControlRadioButtonCheckedValue = 1, kControlRadioButtonMixedValue = 2 }; /*--------------------------------------------------------------------------------------*/ /* o Pop-Up Menu Control Constants */ /*--------------------------------------------------------------------------------------*/ /* Variant codes for the System 7 pop-up menu*/ enum { popupFixedWidth = 1 << 0, popupVariableWidth = 1 << 1, popupUseAddResMenu = 1 << 2, popupUseWFont = 1 << 3 }; /* Menu label styles for the System 7 pop-up menu*/ enum { popupTitleBold = 1 << 8, popupTitleItalic = 1 << 9, popupTitleUnderline = 1 << 10, popupTitleOutline = 1 << 11, popupTitleShadow = 1 << 12, popupTitleCondense = 1 << 13, popupTitleExtend = 1 << 14, popupTitleNoStyle = 1 << 15 }; /* Menu label justifications for the System 7 pop-up menu*/ enum { popupTitleLeftJust = 0x00000000, popupTitleCenterJust = 0x00000001, popupTitleRightJust = 0x000000FF }; /*------------------------------------------------------------------------------------------------------*/ /* o PopUp Menu Private Data Structure */ /*------------------------------------------------------------------------------------------------------*/ #if !OPAQUE_TOOLBOX_STRUCTS struct PopupPrivateData { MenuRef mHandle; SInt16 mID; }; typedef struct PopupPrivateData PopupPrivateData; typedef PopupPrivateData * PopupPrivateDataPtr; typedef PopupPrivateDataPtr * PopupPrivateDataHandle; #endif /* !OPAQUE_TOOLBOX_STRUCTS */ /*------------------------------------------------------------------------------------------------------*/ /* o Control Definition ID's */ /*------------------------------------------------------------------------------------------------------*/ /* Standard System 7 procIDs*/ enum { pushButProc = 0, checkBoxProc = 1, radioButProc = 2, scrollBarProc = 16, popupMenuProc = 1008 }; /*--------------------------------------------------------------------------------------*/ /* o Control Part Codes */ /*--------------------------------------------------------------------------------------*/ enum { kControlLabelPart = 1, kControlMenuPart = 2, kControlTrianglePart = 4, kControlEditTextPart = 5, /* Appearance 1.0 and later*/ kControlPicturePart = 6, /* Appearance 1.0 and later*/ kControlIconPart = 7, /* Appearance 1.0 and later*/ kControlClockPart = 8, /* Appearance 1.0 and later*/ kControlListBoxPart = 24, /* Appearance 1.0 and later*/ kControlListBoxDoubleClickPart = 25, /* Appearance 1.0 and later*/ kControlImageWellPart = 26, /* Appearance 1.0 and later*/ kControlRadioGroupPart = 27, /* Appearance 1.0.2 and later*/ kControlButtonPart = 10, kControlCheckBoxPart = 11, kControlRadioButtonPart = 11, kControlUpButtonPart = 20, kControlDownButtonPart = 21, kControlPageUpPart = 22, kControlPageDownPart = 23, kControlClockHourDayPart = 9, /* Appearance 1.1 and later*/ kControlClockMinuteMonthPart = 10, /* Appearance 1.1 and later*/ kControlClockSecondYearPart = 11, /* Appearance 1.1 and later*/ kControlClockAMPMPart = 12, /* Appearance 1.1 and later*/ kControlDataBrowserPart = 24, /* CarbonLib 1.0 and later*/ kControlDataBrowserDraggedPart = 25 /* CarbonLib 1.0 and later*/ }; /*------------------------------------------------------------------------------------------------------*/ /* o Control Types and ID's available only with Appearance 1.0 and later */ /*------------------------------------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------------------*/ /* o BEVEL BUTTON INTERFACE (CDEF 2) */ /*--------------------------------------------------------------------------------------*/ /* Bevel buttons allow you to control the content type (pict/icon/etc.), the behavior */ /* (pushbutton/toggle/sticky), and the bevel size. You also have the option of */ /* attaching a menu to it. When a menu is present, you can specify which way the */ /* popup arrow is facing (down or right). */ /* */ /* This is all made possible by overloading the Min, Max, and Value parameters for the */ /* control, as well as adjusting the variant. Here's the breakdown of what goes where: */ /* */ /* Parameter What Goes Here */ /* ------------------- ---------------------------------------------------- */ /* Min Hi Byte = Behavior, Lo Byte = content type. */ /* Max ResID for resource-based content types. */ /* Value MenuID to attach, 0 = no menu, please. */ /* */ /* The variant is broken down into two halfs. The low 2 bits control the bevel type. */ /* Bit 2 controls the popup arrow direction (if a menu is present) and bit 3 controls */ /* whether or not to use the control's owning window's font. */ /* */ /* Constants for all you need to put this together are below. The values for behaviors */ /* are set up so that you can simply add them to the content type and pass them into */ /* the Min parameter of NewControl. */ /* */ /* An example call: */ /* */ /* control = NewControl( window, &bounds, "\p", true, 0, kControlContentIconSuiteRes + */ /* kBehaviorToggles, myIconSuiteID, bevelButtonSmallBevelProc, */ /* 0L ); */ /* */ /* Attaching a menu: */ /* */ /* control = NewControl( window, &bounds, "\p", true, kMyMenuID, */ /* kControlContentIconSuiteRes, myIconSuiteID, bevelButtonSmallBevelProc + */ /* kBevelButtonMenuOnRight, 0L ); */ /* */ /* This will attach menu ID kMyMenuID to the button, with the popup arrow facing right.*/ /* This also puts the menu up to the right of the button. You can also specify that a */ /* menu can have multiple items checked at once by adding kBehaviorMultiValueMenus */ /* into the Min parameter. If you do use multivalue menus, the GetBevelButtonMenuValue */ /* helper function will return the last item chosen from the menu, whether or not it */ /* was checked. */ /* */ /* NOTE: Bevel buttons with menus actually have *two* values. The value of the */ /* button (on/off), and the value of the menu. The menu value can be gotten */ /* with the GetBevelButtonMenuValue helper function. */ /* */ /* Handle-based Content */ /* -------------------- */ /* You can create your control and then set the content to an existing handle to an */ /* icon suite, etc. using the macros below. Please keep in mind that resource-based */ /* content is owned by the control, handle-based content is owned by you. The CDEF will*/ /* not try to dispose of handle-based content. If you are changing the content type of */ /* the button on the fly, you must make sure that if you are replacing a handle- */ /* based content with a resource-based content to properly dispose of the handle, */ /* else a memory leak will ensue. */ /* */ /* Bevel Button Proc IDs */ enum { kControlBevelButtonSmallBevelProc = 32, kControlBevelButtonNormalBevelProc = 33, kControlBevelButtonLargeBevelProc = 34 }; /* Add these variant codes to kBevelButtonSmallBevelProc to change the type of button */ enum { kControlBevelButtonSmallBevelVariant = 0, kControlBevelButtonNormalBevelVariant = (1 << 0), kControlBevelButtonLargeBevelVariant = (1 << 1), kControlBevelButtonMenuOnRightVariant = (1 << 2) }; /* Bevel Thicknesses */ typedef UInt16 ControlBevelThickness; enum { kControlBevelButtonSmallBevel = 0, kControlBevelButtonNormalBevel = 1, kControlBevelButtonLargeBevel = 2 }; /* Behaviors of bevel buttons. These are set up so you can add */ /* them together with the content types. */ enum { kControlBehaviorPushbutton = 0, kControlBehaviorToggles = 0x0100, kControlBehaviorSticky = 0x0200, kControlBehaviorSingleValueMenu = 0, kControlBehaviorMultiValueMenu = 0x4000, /* only makes sense when a menu is attached.*/ kControlBehaviorOffsetContents = 0x8000 }; /* Behaviors for 1.0.1 or later */ enum { kControlBehaviorCommandMenu = 0x2000 /* menu holds commands, not choices. Overrides multi-value bit.*/ }; typedef UInt16 ControlBevelButtonBehavior; typedef UInt16 ControlBevelButtonMenuBehavior; /* Bevel Button Menu Placements */ typedef UInt16 ControlBevelButtonMenuPlacement; enum { kControlBevelButtonMenuOnBottom = 0, kControlBevelButtonMenuOnRight = (1 << 2) }; /* Control Kind Tag */ enum { kControlKindBevelButton = FOUR_CHAR_CODE('bevl') }; /* Creation API: Carbon Only */ /* * CreateBevelButtonControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateBevelButtonControl( WindowRef window, const Rect * boundsRect, CFStringRef title, ControlBevelThickness thickness, ControlBevelButtonBehavior behavior, ControlButtonContentInfoPtr info, SInt16 menuID, ControlBevelButtonMenuBehavior menuBehavior, ControlBevelButtonMenuPlacement menuPlacement, ControlRef * outControl); /* Graphic Alignments */ typedef SInt16 ControlButtonGraphicAlignment; enum { kControlBevelButtonAlignSysDirection = -1, /* only left or right*/ kControlBevelButtonAlignCenter = 0, kControlBevelButtonAlignLeft = 1, kControlBevelButtonAlignRight = 2, kControlBevelButtonAlignTop = 3, kControlBevelButtonAlignBottom = 4, kControlBevelButtonAlignTopLeft = 5, kControlBevelButtonAlignBottomLeft = 6, kControlBevelButtonAlignTopRight = 7, kControlBevelButtonAlignBottomRight = 8 }; /* Text Alignments */ typedef SInt16 ControlButtonTextAlignment; enum { kControlBevelButtonAlignTextSysDirection = teFlushDefault, kControlBevelButtonAlignTextCenter = teCenter, kControlBevelButtonAlignTextFlushRight = teFlushRight, kControlBevelButtonAlignTextFlushLeft = teFlushLeft }; /* Text Placements */ typedef SInt16 ControlButtonTextPlacement; enum { kControlBevelButtonPlaceSysDirection = -1, /* if graphic on right, then on left*/ kControlBevelButtonPlaceNormally = 0, kControlBevelButtonPlaceToRightOfGraphic = 1, kControlBevelButtonPlaceToLeftOfGraphic = 2, kControlBevelButtonPlaceBelowGraphic = 3, kControlBevelButtonPlaceAboveGraphic = 4 }; /* Data tags supported by the bevel button controls */ enum { kControlBevelButtonContentTag = FOUR_CHAR_CODE('cont'), /* ButtonContentInfo*/ kControlBevelButtonTransformTag = FOUR_CHAR_CODE('tran'), /* IconTransformType*/ kControlBevelButtonTextAlignTag = FOUR_CHAR_CODE('tali'), /* ButtonTextAlignment*/ kControlBevelButtonTextOffsetTag = FOUR_CHAR_CODE('toff'), /* SInt16*/ kControlBevelButtonGraphicAlignTag = FOUR_CHAR_CODE('gali'), /* ButtonGraphicAlignment*/ kControlBevelButtonGraphicOffsetTag = FOUR_CHAR_CODE('goff'), /* Point*/ kControlBevelButtonTextPlaceTag = FOUR_CHAR_CODE('tplc'), /* ButtonTextPlacement*/ kControlBevelButtonMenuValueTag = FOUR_CHAR_CODE('mval'), /* SInt16*/ kControlBevelButtonMenuHandleTag = FOUR_CHAR_CODE('mhnd'), /* MenuRef*/ kControlBevelButtonMenuRefTag = FOUR_CHAR_CODE('mhnd'), /* MenuRef*/ kControlBevelButtonCenterPopupGlyphTag = FOUR_CHAR_CODE('pglc') /* Boolean: true = center, false = bottom right*/ }; /* These are tags in 1.0.1 or later */ enum { kControlBevelButtonLastMenuTag = FOUR_CHAR_CODE('lmnu'), /* SInt16: menuID of last menu item selected from*/ kControlBevelButtonMenuDelayTag = FOUR_CHAR_CODE('mdly') /* SInt32: ticks to delay before menu appears*/ }; /* tags available with Appearance 1.1 or later */ enum { /* Boolean: True = if an icon of the ideal size for*/ /* the button isn't available, scale a larger or*/ /* smaller icon to the ideal size. False = don't*/ /* scale; draw a smaller icon or clip a larger icon.*/ /* Default is false. Only applies to IconSuites and*/ kControlBevelButtonScaleIconTag = FOUR_CHAR_CODE('scal') /* IconRefs.*/ }; /* tags available in Mac OS X and later */ enum { kControlBevelButtonOwnedMenuRefTag = FOUR_CHAR_CODE('omrf'), /* MenuRef (control will dispose)*/ kControlBevelButtonKindTag = FOUR_CHAR_CODE('bebk') /* ThemeButtonKind ( kTheme[Small,Medium,Large,Rounded]BevelButton )*/ }; /* Helper routines are available only thru the shared library/glue. */ /* * GetBevelButtonMenuValue() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetBevelButtonMenuValue( ControlRef inButton, SInt16 * outValue); /* * SetBevelButtonMenuValue() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetBevelButtonMenuValue( ControlRef inButton, SInt16 inValue); /* * GetBevelButtonMenuHandle() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetBevelButtonMenuHandle( ControlRef inButton, MenuHandle * outHandle); #define GetBevelButtonMenuRef GetBevelButtonMenuHandle /* * GetBevelButtonContentInfo() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetBevelButtonContentInfo( ControlRef inButton, ControlButtonContentInfoPtr outContent); /* * SetBevelButtonContentInfo() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetBevelButtonContentInfo( ControlRef inButton, ControlButtonContentInfoPtr inContent); /* * SetBevelButtonTransform() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetBevelButtonTransform( ControlRef inButton, IconTransformType transform); /* * SetBevelButtonGraphicAlignment() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetBevelButtonGraphicAlignment( ControlRef inButton, ControlButtonGraphicAlignment inAlign, SInt16 inHOffset, SInt16 inVOffset); /* * SetBevelButtonTextAlignment() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetBevelButtonTextAlignment( ControlRef inButton, ControlButtonTextAlignment inAlign, SInt16 inHOffset); /* * SetBevelButtonTextPlacement() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetBevelButtonTextPlacement( ControlRef inButton, ControlButtonTextPlacement inWhere); /*--------------------------------------------------------------------------------------*/ /* o SLIDER (CDEF 3) */ /*--------------------------------------------------------------------------------------*/ /* There are several variants that control the behavior of the slider control. Any */ /* combination of the following three constants can be added to the basic CDEF ID */ /* (kSliderProc). */ /* */ /* Variants: */ /* */ /* kSliderLiveFeedback Slider does not use "ghosted" indicator when tracking. */ /* ActionProc is called (set via SetControlAction) as the */ /* indicator is dragged. The value is updated so that the */ /* actionproc can adjust some other property based on the */ /* value each time the action proc is called. If no action */ /* proc is installed, it reverts to the ghost indicator. */ /* */ /* kSliderHasTickMarks Slider is drawn with 'tick marks'. The control */ /* rectangle must be large enough to accomidate the tick */ /* marks. */ /* */ /* kSliderReverseDirection Slider thumb points in opposite direction than normal. */ /* If the slider is vertical, the thumb will point to the */ /* left, if the slider is horizontal, the thumb will point */ /* upwards. */ /* */ /* kSliderNonDirectional This option overrides the kSliderReverseDirection and */ /* kSliderHasTickMarks variants. It creates an indicator */ /* which is rectangular and doesn't point in any direction */ /* like the normal indicator does. */ /* Slider proc ID and variants */ enum { kControlSliderProc = 48, kControlSliderLiveFeedback = (1 << 0), kControlSliderHasTickMarks = (1 << 1), kControlSliderReverseDirection = (1 << 2), kControlSliderNonDirectional = (1 << 3) }; /* Slider Orientation */ typedef UInt16 ControlSliderOrientation; enum { kControlSliderPointsDownOrRight = 0, kControlSliderPointsUpOrLeft = 1, kControlSliderDoesNotPoint = 2 }; /* Control Kind Tag */ enum { kControlKindSlider = FOUR_CHAR_CODE('sldr') }; /* Creation API: Carbon Only */ /* * CreateSliderControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateSliderControl( WindowRef window, const Rect * boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, ControlSliderOrientation orientation, UInt16 numTickMarks, Boolean liveTracking, ControlActionUPP liveTrackingProc, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o DISCLOSURE TRIANGLE (CDEF 4) */ /*--------------------------------------------------------------------------------------*/ /* This control can be used as either left or right facing. It can also handle its own */ /* tracking if you wish. This means that when the 'autotoggle' variant is used, if the */ /* user clicks the control, it's state will change automatically from open to closed */ /* and vice-versa depending on its initial state. After a successful call to Track- */ /* Control, you can just check the current value to see what state it was switched to. */ /* Triangle proc IDs */ enum { kControlTriangleProc = 64, kControlTriangleLeftFacingProc = 65, kControlTriangleAutoToggleProc = 66, kControlTriangleLeftFacingAutoToggleProc = 67 }; typedef UInt16 ControlDisclosureTriangleOrientation; enum { kControlDisclosureTrianglePointDefault = 0, /* points right on a left-to-right script system (Mac OS X and later or CarbonLib 1.5 and later only)*/ kControlDisclosureTrianglePointRight = 1, kControlDisclosureTrianglePointLeft = 2 }; /* Control Kind Tag */ enum { kControlKindDisclosureTriangle = FOUR_CHAR_CODE('dist') }; /* * CreateDisclosureTriangleControl() * * Summary: * Creates a Disclosure Triangle control at a specific position in * the specified window. * * Discussion: * Disclosure Triangles are small controls that give the user a way * to toggle the visibility of information or other user interface. * When information is in a hidden state, a Disclosure Triangle is * considered "closed" and should point to the right (or sometimes * to the left). When the user clicks on it, the Disclosure Triangle * rotates downwards into the "open" state. The application should * repond by revealing the appropriate information or interface. On * Mac OS X, a root control will be created for the window if one * does not already exist. If a root control exists for the window, * the Disclosure Triangle control will be embedded into it. * * Parameters: * * inWindow: * The WindowRef into which the Disclosure Triangle will be * created. * * inBoundsRect: * The desired position (in coordinates local to the window's * port) for the Disclosure Triangle. * * inOrientation: * The direction the Disclosure Triangle should point when it is * "closed". Passing kControlDisclosureTrianglePointDefault is * only legal as of Mac OS X and CarbonLib 1.5. * * inTitle: * The title for the Disclosure Triangle. The title will only be * displayed if the inDrawTitle parameter is true. Title display * only works on Mac OS X. * * inInitialValue: * The starting value determines whether the Disclosure Triangle * is initially in its "open" or "closed" state. The value 0 * represents the "closed" state and 1 represents the "open" state. * * inDrawTitle: * A Boolean indicating whether the Disclosure Triangle should * draw its title next to the widget. Title display only works on * Mac OS X. * * inAutoToggles: * A Boolean indicating whether the Disclosure Triangle should * change its own value (from "open" to "closed" and vice-versa) * automatically when it is clicked on. * * outControl: * On successful output, outControl will contain a reference to * the Disclosure Triangle control. * * Result: * An OSStatus code indicating success or failure. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateDisclosureTriangleControl( WindowRef inWindow, const Rect * inBoundsRect, ControlDisclosureTriangleOrientation inOrientation, CFStringRef inTitle, SInt32 inInitialValue, Boolean inDrawTitle, Boolean inAutoToggles, ControlRef * outControl); /* Tagged data supported by disclosure triangles */ enum { kControlTriangleLastValueTag = FOUR_CHAR_CODE('last') /* SInt16*/ }; /* Helper routines are available only thru the shared library/glue. */ /* * SetDisclosureTriangleLastValue() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetDisclosureTriangleLastValue( ControlRef inTabControl, SInt16 inValue); /*--------------------------------------------------------------------------------------*/ /* o PROGRESS INDICATOR (CDEF 5) */ /*--------------------------------------------------------------------------------------*/ /* This CDEF implements both determinate and indeterminate progress bars. To switch, */ /* just use SetControlData to set the indeterminate flag to make it indeterminate call */ /* IdleControls to step thru the animation. IdleControls should be called at least */ /* once during your event loop. */ /* */ /* We also use this same CDEF for Relevance bars. At this time this control does not */ /* idle. */ /* Progress Bar proc IDs */ enum { kControlProgressBarProc = 80, kControlRelevanceBarProc = 81 }; /* Control Kind Tag */ enum { kControlKindProgressBar = FOUR_CHAR_CODE('prgb'), kControlKindRelevanceBar = FOUR_CHAR_CODE('relb') }; /* Creation API: Carbon only */ /* * CreateProgressBarControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateProgressBarControl( WindowRef window, const Rect * boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, Boolean indeterminate, ControlRef * outControl); /* * CreateRelevanceBarControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateRelevanceBarControl( WindowRef window, const Rect * boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, ControlRef * outControl); /* Tagged data supported by progress bars */ enum { kControlProgressBarIndeterminateTag = FOUR_CHAR_CODE('inde'), /* Boolean*/ kControlProgressBarAnimatingTag = FOUR_CHAR_CODE('anim') /* Boolean*/ }; /*--------------------------------------------------------------------------------------*/ /* o LITTLE ARROWS (CDEF 6) */ /*--------------------------------------------------------------------------------------*/ /* This control implements the little up and down arrows you'd see in the Memory */ /* control panel for adjusting the cache size. */ /* Little Arrows proc IDs */ enum { kControlLittleArrowsProc = 96 }; /* Control Kind Tag */ enum { kControlKindLittleArrows = FOUR_CHAR_CODE('larr') }; /* Creation API: Carbon only */ /* * CreateLittleArrowsControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateLittleArrowsControl( WindowRef window, const Rect * boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, SInt32 increment, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o CHASING ARROWS (CDEF 7) */ /*--------------------------------------------------------------------------------------*/ /* To animate this control, make sure to call IdleControls repeatedly. */ /* */ /* Chasing Arrows proc IDs */ enum { kControlChasingArrowsProc = 112 }; /* Control Kind Tag */ enum { kControlKindChasingArrows = FOUR_CHAR_CODE('carr') }; /* Creation API: Carbon only */ /* * CreateChasingArrowsControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateChasingArrowsControl( WindowRef window, const Rect * boundsRect, ControlRef * outControl); /* Tagged data supported by the Chasing Arrows control */ enum { kControlChasingArrowsAnimatingTag = FOUR_CHAR_CODE('anim') /* Boolean*/ }; /*--------------------------------------------------------------------------------------*/ /* o TABS (CDEF 8) */ /*--------------------------------------------------------------------------------------*/ /* Tabs use an auxiliary resource (tab#) to hold tab information such as the tab name */ /* and an icon suite ID for each tab. */ /* */ /* The ID of the tab# resource that you wish to associate with a tab control should */ /* be passed in as the Value parameter of the control. If you are using GetNewControl, */ /* then the Value slot in the CNTL resource should have the ID of the 'tab#' resource */ /* on creation. */ /* */ /* Passing zero in for the tab# resource tells the control not to read in a tab# res. */ /* You can then use SetControlMaximum to add tabs, followed by a call to SetControlData*/ /* with the kControlTabInfoTag, passing in a pointer to a ControlTabInfoRec. This sets */ /* the name and optionally an icon for a tab. */ /* Tabs proc IDs */ enum { kControlTabLargeProc = 128, /* Large tab size, north facing */ kControlTabSmallProc = 129, /* Small tab size, north facing */ kControlTabLargeNorthProc = 128, /* Large tab size, north facing */ kControlTabSmallNorthProc = 129, /* Small tab size, north facing */ kControlTabLargeSouthProc = 130, /* Large tab size, south facing */ kControlTabSmallSouthProc = 131, /* Small tab size, south facing */ kControlTabLargeEastProc = 132, /* Large tab size, east facing */ kControlTabSmallEastProc = 133, /* Small tab size, east facing */ kControlTabLargeWestProc = 134, /* Large tab size, west facing */ kControlTabSmallWestProc = 135 /* Small tab size, west facing */ }; /* Tab Directions */ typedef UInt16 ControlTabDirection; enum { kControlTabDirectionNorth = 0, kControlTabDirectionSouth = 1, kControlTabDirectionEast = 2, kControlTabDirectionWest = 3 }; /* Tab Sizes */ typedef UInt16 ControlTabSize; enum { kControlTabSizeLarge = kControlSizeNormal, kControlTabSizeSmall = kControlSizeSmall }; /* Control Tab Entry - used during creation */ /* Note that the client is responsible for allocating/providing */ /* the ControlButtonContentInfo and string storage for this */ /* structure. */ struct ControlTabEntry { ControlButtonContentInfo * icon; CFStringRef name; Boolean enabled; }; typedef struct ControlTabEntry ControlTabEntry; /* Control Kind Tag */ enum { kControlKindTabs = FOUR_CHAR_CODE('tabs') }; /* Creation API: Carbon only */ /* * CreateTabsControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateTabsControl( WindowRef window, const Rect * boundsRect, ControlTabSize size, ControlTabDirection direction, UInt16 numTabs, const ControlTabEntry * tabArray, ControlRef * outControl); /* Tagged data supported by tabs */ enum { kControlTabContentRectTag = FOUR_CHAR_CODE('rect'), /* Rect*/ kControlTabEnabledFlagTag = FOUR_CHAR_CODE('enab'), /* Boolean*/ kControlTabFontStyleTag = kControlFontStyleTag /* ControlFontStyleRec*/ }; /* New tags in 1.0.1 or later */ enum { kControlTabInfoTag = FOUR_CHAR_CODE('tabi') /* ControlTabInfoRec*/ }; /* New tags in X 10.1 or later */ enum { kControlTabImageContentTag = FOUR_CHAR_CODE('cont') /* ControlButtonContentInfo*/ }; enum { kControlTabInfoVersionZero = 0, /* ControlTabInfoRec*/ kControlTabInfoVersionOne = 1 /* ControlTabInfoRecV1*/ }; struct ControlTabInfoRec { SInt16 version; /* version of this structure.*/ SInt16 iconSuiteID; /* icon suite to use. Zero indicates no icon*/ Str255 name; /* name to be displayed on the tab*/ }; typedef struct ControlTabInfoRec ControlTabInfoRec; struct ControlTabInfoRecV1 { SInt16 version; /* version of this structure. == kControlTabInfoVersionOne*/ SInt16 iconSuiteID; /* icon suite to use. Zero indicates no icon*/ CFStringRef name; /* name to be displayed on the tab. Will be retained so caller*/ /* should always release it.*/ }; typedef struct ControlTabInfoRecV1 ControlTabInfoRecV1; /* Helper routines are available only thru the shared library/glue. */ /* * GetTabContentRect() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetTabContentRect( ControlRef inTabControl, Rect * outContentRect); /* * SetTabEnabled() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetTabEnabled( ControlRef inTabControl, SInt16 inTabToHilite, Boolean inEnabled); /*--------------------------------------------------------------------------------------*/ /* o VISUAL SEPARATOR (CDEF 9) */ /*--------------------------------------------------------------------------------------*/ /* Separator lines determine their orientation (horizontal or vertical) automatically */ /* based on the relative height and width of their contrlRect. */ /* Visual separator proc IDs */ enum { kControlSeparatorLineProc = 144 }; /* Control Kind Tag */ enum { kControlKindSeparator = FOUR_CHAR_CODE('sepa') }; /* Creation API: Carbon only */ /* * CreateSeparatorControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateSeparatorControl( WindowRef window, const Rect * boundsRect, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o GROUP BOX (CDEF 10) */ /*--------------------------------------------------------------------------------------*/ /* The group box CDEF can be use in several ways. It can have no title, a text title, */ /* a check box as the title, or a popup button as a title. There are two versions of */ /* group boxes, primary and secondary, which look slightly different. */ /* Group Box proc IDs */ enum { kControlGroupBoxTextTitleProc = 160, kControlGroupBoxCheckBoxProc = 161, kControlGroupBoxPopupButtonProc = 162, kControlGroupBoxSecondaryTextTitleProc = 164, kControlGroupBoxSecondaryCheckBoxProc = 165, kControlGroupBoxSecondaryPopupButtonProc = 166 }; /* Control Kind Tag */ enum { kControlKindGroupBox = FOUR_CHAR_CODE('grpb'), kControlKindCheckGroupBox = FOUR_CHAR_CODE('cgrp'), kControlKindPopupGroupBox = FOUR_CHAR_CODE('pgrp') }; /* Creation APIs: Carbon only */ /* * CreateGroupBoxControl() * * Summary: * Creates a group box control. * * Parameters: * * window: * The window that should contain the control. * * boundsRect: * The bounding box of the control. * * title: * The title of the control. * * primary: * Whether to create a primary or secondary group box. * * outControl: * On exit, contains the new control. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateGroupBoxControl( WindowRef window, const Rect * boundsRect, CFStringRef title, Boolean primary, ControlRef * outControl); /* * CreateCheckGroupBoxControl() * * Summary: * Creates a group box control that has a check box as its title. * * Parameters: * * window: * The window that should contain the control. * * boundsRect: * The bounding box of the control. * * title: * The title of the control (used as the title of the check box). * * initialValue: * The initial value of the check box. * * primary: * Whether to create a primary or secondary group box. * * autoToggle: * Whether to create an auto-toggling check box. Auto-toggling * check box titles are only supported on Mac OS X; this parameter * must be false when used with CarbonLib. * * outControl: * On exit, contains the new control. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateCheckGroupBoxControl( WindowRef window, const Rect * boundsRect, CFStringRef title, SInt32 initialValue, Boolean primary, Boolean autoToggle, ControlRef * outControl); /* * CreatePopupGroupBoxControl() * * Summary: * Creates a group box control that has a popup button as its title. * * Parameters: * * window: * The window that should contain the control. * * boundsRect: * The bounding box of the control. * * title: * The title of the control (used as the title of the popup * button). * * primary: * Whether to create a primary or secondary group box. * * menuID: * The menu ID of the menu to be displayed by the popup button. * * variableWidth: * Whether the popup button should have a variable-width title. * Fixed-width titles are only supported by Mac OS X; this * parameter must be true when used with CarbonLib. * * titleWidth: * The width in pixels of the popup button title. * * titleJustification: * The justification of the popup button title. Use one of the * TextEdit justification constants here (teFlushDefault, * teCenter, teFlushRight, or teFlushLeft). * * titleStyle: * The QuickDraw text style of the popup button title. * * outControl: * On exit, contains the new control. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreatePopupGroupBoxControl( WindowRef window, const Rect * boundsRect, CFStringRef title, Boolean primary, SInt16 menuID, Boolean variableWidth, SInt16 titleWidth, SInt16 titleJustification, Style titleStyle, ControlRef * outControl); /* Tagged data supported by group box */ enum { kControlGroupBoxMenuHandleTag = FOUR_CHAR_CODE('mhan'), /* MenuRef (popup title only)*/ kControlGroupBoxMenuRefTag = FOUR_CHAR_CODE('mhan'), /* MenuRef (popup title only)*/ kControlGroupBoxFontStyleTag = kControlFontStyleTag /* ControlFontStyleRec*/ }; /* tags available with Appearance 1.1 or later */ enum { kControlGroupBoxTitleRectTag = FOUR_CHAR_CODE('trec') /* Rect. Rectangle that the title text/control is drawn in. (get only)*/ }; /*--------------------------------------------------------------------------------------*/ /* o IMAGE WELL (CDEF 11) */ /*--------------------------------------------------------------------------------------*/ /* Image Wells allow you to control the content type (pict/icon/etc.) shown in the */ /* well. */ /* */ /* This is made possible by overloading the Min and Value parameters for the control. */ /* */ /* Parameter What Goes Here */ /* ------------------- -------------------------------------------------- */ /* Min content type (see constants for bevel buttons) */ /* Value Resource ID of content type, if resource-based. */ /* */ /* */ /* Handle-based Content */ /* -------------------- */ /* You can create your control and then set the content to an existing handle to an */ /* icon suite, etc. using the macros below. Please keep in mind that resource-based */ /* content is owned by the control, handle-based content is owned by you. The CDEF will*/ /* not try to dispose of handle-based content. If you are changing the content type of */ /* the button on the fly, you must make sure that if you are replacing a handle- */ /* based content with a resource-based content to properly dispose of the handle, */ /* else a memory leak will ensue. */ /* */ /* Image Well proc IDs */ enum { kControlImageWellProc = 176 }; /* Control Kind Tag */ enum { kControlKindImageWell = FOUR_CHAR_CODE('well') }; /* Creation API: Carbon only */ /* * CreateImageWellControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateImageWellControl( WindowRef window, const Rect * boundsRect, const ControlButtonContentInfo * info, ControlRef * outControl); /* Tagged data supported by image wells */ enum { kControlImageWellContentTag = FOUR_CHAR_CODE('cont'), /* ButtonContentInfo*/ kControlImageWellTransformTag = FOUR_CHAR_CODE('tran'), /* IconTransformType*/ kControlImageWellIsDragDestinationTag = FOUR_CHAR_CODE('drag') /* Boolean*/ }; /* Helper routines are available only thru the shared library/glue. */ /* * GetImageWellContentInfo() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetImageWellContentInfo( ControlRef inButton, ControlButtonContentInfoPtr outContent); /* * SetImageWellContentInfo() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetImageWellContentInfo( ControlRef inButton, ControlButtonContentInfoPtr inContent); /* * SetImageWellTransform() * * Availability: * Non-Carbon CFM: in AppearanceLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetImageWellTransform( ControlRef inButton, IconTransformType inTransform); /*--------------------------------------------------------------------------------------*/ /* o POPUP ARROW (CDEF 12) */ /*--------------------------------------------------------------------------------------*/ /* The popup arrow CDEF is used to draw the small arrow normally associated with a */ /* popup control. The arrow can point in four directions, and a small or large version */ /* can be used. This control is provided to allow clients to draw the arrow in a */ /* normalized fashion which will take advantage of themes automatically. */ /* */ /* Popup Arrow proc IDs */ enum { kControlPopupArrowEastProc = 192, kControlPopupArrowWestProc = 193, kControlPopupArrowNorthProc = 194, kControlPopupArrowSouthProc = 195, kControlPopupArrowSmallEastProc = 196, kControlPopupArrowSmallWestProc = 197, kControlPopupArrowSmallNorthProc = 198, kControlPopupArrowSmallSouthProc = 199 }; /* Popup Arrow Orientations */ enum { kControlPopupArrowOrientationEast = 0, kControlPopupArrowOrientationWest = 1, kControlPopupArrowOrientationNorth = 2, kControlPopupArrowOrientationSouth = 3 }; typedef UInt16 ControlPopupArrowOrientation; /* Popup Arrow Size */ enum { kControlPopupArrowSizeNormal = 0, kControlPopupArrowSizeSmall = 1 }; typedef UInt16 ControlPopupArrowSize; /* Control Kind Tag */ enum { kControlKindPopupArrow = FOUR_CHAR_CODE('parr') }; /* Creation API: Carbon only */ /* * CreatePopupArrowControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreatePopupArrowControl( WindowRef window, const Rect * boundsRect, ControlPopupArrowOrientation orientation, ControlPopupArrowSize size, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o PLACARD (CDEF 14) */ /*--------------------------------------------------------------------------------------*/ /* Placard proc IDs */ enum { kControlPlacardProc = 224 }; /* Control Kind Tag */ enum { kControlKindPlacard = FOUR_CHAR_CODE('plac') }; /* Creation API: Carbon only */ /* * CreatePlacardControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreatePlacardControl( WindowRef window, const Rect * boundsRect, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o CLOCK (CDEF 15) */ /*--------------------------------------------------------------------------------------*/ /* NOTE: You can specify more options in the Value paramter when creating the clock. */ /* See below. */ /* */ /* NOTE: Under Appearance 1.1, the clock control knows and returns more part codes. */ /* The new clock-specific part codes are defined with the other control parts. */ /* Besides these clock-specific parts, we also return kControlUpButtonPart */ /* and kControlDownButtonPart when they hit the up and down arrows. */ /* The new part codes give you more flexibility for focusing and hit testing. */ /* */ /* The original kControlClockPart is still valid. When hit testing, it means */ /* that some non-editable area of the clock's whitespace has been clicked. */ /* When focusing a currently unfocused clock, it changes the focus to the */ /* first part; it is the same as passing kControlFocusNextPart. When */ /* re-focusing a focused clock, it will not change the focus at all. */ /* Clock proc IDs */ enum { kControlClockTimeProc = 240, kControlClockTimeSecondsProc = 241, kControlClockDateProc = 242, kControlClockMonthYearProc = 243 }; /* Clock Types */ typedef UInt16 ControlClockType; enum { kControlClockTypeHourMinute = 0, kControlClockTypeHourMinuteSecond = 1, kControlClockTypeMonthDayYear = 2, kControlClockTypeMonthYear = 3 }; /* Clock Flags */ /* These flags can be passed into 'value' field on creation of the control. */ /* Value is set to 0 after control is created. */ typedef UInt32 ControlClockFlags; enum { kControlClockFlagStandard = 0, /* editable, non-live*/ kControlClockNoFlags = 0, kControlClockFlagDisplayOnly = 1, /* add this to become non-editable*/ kControlClockIsDisplayOnly = 1, kControlClockFlagLive = 2, /* automatically shows current time on idle. only valid with display only.*/ kControlClockIsLive = 2 }; /* Control Kind Tag */ enum { kControlKindClock = FOUR_CHAR_CODE('clck') }; /* Creation API: Carbon only */ /* * CreateClockControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateClockControl( WindowRef window, const Rect * boundsRect, ControlClockType clockType, ControlClockFlags clockFlags, ControlRef * outControl); /* Tagged data supported by clocks */ enum { kControlClockLongDateTag = FOUR_CHAR_CODE('date'), /* LongDateRec*/ kControlClockFontStyleTag = kControlFontStyleTag, /* ControlFontStyleRec*/ kControlClockAnimatingTag = FOUR_CHAR_CODE('anim') /* Boolean*/ }; /*--------------------------------------------------------------------------------------*/ /* o USER PANE (CDEF 16) */ /*--------------------------------------------------------------------------------------*/ /* User panes have two primary purposes: to allow easy implementation of a custom */ /* control by the developer, and to provide a generic container for embedding other */ /* controls. */ /* */ /* In Carbon, with the advent of Carbon-event-based controls, you may find it easier */ /* to simply write a new control from scratch than to customize a user pane control. */ /* The set of callbacks provided by the user pane will not be extended to support */ /* new Control Manager features; instead, you should just write a real control. */ /* */ /* User panes do not, by default, support embedding. If you try to embed a control */ /* into a user pane, you will get back errControlIsNotEmbedder. You can make a user */ /* pane support embedding by passing the kControlSupportsEmbedding flag in the 'value' */ /* parameter when you create the control. */ /* */ /* User panes support the following overloaded control initialization options: */ /* */ /* Parameter What Goes Here */ /* ------------------- -------------------------------------------------- */ /* Value Control feature flags */ /* User Pane proc IDs */ enum { kControlUserPaneProc = 256 }; /* Control Kind Tag */ enum { kControlKindUserPane = FOUR_CHAR_CODE('upan') }; /* Creation API: Carbon only */ /* * CreateUserPaneControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateUserPaneControl( WindowRef window, const Rect * boundsRect, UInt32 features, ControlRef * outControl); /* Tagged data supported by user panes */ /* Currently, they are all proc ptrs for doing things like drawing and hit testing, etc. */ enum { kControlUserItemDrawProcTag = FOUR_CHAR_CODE('uidp'), /* UserItemUPP*/ kControlUserPaneDrawProcTag = FOUR_CHAR_CODE('draw'), /* ControlUserPaneDrawingUPP*/ kControlUserPaneHitTestProcTag = FOUR_CHAR_CODE('hitt'), /* ControlUserPaneHitTestUPP*/ kControlUserPaneTrackingProcTag = FOUR_CHAR_CODE('trak'), /* ControlUserPaneTrackingUPP*/ kControlUserPaneIdleProcTag = FOUR_CHAR_CODE('idle'), /* ControlUserPaneIdleUPP*/ kControlUserPaneKeyDownProcTag = FOUR_CHAR_CODE('keyd'), /* ControlUserPaneKeyDownUPP*/ kControlUserPaneActivateProcTag = FOUR_CHAR_CODE('acti'), /* ControlUserPaneActivateUPP*/ kControlUserPaneFocusProcTag = FOUR_CHAR_CODE('foci'), /* ControlUserPaneFocusUPP*/ kControlUserPaneBackgroundProcTag = FOUR_CHAR_CODE('back') /* ControlUserPaneBackgroundUPP*/ }; typedef CALLBACK_API( void , ControlUserPaneDrawProcPtr )(ControlRef control, SInt16 part); typedef CALLBACK_API( ControlPartCode , ControlUserPaneHitTestProcPtr )(ControlRef control, Point where); typedef CALLBACK_API( ControlPartCode , ControlUserPaneTrackingProcPtr )(ControlRef control, Point startPt, ControlActionUPP actionProc); typedef CALLBACK_API( void , ControlUserPaneIdleProcPtr )(ControlRef control); typedef CALLBACK_API( ControlPartCode , ControlUserPaneKeyDownProcPtr )(ControlRef control, SInt16 keyCode, SInt16 charCode, SInt16 modifiers); typedef CALLBACK_API( void , ControlUserPaneActivateProcPtr )(ControlRef control, Boolean activating); typedef CALLBACK_API( ControlPartCode , ControlUserPaneFocusProcPtr )(ControlRef control, ControlFocusPart action); typedef CALLBACK_API( void , ControlUserPaneBackgroundProcPtr )(ControlRef control, ControlBackgroundPtr info); typedef STACK_UPP_TYPE(ControlUserPaneDrawProcPtr) ControlUserPaneDrawUPP; typedef STACK_UPP_TYPE(ControlUserPaneHitTestProcPtr) ControlUserPaneHitTestUPP; typedef STACK_UPP_TYPE(ControlUserPaneTrackingProcPtr) ControlUserPaneTrackingUPP; typedef STACK_UPP_TYPE(ControlUserPaneIdleProcPtr) ControlUserPaneIdleUPP; typedef STACK_UPP_TYPE(ControlUserPaneKeyDownProcPtr) ControlUserPaneKeyDownUPP; typedef STACK_UPP_TYPE(ControlUserPaneActivateProcPtr) ControlUserPaneActivateUPP; typedef STACK_UPP_TYPE(ControlUserPaneFocusProcPtr) ControlUserPaneFocusUPP; typedef STACK_UPP_TYPE(ControlUserPaneBackgroundProcPtr) ControlUserPaneBackgroundUPP; /* * NewControlUserPaneDrawUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneDrawUPP ) NewControlUserPaneDrawUPP(ControlUserPaneDrawProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneDrawProcInfo = 0x000002C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneDrawUPP) NewControlUserPaneDrawUPP(ControlUserPaneDrawProcPtr userRoutine) { return (ControlUserPaneDrawUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneDrawProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneDrawUPP(userRoutine) (ControlUserPaneDrawUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneDrawProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewControlUserPaneHitTestUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneHitTestUPP ) NewControlUserPaneHitTestUPP(ControlUserPaneHitTestProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneHitTestProcInfo = 0x000003E0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneHitTestUPP) NewControlUserPaneHitTestUPP(ControlUserPaneHitTestProcPtr userRoutine) { return (ControlUserPaneHitTestUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneHitTestProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneHitTestUPP(userRoutine) (ControlUserPaneHitTestUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneHitTestProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewControlUserPaneTrackingUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneTrackingUPP ) NewControlUserPaneTrackingUPP(ControlUserPaneTrackingProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneTrackingProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneTrackingUPP) NewControlUserPaneTrackingUPP(ControlUserPaneTrackingProcPtr userRoutine) { return (ControlUserPaneTrackingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneTrackingProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneTrackingUPP(userRoutine) (ControlUserPaneTrackingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneTrackingProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewControlUserPaneIdleUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneIdleUPP ) NewControlUserPaneIdleUPP(ControlUserPaneIdleProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneIdleProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneIdleUPP) NewControlUserPaneIdleUPP(ControlUserPaneIdleProcPtr userRoutine) { return (ControlUserPaneIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneIdleProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneIdleUPP(userRoutine) (ControlUserPaneIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneIdleProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewControlUserPaneKeyDownUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneKeyDownUPP ) NewControlUserPaneKeyDownUPP(ControlUserPaneKeyDownProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneKeyDownProcInfo = 0x00002AE0 }; /* pascal 2_bytes Func(4_bytes, 2_bytes, 2_bytes, 2_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneKeyDownUPP) NewControlUserPaneKeyDownUPP(ControlUserPaneKeyDownProcPtr userRoutine) { return (ControlUserPaneKeyDownUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneKeyDownProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneKeyDownUPP(userRoutine) (ControlUserPaneKeyDownUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneKeyDownProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewControlUserPaneActivateUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneActivateUPP ) NewControlUserPaneActivateUPP(ControlUserPaneActivateProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneActivateProcInfo = 0x000001C0 }; /* pascal no_return_value Func(4_bytes, 1_byte) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneActivateUPP) NewControlUserPaneActivateUPP(ControlUserPaneActivateProcPtr userRoutine) { return (ControlUserPaneActivateUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneActivateProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneActivateUPP(userRoutine) (ControlUserPaneActivateUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneActivateProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewControlUserPaneFocusUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneFocusUPP ) NewControlUserPaneFocusUPP(ControlUserPaneFocusProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneFocusProcInfo = 0x000002E0 }; /* pascal 2_bytes Func(4_bytes, 2_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneFocusUPP) NewControlUserPaneFocusUPP(ControlUserPaneFocusProcPtr userRoutine) { return (ControlUserPaneFocusUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneFocusProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneFocusUPP(userRoutine) (ControlUserPaneFocusUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneFocusProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewControlUserPaneBackgroundUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlUserPaneBackgroundUPP ) NewControlUserPaneBackgroundUPP(ControlUserPaneBackgroundProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlUserPaneBackgroundProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlUserPaneBackgroundUPP) NewControlUserPaneBackgroundUPP(ControlUserPaneBackgroundProcPtr userRoutine) { return (ControlUserPaneBackgroundUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneBackgroundProcInfo, GetCurrentArchitecture()); } #else #define NewControlUserPaneBackgroundUPP(userRoutine) (ControlUserPaneBackgroundUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlUserPaneBackgroundProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeControlUserPaneDrawUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneDrawUPP(ControlUserPaneDrawUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneDrawUPP(ControlUserPaneDrawUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneDrawUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeControlUserPaneHitTestUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneHitTestUPP(ControlUserPaneHitTestUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneHitTestUPP(ControlUserPaneHitTestUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneHitTestUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeControlUserPaneTrackingUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneTrackingUPP(ControlUserPaneTrackingUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneTrackingUPP(ControlUserPaneTrackingUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneTrackingUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeControlUserPaneIdleUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneIdleUPP(ControlUserPaneIdleUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneIdleUPP(ControlUserPaneIdleUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneIdleUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeControlUserPaneKeyDownUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneKeyDownUPP(ControlUserPaneKeyDownUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneKeyDownUPP(ControlUserPaneKeyDownUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneKeyDownUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeControlUserPaneActivateUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneActivateUPP(ControlUserPaneActivateUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneActivateUPP(ControlUserPaneActivateUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneActivateUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeControlUserPaneFocusUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneFocusUPP(ControlUserPaneFocusUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneFocusUPP(ControlUserPaneFocusUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneFocusUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeControlUserPaneBackgroundUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlUserPaneBackgroundUPP(ControlUserPaneBackgroundUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlUserPaneBackgroundUPP(ControlUserPaneBackgroundUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlUserPaneBackgroundUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeControlUserPaneDrawUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeControlUserPaneDrawUPP( ControlRef control, SInt16 part, ControlUserPaneDrawUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeControlUserPaneDrawUPP(ControlRef control, SInt16 part, ControlUserPaneDrawUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppControlUserPaneDrawProcInfo, control, part); } #else #define InvokeControlUserPaneDrawUPP(control, part, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppControlUserPaneDrawProcInfo, (control), (part)) #endif #endif /* * InvokeControlUserPaneHitTestUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlPartCode ) InvokeControlUserPaneHitTestUPP( ControlRef control, Point where, ControlUserPaneHitTestUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(ControlPartCode) InvokeControlUserPaneHitTestUPP(ControlRef control, Point where, ControlUserPaneHitTestUPP userUPP) { return (ControlPartCode)CALL_TWO_PARAMETER_UPP(userUPP, uppControlUserPaneHitTestProcInfo, control, where); } #else #define InvokeControlUserPaneHitTestUPP(control, where, userUPP) (ControlPartCode)CALL_TWO_PARAMETER_UPP((userUPP), uppControlUserPaneHitTestProcInfo, (control), (where)) #endif #endif /* * InvokeControlUserPaneTrackingUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlPartCode ) InvokeControlUserPaneTrackingUPP( ControlRef control, Point startPt, ControlActionUPP actionProc, ControlUserPaneTrackingUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(ControlPartCode) InvokeControlUserPaneTrackingUPP(ControlRef control, Point startPt, ControlActionUPP actionProc, ControlUserPaneTrackingUPP userUPP) { return (ControlPartCode)CALL_THREE_PARAMETER_UPP(userUPP, uppControlUserPaneTrackingProcInfo, control, startPt, actionProc); } #else #define InvokeControlUserPaneTrackingUPP(control, startPt, actionProc, userUPP) (ControlPartCode)CALL_THREE_PARAMETER_UPP((userUPP), uppControlUserPaneTrackingProcInfo, (control), (startPt), (actionProc)) #endif #endif /* * InvokeControlUserPaneIdleUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeControlUserPaneIdleUPP( ControlRef control, ControlUserPaneIdleUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeControlUserPaneIdleUPP(ControlRef control, ControlUserPaneIdleUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppControlUserPaneIdleProcInfo, control); } #else #define InvokeControlUserPaneIdleUPP(control, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppControlUserPaneIdleProcInfo, (control)) #endif #endif /* * InvokeControlUserPaneKeyDownUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlPartCode ) InvokeControlUserPaneKeyDownUPP( ControlRef control, SInt16 keyCode, SInt16 charCode, SInt16 modifiers, ControlUserPaneKeyDownUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(ControlPartCode) InvokeControlUserPaneKeyDownUPP(ControlRef control, SInt16 keyCode, SInt16 charCode, SInt16 modifiers, ControlUserPaneKeyDownUPP userUPP) { return (ControlPartCode)CALL_FOUR_PARAMETER_UPP(userUPP, uppControlUserPaneKeyDownProcInfo, control, keyCode, charCode, modifiers); } #else #define InvokeControlUserPaneKeyDownUPP(control, keyCode, charCode, modifiers, userUPP) (ControlPartCode)CALL_FOUR_PARAMETER_UPP((userUPP), uppControlUserPaneKeyDownProcInfo, (control), (keyCode), (charCode), (modifiers)) #endif #endif /* * InvokeControlUserPaneActivateUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeControlUserPaneActivateUPP( ControlRef control, Boolean activating, ControlUserPaneActivateUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeControlUserPaneActivateUPP(ControlRef control, Boolean activating, ControlUserPaneActivateUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppControlUserPaneActivateProcInfo, control, activating); } #else #define InvokeControlUserPaneActivateUPP(control, activating, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppControlUserPaneActivateProcInfo, (control), (activating)) #endif #endif /* * InvokeControlUserPaneFocusUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlPartCode ) InvokeControlUserPaneFocusUPP( ControlRef control, ControlFocusPart action, ControlUserPaneFocusUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(ControlPartCode) InvokeControlUserPaneFocusUPP(ControlRef control, ControlFocusPart action, ControlUserPaneFocusUPP userUPP) { return (ControlPartCode)CALL_TWO_PARAMETER_UPP(userUPP, uppControlUserPaneFocusProcInfo, control, action); } #else #define InvokeControlUserPaneFocusUPP(control, action, userUPP) (ControlPartCode)CALL_TWO_PARAMETER_UPP((userUPP), uppControlUserPaneFocusProcInfo, (control), (action)) #endif #endif /* * InvokeControlUserPaneBackgroundUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeControlUserPaneBackgroundUPP( ControlRef control, ControlBackgroundPtr info, ControlUserPaneBackgroundUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeControlUserPaneBackgroundUPP(ControlRef control, ControlBackgroundPtr info, ControlUserPaneBackgroundUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppControlUserPaneBackgroundProcInfo, control, info); } #else #define InvokeControlUserPaneBackgroundUPP(control, info, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppControlUserPaneBackgroundProcInfo, (control), (info)) #endif #endif #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewControlUserPaneDrawProc(userRoutine) NewControlUserPaneDrawUPP(userRoutine) #define NewControlUserPaneHitTestProc(userRoutine) NewControlUserPaneHitTestUPP(userRoutine) #define NewControlUserPaneTrackingProc(userRoutine) NewControlUserPaneTrackingUPP(userRoutine) #define NewControlUserPaneIdleProc(userRoutine) NewControlUserPaneIdleUPP(userRoutine) #define NewControlUserPaneKeyDownProc(userRoutine) NewControlUserPaneKeyDownUPP(userRoutine) #define NewControlUserPaneActivateProc(userRoutine) NewControlUserPaneActivateUPP(userRoutine) #define NewControlUserPaneFocusProc(userRoutine) NewControlUserPaneFocusUPP(userRoutine) #define NewControlUserPaneBackgroundProc(userRoutine) NewControlUserPaneBackgroundUPP(userRoutine) #define CallControlUserPaneDrawProc(userRoutine, control, part) InvokeControlUserPaneDrawUPP(control, part, userRoutine) #define CallControlUserPaneHitTestProc(userRoutine, control, where) InvokeControlUserPaneHitTestUPP(control, where, userRoutine) #define CallControlUserPaneTrackingProc(userRoutine, control, startPt, actionProc) InvokeControlUserPaneTrackingUPP(control, startPt, actionProc, userRoutine) #define CallControlUserPaneIdleProc(userRoutine, control) InvokeControlUserPaneIdleUPP(control, userRoutine) #define CallControlUserPaneKeyDownProc(userRoutine, control, keyCode, charCode, modifiers) InvokeControlUserPaneKeyDownUPP(control, keyCode, charCode, modifiers, userRoutine) #define CallControlUserPaneActivateProc(userRoutine, control, activating) InvokeControlUserPaneActivateUPP(control, activating, userRoutine) #define CallControlUserPaneFocusProc(userRoutine, control, action) InvokeControlUserPaneFocusUPP(control, action, userRoutine) #define CallControlUserPaneBackgroundProc(userRoutine, control, info) InvokeControlUserPaneBackgroundUPP(control, info, userRoutine) #endif /* CALL_NOT_IN_CARBON */ /* ------------------------------------------------------------------------------------------ o EDIT TEXT (CDEF 17) ------------------------------------------------------------------------------------------ */ /* Edit Text proc IDs */ enum { kControlEditTextProc = 272, kControlEditTextPasswordProc = 274 }; /* proc IDs available with Appearance 1.1 or later */ enum { kControlEditTextInlineInputProc = 276 /* Can't combine with the other variants*/ }; /* Control Kind Tag */ enum { kControlKindEditText = FOUR_CHAR_CODE('etxt') }; /* Creation API: Carbon only */ /* * CreateEditTextControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateEditTextControl( WindowRef window, const Rect * boundsRect, CFStringRef text, Boolean isPassword, Boolean useInlineInput, const ControlFontStyleRec * style, /* can be NULL */ ControlRef * outControl); /* Tagged data supported by edit text */ enum { kControlEditTextStyleTag = kControlFontStyleTag, /* ControlFontStyleRec*/ kControlEditTextTextTag = FOUR_CHAR_CODE('text'), /* Buffer of chars - you supply the buffer*/ kControlEditTextTEHandleTag = FOUR_CHAR_CODE('than'), /* The TEHandle of the text edit record*/ kControlEditTextKeyFilterTag = kControlKeyFilterTag, kControlEditTextSelectionTag = FOUR_CHAR_CODE('sele'), /* ControlEditTextSelectionRec*/ kControlEditTextPasswordTag = FOUR_CHAR_CODE('pass') /* The clear text password text*/ }; /* tags available with Appearance 1.1 or later */ enum { kControlEditTextKeyScriptBehaviorTag = FOUR_CHAR_CODE('kscr'), /* ControlKeyScriptBehavior. Defaults to "PrefersRoman" for password fields,*/ /* or "AllowAnyScript" for non-password fields.*/ kControlEditTextLockedTag = FOUR_CHAR_CODE('lock'), /* Boolean. Locking disables editability.*/ kControlEditTextFixedTextTag = FOUR_CHAR_CODE('ftxt'), /* Like the normal text tag, but fixes inline input first*/ kControlEditTextValidationProcTag = FOUR_CHAR_CODE('vali'), /* ControlEditTextValidationUPP. Called when a key filter can't be: after cut, paste, etc.*/ kControlEditTextInlinePreUpdateProcTag = FOUR_CHAR_CODE('prup'), /* TSMTEPreUpdateUPP and TSMTEPostUpdateUpp. For use with inline input variant...*/ kControlEditTextInlinePostUpdateProcTag = FOUR_CHAR_CODE('poup') /* ...The refCon parameter will contain the ControlRef.*/ }; /* * Discussion: * EditText ControlData tags available with MacOSX and later. */ enum { /* * Extract the content of the edit text field as a CFString. Don't * forget that you own the returned CFStringRef and are responsible * for CFReleasing it. */ kControlEditTextCFStringTag = FOUR_CHAR_CODE('cfst'), /* CFStringRef (Also available on CarbonLib 1.5)*/ /* * Extract the content of the edit text field as a CFString, if it is * a password field. Don't forget that you own the returned * CFStringRef and are responsible for CFReleasing it. */ kControlEditTextPasswordCFStringTag = FOUR_CHAR_CODE('pwcf') /* CFStringRef*/ }; /* Structure for getting the edit text selection */ struct ControlEditTextSelectionRec { SInt16 selStart; SInt16 selEnd; }; typedef struct ControlEditTextSelectionRec ControlEditTextSelectionRec; typedef ControlEditTextSelectionRec * ControlEditTextSelectionPtr; typedef CALLBACK_API( void , ControlEditTextValidationProcPtr )(ControlRef control); typedef STACK_UPP_TYPE(ControlEditTextValidationProcPtr) ControlEditTextValidationUPP; /* * NewControlEditTextValidationUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ControlEditTextValidationUPP ) NewControlEditTextValidationUPP(ControlEditTextValidationProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppControlEditTextValidationProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ControlEditTextValidationUPP) NewControlEditTextValidationUPP(ControlEditTextValidationProcPtr userRoutine) { return (ControlEditTextValidationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlEditTextValidationProcInfo, GetCurrentArchitecture()); } #else #define NewControlEditTextValidationUPP(userRoutine) (ControlEditTextValidationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlEditTextValidationProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeControlEditTextValidationUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeControlEditTextValidationUPP(ControlEditTextValidationUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeControlEditTextValidationUPP(ControlEditTextValidationUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeControlEditTextValidationUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeControlEditTextValidationUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeControlEditTextValidationUPP( ControlRef control, ControlEditTextValidationUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeControlEditTextValidationUPP(ControlRef control, ControlEditTextValidationUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppControlEditTextValidationProcInfo, control); } #else #define InvokeControlEditTextValidationUPP(control, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppControlEditTextValidationProcInfo, (control)) #endif #endif #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewControlEditTextValidationProc(userRoutine) NewControlEditTextValidationUPP(userRoutine) #define CallControlEditTextValidationProc(userRoutine, control) InvokeControlEditTextValidationUPP(control, userRoutine) #endif /* CALL_NOT_IN_CARBON */ /*--------------------------------------------------------------------------------------*/ /* o STATIC TEXT (CDEF 18) */ /*--------------------------------------------------------------------------------------*/ /* Static Text proc IDs */ enum { kControlStaticTextProc = 288 }; /* Control Kind Tag */ enum { kControlKindStaticText = FOUR_CHAR_CODE('stxt') }; /* Creation API: Carbon only */ /* * CreateStaticTextControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateStaticTextControl( WindowRef window, const Rect * boundsRect, CFStringRef text, const ControlFontStyleRec * style, ControlRef * outControl); /* Tagged data supported by static text */ enum { kControlStaticTextStyleTag = kControlFontStyleTag, /* ControlFontStyleRec*/ kControlStaticTextTextTag = FOUR_CHAR_CODE('text'), /* Copy of text*/ kControlStaticTextTextHeightTag = FOUR_CHAR_CODE('thei') /* SInt16*/ }; /* Tags available with appearance 1.1 or later */ enum { kControlStaticTextTruncTag = FOUR_CHAR_CODE('trun') /* TruncCode (-1 means no truncation)*/ }; /* Tags available with Mac OS X or later */ enum { kControlStaticTextCFStringTag = FOUR_CHAR_CODE('cfst') /* CFStringRef (Also available on CarbonLib 1.5)*/ }; /*--------------------------------------------------------------------------------------*/ /* o PICTURE CONTROL (CDEF 19) */ /*--------------------------------------------------------------------------------------*/ /* Value parameter should contain the ID of the picture you wish to display when */ /* creating controls of this type. If you don't want the control tracked at all, use */ /* the 'no track' variant. */ /* Picture control proc IDs */ enum { kControlPictureProc = 304, kControlPictureNoTrackProc = 305 /* immediately returns kControlPicturePart*/ }; /* Control Kind Tag */ enum { kControlKindPicture = FOUR_CHAR_CODE('pict') }; /* Creation API: Carbon only */ /* * CreatePictureControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreatePictureControl( WindowRef window, const Rect * boundsRect, const ControlButtonContentInfo * content, Boolean dontTrack, ControlRef * outControl); /* Tagged data supported by picture controls */ enum { kControlPictureHandleTag = FOUR_CHAR_CODE('pich') /* PicHandle*/ }; /*--------------------------------------------------------------------------------------*/ /* o ICON CONTROL (CDEF 20) */ /*--------------------------------------------------------------------------------------*/ /* Value parameter should contain the ID of the ICON or cicn you wish to display when */ /* creating controls of this type. If you don't want the control tracked at all, use */ /* the 'no track' variant. */ /* Icon control proc IDs */ enum { kControlIconProc = 320, kControlIconNoTrackProc = 321, /* immediately returns kControlIconPart*/ kControlIconSuiteProc = 322, kControlIconSuiteNoTrackProc = 323 /* immediately returns kControlIconPart*/ }; enum { /* icon ref controls may have either an icon, color icon, icon suite, or icon ref.*/ /* for data other than icon, you must set the data by passing a*/ /* ControlButtonContentInfo to SetControlData*/ kControlIconRefProc = 324, kControlIconRefNoTrackProc = 325 /* immediately returns kControlIconPart*/ }; /* Control Kind Tag */ enum { kControlKindIcon = FOUR_CHAR_CODE('icon') }; /* * CreateIconControl() * * Summary: * Creates an Icon control at a specific position in the specified * window. * * Discussion: * Icon controls display an icon that (optionally) hilites when * clicked on. On Mac OS X, a root control will be created for the * window if one does not already exist. If a root control exists * for the window, the Icon control will be embedded into it. * * Parameters: * * inWindow: * The WindowRef into which the Icon control will be created. * * inBoundsRect: * The desired position (in coordinates local to the window's * port) for the Icon control. * * inIconContent: * The descriptor for the icon you want the control to display. * Mac OS X and CarbonLib 1.5 (and beyond) support all of the icon * content types. Prior to CarbonLib 1.5, the only content types * that are properly respected are kControlContentIconSuiteRes, * kControlContentCIconRes, and kControlContentICONRes. * * inDontTrack: * A Boolean value indicating whether the control should hilite * when it is clicked on. False means hilite and track the mouse. * * outControl: * On successful output, outControl will contain a reference to * the Icon control. * * Result: * An OSStatus code indicating success or failure. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateIconControl( WindowRef inWindow, const Rect * inBoundsRect, const ControlButtonContentInfo * inIconContent, Boolean inDontTrack, ControlRef * outControl); /* Tagged data supported by icon controls */ enum { kControlIconTransformTag = FOUR_CHAR_CODE('trfm'), /* IconTransformType*/ kControlIconAlignmentTag = FOUR_CHAR_CODE('algn') /* IconAlignmentType*/ }; /* Tags available with appearance 1.1 or later */ enum { kControlIconResourceIDTag = FOUR_CHAR_CODE('ires'), /* SInt16 resource ID of icon to use*/ kControlIconContentTag = FOUR_CHAR_CODE('cont') /* accepts a ControlButtonContentInfo*/ }; /*--------------------------------------------------------------------------------------*/ /* o WINDOW HEADER (CDEF 21) */ /*--------------------------------------------------------------------------------------*/ /* Window Header proc IDs */ enum { kControlWindowHeaderProc = 336, /* normal header*/ kControlWindowListViewHeaderProc = 337 /* variant for list views - no bottom line*/ }; /* Control Kind Tag */ enum { kControlKindWindowHeader = FOUR_CHAR_CODE('whed') }; /* Creation API: Carbon Only */ /* * CreateWindowHeaderControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateWindowHeaderControl( WindowRef window, const Rect * boundsRect, Boolean isListHeader, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o LIST BOX (CDEF 22) */ /*--------------------------------------------------------------------------------------*/ /* Lists use an auxiliary resource to define their format. The resource type used is */ /* 'ldes' and a definition for it can be found in Appearance.r. The resource ID for */ /* the ldes is passed in the 'value' parameter when creating the control. You may pass */ /* zero in value. This tells the List Box control to not use a resource. The list will */ /* be created with default values, and will use the standard LDEF (0). You can change */ /* the list by getting the list handle. You can set the LDEF to use by using the tag */ /* below (kControlListBoxLDEFTag) */ /* List Box proc IDs */ enum { kControlListBoxProc = 352, kControlListBoxAutoSizeProc = 353 }; /* Control Kind Tag */ enum { kControlKindListBox = FOUR_CHAR_CODE('lbox') }; /* Creation API: Carbon Only */ /* * CreateListBoxControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateListBoxControl( WindowRef window, const Rect * boundsRect, Boolean autoSize, SInt16 numRows, SInt16 numColumns, Boolean horizScroll, Boolean vertScroll, SInt16 cellHeight, SInt16 cellWidth, Boolean hasGrowSpace, const ListDefSpec * listDef, ControlRef * outControl); /* Tagged data supported by list box */ enum { kControlListBoxListHandleTag = FOUR_CHAR_CODE('lhan'), /* ListHandle*/ kControlListBoxKeyFilterTag = kControlKeyFilterTag, /* ControlKeyFilterUPP*/ kControlListBoxFontStyleTag = kControlFontStyleTag /* ControlFontStyleRec*/ }; /* New tags in 1.0.1 or later */ enum { kControlListBoxDoubleClickTag = FOUR_CHAR_CODE('dblc'), /* Boolean. Was last click a double-click?*/ kControlListBoxLDEFTag = FOUR_CHAR_CODE('ldef') /* SInt16. ID of LDEF to use.*/ }; /*--------------------------------------------------------------------------------------*/ /* o PUSH BUTTON (CDEF 23) */ /*--------------------------------------------------------------------------------------*/ /* The new standard checkbox and radio button controls support a "mixed" value that */ /* indicates that the current setting contains a mixed set of on and off values. The */ /* control value used to display this indication is defined in Controls.h: */ /* */ /* kControlCheckBoxMixedValue = 2 */ /* */ /* Two new variants of the standard pushbutton have been added to the standard control */ /* suite that draw a color icon next to the control title. One variant draws the icon */ /* on the left side, the other draws it on the right side (when the system justifica- */ /* tion is right to left, these are reversed). */ /* */ /* When either of the icon pushbuttons are created, the contrlMax field of the control */ /* record is used to determine the ID of the 'cicn' resource drawn in the pushbutton. */ /* */ /* In addition, a push button can now be told to draw with a default outline using the */ /* SetControlData routine with the kControlPushButtonDefaultTag below. */ /* */ /* A push button may also be marked using the kControlPushButtonCancelTag. This has */ /* no visible representation, but does cause the button to play the CancelButton theme */ /* sound instead of the regular pushbutton theme sound when pressed. */ /* */ /* Theme Push Button/Check Box/Radio Button proc IDs */ enum { kControlPushButtonProc = 368, kControlCheckBoxProc = 369, kControlRadioButtonProc = 370, kControlPushButLeftIconProc = 374, /* Standard pushbutton with left-side icon*/ kControlPushButRightIconProc = 375 /* Standard pushbutton with right-side icon*/ }; /* Variants with Appearance 1.1 or later */ enum { kControlCheckBoxAutoToggleProc = 371, kControlRadioButtonAutoToggleProc = 372 }; /* Push Button Icon Alignments */ typedef UInt16 ControlPushButtonIconAlignment; enum { kControlPushButtonIconOnLeft = 6, kControlPushButtonIconOnRight = 7 }; /* Control Kind Tag */ enum { kControlKindPushButton = FOUR_CHAR_CODE('push'), kControlKindPushIconButton = FOUR_CHAR_CODE('picn'), kControlKindRadioButton = FOUR_CHAR_CODE('rdio'), kControlKindCheckBox = FOUR_CHAR_CODE('cbox') }; /* Creation APIs: Carbon Only */ /* * CreatePushButtonControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreatePushButtonControl( WindowRef window, const Rect * boundsRect, CFStringRef title, ControlRef * outControl); /* * CreatePushButtonWithIconControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreatePushButtonWithIconControl( WindowRef window, const Rect * boundsRect, CFStringRef title, ControlButtonContentInfo * icon, ControlPushButtonIconAlignment iconAlignment, ControlRef * outControl); /* * CreateRadioButtonControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateRadioButtonControl( WindowRef window, const Rect * boundsRect, CFStringRef title, SInt32 initialValue, Boolean autoToggle, ControlRef * outControl); /* * CreateCheckBoxControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateCheckBoxControl( WindowRef window, const Rect * boundsRect, CFStringRef title, SInt32 initialValue, Boolean autoToggle, ControlRef * outControl); /* Tagged data supported by standard buttons */ enum { kControlPushButtonDefaultTag = FOUR_CHAR_CODE('dflt'), /* default ring flag*/ kControlPushButtonCancelTag = FOUR_CHAR_CODE('cncl') /* cancel button flag (1.1 and later)*/ }; /*--------------------------------------------------------------------------------------*/ /* o SCROLL BAR (CDEF 24) */ /*--------------------------------------------------------------------------------------*/ /* This is the new Appearance scroll bar. */ /* */ /* Theme Scroll Bar proc IDs */ enum { kControlScrollBarProc = 384, /* normal scroll bar*/ kControlScrollBarLiveProc = 386 /* live scrolling variant*/ }; /* Control Kind Tag */ enum { kControlKindScrollBar = FOUR_CHAR_CODE('sbar') }; /* Creation API: Carbon Only */ /* * CreateScrollBarControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateScrollBarControl( WindowRef window, const Rect * boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, SInt32 viewSize, Boolean liveTracking, ControlActionUPP liveTrackingProc, ControlRef * outControl); /* These tags are available in Mac OS X or later */ enum { kControlScrollBarShowsArrowsTag = FOUR_CHAR_CODE('arro') /* Boolean whether or not to draw the scroll arrows*/ }; /*--------------------------------------------------------------------------------------*/ /* o POPUP BUTTON (CDEF 25) */ /*--------------------------------------------------------------------------------------*/ /* This is the new Appearance Popup Button. It takes the same variants and does the */ /* same overloading as the previous popup menu control. There are some differences: */ /* */ /* Passing in a menu ID of -12345 causes the popup not to try and get the menu from a */ /* resource. Instead, you can build the menu and later stuff the MenuRef field in */ /* the popup data information. */ /* */ /* You can pass -1 in the Max parameter to have the control calculate the width of the */ /* title on its own instead of guessing and then tweaking to get it right. It adds the */ /* appropriate amount of space between the title and the popup. */ /* */ /* Theme Popup Button proc IDs */ enum { kControlPopupButtonProc = 400, kControlPopupFixedWidthVariant = 1 << 0, kControlPopupVariableWidthVariant = 1 << 1, kControlPopupUseAddResMenuVariant = 1 << 2, kControlPopupUseWFontVariant = kControlUsesOwningWindowsFontVariant }; /* Control Kind Tag */ enum { kControlKindPopupButton = FOUR_CHAR_CODE('popb') }; /* Creation API: Carbon Only */ /* * CreatePopupButtonControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreatePopupButtonControl( WindowRef window, const Rect * boundsRect, CFStringRef title, SInt16 menuID, Boolean variableWidth, SInt16 titleWidth, SInt16 titleJustification, Style titleStyle, ControlRef * outControl); /* These tags are available in 1.0.1 or later of Appearance */ enum { kControlPopupButtonMenuHandleTag = FOUR_CHAR_CODE('mhan'), /* MenuRef*/ kControlPopupButtonMenuRefTag = FOUR_CHAR_CODE('mhan'), /* MenuRef*/ kControlPopupButtonMenuIDTag = FOUR_CHAR_CODE('mnid') /* SInt16*/ }; /* These tags are available in 1.1 or later of Appearance */ enum { kControlPopupButtonExtraHeightTag = FOUR_CHAR_CODE('exht'), /* SInt16 - extra vertical whitespace within the button*/ kControlPopupButtonOwnedMenuRefTag = FOUR_CHAR_CODE('omrf') /* MenuRef*/ }; /* These tags are available in Mac OS X */ enum { kControlPopupButtonCheckCurrentTag = FOUR_CHAR_CODE('chck') /* Boolean - whether the popup puts a checkmark next to the current item (defaults to true)*/ }; /*--------------------------------------------------------------------------------------*/ /* o RADIO GROUP (CDEF 26) */ /*--------------------------------------------------------------------------------------*/ /* This control implements a radio group. It is an embedding control and can therefore */ /* only be used when a control hierarchy is established for its owning window. You */ /* should only embed radio buttons within it. As radio buttons are embedded into it, */ /* the group sets up its value, min, and max to represent the number of embedded items.*/ /* The current value of the control is the index of the sub-control that is the current*/ /* 'on' radio button. To get the current radio button control handle, you can use the */ /* control manager call GetIndSubControl, passing in the value of the radio group. */ /* */ /* NOTE: This control is only available with Appearance 1.0.1. */ /* Radio Group Proc ID */ enum { kControlRadioGroupProc = 416 }; /* Control Kind Tag */ enum { kControlKindRadioGroup = FOUR_CHAR_CODE('rgrp') }; /* Creation API: Carbon Only */ /* * CreateRadioGroupControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateRadioGroupControl( WindowRef window, const Rect * boundsRect, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o SCROLL TEXT BOX (CDEF 27) */ /*--------------------------------------------------------------------------------------*/ /* This control implements a scrolling box of (non-editable) text. This is useful for */ /* credits in about boxes, etc. */ /* The standard version of this control has a scroll bar, but the autoscrolling */ /* variant does not. The autoscrolling variant needs two pieces of information to */ /* work: delay (in ticks) before the scrolling starts, and time (in ticks) between */ /* scrolls. It will scroll one pixel at a time, unless changed via SetControlData. */ /* */ /* Parameter What Goes Here */ /* ------------------- ---------------------------------------------------- */ /* Value Resource ID of 'TEXT'/'styl' content. */ /* Min Scroll start delay (in ticks) . */ /* Max Delay (in ticks) between scrolls. */ /* */ /* NOTE: This control is only available with Appearance 1.1. */ /* Scroll Text Box Proc IDs */ enum { kControlScrollTextBoxProc = 432, kControlScrollTextBoxAutoScrollProc = 433 }; /* Control Kind Tag */ enum { kControlKindScrollingTextBox = FOUR_CHAR_CODE('stbx') }; /* Creation API: Carbon Only */ /* * CreateScrollingTextBoxControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateScrollingTextBoxControl( WindowRef window, const Rect * boundsRect, SInt16 contentResID, Boolean autoScroll, UInt32 delayBeforeAutoScroll, UInt32 delayBetweenAutoScroll, UInt16 autoScrollAmount, ControlRef * outControl); /* Tagged data supported by Scroll Text Box */ enum { kControlScrollTextBoxDelayBeforeAutoScrollTag = FOUR_CHAR_CODE('stdl'), /* UInt32 (ticks until autoscrolling starts)*/ kControlScrollTextBoxDelayBetweenAutoScrollTag = FOUR_CHAR_CODE('scdl'), /* UInt32 (ticks between scrolls)*/ kControlScrollTextBoxAutoScrollAmountTag = FOUR_CHAR_CODE('samt'), /* UInt16 (pixels per scroll) -- defaults to 1*/ kControlScrollTextBoxContentsTag = FOUR_CHAR_CODE('tres'), /* SInt16 (resource ID of 'TEXT'/'styl') -- write only!*/ kControlScrollTextBoxAnimatingTag = FOUR_CHAR_CODE('anim') /* Boolean (whether the text box should auto-scroll)*/ }; /*--------------------------------------------------------------------------------------*/ /* o DISCLOSURE BUTTON */ /*--------------------------------------------------------------------------------------*/ /* * CreateDisclosureButtonControl() * * Summary: * Creates a new instance of the Disclosure Button Control. * * Discussion: * CreateDisclosureButtonControl is preferred over NewControl * because it allows you to specify the exact set of parameters * required to create the control without overloading parameter * semantics. The initial minimum of the Disclosure Button will be * kControlDisclosureButtonClosed, and the maximum will be * kControlDisclosureButtonDisclosed. * * Parameters: * * inWindow: * The WindowRef in which to create the control. * * inBoundsRect: * The bounding rectangle for the control. The height of the * control is fixed and the control will be centered vertically * within the rectangle you specify. * * inValue: * The initial value; either kControlDisclosureButtonClosed or * kControlDisclosureButtonDisclosed. * * inAutoToggles: * A boolean value indicating whether its value should change * automatically after tracking the mouse. * * outControl: * On successful exit, this will contain the new control. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateDisclosureButtonControl( WindowRef inWindow, const Rect * inBoundsRect, SInt32 inValue, Boolean inAutoToggles, ControlRef * outControl); /* Control Kind Tag */ enum { kControlKindDisclosureButton = FOUR_CHAR_CODE('disb') }; /* * Discussion: * Disclosure Button Values */ enum { /* * The control be drawn suggesting a closed state. */ kControlDisclosureButtonClosed = 0, /* * The control will be drawn suggesting an open state. */ kControlDisclosureButtonDisclosed = 1 }; /*--------------------------------------------------------------------------------------*/ /* o ROUND BUTTON */ /*--------------------------------------------------------------------------------------*/ /* * ControlRoundButtonSize * * Discussion: * Button Sizes */ typedef SInt16 ControlRoundButtonSize; enum { /* * A 20 pixel diameter button. */ kControlRoundButtonNormalSize = kControlSizeNormal, /* * A 25 pixel diameter button. */ kControlRoundButtonLargeSize = kControlSizeLarge }; /* Data tags supported by the round button controls */ enum { kControlRoundButtonContentTag = FOUR_CHAR_CODE('cont'), /* ControlButtonContentInfo*/ kControlRoundButtonSizeTag = kControlSizeTag /* ControlRoundButtonSize*/ }; /* Control Kind Tag */ enum { kControlKindRoundButton = FOUR_CHAR_CODE('rndb') }; /* * CreateRoundButtonControl() * * Summary: * Creates a new instance of the Round Button Control. * * Discussion: * CreateRoundButtonControl is preferred over NewControl because it * allows you to specify the exact set of parameters required to * create the control without overloading parameter semantics. * * Parameters: * * inWindow: * The WindowRef in which to create the control. * * inBoundsRect: * The bounding rectangle for the control. The height and width of * the control is fixed (specified by the ControlRoundButtonSize * parameter) and the control will be centered within the * rectangle you specify. * * inSize: * The button size; either kControlRoundButtonNormalSize or * kControlRoundButtonLargeSize. * * inContent: * Any optional content displayed in the button. Currently only * kControlContentIconRef is supported. * * outControl: * On successful exit, this will contain the new control. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateRoundButtonControl( WindowRef inWindow, const Rect * inBoundsRect, ControlRoundButtonSize inSize, ControlButtonContentInfo * inContent, ControlRef * outControl); /*--------------------------------------------------------------------------------------*/ /* o DATA BROWSER */ /* (CDEF 29) */ /*--------------------------------------------------------------------------------------*/ /* This control implements a user interface component for browsing (optionally) */ /* hiearchical data structures. The browser supports multiple presentation styles */ /* including, but not limited to: */ /* */ /* kDataBrowserListView - items and item properties in */ /* multi-column (optionally outline) format */ /* kDataBrowserColumnView - in-place browsing using fixed navigation columns */ /* */ /* The browser manages all view styles through a single high-level interface. */ /* The high-level interface makes the following assumptions: */ /* */ /* - Items have unique 32-bit identifiers (0 is reserved) */ /* */ /* - Items have two kinds of named and typed properties: */ /* - Predefined attribute properties ( < 1024 ) */ /* (including some display properties) */ /* - Client-defined display properties ( >= 1024 ) */ /* */ /* - Some items are containers of other items */ /* - Items may be sorted by any property */ /* */ /* Because a browser doesn't know all details about the type of objects it manages, */ /* some implementation responsibility is best handled by its client. The client must */ /* provide a set of callback routines which define the item hierarchy and help to */ /* populate the browser with items. The client may also provide callbacks for handling */ /* custom data types and doing low-level event management. */ /* */ /* The API is subdivided into a "universal" set of routines that applies to all view */ /* styles, and a set of routines unique to each view style. kDataBrowserListView and */ /* kDataBrowserColumnView share an (internal) TableView abstract base class. The */ /* TableView formatting options and API applies to both of these view styles. */ /* */ /* NOTE: This control is only available with CarbonLib 1.1. */ /* */ /* NOTE: This control must be created with the CreateDataBrowserControl API in */ /* CarbonLib 1.1 through 1.4. In Mac OS X and CarbonLib 1.5 and later, you */ /* may use the control's procID (29) to create the control with NewControl */ /* or with a 'CNTL' resource. */ /* Control Kind Tag */ enum { kControlKindDataBrowser = FOUR_CHAR_CODE('datb') }; /* Error Codes */ enum { errDataBrowserNotConfigured = -4970, errDataBrowserItemNotFound = -4971, errDataBrowserItemNotAdded = -4975, errDataBrowserPropertyNotFound = -4972, errDataBrowserInvalidPropertyPart = -4973, errDataBrowserInvalidPropertyData = -4974, errDataBrowserPropertyNotSupported = -4979 /* Return from DataBrowserGetSetItemDataProc */ }; enum { /* Generic Control Tags */ kControlDataBrowserIncludesFrameAndFocusTag = FOUR_CHAR_CODE('brdr'), /* Boolean */ kControlDataBrowserKeyFilterTag = kControlEditTextKeyFilterTag, kControlDataBrowserEditTextKeyFilterTag = kControlDataBrowserKeyFilterTag, kControlDataBrowserEditTextValidationProcTag = kControlEditTextValidationProcTag }; /* Data Browser View Styles */ typedef OSType DataBrowserViewStyle; enum { kDataBrowserNoView = 0x3F3F3F3F, /* Error State */ kDataBrowserListView = FOUR_CHAR_CODE('lstv'), kDataBrowserColumnView = FOUR_CHAR_CODE('clmv') }; /* Selection Flags */ typedef UInt32 DataBrowserSelectionFlags; enum { kDataBrowserDragSelect = 1 << 0, /* * ListMgr lNoRect */ kDataBrowserSelectOnlyOne = 1 << 1, /* * ListMgr lOnlyOne */ kDataBrowserResetSelection = 1 << 2, /* * ListMgr lNoExtend */ kDataBrowserCmdTogglesSelection = 1 << 3, /* * ListMgr lUseSense */ kDataBrowserNoDisjointSelection = 1 << 4, /* * ListMgr lNoDisjoint */ kDataBrowserAlwaysExtendSelection = 1 << 5, /* * ListMgr lExtendDrag */ kDataBrowserNeverEmptySelectionSet = 1 << 6 /* * ListMgr lNoNilHilite */ }; /* Data Browser Sorting */ typedef UInt16 DataBrowserSortOrder; enum { kDataBrowserOrderUndefined = 0, /* Not currently supported */ kDataBrowserOrderIncreasing = 1, kDataBrowserOrderDecreasing = 2 }; /* Data Browser Item Management */ typedef UInt32 DataBrowserItemID; enum { kDataBrowserNoItem = 0L /* Reserved DataBrowserItemID */ }; typedef UInt32 DataBrowserItemState; enum { kDataBrowserItemNoState = 0, kDataBrowserItemAnyState = (unsigned long)(-1), kDataBrowserItemIsSelected = 1 << 0, kDataBrowserContainerIsOpen = 1 << 1, kDataBrowserItemIsDragTarget = 1 << 2 /* During a drag operation */ }; /* Options for use with RevealDataBrowserItem */ typedef UInt8 DataBrowserRevealOptions; enum { kDataBrowserRevealOnly = 0, kDataBrowserRevealAndCenterInView = 1 << 0, kDataBrowserRevealWithoutSelecting = 1 << 1 }; /* Set operations for use with SetDataBrowserSelectedItems */ typedef UInt32 DataBrowserSetOption; enum { kDataBrowserItemsAdd = 0, /* add specified items to existing set */ kDataBrowserItemsAssign = 1, /* assign destination set to specified items */ kDataBrowserItemsToggle = 2, /* toggle membership state of specified items */ kDataBrowserItemsRemove = 3 /* remove specified items from existing set */ }; /* Commands for use with MoveDataBrowserSelectionAnchor */ typedef UInt32 DataBrowserSelectionAnchorDirection; enum { kDataBrowserSelectionAnchorUp = 0, kDataBrowserSelectionAnchorDown = 1, kDataBrowserSelectionAnchorLeft = 2, kDataBrowserSelectionAnchorRight = 3 }; /* Edit menu command IDs for use with Enable/ExecuteDataBrowserEditCommand */ typedef UInt32 DataBrowserEditCommand; enum { kDataBrowserEditMsgUndo = kHICommandUndo, kDataBrowserEditMsgRedo = kHICommandRedo, kDataBrowserEditMsgCut = kHICommandCut, kDataBrowserEditMsgCopy = kHICommandCopy, kDataBrowserEditMsgPaste = kHICommandPaste, kDataBrowserEditMsgClear = kHICommandClear, kDataBrowserEditMsgSelectAll = kHICommandSelectAll }; /* Notifications used in DataBrowserItemNotificationProcPtr */ typedef UInt32 DataBrowserItemNotification; enum { kDataBrowserItemAdded = 1, /* The specified item has been added to the browser */ kDataBrowserItemRemoved = 2, /* The specified item has been removed from the browser */ kDataBrowserEditStarted = 3, /* Starting an EditText session for specified item */ kDataBrowserEditStopped = 4, /* Stopping an EditText session for specified item */ kDataBrowserItemSelected = 5, /* Item has just been added to the selection set */ kDataBrowserItemDeselected = 6, /* Item has just been removed from the selection set */ kDataBrowserItemDoubleClicked = 7, kDataBrowserContainerOpened = 8, /* Container is open */ kDataBrowserContainerClosing = 9, /* Container is about to close (and will real soon now, y'all) */ kDataBrowserContainerClosed = 10, /* Container is closed (y'all come back now!) */ kDataBrowserContainerSorting = 11, /* Container is about to be sorted (lock any volatile properties) */ kDataBrowserContainerSorted = 12, /* Container has been sorted (you may release any property locks) */ kDataBrowserUserToggledContainer = 16, /* _User_ requested container open/close state to be toggled */ kDataBrowserTargetChanged = 15, /* The target has changed to the specified item */ kDataBrowserUserStateChanged = 13, /* The user has reformatted the view for the target */ kDataBrowserSelectionSetChanged = 14 /* The selection set has been modified (net result may be the same) */ }; /* DataBrowser Property Management */ /* 0-1023 reserved; >= 1024 for client use */ typedef UInt32 DataBrowserPropertyID; enum { /* Predefined attribute properties, optional & non-display unless otherwise stated */ kDataBrowserItemNoProperty = 0L, /* The anti-property (no associated data) */ kDataBrowserItemIsActiveProperty = 1L, /* Boolean typed data (defaults to true) */ kDataBrowserItemIsSelectableProperty = 2L, /* Boolean typed data (defaults to true) */ kDataBrowserItemIsEditableProperty = 3L, /* Boolean typed data (defaults to false, used for editable properties) */ kDataBrowserItemIsContainerProperty = 4L, /* Boolean typed data (defaults to false) */ kDataBrowserContainerIsOpenableProperty = 5L, /* Boolean typed data (defaults to true) */ kDataBrowserContainerIsClosableProperty = 6L, /* Boolean typed data (defaults to true) */ kDataBrowserContainerIsSortableProperty = 7L, /* Boolean typed data (defaults to true) */ kDataBrowserItemSelfIdentityProperty = 8L, /* kDataBrowserIconAndTextType (display property; ColumnView only) */ kDataBrowserContainerAliasIDProperty = 9L, /* DataBrowserItemID (alias/symlink an item to a container item) */ kDataBrowserColumnViewPreviewProperty = 10L, /* kDataBrowserCustomType (display property; ColumnView only) */ kDataBrowserItemParentContainerProperty = 11L /* DataBrowserItemID (the parent of the specified item, used by ColumnView) */ }; /* DataBrowser Property Types (for display properties; i.e. ListView columns) */ /* These are primarily presentation types (or styles) although */ /* they also imply a particular set of primitive types or structures. */ typedef OSType DataBrowserPropertyType; enum { /* == Corresponding data type or structure == */ kDataBrowserCustomType = 0x3F3F3F3F, /* No associated data, custom callbacks used */ kDataBrowserIconType = FOUR_CHAR_CODE('icnr'), /* IconRef, IconTransformType, RGBColor */ kDataBrowserTextType = FOUR_CHAR_CODE('text'), /* CFStringRef */ kDataBrowserDateTimeType = FOUR_CHAR_CODE('date'), /* DateTime or LongDateTime */ kDataBrowserSliderType = FOUR_CHAR_CODE('sldr'), /* Min, Max, Value */ kDataBrowserCheckboxType = FOUR_CHAR_CODE('chbx'), /* ThemeButtonValue */ kDataBrowserProgressBarType = FOUR_CHAR_CODE('prog'), /* Min, Max, Value */ kDataBrowserRelevanceRankType = FOUR_CHAR_CODE('rank'), /* Min, Max, Value */ kDataBrowserPopupMenuType = FOUR_CHAR_CODE('menu'), /* MenuRef, Value */ kDataBrowserIconAndTextType = FOUR_CHAR_CODE('ticn') /* IconRef, CFStringRef, etc */ }; /* DataBrowser Property Parts */ /* Visual components of a property type. */ /* For use with GetDataBrowserItemPartBounds. */ typedef OSType DataBrowserPropertyPart; enum { kDataBrowserPropertyEnclosingPart = 0L, kDataBrowserPropertyContentPart = FOUR_CHAR_CODE('----'), kDataBrowserPropertyDisclosurePart = FOUR_CHAR_CODE('disc'), kDataBrowserPropertyTextPart = kDataBrowserTextType, kDataBrowserPropertyIconPart = kDataBrowserIconType, kDataBrowserPropertySliderPart = kDataBrowserSliderType, kDataBrowserPropertyCheckboxPart = kDataBrowserCheckboxType, kDataBrowserPropertyProgressBarPart = kDataBrowserProgressBarType, kDataBrowserPropertyRelevanceRankPart = kDataBrowserRelevanceRankType }; /* Modify appearance/behavior of display properties */ typedef unsigned long DataBrowserPropertyFlags; /* Low 8 bits apply to all property types */ enum { kDataBrowserUniversalPropertyFlagsMask = 0xFF, kDataBrowserPropertyIsMutable = 1 << 0, kDataBrowserDefaultPropertyFlags = 0 << 0, kDataBrowserUniversalPropertyFlags = kDataBrowserUniversalPropertyFlagsMask, /* support for an old name*/ kDataBrowserPropertyIsEditable = kDataBrowserPropertyIsMutable /* support for an old name*/ }; /* Next 8 bits contain property-specific modifiers */ enum { kDataBrowserPropertyFlagsOffset = 8, kDataBrowserPropertyFlagsMask = 0xFF << kDataBrowserPropertyFlagsOffset, kDataBrowserCheckboxTriState = 1 << kDataBrowserPropertyFlagsOffset, /* kDataBrowserCheckboxType*/ kDataBrowserDateTimeRelative = 1 << (kDataBrowserPropertyFlagsOffset), /* kDataBrowserDateTimeType */ kDataBrowserDateTimeDateOnly = 1 << (kDataBrowserPropertyFlagsOffset + 1), /* kDataBrowserDateTimeType */ kDataBrowserDateTimeTimeOnly = 1 << (kDataBrowserPropertyFlagsOffset + 2), /* kDataBrowserDateTimeType */ kDataBrowserDateTimeSecondsToo = 1 << (kDataBrowserPropertyFlagsOffset + 3), /* kDataBrowserDateTimeType */ kDataBrowserSliderPlainThumb = kThemeThumbPlain << kDataBrowserPropertyFlagsOffset, /* kDataBrowserSliderType */ kDataBrowserSliderUpwardThumb = kThemeThumbUpward << kDataBrowserPropertyFlagsOffset, /* kDataBrowserSliderType */ kDataBrowserSliderDownwardThumb = kThemeThumbDownward << kDataBrowserPropertyFlagsOffset, /* kDataBrowserSliderType */ kDataBrowserDoNotTruncateText = 3 << kDataBrowserPropertyFlagsOffset, /* kDataBrowserTextType && kDataBrowserIconAndTextType */ kDataBrowserTruncateTextAtEnd = 2 << kDataBrowserPropertyFlagsOffset, /* kDataBrowserTextType && kDataBrowserIconAndTextType */ kDataBrowserTruncateTextMiddle = 0 << kDataBrowserPropertyFlagsOffset, /* kDataBrowserTextType && kDataBrowserIconAndTextType */ kDataBrowserTruncateTextAtStart = 1 << kDataBrowserPropertyFlagsOffset, /* kDataBrowserTextType && kDataBrowserIconAndTextType */ kDataBrowserPropertyModificationFlags = kDataBrowserPropertyFlagsMask, /* support for an old name*/ kDataBrowserRelativeDateTime = kDataBrowserDateTimeRelative /* support for an old name*/ }; /* Next 8 bits contain viewStyle-specific modifiers See individual ViewStyle sections below for flag definitions */ enum { kDataBrowserViewSpecificFlagsOffset = 16, kDataBrowserViewSpecificFlagsMask = 0xFF << kDataBrowserViewSpecificFlagsOffset, kDataBrowserViewSpecificPropertyFlags = kDataBrowserViewSpecificFlagsMask /* support for an old name*/ }; /* High 8 bits are reserved for client application use */ enum { kDataBrowserClientPropertyFlagsOffset = 24, kDataBrowserClientPropertyFlagsMask = (unsigned long)(0xFF << kDataBrowserClientPropertyFlagsOffset) }; /* Client defined property description */ struct DataBrowserPropertyDesc { DataBrowserPropertyID propertyID; DataBrowserPropertyType propertyType; DataBrowserPropertyFlags propertyFlags; }; typedef struct DataBrowserPropertyDesc DataBrowserPropertyDesc; /* Callback definition for use with ForEachDataBrowserItem */ typedef CALLBACK_API( void , DataBrowserItemProcPtr )(DataBrowserItemID item, DataBrowserItemState state, void *clientData); typedef STACK_UPP_TYPE(DataBrowserItemProcPtr) DataBrowserItemUPP; /* * NewDataBrowserItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserItemUPP ) NewDataBrowserItemUPP(DataBrowserItemProcPtr userRoutine); /* * DisposeDataBrowserItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemUPP(DataBrowserItemUPP userUPP); /* * InvokeDataBrowserItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeDataBrowserItemUPP( DataBrowserItemID item, DataBrowserItemState state, void * clientData, DataBrowserItemUPP userUPP); /* Creation/Configuration */ /* * CreateDataBrowserControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateDataBrowserControl( WindowRef window, const Rect * boundsRect, DataBrowserViewStyle style, ControlRef * outControl); /* * GetDataBrowserViewStyle() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserViewStyle( ControlRef browser, DataBrowserViewStyle * style); /* * SetDataBrowserViewStyle() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserViewStyle( ControlRef browser, DataBrowserViewStyle style); /* Item Manipulation */ /* Passing NULL for "items" argument to RemoveDataBrowserItems and */ /* UpdateDataBrowserItems refers to all items in the specified container. */ /* Passing NULL for "items" argument to AddDataBrowserItems means */ /* "generate IDs starting from 1." */ /* * AddDataBrowserItems() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) AddDataBrowserItems( ControlRef browser, DataBrowserItemID container, UInt32 numItems, const DataBrowserItemID * items, /* can be NULL */ DataBrowserPropertyID preSortProperty); /* * RemoveDataBrowserItems() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) RemoveDataBrowserItems( ControlRef browser, DataBrowserItemID container, UInt32 numItems, const DataBrowserItemID * items, /* can be NULL */ DataBrowserPropertyID preSortProperty); /* * UpdateDataBrowserItems() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) UpdateDataBrowserItems( ControlRef browser, DataBrowserItemID container, UInt32 numItems, const DataBrowserItemID * items, /* can be NULL */ DataBrowserPropertyID preSortProperty, DataBrowserPropertyID propertyID); /* Edit Menu Enabling and Handling */ /* * EnableDataBrowserEditCommand() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( Boolean ) EnableDataBrowserEditCommand( ControlRef browser, DataBrowserEditCommand command); /* * ExecuteDataBrowserEditCommand() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) ExecuteDataBrowserEditCommand( ControlRef browser, DataBrowserEditCommand command); /* * GetDataBrowserSelectionAnchor() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserSelectionAnchor( ControlRef browser, DataBrowserItemID * first, DataBrowserItemID * last); /* * MoveDataBrowserSelectionAnchor() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) MoveDataBrowserSelectionAnchor( ControlRef browser, DataBrowserSelectionAnchorDirection direction, Boolean extendSelection); /* Container Manipulation */ /* * OpenDataBrowserContainer() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) OpenDataBrowserContainer( ControlRef browser, DataBrowserItemID container); /* * CloseDataBrowserContainer() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CloseDataBrowserContainer( ControlRef browser, DataBrowserItemID container); /* * SortDataBrowserContainer() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SortDataBrowserContainer( ControlRef browser, DataBrowserItemID container, Boolean sortChildren); /* Aggregate Item Access and Iteration */ /* * GetDataBrowserItems() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItems( ControlRef browser, DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, Handle items); /* * GetDataBrowserItemCount() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemCount( ControlRef browser, DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, UInt32 * numItems); /* * ForEachDataBrowserItem() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) ForEachDataBrowserItem( ControlRef browser, DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, DataBrowserItemUPP callback, void * clientData); /* Individual Item Access and Display */ /* * IsDataBrowserItemSelected() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( Boolean ) IsDataBrowserItemSelected( ControlRef browser, DataBrowserItemID item); /* * GetDataBrowserItemState() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemState( ControlRef browser, DataBrowserItemID item, DataBrowserItemState * state); /* * RevealDataBrowserItem() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) RevealDataBrowserItem( ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID propertyID, DataBrowserRevealOptions options); /* Selection Set Manipulation */ /* * SetDataBrowserSelectedItems() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserSelectedItems( ControlRef browser, UInt32 numItems, const DataBrowserItemID * items, DataBrowserSetOption operation); /* DataBrowser Attribute Manipulation */ /* The user customizable portion of the current view style settings */ /* * SetDataBrowserUserState() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserUserState( ControlRef browser, CFDataRef stateInfo); /* * GetDataBrowserUserState() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserUserState( ControlRef browser, CFDataRef * stateInfo); /* All items are active/enabled or not */ /* * SetDataBrowserActiveItems() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserActiveItems( ControlRef browser, Boolean active); /* * GetDataBrowserActiveItems() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserActiveItems( ControlRef browser, Boolean * active); /* Inset the scrollbars within the DataBrowser bounds */ /* * SetDataBrowserScrollBarInset() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserScrollBarInset( ControlRef browser, Rect * insetRect); /* * GetDataBrowserScrollBarInset() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserScrollBarInset( ControlRef browser, Rect * insetRect); /* The "user focused" item */ /* For the ListView, this means the root container */ /* For the ColumnView, this means the rightmost container column */ /* * SetDataBrowserTarget() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTarget( ControlRef browser, DataBrowserItemID target); /* * GetDataBrowserTarget() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTarget( ControlRef browser, DataBrowserItemID * target); /* Current sort ordering */ /* ListView tracks this per-column */ /* * SetDataBrowserSortOrder() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserSortOrder( ControlRef browser, DataBrowserSortOrder order); /* * GetDataBrowserSortOrder() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserSortOrder( ControlRef browser, DataBrowserSortOrder * order); /* Scrollbar values */ /* * SetDataBrowserScrollPosition() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserScrollPosition( ControlRef browser, UInt32 top, UInt32 left); /* * GetDataBrowserScrollPosition() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserScrollPosition( ControlRef browser, UInt32 * top, UInt32 * left); /* Show/Hide each scrollbar */ /* * SetDataBrowserHasScrollBars() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserHasScrollBars( ControlRef browser, Boolean horiz, Boolean vert); /* * GetDataBrowserHasScrollBars() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserHasScrollBars( ControlRef browser, Boolean * horiz, Boolean * vert); /* Property passed to sort callback (ListView sort column) */ /* * SetDataBrowserSortProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserSortProperty( ControlRef browser, DataBrowserPropertyID property); /* * GetDataBrowserSortProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserSortProperty( ControlRef browser, DataBrowserPropertyID * property); /* Modify selection behavior */ /* * SetDataBrowserSelectionFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserSelectionFlags( ControlRef browser, DataBrowserSelectionFlags selectionFlags); /* * GetDataBrowserSelectionFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserSelectionFlags( ControlRef browser, DataBrowserSelectionFlags * selectionFlags); /* Dynamically modify property appearance/behavior */ /* * SetDataBrowserPropertyFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserPropertyFlags( ControlRef browser, DataBrowserPropertyID property, DataBrowserPropertyFlags flags); /* * GetDataBrowserPropertyFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserPropertyFlags( ControlRef browser, DataBrowserPropertyID property, DataBrowserPropertyFlags * flags); /* Text of current in-place edit session */ /* * SetDataBrowserEditText() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserEditText( ControlRef browser, CFStringRef text); /* * CopyDataBrowserEditText() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CopyDataBrowserEditText( ControlRef browser, CFStringRef * text); /* * GetDataBrowserEditText() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserEditText( ControlRef browser, CFMutableStringRef text); /* Item/property currently being edited */ /* * SetDataBrowserEditItem() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserEditItem( ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property); /* * GetDataBrowserEditItem() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserEditItem( ControlRef browser, DataBrowserItemID * item, DataBrowserPropertyID * property); /* Get the current bounds of a visual part of an item's property */ /* * GetDataBrowserItemPartBounds() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemPartBounds( ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserPropertyPart part, Rect * bounds); /* DataBrowser ItemData Accessors (used within DataBrowserItemData callback) */ typedef void * DataBrowserItemDataRef; /* * SetDataBrowserItemDataIcon() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataIcon( DataBrowserItemDataRef itemData, IconRef theData); /* * GetDataBrowserItemDataIcon() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataIcon( DataBrowserItemDataRef itemData, IconRef * theData); /* * SetDataBrowserItemDataText() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataText( DataBrowserItemDataRef itemData, CFStringRef theData); /* * GetDataBrowserItemDataText() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataText( DataBrowserItemDataRef itemData, CFStringRef * theData); /* * SetDataBrowserItemDataValue() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataValue( DataBrowserItemDataRef itemData, SInt32 theData); /* * GetDataBrowserItemDataValue() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataValue( DataBrowserItemDataRef itemData, SInt32 * theData); /* * SetDataBrowserItemDataMinimum() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataMinimum( DataBrowserItemDataRef itemData, SInt32 theData); /* * GetDataBrowserItemDataMinimum() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataMinimum( DataBrowserItemDataRef itemData, SInt32 * theData); /* * SetDataBrowserItemDataMaximum() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataMaximum( DataBrowserItemDataRef itemData, SInt32 theData); /* * GetDataBrowserItemDataMaximum() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataMaximum( DataBrowserItemDataRef itemData, SInt32 * theData); /* * SetDataBrowserItemDataBooleanValue() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataBooleanValue( DataBrowserItemDataRef itemData, Boolean theData); /* * GetDataBrowserItemDataBooleanValue() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataBooleanValue( DataBrowserItemDataRef itemData, Boolean * theData); /* * SetDataBrowserItemDataMenuRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataMenuRef( DataBrowserItemDataRef itemData, MenuRef theData); /* * GetDataBrowserItemDataMenuRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataMenuRef( DataBrowserItemDataRef itemData, MenuRef * theData); /* * SetDataBrowserItemDataRGBColor() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataRGBColor( DataBrowserItemDataRef itemData, const RGBColor * theData); /* * GetDataBrowserItemDataRGBColor() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataRGBColor( DataBrowserItemDataRef itemData, RGBColor * theData); /* * SetDataBrowserItemDataDrawState() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataDrawState( DataBrowserItemDataRef itemData, ThemeDrawState theData); /* * GetDataBrowserItemDataDrawState() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataDrawState( DataBrowserItemDataRef itemData, ThemeDrawState * theData); /* * SetDataBrowserItemDataButtonValue() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataButtonValue( DataBrowserItemDataRef itemData, ThemeButtonValue theData); /* * GetDataBrowserItemDataButtonValue() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataButtonValue( DataBrowserItemDataRef itemData, ThemeButtonValue * theData); /* * SetDataBrowserItemDataIconTransform() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataIconTransform( DataBrowserItemDataRef itemData, IconTransformType theData); /* * GetDataBrowserItemDataIconTransform() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataIconTransform( DataBrowserItemDataRef itemData, IconTransformType * theData); /* * SetDataBrowserItemDataDateTime() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataDateTime( DataBrowserItemDataRef itemData, long theData); /* * GetDataBrowserItemDataDateTime() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataDateTime( DataBrowserItemDataRef itemData, long * theData); /* * SetDataBrowserItemDataLongDateTime() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataLongDateTime( DataBrowserItemDataRef itemData, const LongDateTime * theData); /* * GetDataBrowserItemDataLongDateTime() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataLongDateTime( DataBrowserItemDataRef itemData, LongDateTime * theData); /* * SetDataBrowserItemDataItemID() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserItemDataItemID( DataBrowserItemDataRef itemData, DataBrowserItemID theData); /* * GetDataBrowserItemDataItemID() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataItemID( DataBrowserItemDataRef itemData, DataBrowserItemID * theData); /* * GetDataBrowserItemDataProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserItemDataProperty( DataBrowserItemDataRef itemData, DataBrowserPropertyID * theData); /* Standard DataBrowser Callbacks */ /* Basic Item Management & Manipulation */ typedef CALLBACK_API( OSStatus , DataBrowserItemDataProcPtr )(ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean setValue); typedef STACK_UPP_TYPE(DataBrowserItemDataProcPtr) DataBrowserItemDataUPP; /* Item Comparison */ typedef CALLBACK_API( Boolean , DataBrowserItemCompareProcPtr )(ControlRef browser, DataBrowserItemID itemOne, DataBrowserItemID itemTwo, DataBrowserPropertyID sortProperty); typedef STACK_UPP_TYPE(DataBrowserItemCompareProcPtr) DataBrowserItemCompareUPP; /* ItemEvent Notification */ /* A Very Important Note about DataBrowserItemNotificationProcPtr: */ /* */ /* Under all currently shipping versions of CarbonLib (eg. up through 1.3), your callback is called */ /* just as the prototype appears in this header. It should only be expecting three parameters because */ /* DataBrowser will only pass three parameters. */ /* */ /* Under Mac OS X, your callback is called with an additional parameter. If you wish to interpret */ /* the additional parameter, your callback should have the same prototype as the */ /* DataBrowserItemNotificationWithItemProcPtr (below). You may freely take a callback with this */ /* prototype and pass it to NewDataBrowserItemNotificationUPP in order to generate a */ /* DataBrowserItemNotificationUPP that you can use just like any other DataBrowserItemNotificationUPP. */ /* */ /* If you use this technique under CarbonLib, you will *not* receive valid data in the fourth */ /* parameter, and any attempt to use the invalid data will probably result in a crash. */ typedef CALLBACK_API( void , DataBrowserItemNotificationWithItemProcPtr )(ControlRef browser, DataBrowserItemID item, DataBrowserItemNotification message, DataBrowserItemDataRef itemData); typedef CALLBACK_API( void , DataBrowserItemNotificationProcPtr )(ControlRef browser, DataBrowserItemID item, DataBrowserItemNotification message); typedef STACK_UPP_TYPE(DataBrowserItemNotificationWithItemProcPtr) DataBrowserItemNotificationWithItemUPP; typedef STACK_UPP_TYPE(DataBrowserItemNotificationProcPtr) DataBrowserItemNotificationUPP; /* Drag & Drop Processing */ typedef CALLBACK_API( Boolean , DataBrowserAddDragItemProcPtr )(ControlRef browser, DragReference theDrag, DataBrowserItemID item, ItemReference *itemRef); typedef CALLBACK_API( Boolean , DataBrowserAcceptDragProcPtr )(ControlRef browser, DragReference theDrag, DataBrowserItemID item); typedef CALLBACK_API( Boolean , DataBrowserReceiveDragProcPtr )(ControlRef browser, DragReference theDrag, DataBrowserItemID item); typedef CALLBACK_API( void , DataBrowserPostProcessDragProcPtr )(ControlRef browser, DragReference theDrag, OSStatus trackDragResult); typedef STACK_UPP_TYPE(DataBrowserAddDragItemProcPtr) DataBrowserAddDragItemUPP; typedef STACK_UPP_TYPE(DataBrowserAcceptDragProcPtr) DataBrowserAcceptDragUPP; typedef STACK_UPP_TYPE(DataBrowserReceiveDragProcPtr) DataBrowserReceiveDragUPP; typedef STACK_UPP_TYPE(DataBrowserPostProcessDragProcPtr) DataBrowserPostProcessDragUPP; /* Contextual Menu Support */ typedef CALLBACK_API( void , DataBrowserGetContextualMenuProcPtr )(ControlRef browser, MenuRef *menu, UInt32 *helpType, CFStringRef *helpItemString, AEDesc *selection); typedef CALLBACK_API( void , DataBrowserSelectContextualMenuProcPtr )(ControlRef browser, MenuRef menu, UInt32 selectionType, SInt16 menuID, MenuItemIndex menuItem); typedef STACK_UPP_TYPE(DataBrowserGetContextualMenuProcPtr) DataBrowserGetContextualMenuUPP; typedef STACK_UPP_TYPE(DataBrowserSelectContextualMenuProcPtr) DataBrowserSelectContextualMenuUPP; /* Help Manager Support */ typedef CALLBACK_API( void , DataBrowserItemHelpContentProcPtr )(ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, HMContentRequest inRequest, HMContentProvidedType *outContentProvided, HMHelpContentPtr ioHelpContent); typedef STACK_UPP_TYPE(DataBrowserItemHelpContentProcPtr) DataBrowserItemHelpContentUPP; /* * NewDataBrowserItemDataUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserItemDataUPP ) NewDataBrowserItemDataUPP(DataBrowserItemDataProcPtr userRoutine); /* * NewDataBrowserItemCompareUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserItemCompareUPP ) NewDataBrowserItemCompareUPP(DataBrowserItemCompareProcPtr userRoutine); /* * NewDataBrowserItemNotificationWithItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserItemNotificationWithItemUPP ) NewDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationWithItemProcPtr userRoutine); /* * NewDataBrowserItemNotificationUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserItemNotificationUPP ) NewDataBrowserItemNotificationUPP(DataBrowserItemNotificationProcPtr userRoutine); /* * NewDataBrowserAddDragItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserAddDragItemUPP ) NewDataBrowserAddDragItemUPP(DataBrowserAddDragItemProcPtr userRoutine); /* * NewDataBrowserAcceptDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserAcceptDragUPP ) NewDataBrowserAcceptDragUPP(DataBrowserAcceptDragProcPtr userRoutine); /* * NewDataBrowserReceiveDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserReceiveDragUPP ) NewDataBrowserReceiveDragUPP(DataBrowserReceiveDragProcPtr userRoutine); /* * NewDataBrowserPostProcessDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserPostProcessDragUPP ) NewDataBrowserPostProcessDragUPP(DataBrowserPostProcessDragProcPtr userRoutine); /* * NewDataBrowserGetContextualMenuUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserGetContextualMenuUPP ) NewDataBrowserGetContextualMenuUPP(DataBrowserGetContextualMenuProcPtr userRoutine); /* * NewDataBrowserSelectContextualMenuUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserSelectContextualMenuUPP ) NewDataBrowserSelectContextualMenuUPP(DataBrowserSelectContextualMenuProcPtr userRoutine); /* * NewDataBrowserItemHelpContentUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( DataBrowserItemHelpContentUPP ) NewDataBrowserItemHelpContentUPP(DataBrowserItemHelpContentProcPtr userRoutine); /* * DisposeDataBrowserItemDataUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemDataUPP(DataBrowserItemDataUPP userUPP); /* * DisposeDataBrowserItemCompareUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemCompareUPP(DataBrowserItemCompareUPP userUPP); /* * DisposeDataBrowserItemNotificationWithItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationWithItemUPP userUPP); /* * DisposeDataBrowserItemNotificationUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemNotificationUPP(DataBrowserItemNotificationUPP userUPP); /* * DisposeDataBrowserAddDragItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserAddDragItemUPP(DataBrowserAddDragItemUPP userUPP); /* * DisposeDataBrowserAcceptDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserAcceptDragUPP(DataBrowserAcceptDragUPP userUPP); /* * DisposeDataBrowserReceiveDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserReceiveDragUPP(DataBrowserReceiveDragUPP userUPP); /* * DisposeDataBrowserPostProcessDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserPostProcessDragUPP(DataBrowserPostProcessDragUPP userUPP); /* * DisposeDataBrowserGetContextualMenuUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserGetContextualMenuUPP(DataBrowserGetContextualMenuUPP userUPP); /* * DisposeDataBrowserSelectContextualMenuUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserSelectContextualMenuUPP(DataBrowserSelectContextualMenuUPP userUPP); /* * DisposeDataBrowserItemHelpContentUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemHelpContentUPP(DataBrowserItemHelpContentUPP userUPP); /* * InvokeDataBrowserItemDataUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) InvokeDataBrowserItemDataUPP( ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean setValue, DataBrowserItemDataUPP userUPP); /* * InvokeDataBrowserItemCompareUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Boolean ) InvokeDataBrowserItemCompareUPP( ControlRef browser, DataBrowserItemID itemOne, DataBrowserItemID itemTwo, DataBrowserPropertyID sortProperty, DataBrowserItemCompareUPP userUPP); /* * InvokeDataBrowserItemNotificationWithItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) InvokeDataBrowserItemNotificationWithItemUPP( ControlRef browser, DataBrowserItemID item, DataBrowserItemNotification message, DataBrowserItemDataRef itemData, DataBrowserItemNotificationWithItemUPP userUPP); /* * InvokeDataBrowserItemNotificationUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeDataBrowserItemNotificationUPP( ControlRef browser, DataBrowserItemID item, DataBrowserItemNotification message, DataBrowserItemNotificationUPP userUPP); /* * InvokeDataBrowserAddDragItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Boolean ) InvokeDataBrowserAddDragItemUPP( ControlRef browser, DragReference theDrag, DataBrowserItemID item, ItemReference * itemRef, DataBrowserAddDragItemUPP userUPP); /* * InvokeDataBrowserAcceptDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Boolean ) InvokeDataBrowserAcceptDragUPP( ControlRef browser, DragReference theDrag, DataBrowserItemID item, DataBrowserAcceptDragUPP userUPP); /* * InvokeDataBrowserReceiveDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Boolean ) InvokeDataBrowserReceiveDragUPP( ControlRef browser, DragReference theDrag, DataBrowserItemID item, DataBrowserReceiveDragUPP userUPP); /* * InvokeDataBrowserPostProcessDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeDataBrowserPostProcessDragUPP( ControlRef browser, DragReference theDrag, OSStatus trackDragResult, DataBrowserPostProcessDragUPP userUPP); /* * InvokeDataBrowserGetContextualMenuUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeDataBrowserGetContextualMenuUPP( ControlRef browser, MenuRef * menu, UInt32 * helpType, CFStringRef * helpItemString, AEDesc * selection, DataBrowserGetContextualMenuUPP userUPP); /* * InvokeDataBrowserSelectContextualMenuUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeDataBrowserSelectContextualMenuUPP( ControlRef browser, MenuRef menu, UInt32 selectionType, SInt16 menuID, MenuItemIndex menuItem, DataBrowserSelectContextualMenuUPP userUPP); /* * InvokeDataBrowserItemHelpContentUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeDataBrowserItemHelpContentUPP( ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, HMContentRequest inRequest, HMContentProvidedType * outContentProvided, HMHelpContentPtr ioHelpContent, DataBrowserItemHelpContentUPP userUPP); /* Standard Callback (vtable) Structure */ enum { kDataBrowserLatestCallbacks = 0 }; struct DataBrowserCallbacks { UInt32 version; /* Use kDataBrowserLatestCallbacks */ union { struct { DataBrowserItemDataUPP itemDataCallback; DataBrowserItemCompareUPP itemCompareCallback; DataBrowserItemNotificationUPP itemNotificationCallback; DataBrowserAddDragItemUPP addDragItemCallback; DataBrowserAcceptDragUPP acceptDragCallback; DataBrowserReceiveDragUPP receiveDragCallback; DataBrowserPostProcessDragUPP postProcessDragCallback; DataBrowserItemHelpContentUPP itemHelpContentCallback; DataBrowserGetContextualMenuUPP getContextualMenuCallback; DataBrowserSelectContextualMenuUPP selectContextualMenuCallback; } v1; } u; }; typedef struct DataBrowserCallbacks DataBrowserCallbacks; /* * InitDataBrowserCallbacks() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) InitDataBrowserCallbacks(DataBrowserCallbacks * callbacks); /* Macro for initializing callback structure */ #define InitializeDataBrowserCallbacks(callbacks, vers) \ { (callbacks)->version = (vers); InitDataBrowserCallbacks(callbacks); } /* * GetDataBrowserCallbacks() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserCallbacks( ControlRef browser, DataBrowserCallbacks * callbacks); /* * SetDataBrowserCallbacks() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserCallbacks( ControlRef browser, const DataBrowserCallbacks * callbacks); /* Custom Format Callbacks (kDataBrowserCustomType display properties) */ typedef unsigned long DataBrowserDragFlags; typedef SInt16 DataBrowserTrackingResult; enum { kDataBrowserContentHit = 1, kDataBrowserNothingHit = 0, kDataBrowserStopTracking = -1 }; typedef CALLBACK_API( void , DataBrowserDrawItemProcPtr )(ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserItemState itemState, const Rect *theRect, SInt16 gdDepth, Boolean colorDevice); typedef CALLBACK_API( Boolean , DataBrowserEditItemProcPtr )(ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, CFStringRef theString, Rect *maxEditTextRect, Boolean *shrinkToFit); typedef CALLBACK_API( Boolean , DataBrowserHitTestProcPtr )(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect *theRect, const Rect *mouseRect); typedef CALLBACK_API( DataBrowserTrackingResult , DataBrowserTrackingProcPtr )(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect *theRect, Point startPt, EventModifiers modifiers); typedef CALLBACK_API( void , DataBrowserItemDragRgnProcPtr )(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect *theRect, RgnHandle dragRgn); typedef CALLBACK_API( DataBrowserDragFlags , DataBrowserItemAcceptDragProcPtr )(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect *theRect, DragReference theDrag); typedef CALLBACK_API( Boolean , DataBrowserItemReceiveDragProcPtr )(ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserDragFlags dragFlags, DragReference theDrag); typedef STACK_UPP_TYPE(DataBrowserDrawItemProcPtr) DataBrowserDrawItemUPP; typedef STACK_UPP_TYPE(DataBrowserEditItemProcPtr) DataBrowserEditItemUPP; typedef STACK_UPP_TYPE(DataBrowserHitTestProcPtr) DataBrowserHitTestUPP; typedef STACK_UPP_TYPE(DataBrowserTrackingProcPtr) DataBrowserTrackingUPP; typedef STACK_UPP_TYPE(DataBrowserItemDragRgnProcPtr) DataBrowserItemDragRgnUPP; typedef STACK_UPP_TYPE(DataBrowserItemAcceptDragProcPtr) DataBrowserItemAcceptDragUPP; typedef STACK_UPP_TYPE(DataBrowserItemReceiveDragProcPtr) DataBrowserItemReceiveDragUPP; /* * NewDataBrowserDrawItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserDrawItemUPP ) NewDataBrowserDrawItemUPP(DataBrowserDrawItemProcPtr userRoutine); /* * NewDataBrowserEditItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserEditItemUPP ) NewDataBrowserEditItemUPP(DataBrowserEditItemProcPtr userRoutine); /* * NewDataBrowserHitTestUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserHitTestUPP ) NewDataBrowserHitTestUPP(DataBrowserHitTestProcPtr userRoutine); /* * NewDataBrowserTrackingUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserTrackingUPP ) NewDataBrowserTrackingUPP(DataBrowserTrackingProcPtr userRoutine); /* * NewDataBrowserItemDragRgnUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserItemDragRgnUPP ) NewDataBrowserItemDragRgnUPP(DataBrowserItemDragRgnProcPtr userRoutine); /* * NewDataBrowserItemAcceptDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserItemAcceptDragUPP ) NewDataBrowserItemAcceptDragUPP(DataBrowserItemAcceptDragProcPtr userRoutine); /* * NewDataBrowserItemReceiveDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserItemReceiveDragUPP ) NewDataBrowserItemReceiveDragUPP(DataBrowserItemReceiveDragProcPtr userRoutine); /* * DisposeDataBrowserDrawItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserDrawItemUPP(DataBrowserDrawItemUPP userUPP); /* * DisposeDataBrowserEditItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserEditItemUPP(DataBrowserEditItemUPP userUPP); /* * DisposeDataBrowserHitTestUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserHitTestUPP(DataBrowserHitTestUPP userUPP); /* * DisposeDataBrowserTrackingUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserTrackingUPP(DataBrowserTrackingUPP userUPP); /* * DisposeDataBrowserItemDragRgnUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemDragRgnUPP(DataBrowserItemDragRgnUPP userUPP); /* * DisposeDataBrowserItemAcceptDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemAcceptDragUPP(DataBrowserItemAcceptDragUPP userUPP); /* * DisposeDataBrowserItemReceiveDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) DisposeDataBrowserItemReceiveDragUPP(DataBrowserItemReceiveDragUPP userUPP); /* * InvokeDataBrowserDrawItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) InvokeDataBrowserDrawItemUPP( ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, DataBrowserItemState itemState, const Rect * theRect, SInt16 gdDepth, Boolean colorDevice, DataBrowserDrawItemUPP userUPP); /* * InvokeDataBrowserEditItemUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( Boolean ) InvokeDataBrowserEditItemUPP( ControlRef browser, DataBrowserItemID item, DataBrowserPropertyID property, CFStringRef theString, Rect * maxEditTextRect, Boolean * shrinkToFit, DataBrowserEditItemUPP userUPP); /* * InvokeDataBrowserHitTestUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( Boolean ) InvokeDataBrowserHitTestUPP( ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect * theRect, const Rect * mouseRect, DataBrowserHitTestUPP userUPP); /* * InvokeDataBrowserTrackingUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserTrackingResult ) InvokeDataBrowserTrackingUPP( ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect * theRect, Point startPt, EventModifiers modifiers, DataBrowserTrackingUPP userUPP); /* * InvokeDataBrowserItemDragRgnUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( void ) InvokeDataBrowserItemDragRgnUPP( ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect * theRect, RgnHandle dragRgn, DataBrowserItemDragRgnUPP userUPP); /* * InvokeDataBrowserItemAcceptDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( DataBrowserDragFlags ) InvokeDataBrowserItemAcceptDragUPP( ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, const Rect * theRect, DragReference theDrag, DataBrowserItemAcceptDragUPP userUPP); /* * InvokeDataBrowserItemReceiveDragUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API_C( Boolean ) InvokeDataBrowserItemReceiveDragUPP( ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserDragFlags dragFlags, DragReference theDrag, DataBrowserItemReceiveDragUPP userUPP); /* Custom Callback (vtable) Structure */ enum { kDataBrowserLatestCustomCallbacks = 0 }; struct DataBrowserCustomCallbacks { UInt32 version; /* Use kDataBrowserLatestCustomCallbacks */ union { struct { DataBrowserDrawItemUPP drawItemCallback; DataBrowserEditItemUPP editTextCallback; DataBrowserHitTestUPP hitTestCallback; DataBrowserTrackingUPP trackingCallback; DataBrowserItemDragRgnUPP dragRegionCallback; DataBrowserItemAcceptDragUPP acceptDragCallback; DataBrowserItemReceiveDragUPP receiveDragCallback; } v1; } u; }; typedef struct DataBrowserCustomCallbacks DataBrowserCustomCallbacks; /* * InitDataBrowserCustomCallbacks() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) InitDataBrowserCustomCallbacks(DataBrowserCustomCallbacks * callbacks); /* Macro for initializing custom callback structure */ #define InitializeDataBrowserCustomCallbacks(callbacks, vers) \ { (callbacks)->version = (vers); InitDataBrowserCustomCallbacks(callbacks); } /* * GetDataBrowserCustomCallbacks() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserCustomCallbacks( ControlRef browser, DataBrowserCustomCallbacks * callbacks); /* * SetDataBrowserCustomCallbacks() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserCustomCallbacks( ControlRef browser, const DataBrowserCustomCallbacks * callbacks); /* TableView Formatting */ typedef UInt32 DataBrowserTableViewHiliteStyle; enum { kDataBrowserTableViewMinimalHilite = 0, kDataBrowserTableViewFillHilite = 1 }; typedef UInt32 DataBrowserTableViewPropertyFlags; enum { /* kDataBrowserTableView DataBrowserPropertyFlags */ kDataBrowserTableViewSelectionColumn = 1 << kDataBrowserViewSpecificFlagsOffset }; /* The row and column indicies are zero-based */ typedef UInt32 DataBrowserTableViewRowIndex; typedef UInt32 DataBrowserTableViewColumnIndex; typedef DataBrowserPropertyID DataBrowserTableViewColumnID; typedef DataBrowserPropertyDesc DataBrowserTableViewColumnDesc; /* TableView API */ /* Use when setting column position */ enum { kDataBrowserTableViewLastColumn = -1 }; /* * RemoveDataBrowserTableViewColumn() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) RemoveDataBrowserTableViewColumn( ControlRef browser, DataBrowserTableViewColumnID column); /* * GetDataBrowserTableViewColumnCount() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewColumnCount( ControlRef browser, UInt32 * numColumns); /* * SetDataBrowserTableViewHiliteStyle() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewHiliteStyle( ControlRef browser, DataBrowserTableViewHiliteStyle hiliteStyle); /* * GetDataBrowserTableViewHiliteStyle() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewHiliteStyle( ControlRef browser, DataBrowserTableViewHiliteStyle * hiliteStyle); /* * SetDataBrowserTableViewRowHeight() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewRowHeight( ControlRef browser, UInt16 height); /* * GetDataBrowserTableViewRowHeight() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewRowHeight( ControlRef browser, UInt16 * height); /* * SetDataBrowserTableViewColumnWidth() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewColumnWidth( ControlRef browser, UInt16 width); /* * GetDataBrowserTableViewColumnWidth() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewColumnWidth( ControlRef browser, UInt16 * width); /* * SetDataBrowserTableViewItemRowHeight() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewItemRowHeight( ControlRef browser, DataBrowserItemID item, UInt16 height); /* * GetDataBrowserTableViewItemRowHeight() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewItemRowHeight( ControlRef browser, DataBrowserItemID item, UInt16 * height); /* * SetDataBrowserTableViewNamedColumnWidth() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewNamedColumnWidth( ControlRef browser, DataBrowserTableViewColumnID column, UInt16 width); /* * GetDataBrowserTableViewNamedColumnWidth() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewNamedColumnWidth( ControlRef browser, DataBrowserTableViewColumnID column, UInt16 * width); /* * SetDataBrowserTableViewGeometry() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewGeometry( ControlRef browser, Boolean variableWidthColumns, Boolean variableHeightRows); /* * GetDataBrowserTableViewGeometry() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewGeometry( ControlRef browser, Boolean * variableWidthColumns, Boolean * variableHeightRows); /* * GetDataBrowserTableViewItemID() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewItemID( ControlRef browser, DataBrowserTableViewRowIndex row, DataBrowserItemID * item); /* * SetDataBrowserTableViewItemRow() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewItemRow( ControlRef browser, DataBrowserItemID item, DataBrowserTableViewRowIndex row); /* * GetDataBrowserTableViewItemRow() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewItemRow( ControlRef browser, DataBrowserItemID item, DataBrowserTableViewRowIndex * row); /* * SetDataBrowserTableViewColumnPosition() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserTableViewColumnPosition( ControlRef browser, DataBrowserTableViewColumnID column, DataBrowserTableViewColumnIndex position); /* * GetDataBrowserTableViewColumnPosition() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewColumnPosition( ControlRef browser, DataBrowserTableViewColumnID column, DataBrowserTableViewColumnIndex * position); /* * GetDataBrowserTableViewColumnProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserTableViewColumnProperty( ControlRef browser, DataBrowserTableViewColumnIndex column, DataBrowserTableViewColumnID * property); /* kDataBrowserListView Formatting */ typedef UInt32 DataBrowserListViewPropertyFlags; enum { /* kDataBrowserListView DataBrowserPropertyFlags */ kDataBrowserListViewMovableColumn = 1 << (kDataBrowserViewSpecificFlagsOffset + 1), kDataBrowserListViewSortableColumn = 1 << (kDataBrowserViewSpecificFlagsOffset + 2), kDataBrowserListViewSelectionColumn = kDataBrowserTableViewSelectionColumn, kDataBrowserListViewDefaultColumnFlags = kDataBrowserListViewMovableColumn + kDataBrowserListViewSortableColumn }; enum { kDataBrowserListViewLatestHeaderDesc = 0 }; struct DataBrowserListViewHeaderDesc { UInt32 version; /* Use kDataBrowserListViewLatestHeaderDesc */ UInt16 minimumWidth; UInt16 maximumWidth; SInt16 titleOffset; CFStringRef titleString; DataBrowserSortOrder initialOrder; ControlFontStyleRec btnFontStyle; ControlButtonContentInfo btnContentInfo; }; typedef struct DataBrowserListViewHeaderDesc DataBrowserListViewHeaderDesc; struct DataBrowserListViewColumnDesc { DataBrowserTableViewColumnDesc propertyDesc; DataBrowserListViewHeaderDesc headerBtnDesc; }; typedef struct DataBrowserListViewColumnDesc DataBrowserListViewColumnDesc; /* kDataBrowserListView API */ enum { kDataBrowserListViewAppendColumn = kDataBrowserTableViewLastColumn }; /* * AutoSizeDataBrowserListViewColumns() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) AutoSizeDataBrowserListViewColumns(ControlRef browser); /* * AddDataBrowserListViewColumn() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) AddDataBrowserListViewColumn( ControlRef browser, DataBrowserListViewColumnDesc * columnDesc, DataBrowserTableViewColumnIndex position); /* * GetDataBrowserListViewHeaderDesc() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) GetDataBrowserListViewHeaderDesc( ControlRef browser, DataBrowserTableViewColumnID column, DataBrowserListViewHeaderDesc * desc); /* * SetDataBrowserListViewHeaderDesc() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) SetDataBrowserListViewHeaderDesc( ControlRef browser, DataBrowserTableViewColumnID column, DataBrowserListViewHeaderDesc * desc); /* * SetDataBrowserListViewHeaderBtnHeight() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserListViewHeaderBtnHeight( ControlRef browser, UInt16 height); /* * GetDataBrowserListViewHeaderBtnHeight() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserListViewHeaderBtnHeight( ControlRef browser, UInt16 * height); /* * SetDataBrowserListViewUsePlainBackground() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserListViewUsePlainBackground( ControlRef browser, Boolean usePlainBackground); /* * GetDataBrowserListViewUsePlainBackground() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserListViewUsePlainBackground( ControlRef browser, Boolean * usePlainBackground); /* * SetDataBrowserListViewDisclosureColumn() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserListViewDisclosureColumn( ControlRef browser, DataBrowserTableViewColumnID column, Boolean expandableRows); /* * GetDataBrowserListViewDisclosureColumn() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserListViewDisclosureColumn( ControlRef browser, DataBrowserTableViewColumnID * column, Boolean * expandableRows); /* kDataBrowserColumnView API */ /* * GetDataBrowserColumnViewPath() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserColumnViewPath( ControlRef browser, Handle path); /* * GetDataBrowserColumnViewPathLength() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserColumnViewPathLength( ControlRef browser, UInt32 * pathLength); /* * SetDataBrowserColumnViewPath() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserColumnViewPath( ControlRef browser, UInt32 length, const DataBrowserItemID * path); /* * SetDataBrowserColumnViewDisplayType() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SetDataBrowserColumnViewDisplayType( ControlRef browser, DataBrowserPropertyType propertyType); /* * GetDataBrowserColumnViewDisplayType() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) GetDataBrowserColumnViewDisplayType( ControlRef browser, DataBrowserPropertyType * propertyType); /* DataBrowser UPP macros */ /*---------------------------------------------------------------------------------------*/ /* EditUnicodeText Control */ /*---------------------------------------------------------------------------------------*/ /* This control is only available in Mac OS X. It is super similar to Edit Text control */ /* Use all the same Get/Set tags. But don't ask for the TEHandle. */ /*---------------------------------------------------------------------------------------*/ /* This callback supplies the functionality of the TSMTEPostUpdateProcPtr that is used */ /* in the EditText control. A client should supply this call if they want to look at */ /* inline text that has been fixed before it is included in the actual body text */ /* if the new text (i.e. the text in the handle) should be included in the body text */ /* the client should return true. If the client wants to block the inclusion of the */ /* text they should return false. */ typedef CALLBACK_API( Boolean , EditUnicodePostUpdateProcPtr )(UniCharArrayHandle uniText, UniCharCount uniTextLength, UniCharArrayOffset iStartOffset, UniCharArrayOffset iEndOffset, void *refcon); typedef STACK_UPP_TYPE(EditUnicodePostUpdateProcPtr) EditUnicodePostUpdateUPP; /* * NewEditUnicodePostUpdateUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( EditUnicodePostUpdateUPP ) NewEditUnicodePostUpdateUPP(EditUnicodePostUpdateProcPtr userRoutine); /* * DisposeEditUnicodePostUpdateUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeEditUnicodePostUpdateUPP(EditUnicodePostUpdateUPP userUPP); /* * InvokeEditUnicodePostUpdateUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( Boolean ) InvokeEditUnicodePostUpdateUPP( UniCharArrayHandle uniText, UniCharCount uniTextLength, UniCharArrayOffset iStartOffset, UniCharArrayOffset iEndOffset, void * refcon, EditUnicodePostUpdateUPP userUPP); /* Use this tag when calling ControlSet/GetData to specify the UnicodePostUpdateProcPtr */ /* tags available with Appearance 1.1 or later */ enum { kControlEditUnicodeTextPostUpdateProcTag = FOUR_CHAR_CODE('upup') }; enum { kControlEditUnicodeTextProc = 912, kControlEditUnicodeTextPasswordProc = 914 }; /* Control Kind Tag */ enum { kControlKindEditUnicodeText = FOUR_CHAR_CODE('eutx') }; /* Creation API for X */ /* * CreateEditUnicodeTextControl() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) CreateEditUnicodeTextControl( WindowRef window, const Rect * boundsRect, CFStringRef text, Boolean isPassword, const ControlFontStyleRec * style, /* can be NULL */ ControlRef * outControl); /* Tagged data supported by Unicode text Control only*/ enum { kControlEditTextSingleLineTag = FOUR_CHAR_CODE('sglc') }; #if OLDROUTINENAMES /*--------------------------------------------------------------------------------------*/ /* o OLDROUTINENAMES */ /*--------------------------------------------------------------------------------------*/ enum { kControlCheckboxUncheckedValue = kControlCheckBoxUncheckedValue, kControlCheckboxCheckedValue = kControlCheckBoxCheckedValue, kControlCheckboxMixedValue = kControlCheckBoxMixedValue }; enum { inLabel = kControlLabelPart, inMenu = kControlMenuPart, inTriangle = kControlTrianglePart, inButton = kControlButtonPart, inCheckBox = kControlCheckBoxPart, inUpButton = kControlUpButtonPart, inDownButton = kControlDownButtonPart, inPageUp = kControlPageUpPart, inPageDown = kControlPageDownPart }; enum { kInLabelControlPart = kControlLabelPart, kInMenuControlPart = kControlMenuPart, kInTriangleControlPart = kControlTrianglePart, kInButtonControlPart = kControlButtonPart, kInCheckBoxControlPart = kControlCheckBoxPart, kInUpButtonControlPart = kControlUpButtonPart, kInDownButtonControlPart = kControlDownButtonPart, kInPageUpControlPart = kControlPageUpPart, kInPageDownControlPart = kControlPageDownPart }; #endif /* OLDROUTINENAMES */ #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __CONTROLDEFINITIONS__ */