Code Search for Developers
 
 
  

ColorPicker.h from guliverkli at Krugle


Show ColorPicker.h syntax highlighted

/*
     File:       ColorPicker.h
 
     Contains:   Color Picker package Interfaces.
 
     Version:    Technology: System 7.5
                 Release:    QuickTime 6.0.2
 
     Copyright:  (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




#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.*/
EXTERN_API( SmallFract )
Fix2SmallFract                  (Fixed                  f)                                  THREEWORDINLINE(0x3F3C, 0x0001, 0xA82E);

EXTERN_API( Fixed )
SmallFract2Fix                  (SmallFract             s)                                  THREEWORDINLINE(0x3F3C, 0x0002, 0xA82E);

EXTERN_API( void )
CMY2RGB                         (const CMYColor *       cColor,
                                 RGBColor *             rColor)                             THREEWORDINLINE(0x3F3C, 0x0003, 0xA82E);

EXTERN_API( void )
RGB2CMY                         (const RGBColor *       rColor,
                                 CMYColor *             cColor)                             THREEWORDINLINE(0x3F3C, 0x0004, 0xA82E);

EXTERN_API( void )
HSL2RGB                         (const HSLColor *       hColor,
                                 RGBColor *             rColor)                             THREEWORDINLINE(0x3F3C, 0x0005, 0xA82E);

EXTERN_API( void )
RGB2HSL                         (const RGBColor *       rColor,
                                 HSLColor *             hColor)                             THREEWORDINLINE(0x3F3C, 0x0006, 0xA82E);

EXTERN_API( void )
HSV2RGB                         (const HSVColor *       hColor,
                                 RGBColor *             rColor)                             THREEWORDINLINE(0x3F3C, 0x0007, 0xA82E);

EXTERN_API( void )
RGB2HSV                         (const RGBColor *       rColor,
                                 HSVColor *             hColor)                             THREEWORDINLINE(0x3F3C, 0x0008, 0xA82E);


/*  GetColor() works with or without the Color Picker extension.*/
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).*/
EXTERN_API( OSErr )
PickColor                       (ColorPickerInfo *      theColorInfo)                       THREEWORDINLINE(0x3F3C, 0x0213, 0xA82E);

/*  NPickColor() requires the Color Picker extension (version 2.1 or greater).*/
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. */
#if OPAQUE_UPP_TYPES
    EXTERN_API(ColorChangedUPP)
    NewColorChangedUPP             (ColorChangedProcPtr     userRoutine);

    EXTERN_API(NColorChangedUPP)
    NewNColorChangedUPP            (NColorChangedProcPtr    userRoutine);

    EXTERN_API(UserEventUPP)
    NewUserEventUPP                (UserEventProcPtr        userRoutine);

    EXTERN_API(void)
    DisposeColorChangedUPP         (ColorChangedUPP         userUPP);

    EXTERN_API(void)
    DisposeNColorChangedUPP        (NColorChangedUPP        userUPP);

    EXTERN_API(void)
    DisposeUserEventUPP            (UserEventUPP            userUPP);

    EXTERN_API(void)
    InvokeColorChangedUPP          (long                    userData,
                                    PMColor *               newColor,
                                    ColorChangedUPP         userUPP);

    EXTERN_API(void)
    InvokeNColorChangedUPP         (long                    userData,
                                    NPMColor *              newColor,
                                    NColorChangedUPP        userUPP);

    EXTERN_API(Boolean)
    InvokeUserEventUPP             (EventRecord *           event,
                                    UserEventUPP            userUPP);

#else
    enum { uppColorChangedProcInfo = 0x000003C0 };                  /* pascal no_return_value Func(4_bytes, 4_bytes) */
    enum { uppNColorChangedProcInfo = 0x000003C0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes) */
    enum { uppUserEventProcInfo = 0x000000D0 };                     /* pascal 1_byte Func(4_bytes) */
    #define NewColorChangedUPP(userRoutine)                         (ColorChangedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppColorChangedProcInfo, GetCurrentArchitecture())
    #define NewNColorChangedUPP(userRoutine)                        (NColorChangedUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNColorChangedProcInfo, GetCurrentArchitecture())
    #define NewUserEventUPP(userRoutine)                            (UserEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppUserEventProcInfo, GetCurrentArchitecture())
    #define DisposeColorChangedUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
    #define DisposeNColorChangedUPP(userUPP)                        DisposeRoutineDescriptor(userUPP)
    #define DisposeUserEventUPP(userUPP)                            DisposeRoutineDescriptor(userUPP)
    #define InvokeColorChangedUPP(userData, newColor, userUPP)      CALL_TWO_PARAMETER_UPP((userUPP), uppColorChangedProcInfo, (userData), (newColor))
    #define InvokeNColorChangedUPP(userData, newColor, userUPP)     CALL_TWO_PARAMETER_UPP((userUPP), uppNColorChangedProcInfo, (userData), (newColor))
    #define InvokeUserEventUPP(event, userUPP)                      (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppUserEventProcInfo, (event))
#endif
/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
#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)


#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__ */





See more files for this project here

guliverkli

Home of VobSub, Media Player Classic (MPC) and other misc utils.

Project homepage: http://sourceforge.net/projects/guliverkli
Programming language(s): C,C++,PHP
License: other

  ADSP.h
  ADSPSecure.h
  AEDataModel.h
  AEObjects.h
  AEPackObject.h
  AERegistry.h
  AEUserTermTypes.h
  AGP.h
  AIFF.h
  ASDebugging.h
  ASRegistry.h
  ATA.h
  ATSLayoutTypes.h
  ATSTypes.h
  ATSUnicode.h
  AVComponents.h
  AVLTree.h
  Aliases.h
  Appearance.h
  AppleEvents.h
  AppleGuide.h
  AppleScript.h
  AppleTalk.h
  Balloons.h
  CFArray.h
  CFBag.h
  CFBase.h
  CFBundle.h
  CFCharacterSet.h
  CFData.h
  CFDate.h
  CFDictionary.h
  CFNumber.h
  CFPlugIn.h
  CFPreferences.h
  CFPropertyList.h
  CFSet.h
  CFString.h
  CFStringEncodingExt.h
  CFTimeZone.h
  CFURL.h
  CFURLAccess.h
  CMAcceleration.h
  CMApplication.h
  CMCalibrator.h
  CMComponent.h
  CMConversions.h
  CMICCProfile.h
  CMMComponent.h
  CMPRComponent.h
  CMScriptingPlugin.h
  CRMSerialDevices.h
  CTBUtilities.h
  CarbonEvents.h
  CardServices.h
  CodeFragments.h
  Collections.h
  ColorPicker.h
  ColorPickerComponents.h
  CommResources.h
  Components.h
  ConditionalMacros.h
  ConnectionTools.h
  Connections.h
  ControlDefinitions.h
  ControlStrip.h
  Controls.h
  CoreFoundation.h
  CryptoMessageSyntax.h
  CursorDevices.h
  DatabaseAccess.h
  DateTimeUtils.h
  Debugging.h
  DeskBus.h
  DeviceControl.h
  Devices.h
  Dialogs.h
  Dictionary.h
  DigitalSignature.h
  DiskInit.h
  Disks.h
  Displays.h
  Drag.h
  DrawSprocket.h
  DriverFamilyMatching.h
  DriverGestalt.h
  DriverServices.h
  DriverSupport.h
  DriverSynchronization.h
  ENET.h
  EPPC.h
  Editions.h
  Endian.h
  Events.h
  FSM.h
  FileSigning.h
  FileTransferTools.h
  FileTransfers.h
  FileTypesAndCreators.h
  Files.h