System.Windows.Forms.XplatUICarbon.DrawReversibleRectangle C# (CSharp) Method

DrawReversibleRectangle() private method

private DrawReversibleRectangle ( IntPtr handle, Rectangle rect, int line_width ) : void
handle System.IntPtr
rect System.Drawing.Rectangle
line_width int
return void
		internal override void DrawReversibleRectangle(IntPtr handle, Rectangle rect, int line_width) {
			Rectangle size_rect = rect;
			int new_x = 0;
			int new_y = 0;

			if (ReverseWindowMapped) {
				HideWindow (ReverseWindow);
				ReverseWindowMapped = false;
			} else {
				ClientToScreen(handle, ref new_x, ref new_y);

				size_rect.X += new_x;
				size_rect.Y += new_y;

				SizeWindow (size_rect, ReverseWindow);
				ShowWindow (ReverseWindow);

				rect.X = 0;
				rect.Y = 0;
				rect.Width -= 1;
				rect.Height -= 1;

				Graphics g = Graphics.FromHwnd (HIViewGetRoot (ReverseWindow));

				for (int i = 0; i < line_width; i++) {
					g.DrawRectangle (ThemeEngine.Current.ResPool.GetPen (Color.Black), rect);
					rect.X += 1;
					rect.Y += 1;
					rect.Width -= 1;
					rect.Height -= 1;
				}
	
				g.Flush ();
				g.Dispose ();
				
				ReverseWindowMapped = true;
			}
		}
		#endregion
XplatUICarbon