internal HitListEntry(PagePolygon pp, float x, float y, PageDrawing pd)
 {
     pi = pp;
     poly = new PointF[pp.Points.Length];
     for (int i = 0; i < pp.Points.Length; i++)
     {
         poly[i].X = pd.PixelsX(pp.Points[i].X + x);
         poly[i].Y = pd.PixelsY(pp.Points[i].Y + y);
     }
     rect = RectangleF.Empty;
 }
        private bool _ShowWaitDialog = true;    // show wait dialog when running report
        
		public RdlViewer()
		{
			_SourceFileName=null;
			_SourceRdl=null;
			_Parameters=null;				// parameters to run the report
			_pgs=null;						// the pages of the report to view
			_loadFailed=false;	
			_PageWidth=0;
			_PageHeight=0;
			_ReportDescription=null;
			_ReportAuthor=null;
			_ReportName=null;
			_zoom=-1;						// force zoom to be calculated

			// Get our graphics DPI					   
			Graphics g = null;
			try
			{
				g = this.CreateGraphics(); 
				DpiX = g.DpiX;
				DpiY = g.DpiY;
			}
			catch
			{
				DpiX = DpiY = 96;
			}
			finally
			{
				if (g != null)
					g.Dispose();
			}

			_ScrollMode = ScrollModeEnum.Continuous;

			// Handle the controls
			_vScroll = new VScrollBar();
			_vScroll.Scroll += new ScrollEventHandler(this.VerticalScroll);
			_vScroll.Enabled = false;

			// tooltip 
			_vScrollToolTip = new ToolTip();
			_vScrollToolTip.AutomaticDelay = 100;	// .1 seconds
			_vScrollToolTip.AutoPopDelay = 1000;	// 1 second
			_vScrollToolTip.ReshowDelay = 100;		// .1 seconds
			_vScrollToolTip.InitialDelay = 10;		// .01 seconds
			_vScrollToolTip.ShowAlways = false;
			_vScrollToolTip.SetToolTip(_vScroll, "");

			_hScroll = new HScrollBar();
			_hScroll.Scroll += new ScrollEventHandler(this.HorizontalScroll);
			_hScroll.Enabled = false;

			_DrawPanel = new PageDrawing(null);
            _DrawPanel.Parent = this;
			_DrawPanel.Paint += new PaintEventHandler(this.DrawPanelPaint);
			_DrawPanel.Resize += new EventHandler(this.DrawPanelResize); 
			_DrawPanel.MouseWheel +=new MouseEventHandler(DrawPanelMouseWheel);
            _DrawPanel.KeyDown += new KeyEventHandler(DrawPanelKeyDown);

			_RunButton = new Button();
			_RunButton.Parent = this;
			_RunButton.Text = "Run Report";
			_RunButton.Width = 90;
			_RunButton.FlatStyle = FlatStyle.Flat;
			_RunButton.Click += new System.EventHandler(ParametersViewClick);

			_WarningButton = new PictureBox();
			_WarningButton.Parent = this;
			_WarningButton.Width = 15;
			_WarningButton.Height = 15;
			_WarningButton.Paint +=new PaintEventHandler(_WarningButton_Paint);
			_WarningButton.Click += new System.EventHandler(WarningClick);
			ToolTip tip = new ToolTip();
			tip.AutomaticDelay = 500;
			tip.ShowAlways = true;
			tip.SetToolTip(_WarningButton, "Click to see Report Warnings");

			_ParameterPanel = new ScrollableControl();

            _FindCtl = new RdlViewerFind();
            _FindCtl.Height = 27;
            _FindCtl.Parent = this;
            _FindCtl.Viewer = this;
            _FindCtl.Visible = false;

			this.Layout +=new LayoutEventHandler(RdlViewer_Layout);
			this.SuspendLayout();		 

			// Must be added in this order for DockStyle to work correctly
            this.Controls.Add(_FindCtl);
			this.Controls.Add(_DrawPanel);
			this.Controls.Add(_vScroll);
			this.Controls.Add(_hScroll);
			this.Controls.Add(_ParameterPanel);

			this.ResumeLayout(false);
		}