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

PrintPreviewControlPaint() public method

public PrintPreviewControlPaint ( PaintEventArgs pe, System.Windows.Forms.PrintPreviewControl preview, Size page_size ) : void
pe PaintEventArgs
preview System.Windows.Forms.PrintPreviewControl
page_size System.Drawing.Size
return void
		public override void PrintPreviewControlPaint (PaintEventArgs pe, PrintPreviewControl preview, Size page_size)
		{
			int padding = 8;
			PreviewPageInfo[] pis = preview.page_infos;
			if (pis == null)
				return;

			int page_x, page_y;

			int width = page_size.Width * preview.Columns + padding * (preview.Columns - 1) + 2 * padding;
			int height = page_size.Height * (preview.Rows + 1) + padding * preview.Rows + 2 * padding;

			Rectangle viewport = preview.ViewPort;

			pe.Graphics.Clip = new Region (viewport);

			/* center things if we can */
			int off_x = viewport.Width / 2 - width / 2;
			if (off_x < 0) off_x = 0;
			int off_y = viewport.Height / 2 - height / 2;
			if (off_y < 0) off_y = 0;

			page_y = off_y + padding - preview.vbar_value;

			if (preview.StartPage > 0) {
				int p = preview.StartPage - 1;
				for (int py = 0; py < preview.Rows + 1; py ++) {
					page_x = off_x + padding - preview.hbar_value;
					for (int px = 0; px < preview.Columns; px ++) {
						if (p >= pis.Length)
							continue;
						Image image = preview.image_cache[p];
						if (image == null)
							image = pis[p].Image;
						Rectangle dest = new Rectangle (new Point (page_x, page_y), page_size);

						pe.Graphics.DrawImage (image, dest, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);

						page_x += padding + page_size.Width;
						p++;
					}
					page_y += padding + page_size.Height;
				}
			}
		}
		#endregion      // PrintPreviewControl
ThemeWin32Classic