예제 #1
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Test class that mocks the PageSetupDlg.
		/// </summary>
		/// <param name="pgLayout">The page layout.</param>
		/// <param name="publication">The publication.</param>
		/// <param name="division">The division.</param>
		/// <param name="pubPageInfo">The publication page info.</param>
		/// ------------------------------------------------------------------------------------
		public DummyPageSetupDlg(IPubPageLayout pgLayout, IPublication publication,
			IPubDivision division, List<PubPageInfo> pubPageInfo)
			: base(pgLayout, null, publication, division, null, null, new DummyApp(), pubPageInfo)
		{
			// need to set selected index to something other than 0, otherwise tests fail
			// on machines with default printer set to A4.
			PaperSizeName = "A5";
		}
예제 #2
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Test class that mocks the PageSetupDlg.
 /// </summary>
 /// <param name="pgLayout">The page layout.</param>
 /// <param name="publication">The publication.</param>
 /// <param name="division">The division.</param>
 /// <param name="pubPageInfo">The publication page info.</param>
 /// ------------------------------------------------------------------------------------
 public DummyPageSetupDlg(IPubPageLayout pgLayout, IPublication publication,
                          IPubDivision division, List <PubPageInfo> pubPageInfo)
     : base(pgLayout, null, publication, division, null, null, new DummyApp(), pubPageInfo)
 {
     // need to set selected index to something other than 0, otherwise tests fail
     // on machines with default printer set to A4.
     PaperSizeName = "A5";
 }
예제 #3
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Initializes a new instance of the <see cref="T:TePageSetupDlg"/> class.
		/// </summary>
		/// <param name="wsUser">The user writing system.</param>
		/// <param name="pgLayout">The page layout.</param>
		/// <param name="scr">The Scripture object (which owns the publications).</param>
		/// <param name="publication">The publication.</param>
		/// <param name="division">The division. The NumberOfColumns in the division should be
		/// set before calling this dialog.</param>
		/// <param name="teMainWnd">TE main window (provides callbacks).</param>
		/// <param name="helpTopicProvider">The help topic provider.</param>
		/// <param name="units">The user's prefered measurement units.</param>
		/// <param name="fIsTrialPub">if set to <c>true</c> view from which this dialog
		/// was brought up is Trial Publication view.</param>
		/// <param name="pubPageSizes">The page sizes available for publication.</param>
		/// ------------------------------------------------------------------------------------
		public TePageSetupDlg(int wsUser, IPubPageLayout pgLayout, IScripture scr,
			IPublication publication, IPubDivision division, IPageSetupCallbacks teMainWnd,
			IHelpTopicProvider helpTopicProvider, MsrSysType units, bool fIsTrialPub,
			List<PubPageInfo> pubPageSizes) :
			base(wsUser, pgLayout, scr, publication, division, teMainWnd, helpTopicProvider,
				units, pubPageSizes)
		{
			m_fIsTrialPublication = fIsTrialPub;
			if (!m_chkNonStdChoices.Checked) // following the standard
				m_standardLeadingFactor = m_nudLineSpacing.Value / m_nudBaseCharSize.Value;
		}
예제 #4
0
//		private decimal m_standardLeadingFactor;
        #endregion

        #region Constructor
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Initializes a new instance of the <see cref="T:TePageSetupDlg"/> class.
        /// </summary>
        /// <param name="pgLayout">The page layout.</param>
        /// <param name="scr">The Scripture object (which owns the publications).</param>
        /// <param name="publication">The publication.</param>
        /// <param name="division">The division. The NumberOfColumns in the division should be
        /// set before calling this dialog.</param>
        /// <param name="teMainWnd">TE main window (provides callbacks).</param>
        /// <param name="helpTopicProvider">The help topic provider.</param>
        /// <param name="app">The app.</param>
        /// <param name="fIsTrialPub">if set to <c>true</c> view from which this dialog
        /// was brought up is Trial Publication view.</param>
        /// <param name="pubPageSizes">The page sizes available for publication.</param>
        /// ------------------------------------------------------------------------------------
        public TePageSetupDlg(IPubPageLayout pgLayout, IScripture scr,
                              IPublication publication, IPubDivision division, IPageSetupCallbacks teMainWnd,
                              IHelpTopicProvider helpTopicProvider, IApp app, bool fIsTrialPub,
                              List <PubPageInfo> pubPageSizes) :
            base(pgLayout, scr, publication, division, teMainWnd, helpTopicProvider,
                 app, pubPageSizes)
        {
            m_fIsTrialPublication = fIsTrialPub;
//			if (!m_chkNonStdChoices.Checked) // following the standard
//				m_standardLeadingFactor = m_nudLineSpacing.Value / m_nudBaseCharSize.Value;
        }
예제 #5
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public override void TestSetup()
        {
            base.TestSetup();

            m_pub = CreatePublication(0, 0, false, "TestPub", 0,
                                      BindingSide.Left, 0);

            m_div = AddDivisionToPub(m_pub, false, false, DivisionStartOption.Continuous);
            m_pgl = Cache.ServiceLocator.GetInstance <IPubPageLayoutFactory>().Create();
            m_div.PageLayoutOA = m_pgl;

            m_pubPageInfo = new List <PubPageInfo>();
            m_pubPageInfo.Add(new PubPageInfo("Full Page", 0, 0));
            m_pubPageInfo.Add(new PubPageInfo("5.25 x 8.25", (int)(8.25 * 72000), (int)(5.25 * 72000)));
            m_pubPageInfo.Add(new PubPageInfo("5.8 x 8.7", (int)(8.7 * 72000), (int)(5.8 * 72000)));
        }
예제 #6
0
        public override void Initialize()
        {
            CheckDisposed();
            base.Initialize();

            wsUser = m_inMemoryCache.Cache.DefaultUserWs;
            m_inMemoryCache.InitializeAnnotationDefs();
            m_pub = m_inMemoryCache.CreatePublication(0, 0, false, "TestPub", 0,
                                                      BindingSide.Left, 0);

            m_div = m_inMemoryCache.AddDivisionToPub(m_pub, false, false,
                                                     DivisionStartOption.Continuous);
            m_pgl = new PubPageLayout() as IPubPageLayout;
            m_div.PageLayoutOA    = m_pgl;
            m_div.PageLayoutOAHvo = m_pgl.Hvo;

            m_pubPageInfo = new List <PubPageInfo>();
            m_pubPageInfo.Add(new PubPageInfo("Full Page", 0, 0));
            m_pubPageInfo.Add(new PubPageInfo("5.25 x 8.25", (int)(8.25 * 72000), (int)(5.25 * 72000)));
            m_pubPageInfo.Add(new PubPageInfo("5.8 x 8.7", (int)(8.7 * 72000), (int)(5.8 * 72000)));
        }
예제 #7
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Creates the page setup dialog.
		/// </summary>
		/// <param name="pgl">The PubPageLayout object</param>
		/// <param name="pub">The Publication object</param>
		/// <param name="div">The PubDivision object</param>
		/// <returns></returns>
		/// ------------------------------------------------------------------------------------
		protected override IPageSetupDialog CreatePageSetupDialog(IPubPageLayout pgl,
			IPublication pub, IPubDivision div)
		{
			IWritingSystem wsObj = m_cache.ServiceLocator.WritingSystemManager.UserWritingSystem;

			TePageSetupDlg dlg = new TePageSetupDlg(pgl, m_scr, pub, div, this,
				m_app, m_app, ActiveEditingHelper.IsTrialPublicationView,
				TePublicationsInit.GetPubPageSizes(pub.Name, wsObj.Id));
			InitializePageSetupDlg(dlg);
			return dlg;
		}
예제 #8
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Test class that mocks the PageSetupDlg.
 /// </summary>
 /// <param name="wsUser">The user writing system.</param>
 /// <param name="pgLayout">The page layout.</param>
 /// <param name="publication">The publication.</param>
 /// <param name="division">The division.</param>
 /// <param name="units">The user's prefered measurement units.</param>
 /// <param name="fIsTrialPub">if set to <c>true</c> view from which this dialog
 /// was brought up is "Trial Publication".</param>
 /// <param name="pubPageSizes">The publication page info.</param>
 /// ------------------------------------------------------------------------------------
 public DummyTePageSetupDlg(int wsUser, IPubPageLayout pgLayout, IPublication publication,
                            IPubDivision division, MsrSysType units, bool fIsTrialPub, List <PubPageInfo> pubPageSizes)
     :
     base(wsUser, pgLayout, null, publication, division, null, null, units, fIsTrialPub, pubPageSizes)
 {
 }
예제 #9
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Creates the page setup dialog.
		/// </summary>
		/// <param name="pgl">The PubPageLayout object</param>
		/// <param name="pub">The Publication object</param>
		/// <param name="div">The PubDivision object</param>
		/// <returns></returns>
		/// ------------------------------------------------------------------------------------
		protected virtual IPageSetupDialog CreatePageSetupDialog(IPubPageLayout pgl,
			IPublication pub, IPubDivision div)
		{
			throw new NotImplementedException("Subclass must override CreatePageSetupDialog.");
		}
예제 #10
0
		/// <summary>
		///
		/// </summary>
		public override void TestSetup()
		{
			base.TestSetup();


			m_pub = CreatePublication(0, 0, false, "TestPub", 0,
				BindingSide.Left, 0);

			m_div = AddDivisionToPub(m_pub, false, false,
				DivisionStartOption.Continuous);
			m_pgl = Cache.ServiceLocator.GetInstance<IPubPageLayoutFactory>().Create();
			m_div.PageLayoutOA = m_pgl;

			m_pubPageInfo = new List<PubPageInfo>();
			m_pubPageInfo.Add(new PubPageInfo("Full Page", 0, 0));
			m_pubPageInfo.Add(new PubPageInfo("5.25 x 8.25", (int)(8.25 * 72000), (int)(5.25 * 72000)));
			m_pubPageInfo.Add(new PubPageInfo("5.8 x 8.7", (int)(8.7 * 72000), (int)(5.8 * 72000)));
		}
예제 #11
0
		public override void Initialize()
		{
			CheckDisposed();
			base.Initialize();

			wsUser = m_inMemoryCache.Cache.DefaultUserWs;
			m_inMemoryCache.InitializeAnnotationDefs();
			m_pub = m_inMemoryCache.CreatePublication(0, 0, false, "TestPub", 0,
				BindingSide.Left, 0);

			m_div = m_inMemoryCache.AddDivisionToPub(m_pub, false, false,
				DivisionStartOption.Continuous);
			m_pgl = new PubPageLayout() as IPubPageLayout;
			m_div.PageLayoutOA = m_pgl;
			m_div.PageLayoutOAHvo = m_pgl.Hvo;

			m_pubPageInfo = new List<PubPageInfo>();
			m_pubPageInfo.Add(new PubPageInfo("Full Page", 0, 0));
			m_pubPageInfo.Add(new PubPageInfo("5.25 x 8.25", (int)(8.25 * 72000), (int)(5.25 * 72000)));
			m_pubPageInfo.Add(new PubPageInfo("5.8 x 8.7", (int)(8.7 * 72000), (int)(5.8 * 72000)));
		}
예제 #12
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// helper function verifies a complete page layout containing "Default" data
		/// </summary>
		/// <param name="pageLayout">the PubPageLayout to verify</param>
		/// ------------------------------------------------------------------------------------
		private void VerifyPageLayoutDefault(IPubPageLayout pageLayout)
		{
			Assert.IsNull(pageLayout.Name, "Name should be null");
			Assert.AreEqual(TePublicationsInit.kMpPerInch, pageLayout.MarginTop);
			Assert.AreEqual(TePublicationsInit.kMpPerInch, pageLayout.MarginBottom);
			Assert.AreEqual(TePublicationsInit.kMpPerInch, pageLayout.MarginInside);
			Assert.AreEqual(TePublicationsInit.kMpPerInch, pageLayout.MarginOutside);
			Assert.AreEqual((int)(0.75 * TePublicationsInit.kMpPerInch), pageLayout.PosHeader);
			Assert.AreEqual((int)(0.75 * TePublicationsInit.kMpPerInch), pageLayout.PosFooter);
		}
예제 #13
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Test class that mocks the PageSetupDlg.
		/// </summary>
		/// <param name="wsUser">The user writing system.</param>
		/// <param name="pgLayout">The page layout.</param>
		/// <param name="publication">The publication.</param>
		/// <param name="division">The division.</param>
		/// <param name="units">The user's prefered measurement units.</param>
		/// <param name="fIsTrialPub">if set to <c>true</c> view from which this dialog
		/// was brought up is "Trial Publication".</param>
		/// <param name="pubPageSizes">The publication page info.</param>
		/// ------------------------------------------------------------------------------------
		public DummyTePageSetupDlg(int wsUser, IPubPageLayout pgLayout, IPublication publication,
			IPubDivision division, MsrSysType units, bool fIsTrialPub, List<PubPageInfo> pubPageSizes)
			:
			base(wsUser, pgLayout, null, publication, division, null, null, units, fIsTrialPub, pubPageSizes)
		{
		}
예제 #14
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Initializes a new instance of the <see cref="T:PageSetupDlg"/> class.
		/// </summary>
		/// <param name="pgLayout">The page layout.</param>
		/// <param name="pubOwner">The CmMajorObject that owns the publication.</param>
		/// <param name="publication">The publication.</param>
		/// <param name="division">The division. The NumColumns in the division should be
		/// set before calling this dialog.</param>
		/// <param name="callbacks">The callbacks used to get application-specific settings.</param>
		/// <param name="helpTopicProvider">The help topic provider.</param>
		/// <param name="app">The app</param>
		/// <param name="pubPageSizes">The page sizes available for publication.</param>
		/// ------------------------------------------------------------------------------------
		public PageSetupDlg(IPubPageLayout pgLayout, ICmMajorObject pubOwner,
			IPublication publication, IPubDivision division, IPageSetupCallbacks callbacks,
			IHelpTopicProvider helpTopicProvider, IApp app, List<PubPageInfo> pubPageSizes) : this()
		{
			m_pubOwner = pubOwner;
			m_publication = publication;
			m_division = division;
			m_pgLayout = pgLayout;
			m_callbacks = callbacks;
			m_helpTopicProvider = helpTopicProvider;
			m_app = app;

			InitializePaperSizes();

			MsrSysType units = app.MeasurementSystem;
			m_udmTop.MeasureType = units;
			m_udmLeft.MeasureType = units;
			m_udmBottom.MeasureType = units;
			m_udmRight.MeasureType = units;
			m_udmGutter.MeasureType = units;
			m_udmPaperWidth.MeasureType = units;
			m_udmPaperWidth.UseVariablePrecision = true;
			m_udmPaperHeight.MeasureType = units;
			m_udmPaperHeight.UseVariablePrecision = true;
			m_udmHeader.MeasureType = units;
			m_udmFooter.MeasureType = units;

			m_udmTop.MeasureValue = pgLayout.MarginTop;
			m_udmLeft.MeasureValue = pgLayout.MarginInside;
			m_udmBottom.MeasureValue = pgLayout.MarginBottom;
			m_udmRight.MeasureValue = pgLayout.MarginOutside;
			m_udmGutter.MeasureValue = publication.GutterMargin;

			//REVIEW: Do we need to call UpdateMarginControls?
			m_numColumns = m_division.NumColumns;

			m_fBookFoldCurrent = publication.IsLandscape;

			//if (m_fBookFoldCurrent)
			//{
			//    pbBookFold.Image = ResourceHelper.BookFoldSelectedIcon;
			//    pbDraft.Image = ResourceHelper.PortraitIcon;
			//    pnlDraftOptions.Visible = false;
			//    pnlBookFoldOptions.Visible = true;

			//}
			//else // Draft
			//{
			//    pbBookFold.Image = ResourceHelper.BookFoldIcon;
			//    pbDraft.Image = ResourceHelper.PortraitSelectedIcon;
			//    pnlDraftOptions.Visible = true;
			//    pnlBookFoldOptions.Visible = false;
			//}

			//rdoSingleSide.Checked = true;
			//rdoDoubleSide.Checked = false;

			if (pubPageSizes != null && pubPageSizes.Count > 0)
			{
				cboPubPageSize.Items.Clear();
				foreach (PubPageInfo pubPgInfo in pubPageSizes)
				{
					cboPubPageSize.Items.Add(pubPgInfo);
					if (publication.PageHeight == pubPgInfo.Height &&
						publication.PageWidth == pubPgInfo.Width)
					{
						cboPubPageSize.SelectedItem = pubPgInfo;
					}
				}
			}
			else
				cboPubPageSize.SelectedIndex = 0;

			int mptPaperHeight = publication.PaperHeight;
			int mptPaperWidth = publication.PaperWidth;
			if (mptPaperHeight == 0)
			{
				m_fSavePaperSize = false;
				Debug.Assert(mptPaperWidth == 0);
				PrinterUtils.GetDefaultPaperSizeInMp(out mptPaperHeight, out mptPaperWidth);
			}
			else
				m_fSavePaperSize = true;

			// Find the paper size in the combo box.
			foreach (PaperSize size in cbPaperSize.Items)
			{
				if (size.Height * kCentiInchToMilliPoints == mptPaperHeight &&
					size.Width * kCentiInchToMilliPoints == mptPaperWidth)
				{
					cbPaperSize.SelectedItem = size;
				}
			}

			m_udmPaperWidth.MeasureValue = mptPaperWidth;
			m_udmPaperHeight.MeasureValue = mptPaperHeight;
			AdjustPaperSize(mptPaperWidth, mptPaperHeight);

			foreach (PubPageInfo pubPgInfo in cboPubPageSize.Items)
			{
				if (pubPgInfo.Height == m_publication.PageHeight &&
					pubPgInfo.Width == m_publication.PageWidth)
				{
					cboPubPageSize.SelectedItem = pubPgInfo;
					break;
				}
			}

			m_cbBookStart.SelectedIndex = (int)m_division.StartAt;
			m_ckbDiffEvenHF.Checked = m_division.DifferentEvenHF;
			m_ckbDiffFirstHF.Checked = m_division.DifferentFirstHF;
			m_udmHeader.MeasureValue = pgLayout.PosHeader;
			m_udmFooter.MeasureValue = pgLayout.PosFooter;
			switch (publication.FootnoteSepWidth)
			{
				case 0:
					m_cboSeparator.SelectedIndex = kFootnoteSepWidthNone;
					break;
				case 333:
					m_cboSeparator.SelectedIndex = kFootnoteSepWidthThird;
					break;
				case 1000:
					m_cboSeparator.SelectedIndex = kFootnoteSepWidthFull;
					break;
				default:
					Debug.Assert(false, "non-default footnote seperator width");
					m_cboSeparator.SelectedIndex = -1;
					break;
			}

			m_fChangingIndex = false;

			// Initialize dialog settings from the publication.
			NumberOfColumns = m_division.NumColumns;
			UpdateColumnButtonStates();

			SetFontSizeAndLineSpacing = true;
			if (PublicationUsesNormalStyle)
			{
				SetDefaultBaseFontAndLineSizes();
			}
			else
			{
				// In the unlikely event that the publication has a default value for one but not
				// both of these values, set the leading to the default percentage and set the
				// implicit value based on the explicit one.

				// Use the absolute value because we only support "exact" line spacing
				decimal mptPubBaseLineSpacing = (decimal)Math.Abs(publication.BaseLineSpacing);
				m_leadingFactor = (publication.BaseFontSize == 0 || publication.BaseLineSpacing == 0) ?
					StandardLeadingFactor : mptPubBaseLineSpacing / publication.BaseFontSize;

				SetBaseCharacterSize(publication.BaseFontSize);
				SetBaseLineSpacing(mptPubBaseLineSpacing);
				if (publication.BaseFontSize == 0)
					SetBaseCharacterSize(BaseLineSpacing / m_leadingFactor);
				else if (publication.BaseLineSpacing == 0)
					SetBaseLineSpacing(BaseCharacterSize * m_leadingFactor);

				m_fSaveBaseFontAndLineSizes = true;
			}
			SetFontSizeAndLineSpacing = false;

			m_chkNonStdChoices.Checked = !FollowsStandardSettings;
			UpdateTextSizeCtlStatus();
		}
예제 #15
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Init the given PubPageLayout by reading the given PageLayout XML node.
		/// </summary>
		/// <param name="pageLayout">the PubPageLayout object to initialize</param>
		/// <param name="pageLayoutNode">the given PageLayout XML node to read.
		/// If null, the PubPageLayout will be initialized to default values.</param>
		/// ------------------------------------------------------------------------------------
		private void ReadPageLayout(IPubPageLayout pageLayout, XmlNode pageLayoutNode)
		{
			XmlAttributeCollection attributes;

			//get attributes from the node
			if (pageLayoutNode != null)
				attributes = pageLayoutNode.Attributes;
			else
			{
				// or get empty attributes from our dummyXmlDoc
				attributes = m_dummyXmlDoc.FirstChild.Attributes;
				Debug.Assert(attributes.Count == 0);
			}

			pageLayout.Name = GetString(attributes, "OriginalPageLayoutName");
			pageLayout.MarginTop =
				GetMeasurement(attributes, "MarginTop", kMpPerInch, m_conversion);
			pageLayout.MarginBottom =
				GetMeasurement(attributes, "MarginBottom", kMpPerInch, m_conversion);
			pageLayout.MarginInside =
				GetMeasurement(attributes, "MarginInside", kMpPerInch, m_conversion);
			pageLayout.MarginOutside =
				GetMeasurement(attributes, "MarginOutside", kMpPerInch, m_conversion);
			pageLayout.PosHeader =
				GetMeasurement(attributes, "PositionHeader", (int)(0.75 * kMpPerInch), m_conversion);
			pageLayout.PosFooter =
				GetMeasurement(attributes, "PositionFooter", (int)(0.75 * kMpPerInch), m_conversion);

			pageLayout.IsBuiltIn = true;
			pageLayout.IsModified = false;
		}
예제 #16
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Test class that mocks the PageSetupDlg.
 /// </summary>
 /// <param name="wsUser">The user writing system.</param>
 /// <param name="pgLayout">The page layout.</param>
 /// <param name="publication">The publication.</param>
 /// <param name="division">The division.</param>
 /// <param name="units">The user's prefered measurement units.</param>
 /// <param name="pubPageInfo">The publication page info.</param>
 /// ------------------------------------------------------------------------------------
 public DummyPageSetupDlg(int wsUser, IPubPageLayout pgLayout, IPublication publication,
                          IPubDivision division, MsrSysType units, List <PubPageInfo> pubPageInfo)
     :
     base(wsUser, pgLayout, null, publication, division, null, null, units, pubPageInfo)
 {
 }
예제 #17
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Test class that mocks the PageSetupDlg.
		/// </summary>
		/// <param name="wsUser">The user writing system.</param>
		/// <param name="pgLayout">The page layout.</param>
		/// <param name="publication">The publication.</param>
		/// <param name="division">The division.</param>
		/// <param name="units">The user's prefered measurement units.</param>
		/// <param name="pubPageInfo">The publication page info.</param>
		/// ------------------------------------------------------------------------------------
		public DummyPageSetupDlg(int wsUser, IPubPageLayout pgLayout, IPublication publication,
			IPubDivision division, MsrSysType units, List<PubPageInfo> pubPageInfo)
			:
			base(wsUser, pgLayout, null, publication, division, null, null, units, pubPageInfo)
		{
		}
예제 #18
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Test class that mocks the PageSetupDlg.
		/// </summary>
		/// <param name="pgLayout">The page layout.</param>
		/// <param name="publication">The publication.</param>
		/// <param name="division">The division.</param>
		/// <param name="fIsTrialPub">if set to <c>true</c> view from which this dialog
		/// was brought up is "Trial Publication".</param>
		/// <param name="pubPageSizes">The publication page info.</param>
		/// ------------------------------------------------------------------------------------
		public DummyTePageSetupDlg(IPubPageLayout pgLayout, IPublication publication,
			IPubDivision division, bool fIsTrialPub, List<PubPageInfo> pubPageSizes)
			: base(pgLayout, null, publication, division, null, null, new DummyApp(), fIsTrialPub, pubPageSizes)
		{
		}
예제 #19
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Creates the page setup dialog.
		/// </summary>
		/// <param name="ws">The HVO of the user interface writing system</param>
		/// <param name="pgl">The PubPageLayout object</param>
		/// <param name="pub">The Publication object</param>
		/// <param name="div">The PubDivision object</param>
		/// <param name="helpTopicProvider">The Help topic provider</param>
		/// <param name="msrSysType">Type measurement units to use in the UI.</param>
		/// <returns></returns>
		/// ------------------------------------------------------------------------------------
		protected virtual IPageSetupDialog CreatePageSetupDialog(int ws, IPubPageLayout pgl,
			IPublication pub, IPubDivision div, IHelpTopicProvider helpTopicProvider,
			MsrSysType msrSysType)
		{
			throw new NotImplementedException("Subclass must override CreatePageSetupDialog.");
		}
예제 #20
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Sets up a publication for OnPageSetup.
		/// </summary>
		/// <param name="publication">A publication to use for page setup.</param>
		/// <param name="division">Publication Division for pub</param>
		/// <param name="pageLayout">A publication page layout for pub</param>
		/// <returns>returns <c>false</c> if there is no current publication</returns>
		/// <remarks>This was the top half of OnPageSetup originally.
		/// It was refactored to avoid duplicating code in an override of
		/// OnPageSetup in TeMainWind.</remarks>
		/// ------------------------------------------------------------------------------------
		protected bool PageSetupPreparePublication(out IPublication publication,
			out IPubDivision division, out IPubPageLayout pageLayout)
		{
			publication = null;
			division = null;
			pageLayout = null;

			// Get a publication to use for page setup.
			publication = CurrentPublication;
			if (publication == null)
				return false;

			// Get a publication division for given publication.  If none, create one.
			int chvoDiv = publication.DivisionsOS.Count;
			int hvoDiv;
			if (chvoDiv < 1)
			{
				division = m_cache.ServiceLocator.GetInstance<IPubDivisionFactory>().Create();
				publication.DivisionsOS.Add(division);
				division.StartAt = DivisionStartOption.NewPage;
				division.DifferentEvenHF = false;
				division.DifferentFirstHF = false;
			}
			else
			{
				division = publication.DivisionsOS[0];
			}
			hvoDiv = division.Hvo;

			// Get publication page layout for given division.  If none create one.
			if (division.PageLayoutOA == null)
			{
				pageLayout = m_cache.ServiceLocator.GetInstance<IPubPageLayoutFactory>().Create();
				division.PageLayoutOA = pageLayout;
				pageLayout.MarginTop = 72000;
				pageLayout.MarginBottom = 72000;
				pageLayout.MarginInside = 72000;
				pageLayout.MarginOutside = 72000;
				pageLayout.PosHeader = 36000;
				pageLayout.PosFooter = 36000;
			}
			else
			{
				pageLayout = division.PageLayoutOA;
			}
			return true;
		}
예제 #21
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Sets up a publication for OnPageSetup.
		/// </summary>
		/// <param name="publication">A publication to use for page setup.</param>
		/// <param name="division">Publication Division for pub</param>
		/// <param name="pageLayout">A publication page layout for pub</param>
		/// <returns>returns <c>false</c> if there is no current publication</returns>
		/// <remarks>This was the top half of OnPageSetup originally.
		/// It was refactored to avoid duplicating code in an override of
		/// OnPageSetup in TeMainWind.</remarks>
		/// ------------------------------------------------------------------------------------
		protected bool PageSetupPreparePublication(out IPublication publication,
			out IPubDivision division, out IPubPageLayout pageLayout)
		{
			publication = null;
			division = null;
			pageLayout = null;

			// Get a publication to use for page setup.
			publication = CurrentPublication;
			if (publication == null)
				return false;

			// Get a publication division for given publication.  If none, create one.
			int chvoDiv = publication.DivisionsOS.Count;
			int hvoDiv;
			if (chvoDiv < 1)
			{
				hvoDiv = m_cache.CreateObject(PubDivision.kClassId, publication.Hvo,
					(int)Publication.PublicationTags.kflidDivisions, 0);
				division = new PubDivision(m_cache, hvoDiv, true, true);
				division.StartAt = DivisionStartOption.NewPage;
				division.DifferentEvenHF = false;
				division.DifferentFirstHF = false;
			}
			else
			{
				hvoDiv = publication.DivisionsOS.HvoArray[0];
				division = new PubDivision(m_cache, hvoDiv, true, true);
			}

			// Get publication page layout for given division.  If none create one.
			int hvoPgl;
			if (division.PageLayoutOAHvo == 0)
			{
				hvoPgl = m_cache.CreateObject(PubPageLayout.kClassId, hvoDiv,
					(int)PubDivision.PubDivisionTags.kflidPageLayout, 0);
				pageLayout = division.PageLayoutOA;
				pageLayout.MarginTop = 72000;
				pageLayout.MarginBottom = 72000;
				pageLayout.MarginInside = 72000;
				pageLayout.MarginOutside = 72000;
				pageLayout.PosHeader = 36000;
				pageLayout.PosFooter = 36000;
			}
			else
			{
				pageLayout = division.PageLayoutOA;
			}
			return true;
		}
예제 #22
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Test class that mocks the PageSetupDlg.
 /// </summary>
 /// <param name="pgLayout">The page layout.</param>
 /// <param name="publication">The publication.</param>
 /// <param name="division">The division.</param>
 /// <param name="fIsTrialPub">if set to <c>true</c> view from which this dialog
 /// was brought up is "Trial Publication".</param>
 /// <param name="pubPageSizes">The publication page info.</param>
 /// ------------------------------------------------------------------------------------
 public DummyTePageSetupDlg(IPubPageLayout pgLayout, IPublication publication,
                            IPubDivision division, bool fIsTrialPub, List <PubPageInfo> pubPageSizes)
     : base(pgLayout, null, publication, division, null, null, new DummyApp(), fIsTrialPub, pubPageSizes)
 {
 }
예제 #23
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Creates the page setup dialog.
		/// </summary>
		/// <param name="ws">The HVO of the user interface writing system</param>
		/// <param name="pgl">The PubPageLayout object</param>
		/// <param name="pub">The Publication object</param>
		/// <param name="div">The PubDivision object</param>
		/// <param name="helpTopicProvider">The Help topic provider</param>
		/// <param name="msrSysType">Type measurement units to use in the UI.</param>
		/// <returns></returns>
		/// ------------------------------------------------------------------------------------
		protected override IPageSetupDialog CreatePageSetupDialog(int ws, IPubPageLayout pgl,
			IPublication pub, IPubDivision div, IHelpTopicProvider helpTopicProvider,
			MsrSysType msrSysType)
		{
			TePageSetupDlg dlg = new TePageSetupDlg(ws, pgl, m_scr, pub, div, this,
				helpTopicProvider, msrSysType, ActiveEditingHelper.IsTrialPublicationView,
				TePublicationsInit.GetPubPageSizes(pub.Name,
				Cache.GetUnicodeProperty(ws, (int)LgWritingSystem.LgWritingSystemTags.kflidICULocale)));
			InitializePageSetupDlg(dlg);
			return dlg;
		}