Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

6103 lines
211 KiB

/*
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 <MacTypes.h>
#endif
#ifndef __CFSTRING__
#include <CFString.h>
#endif
#ifndef __APPEARANCE__
#include <Appearance.h>
#endif
#ifndef __CARBONEVENTS__
#include <CarbonEvents.h>
#endif
#ifndef __CONTROLS__
#include <Controls.h>
#endif
#ifndef __LISTS__
#include <Lists.h>
#endif
#ifndef __MACHELP__
#include <MacHelp.h>
#endif
#ifndef __MENUS__
#include <Menus.h>
#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__ */