Example #1
0
void CColorPicker::MessageReceived(BMessage *msg)
{
	roSColor *c;
	long l;
	
	if (msg->WasDropped() && msg->FindData("roColour", 'roCr', (const void **)&c, &l) == B_NO_ERROR)
	{
		fNewColor = *c;
		fHSV->SetColor(fNewColor);
		fRGB->SetColor(fNewColor);
		fON->SetNewColor(f2rgb(fNewColor.m_Red, fNewColor.m_Green,
			fNewColor.m_Blue, fNewColor.m_Alpha));
		return;
	}

	switch (msg->what)
	{
		case msg_EndTracking:
			if (fStayOpen)
				PostNewColor();
			break;
		
		case msg_RawChange:
			fRGB->MessageReceived(msg);
			break;
	
		case msg_ManualChange:
			fHSV->SetColor(fNewColor);
			fON->SetOldColor(f2rgb(fNewColor.m_Red, fNewColor.m_Green,
				fNewColor.m_Blue, fNewColor.m_Alpha));
			fON->SetNewColor(f2rgb(fNewColor.m_Red, fNewColor.m_Green,
				fNewColor.m_Blue, fNewColor.m_Alpha));
			fRGB->SetColor(fNewColor);
			break;
	
		case msg_OK:
			PostNewColor();
		// fall through
		case msg_Cancel:
			Quit();
			break;
		
		default:
			BWindow::MessageReceived(msg);
	}
} /* CColorPicker::MessageReceived */
Example #2
0
void CColorPicker::SetHSV(float h, float s, float v)
{
	fNewColor.m_Hue = h;
	hsv2rgb(h, s, v, fNewColor.m_Red, fNewColor.m_Green, fNewColor.m_Blue);
	
	fON->SetNewColor(f2rgb(fNewColor.m_Red, fNewColor.m_Green,
		fNewColor.m_Blue, fNewColor.m_Alpha));
	
	fRGB->SetColor(fNewColor);
} /* CColorPicker::SetHSV */
Example #3
0
void CColorPicker::SetRGB(float r, float g, float b)
{
	fNewColor.m_Red = r;
	fNewColor.m_Green = g;
	fNewColor.m_Blue = b;
	
	float s, v;
	
	rgb2hsv(r, g, b, fNewColor.m_Hue, s, v);
	
	fON->SetNewColor(f2rgb(r, g, b, fNewColor.m_Alpha));
	
	fHSV->SetColor(fNewColor);
} /* CColorPicker::SetRGB */
Example #4
0
rgb_color ro2rgb(roSColor& ro)
{
	return f2rgb(ro.m_Red, ro.m_Green, ro.m_Blue);
} /* ro2rgb */
Example #5
0
void CColorPicker::PostNewColor()
{
	rgb_color c = f2rgb(fNewColor.m_Red, fNewColor.m_Green, fNewColor.m_Blue, 1.0);
	fMessage.ReplaceData("color", B_RGB_COLOR_TYPE, &c, 4);
	fCaller->Looper()->PostMessage(&fMessage, fCaller);
} /* CColorPicker::PostNewColor */
Example #6
0
CColorPicker::operator rgb_color() const
{
	return f2rgb(fNewColor.m_Red, fNewColor.m_Green, fNewColor.m_Blue, fNewColor.m_Alpha);
} /* CColorPicker::operator rgb_color */