System.Windows.Forms.ThemeWin32Classic.TrackBarValueFromMousePosition C# (CSharp) Method

TrackBarValueFromMousePosition() public method

public TrackBarValueFromMousePosition ( int x, int y, TrackBar tb ) : int
x int
y int
tb TrackBar
return int
		public override int TrackBarValueFromMousePosition (int x, int y, TrackBar tb)
		{
			int result = tb.Value;
			int value_pos = tb.Value;
			float pixels_betweenticks;
			Rectangle thumb_pos = Rectangle.Empty, thumb_area = Rectangle.Empty;
			Point channel_startpoint = Point.Empty, na_point = Point.Empty;
			
			GetTrackBarDrawingInfo (tb, out pixels_betweenticks, out thumb_area, out thumb_pos, out channel_startpoint, out na_point, out na_point);
			
			/* Convert thumb position from mouse position to value*/
			if (tb.Orientation == Orientation.Vertical) {
				value_pos = (int)Math.Round (((thumb_area.Bottom - y - (float)thumb_pos.Height / 2) / (float)pixels_betweenticks), 0);

				if (value_pos + tb.Minimum > tb.Maximum)
					value_pos = tb.Maximum - tb.Minimum;
				else if (value_pos + tb.Minimum < tb.Minimum)
					value_pos = 0;

				result = value_pos + tb.Minimum;
			} else {
				value_pos = (int)Math.Round (((x - channel_startpoint.X - (float)thumb_pos.Width / 2) / (float) pixels_betweenticks), 0);

				if (value_pos + tb.Minimum > tb.Maximum)
					value_pos = tb.Maximum - tb.Minimum;
				else if (value_pos + tb.Minimum < tb.Minimum)
					value_pos = 0;

				result = value_pos + tb.Minimum;
			}
			
			return result;
		}
		
ThemeWin32Classic