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

GetTrackBarDrawingInfo() private method

private GetTrackBarDrawingInfo ( TrackBar tb, float &pixels_betweenticks, Rectangle &thumb_area, Rectangle &thumb_pos, Point &channel_startpoint, Point &bottomtick_startpoint, Point &toptick_startpoint ) : void
tb TrackBar
pixels_betweenticks float
thumb_area System.Drawing.Rectangle
thumb_pos System.Drawing.Rectangle
channel_startpoint System.Drawing.Point
bottomtick_startpoint System.Drawing.Point
toptick_startpoint System.Drawing.Point
return void
		private void GetTrackBarDrawingInfo (TrackBar tb, out float pixels_betweenticks, out Rectangle thumb_area, out Rectangle thumb_pos, out Point channel_startpoint, out Point bottomtick_startpoint, out Point toptick_startpoint)
		{
			thumb_area = Rectangle.Empty;
			thumb_pos = Rectangle.Empty;
			
			if (tb.Orientation == Orientation.Vertical) {
				toptick_startpoint = new Point ();
				bottomtick_startpoint = new Point ();
				channel_startpoint = new Point ();
				float pixel_len;
				const int space_from_right = 8;
				const int space_from_left = 8;
				const int space_from_bottom = 11;
				Rectangle area = tb.ClientRectangle;

				switch (tb.TickStyle) {
				case TickStyle.BottomRight:
				case TickStyle.None:
					channel_startpoint.Y = 8;
					channel_startpoint.X = 9;
					bottomtick_startpoint.Y = 13;
					bottomtick_startpoint.X = 24;
					break;
				case TickStyle.TopLeft:
					channel_startpoint.Y = 8;
					channel_startpoint.X = 19;
					toptick_startpoint.Y = 13;
					toptick_startpoint.X = 8;
					break;
				case TickStyle.Both:
					channel_startpoint.Y = 8;
					channel_startpoint.X = 18;
					bottomtick_startpoint.Y = 13;
					bottomtick_startpoint.X = 32;
					toptick_startpoint.Y = 13;
					toptick_startpoint.X = 8;
					break;
				default:
					break;
				}

				thumb_area.X = area.X + channel_startpoint.X;
				thumb_area.Y = area.Y + channel_startpoint.Y;
				thumb_area.Height = area.Height - space_from_right - space_from_left;
				thumb_area.Width = TrackBarVerticalTrackWidth;

				pixel_len = thumb_area.Height - 11;
				if (tb.Maximum == tb.Minimum) {
					pixels_betweenticks = 0;
				} else {
					pixels_betweenticks = pixel_len / (tb.Maximum - tb.Minimum);
				}

				thumb_pos.Y = thumb_area.Bottom - space_from_bottom - (int)(pixels_betweenticks * (float)(tb.Value - tb.Minimum));
			} else {	
				toptick_startpoint = new Point ();
				bottomtick_startpoint = new Point ();
				channel_startpoint = new Point ();
				float pixel_len;
				const int space_from_right = 8;
				const int space_from_left = 8;
				Rectangle area = tb.ClientRectangle;
							
				switch (tb.TickStyle) {
				case TickStyle.BottomRight:
				case TickStyle.None:
					channel_startpoint.X = 8;
					channel_startpoint.Y = 9;
					bottomtick_startpoint.X = 13;
					bottomtick_startpoint.Y = 24;				
					break;
				case TickStyle.TopLeft:
					channel_startpoint.X = 8;
					channel_startpoint.Y = 19;
					toptick_startpoint.X = 13;
					toptick_startpoint.Y = 8;
					break;
				case TickStyle.Both:
					channel_startpoint.X = 8;
					channel_startpoint.Y = 18;	
					bottomtick_startpoint.X = 13;
					bottomtick_startpoint.Y = 32;				
					toptick_startpoint.X = 13;
					toptick_startpoint.Y = 8;				
					break;
				default:
					break;
				}
							
				thumb_area.X = area.X + channel_startpoint.X;
				thumb_area.Y = area.Y + channel_startpoint.Y;
				thumb_area.Width = area.Width - space_from_right - space_from_left;
				thumb_area.Height = TrackBarHorizontalTrackHeight;

				pixel_len = thumb_area.Width - 11;
				if (tb.Maximum == tb.Minimum) {
					pixels_betweenticks = 0;
				} else {
					pixels_betweenticks = pixel_len / (tb.Maximum - tb.Minimum);
				}

				thumb_pos.X = channel_startpoint.X + (int)(pixels_betweenticks * (float) (tb.Value - tb.Minimum));
			}

			thumb_pos.Size = TrackBarGetThumbSize (tb);
		}
ThemeWin32Classic