コード例 #1
0
		protected override void SetPercent(float percent)
		{
			base.SetPercent(percent);
			m_selectedColor.Lightness = percent / 100;
			SelectedHSLColor = m_selectedColor;
		}
コード例 #2
0
		void SetColor(PointF mousepoint)
		{
			if (WheelRectangle.Contains(mousepoint) == false)
				return;

			PointF center = Util.Center(ColorWheelRectangle);
			double radius = Radius(ColorWheelRectangle);
			double dx = Math.Abs(mousepoint.X - center.X);
			double dy = Math.Abs(mousepoint.Y - center.Y);
			double angle = Math.Atan(dy / dx) / Math.PI * 180;
			double dist = Math.Pow((Math.Pow(dx, 2) + (Math.Pow(dy, 2))), 0.5);
			double saturation = dist/radius;
			//if (dist > radius + 5) // give 5 pixels slack
			//	return;
			if (dist < 6)
				saturation = 0; // snap to center

			if (mousepoint.X < center.X)
				angle = 180 - angle;
			if (mousepoint.Y > center.Y)
				angle = 360 - angle;

			SelectedHSLColor = new HSLColor(angle, saturation, SelectedHSLColor.Lightness);
		}
コード例 #3
0
ファイル: ColorWheelCtrl.cs プロジェクト: jjacksons/GLUE
 void OnWheelColorChanged(object sender, EventArgs e)
 {
     m_selectedColor.Hue = m_colorWheel.SelectedHSLColor.Hue;
     m_selectedColor.Saturation = m_colorWheel.SelectedHSLColor.Saturation;
     SelectedHSLColor = m_selectedColor;
 }
コード例 #4
0
		protected override bool ProcessDialogKey(Keys keyData)
		{
			HSLColor c = SelectedHSLColor;
			double hue = c.Hue;
			int step = 1;
			if ((keyData & Keys.Control) == Keys.Control)
				step = 5;

			if ((keyData & Keys.Up) == Keys.Up)
				hue += step;
			if ((keyData & Keys.Down) == Keys.Down)
				hue -= step;
			if (hue >= 360)
				hue = 0;
			if (hue < 0)
				hue = 359;

			if (hue != c.Hue)
			{
				c.Hue = hue;
				SelectedHSLColor = c;
				return true;
			}
			return base.ProcessDialogKey(keyData);
		}
コード例 #5
0
ファイル: ColorWheelCtrl.cs プロジェクト: jjacksons/GLUE
 void OnLightnessColorChanged(object sender, EventArgs e)
 {
     m_selectedColor.Lightness = m_colorBar.SelectedHSLColor.Lightness;
     SelectedHSLColor = m_selectedColor;
 }