You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
575 lines
18 KiB
575 lines
18 KiB
5 years ago
|
/*
|
||
|
File: ColorPicker.h
|
||
|
|
||
|
Contains: Color Picker package Interfaces.
|
||
|
|
||
|
Version: QuickTime 7.3
|
||
|
|
||
|
Copyright: (c) 2007 (c) 1987-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 __COLORPICKER__
|
||
|
#define __COLORPICKER__
|
||
|
|
||
|
#ifndef __MIXEDMODE__
|
||
|
#include <MixedMode.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __QUICKDRAW__
|
||
|
#include <Quickdraw.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __CMAPPLICATION__
|
||
|
#include <CMApplication.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __EVENTS__
|
||
|
#include <Events.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
|
||
|
|
||
|
enum {
|
||
|
/*Maximum small fract value, as long*/
|
||
|
kMaximumSmallFract = 0x0000FFFF
|
||
|
};
|
||
|
|
||
|
enum {
|
||
|
kDefaultColorPickerWidth = 383,
|
||
|
kDefaultColorPickerHeight = 238
|
||
|
};
|
||
|
|
||
|
typedef SInt16 DialogPlacementSpec;
|
||
|
enum {
|
||
|
kAtSpecifiedOrigin = 0,
|
||
|
kDeepestColorScreen = 1,
|
||
|
kCenterOnMainScreen = 2
|
||
|
};
|
||
|
|
||
|
|
||
|
/* These are for the flags field in the structs below (for example ColorPickerInfo). */
|
||
|
enum {
|
||
|
kColorPickerDialogIsMoveable = 1,
|
||
|
kColorPickerDialogIsModal = 2,
|
||
|
kColorPickerCanModifyPalette = 4,
|
||
|
kColorPickerCanAnimatePalette = 8,
|
||
|
kColorPickerAppIsColorSyncAware = 16,
|
||
|
kColorPickerInSystemDialog = 32,
|
||
|
kColorPickerInApplicationDialog = 64,
|
||
|
kColorPickerInPickerDialog = 128,
|
||
|
kColorPickerDetachedFromChoices = 256,
|
||
|
kColorPickerCallColorProcLive = 512
|
||
|
};
|
||
|
|
||
|
|
||
|
#if OLDROUTINENAMES
|
||
|
enum {
|
||
|
/*Maximum small fract value, as long*/
|
||
|
MaxSmallFract = 0x0000FFFF
|
||
|
};
|
||
|
|
||
|
enum {
|
||
|
kDefaultWidth = 383,
|
||
|
kDefaultHeight = 238
|
||
|
};
|
||
|
|
||
|
/* These are for the flags field in the structs below (for example ColorPickerInfo). */
|
||
|
enum {
|
||
|
DialogIsMoveable = 1,
|
||
|
DialogIsModal = 2,
|
||
|
CanModifyPalette = 4,
|
||
|
CanAnimatePalette = 8,
|
||
|
AppIsColorSyncAware = 16,
|
||
|
InSystemDialog = 32,
|
||
|
InApplicationDialog = 64,
|
||
|
InPickerDialog = 128,
|
||
|
DetachedFromChoices = 256,
|
||
|
CallColorProcLive = 512
|
||
|
};
|
||
|
|
||
|
#endif /* OLDROUTINENAMES */
|
||
|
|
||
|
/* A SmallFract value is just the fractional part of a Fixed number,
|
||
|
which is the low order word. SmallFracts are used to save room,
|
||
|
and to be compatible with Quickdraw's RGBColor. They can be
|
||
|
assigned directly to and from INTEGERs. */
|
||
|
/* Unsigned fraction between 0 and 1 */
|
||
|
typedef unsigned short SmallFract;
|
||
|
/* For developmental simplicity in switching between the HLS and HSV
|
||
|
models, HLS is reordered into HSL. Thus both models start with
|
||
|
hue and saturation values; value/lightness/brightness is last. */
|
||
|
|
||
|
struct HSVColor {
|
||
|
SmallFract hue; /*Fraction of circle, red at 0*/
|
||
|
SmallFract saturation; /*0-1, 0 for gray, 1 for pure color*/
|
||
|
SmallFract value; /*0-1, 0 for black, 1 for max intensity*/
|
||
|
};
|
||
|
typedef struct HSVColor HSVColor;
|
||
|
struct HSLColor {
|
||
|
SmallFract hue; /*Fraction of circle, red at 0*/
|
||
|
SmallFract saturation; /*0-1, 0 for gray, 1 for pure color*/
|
||
|
SmallFract lightness; /*0-1, 0 for black, 1 for white*/
|
||
|
};
|
||
|
typedef struct HSLColor HSLColor;
|
||
|
struct CMYColor {
|
||
|
SmallFract cyan;
|
||
|
SmallFract magenta;
|
||
|
SmallFract yellow;
|
||
|
};
|
||
|
typedef struct CMYColor CMYColor;
|
||
|
struct PMColor {
|
||
|
CMProfileHandle profile;
|
||
|
CMColor color;
|
||
|
};
|
||
|
typedef struct PMColor PMColor;
|
||
|
typedef PMColor * PMColorPtr;
|
||
|
struct NPMColor {
|
||
|
CMProfileRef profile;
|
||
|
CMColor color;
|
||
|
};
|
||
|
typedef struct NPMColor NPMColor;
|
||
|
typedef NPMColor * NPMColorPtr;
|
||
|
typedef struct OpaquePicker* Picker;
|
||
|
typedef Picker picker;
|
||
|
struct PickerMenuItemInfo {
|
||
|
short editMenuID;
|
||
|
short cutItem;
|
||
|
short copyItem;
|
||
|
short pasteItem;
|
||
|
short clearItem;
|
||
|
short undoItem;
|
||
|
};
|
||
|
typedef struct PickerMenuItemInfo PickerMenuItemInfo;
|
||
|
/* Structs related to deprecated API's have been pulled from this file. */
|
||
|
/* Those structs necessary for developers writing their own color pickers... */
|
||
|
/* have been moved to ColorPickerComponents.h. */
|
||
|
|
||
|
typedef CALLBACK_API( void , ColorChangedProcPtr )(long userData, PMColor *newColor);
|
||
|
typedef CALLBACK_API( void , NColorChangedProcPtr )(long userData, NPMColor *newColor);
|
||
|
typedef CALLBACK_API( Boolean , UserEventProcPtr )(EventRecord * event);
|
||
|
typedef STACK_UPP_TYPE(ColorChangedProcPtr) ColorChangedUPP;
|
||
|
typedef STACK_UPP_TYPE(NColorChangedProcPtr) NColorChangedUPP;
|
||
|
typedef STACK_UPP_TYPE(UserEventProcPtr) UserEventUPP;
|
||
|
struct ColorPickerInfo {
|
||
|
PMColor theColor;
|
||
|
CMProfileHandle dstProfile;
|
||
|
UInt32 flags;
|
||
|
DialogPlacementSpec placeWhere;
|
||
|
Point dialogOrigin;
|
||
|
OSType pickerType;
|
||
|
UserEventUPP eventProc;
|
||
|
ColorChangedUPP colorProc;
|
||
|
UInt32 colorProcData;
|
||
|
Str255 prompt;
|
||
|
PickerMenuItemInfo mInfo;
|
||
|
Boolean newColorChosen;
|
||
|
SInt8 filler;
|
||
|
};
|
||
|
typedef struct ColorPickerInfo ColorPickerInfo;
|
||
|
struct NColorPickerInfo {
|
||
|
NPMColor theColor;
|
||
|
CMProfileRef dstProfile;
|
||
|
UInt32 flags;
|
||
|
DialogPlacementSpec placeWhere;
|
||
|
Point dialogOrigin;
|
||
|
OSType pickerType;
|
||
|
UserEventUPP eventProc;
|
||
|
NColorChangedUPP colorProc;
|
||
|
UInt32 colorProcData;
|
||
|
Str255 prompt;
|
||
|
PickerMenuItemInfo mInfo;
|
||
|
Boolean newColorChosen;
|
||
|
UInt8 reserved; /*Must be 0*/
|
||
|
};
|
||
|
typedef struct NColorPickerInfo NColorPickerInfo;
|
||
|
|
||
|
/* Below are the color conversion routines.*/
|
||
|
/*
|
||
|
* Fix2SmallFract()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( SmallFract )
|
||
|
Fix2SmallFract(Fixed f) THREEWORDINLINE(0x3F3C, 0x0001, 0xA82E);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* SmallFract2Fix()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( Fixed )
|
||
|
SmallFract2Fix(SmallFract s) THREEWORDINLINE(0x3F3C, 0x0002, 0xA82E);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* CMY2RGB()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( void )
|
||
|
CMY2RGB(
|
||
|
const CMYColor * cColor,
|
||
|
RGBColor * rColor) THREEWORDINLINE(0x3F3C, 0x0003, 0xA82E);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* RGB2CMY()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( void )
|
||
|
RGB2CMY(
|
||
|
const RGBColor * rColor,
|
||
|
CMYColor * cColor) THREEWORDINLINE(0x3F3C, 0x0004, 0xA82E);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* HSL2RGB()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( void )
|
||
|
HSL2RGB(
|
||
|
const HSLColor * hColor,
|
||
|
RGBColor * rColor) THREEWORDINLINE(0x3F3C, 0x0005, 0xA82E);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* RGB2HSL()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( void )
|
||
|
RGB2HSL(
|
||
|
const RGBColor * rColor,
|
||
|
HSLColor * hColor) THREEWORDINLINE(0x3F3C, 0x0006, 0xA82E);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* HSV2RGB()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( void )
|
||
|
HSV2RGB(
|
||
|
const HSVColor * hColor,
|
||
|
RGBColor * rColor) THREEWORDINLINE(0x3F3C, 0x0007, 0xA82E);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* RGB2HSV()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( void )
|
||
|
RGB2HSV(
|
||
|
const RGBColor * rColor,
|
||
|
HSVColor * hColor) THREEWORDINLINE(0x3F3C, 0x0008, 0xA82E);
|
||
|
|
||
|
|
||
|
|
||
|
/* GetColor() works with or without the Color Picker extension.*/
|
||
|
/*
|
||
|
* GetColor()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( Boolean )
|
||
|
GetColor(
|
||
|
Point where,
|
||
|
ConstStr255Param prompt,
|
||
|
const RGBColor * inColor,
|
||
|
RGBColor * outColor) THREEWORDINLINE(0x3F3C, 0x0009, 0xA82E);
|
||
|
|
||
|
|
||
|
|
||
|
/* PickColor() requires the Color Picker extension (version 2.0 or greater).*/
|
||
|
/*
|
||
|
* PickColor()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in ColorPickerLib 2.0 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
PickColor(ColorPickerInfo * theColorInfo) THREEWORDINLINE(0x3F3C, 0x0213, 0xA82E);
|
||
|
|
||
|
|
||
|
/* NPickColor() requires the Color Picker extension (version 2.1 or greater).*/
|
||
|
/*
|
||
|
* NPickColor()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in ColorPickerLib 2.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
NPickColor(NColorPickerInfo * theColorInfo) THREEWORDINLINE(0x3F3C, 0x0227, 0xA82E);
|
||
|
|
||
|
|
||
|
|
||
|
/* A suite of mid-level API calls have been deprecated. Likely you never... */
|
||
|
/* used them anyway. They were removed from this file and should not be... */
|
||
|
/* used in the future as they are not gauranteed to be supported. */
|
||
|
/*
|
||
|
* NewColorChangedUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( ColorChangedUPP )
|
||
|
NewColorChangedUPP(ColorChangedProcPtr userRoutine);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
enum { uppColorChangedProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(ColorChangedUPP) NewColorChangedUPP(ColorChangedProcPtr userRoutine) { return (ColorChangedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppColorChangedProcInfo, GetCurrentArchitecture()); }
|
||
|
#else
|
||
|
#define NewColorChangedUPP(userRoutine) (ColorChangedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppColorChangedProcInfo, GetCurrentArchitecture())
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* NewNColorChangedUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( NColorChangedUPP )
|
||
|
NewNColorChangedUPP(NColorChangedProcPtr userRoutine);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
enum { uppNColorChangedProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(NColorChangedUPP) NewNColorChangedUPP(NColorChangedProcPtr userRoutine) { return (NColorChangedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNColorChangedProcInfo, GetCurrentArchitecture()); }
|
||
|
#else
|
||
|
#define NewNColorChangedUPP(userRoutine) (NColorChangedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNColorChangedProcInfo, GetCurrentArchitecture())
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* NewUserEventUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( UserEventUPP )
|
||
|
NewUserEventUPP(UserEventProcPtr userRoutine);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
enum { uppUserEventProcInfo = 0x000000D0 }; /* pascal 1_byte Func(4_bytes) */
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(UserEventUPP) NewUserEventUPP(UserEventProcPtr userRoutine) { return (UserEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppUserEventProcInfo, GetCurrentArchitecture()); }
|
||
|
#else
|
||
|
#define NewUserEventUPP(userRoutine) (UserEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppUserEventProcInfo, GetCurrentArchitecture())
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* DisposeColorChangedUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( void )
|
||
|
DisposeColorChangedUPP(ColorChangedUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(void) DisposeColorChangedUPP(ColorChangedUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
|
||
|
#else
|
||
|
#define DisposeColorChangedUPP(userUPP) DisposeRoutineDescriptor(userUPP)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* DisposeNColorChangedUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( void )
|
||
|
DisposeNColorChangedUPP(NColorChangedUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(void) DisposeNColorChangedUPP(NColorChangedUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
|
||
|
#else
|
||
|
#define DisposeNColorChangedUPP(userUPP) DisposeRoutineDescriptor(userUPP)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* DisposeUserEventUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( void )
|
||
|
DisposeUserEventUPP(UserEventUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(void) DisposeUserEventUPP(UserEventUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
|
||
|
#else
|
||
|
#define DisposeUserEventUPP(userUPP) DisposeRoutineDescriptor(userUPP)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* InvokeColorChangedUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( void )
|
||
|
InvokeColorChangedUPP(
|
||
|
long userData,
|
||
|
PMColor * newColor,
|
||
|
ColorChangedUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(void) InvokeColorChangedUPP(long userData, PMColor * newColor, ColorChangedUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppColorChangedProcInfo, userData, newColor); }
|
||
|
#else
|
||
|
#define InvokeColorChangedUPP(userData, newColor, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppColorChangedProcInfo, (userData), (newColor))
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* InvokeNColorChangedUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( void )
|
||
|
InvokeNColorChangedUPP(
|
||
|
long userData,
|
||
|
NPMColor * newColor,
|
||
|
NColorChangedUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(void) InvokeNColorChangedUPP(long userData, NPMColor * newColor, NColorChangedUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppNColorChangedProcInfo, userData, newColor); }
|
||
|
#else
|
||
|
#define InvokeNColorChangedUPP(userData, newColor, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppNColorChangedProcInfo, (userData), (newColor))
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* InvokeUserEventUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( Boolean )
|
||
|
InvokeUserEventUPP(
|
||
|
EventRecord * event,
|
||
|
UserEventUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(Boolean) InvokeUserEventUPP(EventRecord * event, UserEventUPP userUPP) { return (Boolean)CALL_ONE_PARAMETER_UPP(userUPP, uppUserEventProcInfo, event); }
|
||
|
#else
|
||
|
#define InvokeUserEventUPP(event, userUPP) (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppUserEventProcInfo, (event))
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
|
||
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
|
||
|
#define NewColorChangedProc(userRoutine) NewColorChangedUPP(userRoutine)
|
||
|
#define NewNColorChangedProc(userRoutine) NewNColorChangedUPP(userRoutine)
|
||
|
#define NewUserEventProc(userRoutine) NewUserEventUPP(userRoutine)
|
||
|
#define CallColorChangedProc(userRoutine, userData, newColor) InvokeColorChangedUPP(userData, newColor, userRoutine)
|
||
|
#define CallNColorChangedProc(userRoutine, userData, newColor) InvokeNColorChangedUPP(userData, newColor, userRoutine)
|
||
|
#define CallUserEventProc(userRoutine, event) InvokeUserEventUPP(event, userRoutine)
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
|
||
|
|
||
|
#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 /* __COLORPICKER__ */
|
||
|
|