/*++ Copyright (c) 1990-1998, Microsoft Corporation All rights reserved. Module Name: color.h Abstract: This module contains the header information for the Win32 color dialogs. Revision History: --*/ // // Include Files. // #include #include // // Constant Declarations. // #define COLORBOXES 64 #define NUM_X_BOXES 8 #define BOX_X_MARGIN 5 #define BOX_Y_MARGIN 5 // // Range of values for HLS scrollbars. // HLS-RGB conversions work best when RANGE is divisible by 6. // #define RANGE 240 #define HLSMAX RANGE #define RGBMAX 255 #define HUEINC 4 #define SATINC 8 #define LUMINC 8 // // This used to be in wingdi.h, but recently moved to wingdip.h // Including wingdip.h causes too many compiler errors, so define // the one constant we need here. // #define HS_DITHEREDTEXTCLR 9 #define COLORPROP (LPCTSTR) 0xA000L // // Typedef Declarations. // typedef struct { UINT ApiType; LPCHOOSECOLOR pCC; HANDLE hLocal; HANDLE hDialog; HPALETTE hPal; DWORD currentRGB; WORD currentHue; WORD currentSat; WORD currentLum; WORD nHueWidth; WORD nSatHeight; WORD nLumHeight; WORD nCurMix; WORD nCurDsp; WORD nCurBox; WORD nHuePos; WORD nSatPos; WORD nLumPos; RECT rOriginal; RECT rRainbow; RECT rLumScroll; RECT rLumPaint; RECT rCurrentColor; RECT rNearestPure; RECT rColorSamples; BOOL bFoldOut; DWORD rgbBoxColor[COLORBOXES]; #ifdef UNICODE LPCHOOSECOLORA pCCA; #endif } COLORINFO; typedef COLORINFO *PCOLORINFO; #define LPDIS LPDRAWITEMSTRUCT // // Extern Declarations. // extern HDC hDCFastBlt; extern DWORD rgbClient; extern WORD gHue,gSat,gLum; extern HBITMAP hRainbowBitmap; extern BOOL bMouseCapture; extern WNDPROC lpprocStatic; extern SHORT nDriverColors; extern DWORD rgbBoxColor[COLORBOXES]; extern TCHAR szOEMBIN[]; extern RECT rColorBox[COLORBOXES]; extern SHORT nBoxHeight, nBoxWidth; extern HWND hSave; extern WNDPROC qfnColorDlg; // // Context Help IDs. // const static DWORD aColorHelpIDs[] = // Context Help IDs { COLOR_BOX1, IDH_COLOR_BASIC, COLOR_CUSTOM1, IDH_COLOR_CUSTOM_CUSTOM, COLOR_MIX, IDH_COLOR_DEFINE, COLOR_RAINBOW, IDH_COLOR_SAMPLE_COLOR, COLOR_LUMSCROLL, IDH_COLOR_SAMPLE_SCROLL, COLOR_CURRENT, IDH_COLOR_COLOR_SOLID, COLOR_SOLID, IDH_COLOR_COLOR_SOLID, COLOR_SOLID_LEFT, IDH_COLOR_COLOR_SOLID, COLOR_SOLID_RIGHT, IDH_COLOR_COLOR_SOLID, COLOR_HUEACCEL, IDH_COLOR_HUE, COLOR_HUE, IDH_COLOR_HUE, COLOR_SATACCEL, IDH_COLOR_SAT, COLOR_SAT, IDH_COLOR_SAT, COLOR_LUMACCEL, IDH_COLOR_LUM, COLOR_LUM, IDH_COLOR_LUM, COLOR_REDACCEL, IDH_COLOR_RED, COLOR_RED, IDH_COLOR_RED, COLOR_GREENACCEL, IDH_COLOR_GREEN, COLOR_GREEN, IDH_COLOR_GREEN, COLOR_BLUEACCEL, IDH_COLOR_BLUE, COLOR_BLUE, IDH_COLOR_BLUE, COLOR_ADD, IDH_COLOR_ADD, 0, 0 }; // // Function Prototypes. // // // color.c // BOOL ChooseColorX( PCOLORINFO pCI); BOOL_PTR CALLBACK ColorDlgProc( HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam); BOOL ChangeColorBox( register PCOLORINFO pCI, DWORD dwRGBcolor); VOID HiLiteBox( HDC hDC, SHORT nBox, SHORT fStyle); VOID ChangeBoxSelection( PCOLORINFO pCI, SHORT nNewBox); VOID ChangeBoxFocus( PCOLORINFO pCI, SHORT nNewBox); BOOL ColorKeyDown( WPARAM wParam, int *id, PCOLORINFO pCI, BOOL bRTL); VOID PaintBox( PCOLORINFO pCI, register HDC hDC, SHORT i); BOOL InitScreenCoords( HWND hDlg, PCOLORINFO pCI); VOID SetupRainbowCapture( PCOLORINFO pCI); BOOL_PTR InitColor( HWND hDlg, WPARAM wParam, PCOLORINFO pCI); VOID ColorPaint( HWND hDlg, PCOLORINFO pCI, HDC hDC, LPRECT lpPaintRect); LONG WINAPI WantArrows( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); DWORD MapColor( PCOLORINFO pCI, DWORD rgb); VOID TermColor(); #ifdef UNICODE VOID ThunkChooseColorA2W( PCOLORINFO pCI); VOID ThunkChooseColorW2A( PCOLORINFO pCI); #endif // // color2.c // VOID ChangeColorSettings( register PCOLORINFO pCI); VOID LumArrowPaint( HDC hDC, SHORT y, PCOLORINFO pCI); VOID EraseLumArrow( HDC hDC, PCOLORINFO pCI); VOID EraseCrossHair( HDC hDC, PCOLORINFO pCI); VOID CrossHairPaint( register HDC hDC, SHORT x, SHORT y, PCOLORINFO pCI); VOID NearestSolid( register PCOLORINFO pCI); VOID HLSPostoHLS( SHORT nHLSEdit, register PCOLORINFO pCI); VOID HLStoHLSPos( SHORT nHLSEdit, register PCOLORINFO pCI); VOID SetHLSEdit( SHORT nHLSEdit, register PCOLORINFO pCI); VOID SetRGBEdit( SHORT nRGBEdit, PCOLORINFO pCI); BOOL InitRainbow( register PCOLORINFO pCI); VOID PaintRainbow( HDC hDC, LPRECT lpRect, register PCOLORINFO pCI); void RainbowPaint( register PCOLORINFO pCI, HDC hDC, LPRECT lpPaintRect); VOID RGBtoHLS( DWORD lRGBColor); WORD HueToRGB( WORD n1, WORD n2, WORD hue); DWORD HLStoRGB( WORD hue, WORD lum, WORD sat); SHORT RGBEditChange( SHORT nDlgID, PCOLORINFO pCI);