hl2_src-leak-2017/src/utils/mxtk/mxchoosecolor.cpp

49 lines
1.2 KiB
C++

//
// mxToolKit (c) 1999 by Mete Ciragan
//
// file: mxChooseColor.cpp
// implementation: Win32 API
// last modified: Mar 14 1999, Mete Ciragan
// copyright: The programs and associated files contained in this
// distribution were developed by Mete Ciragan. The programs
// are not in the public domain, but they are freely
// distributable without licensing fees. These programs are
// provided without guarantee or warrantee expressed or
// implied.
//
#include "mxtk/mxChooseColor.h"
#include "mxtk/mxWindow.h"
#include <windows.h>
#include <commdlg.h>
bool
mxChooseColor (mxWindow *parent, int *r, int *g, int *b)
{
CHOOSECOLOR cc;
static COLORREF custColors[16];
BYTE rr = *r;
BYTE gg = *g;
BYTE bb = *b;
memset (&cc, 0, sizeof (CHOOSECOLOR));
cc.lStructSize = sizeof (CHOOSECOLOR);
cc.hwndOwner = parent ? (HWND) parent->getHandle ():NULL;
cc.rgbResult = RGB (rr, gg, bb);
cc.lpCustColors = custColors;
cc.Flags = CC_ANYCOLOR | CC_FULLOPEN | CC_RGBINIT;
if (ChooseColor (&cc))
{
*r = (int) GetRValue (cc.rgbResult);
*g = (int) GetGValue (cc.rgbResult);
*b = (int) GetBValue (cc.rgbResult);
return true;
}
return false;
}