summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/ControlDefinitions.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/ControlDefinitions.h')
-rw-r--r--common/quicktime_win32/ControlDefinitions.h6103
1 files changed, 6103 insertions, 0 deletions
diff --git a/common/quicktime_win32/ControlDefinitions.h b/common/quicktime_win32/ControlDefinitions.h
new file mode 100644
index 0000000..974ae07
--- /dev/null
+++ b/common/quicktime_win32/ControlDefinitions.h
@@ -0,0 +1,6103 @@
+/*
+ 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__ */
+