Exemplo n.º 1
0
		public void AdjustScrollRange_GrowFootnoteStream()
		{
			DummyVwLayoutStream stream = new DummyVwLayoutStream();
			DummyVwLayoutStream footnoteStream = new DummyVwLayoutStream();
			GoofyDivision divMgr = new GoofyDivision(stream);
			DummyPublication pubCtrl = new DummyPublication(null, divMgr, DateTime.Now);
			pubCtrl.PageHeight = 72000 * 6;
			divMgr.m_overrideHeight = divMgr.AvailablePageHeightInPrinterPixels;
			pubCtrl.CreatePages();
			Assert.AreEqual(2, pubCtrl.PageCount);
			divMgr.CallAddElement(pubCtrl.Pages[0], divMgr.m_overrideHeight - 100,
				1, 1, divMgr.InsideMarginInPrinterPixels, 20, divMgr.AvailablePageHeightInPrinterPixels);
			int origTopOfPageTwo = divMgr.m_overrideHeight - 100;
			((DummyPage)pubCtrl.Pages[0]).CallAddPageElement(divMgr, footnoteStream, false,
				new Rectangle(divMgr.InsideMarginInPrinterPixels, divMgr.m_overrideHeight - 100, divMgr.AvailablePageWidthInPrinterPixels, 100),
				0, false, 1, 1, 0, 100, false, true);
			divMgr.CallAddElement(pubCtrl.Pages[1], 100, 1, 1, divMgr.OutsideMarginInPrinterPixels,
				origTopOfPageTwo, divMgr.AvailablePageHeightInPrinterPixels);
			((DummyPage)pubCtrl.Pages[1]).CallAddPageElement(divMgr, footnoteStream, false,
				new Rectangle(divMgr.InsideMarginInPrinterPixels, divMgr.m_overrideHeight - 100, divMgr.AvailablePageWidthInPrinterPixels, 100),
				101, false, 1, 1, 0, 100, false, true);
			Point origScrollPos = pubCtrl.ScrollPosition;
			Size origScrollSize = pubCtrl.AutoScrollMinSize;
			pubCtrl.AdjustScrollRange(footnoteStream, 0, 0, 300, 95);
			Assert.AreEqual(2, pubCtrl.PageCount);
			Assert.AreEqual(origScrollPos, pubCtrl.ScrollPosition);
			Assert.AreEqual(origScrollSize, pubCtrl.AutoScrollMinSize);
			Assert.AreEqual(0, pubCtrl.Pages[0].PageElements[1].OffsetToTopPageBoundary);
			Assert.AreEqual(401, pubCtrl.Pages[1].PageElements[1].OffsetToTopPageBoundary);
			Assert.AreEqual(20, pubCtrl.Pages[0].OffsetFromTopOfDiv(divMgr));
			Assert.AreEqual(origTopOfPageTwo, pubCtrl.Pages[1].OffsetFromTopOfDiv(divMgr));
		}
Exemplo n.º 2
0
		public void AdjustScrollRange_GrowSecondDivOnPageTwo()
		{
			DummyVwLayoutStream stream1 = new DummyVwLayoutStream();
			DummyVwLayoutStream stream2 = new DummyVwLayoutStream();
			GoofyDivision divMgr1 = new GoofyDivision(stream1);
			GoofyDivision divMgr2 = new GoofyDivision(stream2);
			DummyPublication pubCtrl = new DummyPublication(null, divMgr1, DateTime.Now);
			pubCtrl.PageHeight = 72000 * 6;
			pubCtrl.AddDivision(divMgr2);
			divMgr1.m_overrideHeight = divMgr1.AvailablePageHeightInPrinterPixels;
			divMgr2.m_overrideHeight = divMgr2.AvailablePageHeightInPrinterPixels;
			divMgr2.StartAt = DivisionStartOption.Continuous;
			pubCtrl.CreatePages();
			Assert.AreEqual(3, pubCtrl.PageCount);
			divMgr1.CallAddElement(pubCtrl.Pages[0], divMgr1.m_overrideHeight - 20, 1, 1,
				divMgr1.InsideMarginInPrinterPixels, 20, divMgr1.AvailablePageHeightInPrinterPixels);
			int origTopOfPageTwoDiv1 = divMgr1.m_overrideHeight - 20;
			divMgr1.CallAddElement(pubCtrl.Pages[1], 20, 1, 1, divMgr1.OutsideMarginInPrinterPixels,
				origTopOfPageTwoDiv1, divMgr1.AvailablePageHeightInPrinterPixels);
			Page origPg3 = pubCtrl.Pages[2];
			int origTopOfPageThreeDiv2 = origPg3.OffsetFromTopOfDiv(divMgr2);
			Point origScrollPos = pubCtrl.ScrollPosition;
			Size origScrollSize = pubCtrl.AutoScrollMinSize;
			pubCtrl.AdjustScrollRange(stream2, 0, 0, divMgr2.AvailablePageHeightInPrinterPixels, 0);
			Assert.AreEqual(4, pubCtrl.PageCount);
			Assert.IsFalse(pubCtrl.Pages[0].NeedsLayout);
			Assert.IsFalse(pubCtrl.Pages[1].NeedsLayout,
				"This test simulates a call to AdjustScrollRange that happens in the middle of laying out this page, so it should not get flagged as needing layout.");
			Assert.IsTrue(pubCtrl.Pages[2].NeedsLayout);
			Assert.IsTrue(pubCtrl.Pages[3].NeedsLayout);
			Assert.AreEqual(origScrollPos, pubCtrl.ScrollPosition);
			Assert.AreEqual(origScrollSize.Height * 4 / 3, pubCtrl.AutoScrollMinSize.Height);
			Assert.AreEqual(1, pubCtrl.Pages[0].PageElements.Count);
			Assert.AreEqual(20, pubCtrl.Pages[0].PageElements[0].OffsetToTopPageBoundary);
			Assert.AreEqual(1, pubCtrl.Pages[1].PageElements.Count);
			Assert.AreEqual(origTopOfPageTwoDiv1, pubCtrl.Pages[1].OffsetFromTopOfDiv(divMgr1));
			Assert.AreEqual(0, pubCtrl.Pages[1].OffsetFromTopOfDiv(divMgr2));
			Assert.AreEqual(origPg3, pubCtrl.Pages[3],
				"A page should have been inserted between the original page 2 and page 3.");
			Assert.AreEqual(0, pubCtrl.Pages[2].PageElements.Count);
			Assert.AreEqual(divMgr2.AvailablePageHeightInPrinterPixels,
				pubCtrl.Pages[2].OffsetFromTopOfDiv(divMgr2),
				"Inserted page's offset from top of division 2 should be one ideal page from the top.");
			Assert.AreEqual(0, pubCtrl.Pages[3].PageElements.Count);
			Assert.AreEqual(origTopOfPageThreeDiv2 + divMgr2.AvailablePageHeightInPrinterPixels,
				pubCtrl.Pages[3].OffsetFromTopOfDiv(divMgr2));
		}
Exemplo n.º 3
0
		public void AdjustScrollRange_GrowFirstDivOnPage()
		{
			DummyVwLayoutStream stream = new DummyVwLayoutStream();
			GoofyDivision divMgr = new GoofyDivision(stream);
			DummyPublication pubCtrl = new DummyPublication(null, divMgr, DateTime.Now);
			pubCtrl.PageHeight = 72000 * 6;
			divMgr.m_overrideHeight = divMgr.AvailablePageHeightInPrinterPixels;
			pubCtrl.CreatePages();
			Assert.AreEqual(2, pubCtrl.PageCount);
			divMgr.CallAddElement(pubCtrl.Pages[0], divMgr.m_overrideHeight - 20,
				1, 1, divMgr.InsideMarginInPrinterPixels, 20, divMgr.AvailablePageHeightInPrinterPixels);
			int origTopOfPageTwo = divMgr.m_overrideHeight - 20;
			divMgr.CallAddElement(pubCtrl.Pages[1], 20, 1, 1, divMgr.OutsideMarginInPrinterPixels,
				origTopOfPageTwo, divMgr.AvailablePageHeightInPrinterPixels);
			Point origScrollPos = pubCtrl.ScrollPosition;
			Size origScrollSize = pubCtrl.AutoScrollMinSize;
			pubCtrl.AdjustScrollRange(stream, 0, 0, 300, origTopOfPageTwo - 2000);
			Assert.AreEqual(2, pubCtrl.PageCount);
			Assert.AreEqual(origScrollPos, pubCtrl.ScrollPosition);
			Assert.AreEqual(origScrollSize, pubCtrl.AutoScrollMinSize);
			Assert.AreEqual(20, pubCtrl.Pages[0].PageElements[0].OffsetToTopPageBoundary);
			Assert.AreEqual(origTopOfPageTwo + 300, pubCtrl.Pages[1].PageElements[0].OffsetToTopPageBoundary);
			Assert.IsFalse(pubCtrl.Pages[0].NeedsLayout);
			Assert.IsTrue(pubCtrl.Pages[1].NeedsLayout);
		}
Exemplo n.º 4
0
		public void AdjustScrollRange_ShrinkFirstDivOnPage()
		{
			DummyVwLayoutStream stream = new DummyVwLayoutStream();
			GoofyDivision divMgr = new GoofyDivision(stream);
			DummyPublication pubCtrl = new DummyPublication(null, divMgr, DateTime.Now);
			pubCtrl.PageHeight = 72000 * 6;
			divMgr.m_overrideHeight = divMgr.AvailablePageHeightInPrinterPixels * 2;
			pubCtrl.CreatePages();
			Assert.AreEqual(3, pubCtrl.PageCount);
			Page pg1 = pubCtrl.Pages[0];
			Page pg2 = pubCtrl.Pages[1];
			Page pg3 = pubCtrl.Pages[2];
			divMgr.CallAddElement(pg1, divMgr.AvailablePageHeightInPrinterPixels - 20,
				1, 1, divMgr.InsideMarginInPrinterPixels, 20, divMgr.AvailablePageHeightInPrinterPixels);
			int origTopOfPageTwo = divMgr.AvailablePageHeightInPrinterPixels - 40;
			divMgr.CallAddElement(pg2, divMgr.AvailablePageHeightInPrinterPixels - 20,
				1, 1, divMgr.OutsideMarginInPrinterPixels, origTopOfPageTwo, divMgr.AvailablePageHeightInPrinterPixels);
			int origTopOfPageThree = divMgr.m_overrideHeight - 60;
			divMgr.CallAddElement(pg3, 40, 1, 1, divMgr.InsideMarginInPrinterPixels,
				origTopOfPageThree, divMgr.AvailablePageHeightInPrinterPixels);
			foreach (Page pg in pubCtrl.Pages)
				Assert.AreEqual(pg.PageElements[0].OffsetToTopPageBoundary, pg.OffsetFromTopOfDiv(divMgr));
			Point origScrollPos = pubCtrl.ScrollPosition;
			Size origScrollSize = pubCtrl.AutoScrollMinSize;
			// The following should cause the original page 2 to be deleted and adjust the top of
			// the original page 3 (now page 2) to be the same as the original top of page 2.
			pubCtrl.AdjustScrollRange(stream, 0, 0, -divMgr.AvailablePageHeightInPrinterPixels,
				origTopOfPageTwo - 2000);
			Assert.AreEqual(2, pubCtrl.PageCount);
			Assert.AreEqual(origScrollPos, pubCtrl.ScrollPosition);
			Assert.AreEqual(origScrollSize.Height * 2 / 3, pubCtrl.AutoScrollMinSize.Height);
			Assert.AreEqual(20, pg1.PageElements[0].OffsetToTopPageBoundary);
			Assert.AreEqual(pg3, pubCtrl.Pages[1]);
			Assert.AreEqual(origTopOfPageThree - divMgr.AvailablePageHeightInPrinterPixels,
				pg3.PageElements[0].OffsetToTopPageBoundary);
			Assert.AreEqual(40, pg3.PageElements[0].LocationOnPage.Height);
			Assert.IsFalse(pg1.NeedsLayout);
			Assert.IsTrue(pg3.NeedsLayout);
		}
Exemplo n.º 5
0
		public void AdjustScrollRange_GrowFirstDivOnPage_NoElements()
		{
			DummyVwLayoutStream stream = new DummyVwLayoutStream();
			GoofyDivision divMgr = new GoofyDivision(stream);
			DummyPublication pubCtrl = new DummyPublication(null, divMgr, DateTime.Now);
			pubCtrl.PageHeight = 72000 * 6;
			divMgr.m_overrideHeight = divMgr.AvailablePageHeightInPrinterPixels;
			pubCtrl.CreatePages();
			Assert.AreEqual(2, pubCtrl.PageCount);
			Assert.AreEqual(0, pubCtrl.Pages[0].PageElements.Count);
			Assert.AreEqual(0, pubCtrl.Pages[1].PageElements.Count);
			Point origScrollPos = pubCtrl.ScrollPosition;
			Size origScrollSize = pubCtrl.AutoScrollMinSize;
			pubCtrl.AdjustScrollRange(stream, 0, 0, 300, 0);
			Assert.AreEqual(2, pubCtrl.PageCount);
			Assert.AreEqual(origScrollPos, pubCtrl.ScrollPosition);
			Assert.AreEqual(origScrollSize, pubCtrl.AutoScrollMinSize);
			Assert.AreEqual(0, pubCtrl.Pages[0].PageElements.Count);
			Assert.AreEqual(0, pubCtrl.Pages[1].PageElements.Count);
			Assert.IsTrue(pubCtrl.Pages[0].NeedsLayout);
			Assert.IsTrue(pubCtrl.Pages[1].NeedsLayout);
		}