Esempio n. 1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Creates and returns the primary view construtor for the main view in the layout.
        /// This is only called once.
        /// </summary>
        /// <param name="div"></param>
        /// <returns>The view constructor to be used for the main view</returns>
        /// ------------------------------------------------------------------------------------
        public virtual IVwViewConstructor MakeMainVc(DivisionLayoutMgr div)
        {
            DraftViewVc vc;

            if (m_divisionPortion == PrintLayoutPortion.TitleAndIntro)
            {
                vc = new ScriptureBookIntroVc(TeStVc.LayoutViewTarget.targetPrint,
                                              div.FilterInstance, m_styleSheet, false);
            }
            else if (m_divisionPortion == PrintLayoutPortion.ScriptureSections)
            {
                vc = new ScriptureBodyVc(TeStVc.LayoutViewTarget.targetPrint,
                                         div.FilterInstance, m_styleSheet, false);
            }
            else
            {
                vc = new DraftViewVc(TeStVc.LayoutViewTarget.targetPrint, div.FilterInstance,
                                     m_styleSheet, false);
            }
            vc.HeightEstimator = this;
            if ((m_viewType & TeViewType.BackTranslation) != 0)
            {
                vc.ContentType = Options.UseInterlinearBackTranslation ? StVc.ContentTypes.kctSegmentBT : StVc.ContentTypes.kctSimpleBT;
                vc.DefaultWs   = m_ws;
            }
            vc.Cache       = m_fdoCache;
            vc.PrintLayout = true;
            return(vc);
        }
Esempio n. 2
0
 /// -----------------------------------------------------------------------------------
 /// <summary>
 /// Initializes a new instance of the <see cref="DummyPublication"/> class.
 /// </summary>
 /// -----------------------------------------------------------------------------------
 public DummyScripturePublicationNoDb(IPublication pub, FwStyleSheet stylesheet,
                                      DivisionLayoutMgr div, DateTime printDateTime, int filterInstance)
     : base(stylesheet, filterInstance, pub, TeViewType.PrintLayout, printDateTime)
 {
     m_printerDpiX = 720.0f;
     m_printerDpiY = 1440.0f;
 }
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Creates and returns the primary view construtor for the main view in the layout.
        /// This is only called once.
        /// </summary>
        /// <param name="div"></param>
        /// <returns>The view constructor to be used for the main view</returns>
        /// ------------------------------------------------------------------------------------
        public override IVwViewConstructor MakeMainVc(DivisionLayoutMgr div)
        {
            BtPrintLayoutSideBySideVc vc = new BtPrintLayoutSideBySideVc(
                TeStVc.LayoutViewTarget.targetPrint, div.FilterInstance, m_styleSheet,
                m_fdoCache, m_ws);

            vc.HeightEstimator = this;
            return(vc);
        }
Esempio n. 4
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// No subordinate views for this dummy configurer.
 /// </summary>
 /// <param name="div">The division layout manager</param>
 /// ------------------------------------------------------------------------------------
 public override void ConfigureSubordinateViews(DivisionLayoutMgr div)
 {
     if (m_fAddSubordinateStreams)
     {
         int hvoScr = m_fdoCache.LangProject.TranslatedScriptureOAHvo;
         div.AddSubordinateStream(hvoScr,
                                  DummyFirstSubViewVc.kfragScrFootnotes,
                                  new DummyFirstSubViewVc(),
                                  new NLevelOwnerSvd(2, m_fdoCache.MainCacheAccessor, hvoScr));
     }
 }
Esempio n. 5
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Makes a call to MakeSubordinateView, to add a view containing footnotes.
        /// </summary>
        /// <param name="div">The PrintLayout manager object</param>
        /// ------------------------------------------------------------------------------------
        public override void ConfigureSubordinateViews(DivisionLayoutMgr div)
        {
            int hvoScripture = m_fdoCache.LangProject.TranslatedScriptureOA.Hvo;

            BtFootnotePrintLayoutSideBySideVc footnoteVc = new BtFootnotePrintLayoutSideBySideVc(
                TeStVc.LayoutViewTarget.targetPrint, div.FilterInstance, m_styleSheet,
                m_fdoCache, m_ws);
            NLevelOwnerSvd ownerSvd = new NLevelOwnerSvd(2,
                                                         new ScrBookFilterDecorator(m_fdoCache, m_bookFilterInstance), hvoScripture);

            div.AddSubordinateStream(hvoScripture, (int)FootnoteFrags.kfrScripture,
                                     footnoteVc, ownerSvd);
        }
Esempio n. 6
0
        ///// <summary>type of width for this page element across the page</summary>
        //internal readonly PageElementWidthType m_widthType;
        #endregion

        #region Constructor
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="division">The division.</param>
        /// <param name="stream">The stream.</param>
        /// <param name="fPageElementOwnsStream">if set to <c>true</c> the page element owns
        /// the stream.</param>
        /// <param name="locationOnPage">The location on page.</param>
        /// <param name="dypOffsetToTopOfDataOnPage">The dyp offset to top of data on page.</param>
        /// <param name="fMainStream">set to <c>true</c> if <paramref name="stream"/> is the
        /// main stream of <paramref name="division"/>, otherwise <c>false</c>.</param>
        /// <param name="columnNumber">The column number of the page element (1-based)</param>
        /// <param name="totalColumns">The total number of columns on the page for this stream.</param>
        /// <param name="columnGap">The gap between the columns, which is used if there are two
        /// or more columns.</param>
        /// <param name="columnHeight">The height of the current column.</param>
        /// <param name="dypOverlapWithPreviousElement"></param>
        /// <param name="fInRightToLeftStream">if set to <c>true</c> the page element is in a
        /// right-to-left stream.</param>
        /// ------------------------------------------------------------------------------------
        public PageElement(DivisionLayoutMgr division, IVwLayoutStream stream,
                           bool fPageElementOwnsStream, Rectangle locationOnPage, int dypOffsetToTopOfDataOnPage,
                           bool fMainStream, int columnNumber, int totalColumns, int columnGap, int columnHeight,
                           int dypOverlapWithPreviousElement, bool fInRightToLeftStream)
        {
            m_division = division;
            m_stream   = stream;
            m_fPageElementOwnsStream     = fPageElementOwnsStream;
            m_locationOnPage             = locationOnPage;
            m_dypOffsetToTopOfDataOnPage = dypOffsetToTopOfDataOnPage;
            m_fMainStream                   = fMainStream;
            m_column                        = columnNumber;
            m_totalColumns                  = totalColumns;
            m_fInRightToLeftStream          = fInRightToLeftStream;
            m_columnGap                     = columnGap;
            m_columnHeight                  = columnHeight;
            m_dypOverlapWithPreviousElement = dypOverlapWithPreviousElement;
        }
        public void TwoColumnOneBook()
        {
            foreach (IPubDivision div in m_dbPub.DivisionsOS)
            {
                div.NumColumns = 2;
            }

            m_BookFilter.FilteredBooks =
                new [] { Cache.LangProject.TranslatedScriptureOA.ScriptureBooksOS[1] };
            Assert.AreEqual(1, m_BookFilter.BookCount);

            m_ScrPubCtrl.CallRefreshDisplay();
            m_ScrPubCtrl.Configure();
            m_ScrPubCtrl.CreatePages();

            Assert.AreEqual(2, m_ScrPubCtrl.Divisions.Count);
            DivisionLayoutMgr divTitleIntro = m_ScrPubCtrl.Divisions[0];
            DivisionLayoutMgr divScripture  = m_ScrPubCtrl.Divisions[1];

            Assert.AreNotEqual(divTitleIntro.AvailableMainStreamColumWidthInPrinterPixels,
                               divScripture.AvailableMainStreamColumWidthInPrinterPixels);
            Assert.AreEqual(divTitleIntro.AvailableMainStreamColumWidthInPrinterPixels,
                            divTitleIntro.AvailablePageWidthInPrinterPixels);
            Assert.AreNotEqual(DivisionStartOption.Continuous, divTitleIntro.StartAt);
            Assert.AreEqual(DivisionStartOption.Continuous, divScripture.StartAt);
            Assert.Greater(divTitleIntro.MainRootBox.Height, 0);
            Assert.Greater(divScripture.MainRootBox.Height, 0);
            Assert.Greater(divScripture.MainRootBox.Height, divTitleIntro.MainRootBox.Height);

            Assert.Greater(m_ScrPubCtrl.PageCount, 1);

            Assert.IsNotNull(divTitleIntro.MainVc as ScriptureBookIntroVc);
            Assert.IsNotNull(divScripture.MainVc as ScriptureBodyVc);

            foreach (DivisionLayoutMgr div in m_ScrPubCtrl.Divisions)
            {
                IVwLayoutStream layoutStream = div.MainLayoutStream;
                Assert.IsNotNull(layoutStream);
                Assert.IsNotNull(layoutStream as IVwRootBox);
            }
        }
Esempio n. 8
0
        public void OneColumnOneBook()
        {
            foreach (PubDivision div in m_dbPub.DivisionsOS)
            {
                div.NumColumns = 1;
            }

            m_BookFilter.UpdateFilter(
                Cache.LangProject.TranslatedScriptureOA.ScriptureBooksOS.HvoArray[1]);
            Assert.AreEqual(1, m_BookFilter.BookCount);

            m_ScrPubCtrl.Configure();
            m_ScrPubCtrl.CreatePages();

            // Verify that both divisions are one-column
            Assert.AreEqual(2, m_ScrPubCtrl.Divisions.Count);
            DivisionLayoutMgr divTitleIntro = m_ScrPubCtrl.Divisions[0];
            DivisionLayoutMgr divScripture  = m_ScrPubCtrl.Divisions[1];

            Assert.AreEqual(divTitleIntro.AvailableMainStreamColumWidthInPrinterPixels,
                            divScripture.AvailableMainStreamColumWidthInPrinterPixels);
            Assert.AreEqual(divTitleIntro.AvailableMainStreamColumWidthInPrinterPixels,
                            divTitleIntro.AvailablePageWidthInPrinterPixels);
            Assert.AreNotEqual(DivisionStartOption.Continuous, divTitleIntro.StartAt);
            Assert.AreEqual(DivisionStartOption.Continuous, divScripture.StartAt);
            Assert.Greater(divTitleIntro.MainRootBox.Height, 0);
            Assert.Greater(divScripture.MainRootBox.Height, 0);
            Assert.Greater(divScripture.MainRootBox.Height, divTitleIntro.MainRootBox.Height);

            Assert.Greater(m_ScrPubCtrl.PageCount, 2);

            Assert.IsNotNull(divTitleIntro.MainVc as ScriptureBookIntroVc);
            Assert.IsNotNull(divScripture.MainVc as ScriptureBodyVc);

            foreach (DivisionLayoutMgr div in m_ScrPubCtrl.Divisions)
            {
                IVwLayoutStream layoutStream = div.MainLayoutStream;
                Assert.IsNotNull(layoutStream);
                Assert.IsNotNull(layoutStream as IVwRootBox);
            }
        }
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Makes a call to MakeSubordinateView, to add a view containing footnotes.
        /// </summary>
        /// <param name="div">The PrintLayout manager object</param>
        /// ------------------------------------------------------------------------------------
        public override void ConfigureSubordinateViews(DivisionLayoutMgr div)
        {
            int hvoScripture = m_fdoCache.LangProject.TranslatedScriptureOAHvo;

            BtFootnotePrintLayoutSideBySideVc footnoteVc = new BtFootnotePrintLayoutSideBySideVc(
                TeStVc.LayoutViewTarget.targetPrint, div.FilterInstance, m_styleSheet,
                m_fdoCache, m_ws);
            NLevelOwnerSvd ownerSvd = new NLevelOwnerSvd(2, m_fdoCache.MainCacheAccessor,
                                                         hvoScripture);

            IVwVirtualHandler vh =
                FilteredScrBooks.GetFilterInstance(m_fdoCache, div.FilterInstance);

            if (vh != null)
            {
                ownerSvd.AddTagLookup((int)Scripture.ScriptureTags.kflidScriptureBooks,
                                      vh.Tag);
            }

            div.AddSubordinateStream(hvoScripture, (int)FootnoteFrags.kfrScripture,
                                     footnoteVc, ownerSvd);
        }
Esempio n. 10
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Makes a call to MakeSubordinateView, to add a view containing footnotes.
        /// </summary>
        /// <param name="div">The division layout manager</param>
        /// ------------------------------------------------------------------------------------
        public virtual void ConfigureSubordinateViews(DivisionLayoutMgr div)
        {
            int hvoScripture = m_fdoCache.LangProject.TranslatedScriptureOA.Hvo;

            ISilDataAccess decorator;

            if (m_divisionPortion != PrintLayoutPortion.AllContent)
            {
                decorator = new PrintLayoutDataByFlidDecorator(m_fdoCache, m_bookFilterInstance,
                                                               m_divisionPortion == PrintLayoutPortion.TitleAndIntro);
            }
            else
            {
                decorator = new ScrBookFilterDecorator(m_fdoCache, m_bookFilterInstance);
            }
            NLevelOwnerSvd ownerSvd = new NLevelOwnerSvd(2, decorator, hvoScripture);

            if (m_sharedStream == null)
            {
                FootnoteVc footnoteVc = new FootnoteVc(TeStVc.LayoutViewTarget.targetPrint,
                                                       div.FilterInstance);
                footnoteVc.DefaultWs          = DefaultWs;
                footnoteVc.Cache              = m_fdoCache;
                footnoteVc.DisplayTranslation = (m_viewType & TeViewType.BackTranslation) != 0;

                div.AddSubordinateStream(hvoScripture, (int)FootnoteFrags.kfrScripture,
                                         footnoteVc, ownerSvd);
            }
            else
            {
                int hvoRoot;
                IVwViewConstructor vc;
                int           frag;
                IVwStylesheet stylesheet;
                ((IVwRootBox)m_sharedStream).GetRootObject(out hvoRoot, out vc, out frag, out stylesheet);
                div.AddSharedSubordinateStream(m_sharedStream, vc, ownerSvd);
            }
        }
Esempio n. 11
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Makes a call to MakeSubordinateView, to add a view containing footnotes.
        /// </summary>
        /// <param name="div">The division layout manager</param>
        /// ------------------------------------------------------------------------------------
        public virtual void ConfigureSubordinateViews(DivisionLayoutMgr div)
        {
            int hvoScripture = m_fdoCache.LangProject.TranslatedScriptureOAHvo;
            int wsDefault    = ((m_viewType & TeViewType.BackTranslation) != 0 ?
                                m_fdoCache.DefaultAnalWs : m_fdoCache.DefaultVernWs);

            NLevelOwnerSvd ownerSvd = new NLevelOwnerSvd(2, m_fdoCache.MainCacheAccessor,
                                                         hvoScripture);

            IVwVirtualHandler vh =
                FilteredScrBooks.GetFilterInstance(m_fdoCache, div.FilterInstance);

            if (vh != null)
            {
                ownerSvd.AddTagLookup((int)Scripture.ScriptureTags.kflidScriptureBooks,
                                      vh.Tag);
            }

            if (m_sharedStream == null)
            {
                FootnoteVc footnoteVc = new FootnoteVc(div.FilterInstance,
                                                       TeStVc.LayoutViewTarget.targetPrint, wsDefault);
                footnoteVc.Cache = m_fdoCache;
                footnoteVc.DisplayTranslation = (m_viewType & TeViewType.BackTranslation) != 0;

                div.AddSubordinateStream(hvoScripture, (int)FootnoteFrags.kfrScripture,
                                         footnoteVc, ownerSvd);
            }
            else
            {
                int hvoRoot;
                IVwViewConstructor vc;
                int           frag;
                IVwStylesheet stylesheet;
                ((IVwRootBox)m_sharedStream).GetRootObject(out hvoRoot, out vc, out frag, out stylesheet);
                div.AddSharedSubordinateStream(m_sharedStream, vc, ownerSvd);
            }
        }
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// No subordinate views for this dummy configurer.
 /// </summary>
 /// <param name="div">The division layout manager</param>
 /// ------------------------------------------------------------------------------------
 public override void ConfigureSubordinateViews(DivisionLayoutMgr div)
 {
 }
Esempio n. 13
0
 /// -----------------------------------------------------------------------------------
 /// <summary>
 /// Initializes a new instance of the <see cref="ReallyStupidPubCtrl"/> class.
 /// </summary>
 /// -----------------------------------------------------------------------------------
 public ReallyStupidPubCtrl(IPublication pub, FwStyleSheet stylesheet,
                            DivisionLayoutMgr div, DateTime printDateTime, bool fApplyStyleOverrides)
     : base(pub, stylesheet, div, printDateTime, fApplyStyleOverrides)
 {
 }
Esempio n. 14
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Creates and returns the primary view construtor for the main view in the layout.
 /// This is only called once.
 /// </summary>
 /// <returns>The view constructor to be used for the main view</returns>
 /// <param name="div"></param>
 /// ------------------------------------------------------------------------------------
 public override IVwViewConstructor MakeMainVc(DivisionLayoutMgr div)
 {
     return(new DummyMainLazyViewVc(m_fdoCache, m_fAddContent));
 }
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// No-op
 /// </summary>
 /// <param name="div">The division layout manager</param>
 /// ------------------------------------------------------------------------------------
 public virtual void ConfigureSubordinateViews(DivisionLayoutMgr div)
 {
 }
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Creates and returns the primary view construtor for the main view in the layout.
 /// This is only called once.
 /// </summary>
 /// <param name="div"></param>
 /// <returns>The view constructor to be used for the main view</returns>
 /// ------------------------------------------------------------------------------------
 public virtual IVwViewConstructor MakeMainVc(DivisionLayoutMgr div)
 {
     return(new EmptyTePrintLayoutVc());
 }
Esempio n. 17
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Initializes a new instance of the <see cref="T:TeDummyPublication"/> class.
 /// </summary>
 /// <param name="pub">The pub.</param>
 /// <param name="div">The div.</param>
 /// <param name="printDateTime">The print date time.</param>
 /// ------------------------------------------------------------------------------------
 public TeDummyPublication(Publication pub, DivisionLayoutMgr div, DateTime printDateTime) :
     base(pub, div, printDateTime)
 {
 }
Esempio n. 18
0
 /// --------------------------------------------------------------------------------
 /// <summary>
 /// Calls the get last element.
 /// </summary>
 /// <param name="division">The division.</param>
 /// <param name="xd">The xd.</param>
 /// <returns></returns>
 /// --------------------------------------------------------------------------------
 public PageElement CallGetLastElement(DivisionLayoutMgr division, out int xd)
 {
     return(GetLastElement(division, out xd));
 }
Esempio n. 19
0
        public void TwoColumnTwoBooks()
        {
            foreach (PubDivision div in m_dbPub.DivisionsOS)
            {
                div.NumColumns = 2;
            }

            m_BookFilter.UpdateFilter(
                Cache.LangProject.TranslatedScriptureOA.ScriptureBooksOS.HvoArray[0],
                Cache.LangProject.TranslatedScriptureOA.ScriptureBooksOS.HvoArray[1]);
            Assert.AreEqual(2, m_BookFilter.BookCount);

            m_ScrPubCtrl.Configure();
            m_ScrPubCtrl.CreatePages();

            Assert.AreEqual(4, m_ScrPubCtrl.Divisions.Count);
            DivisionLayoutMgr divTitleIntroFirstBook  = m_ScrPubCtrl.Divisions[0];
            DivisionLayoutMgr divScriptureFirstBook   = m_ScrPubCtrl.Divisions[1];
            DivisionLayoutMgr divTitleIntroSecondBook = m_ScrPubCtrl.Divisions[2];
            DivisionLayoutMgr divScriptureSecondBook  = m_ScrPubCtrl.Divisions[3];

            Assert.Greater(divTitleIntroFirstBook.AvailableMainStreamColumWidthInPrinterPixels,
                           divScriptureFirstBook.AvailableMainStreamColumWidthInPrinterPixels);
            Assert.AreEqual(divTitleIntroFirstBook.AvailableMainStreamColumWidthInPrinterPixels,
                            divTitleIntroFirstBook.AvailablePageWidthInPrinterPixels);
            Assert.AreEqual(divTitleIntroFirstBook.AvailableMainStreamColumWidthInPrinterPixels,
                            divTitleIntroSecondBook.AvailableMainStreamColumWidthInPrinterPixels);
            Assert.AreEqual(divScriptureFirstBook.AvailableMainStreamColumWidthInPrinterPixels,
                            divScriptureSecondBook.AvailableMainStreamColumWidthInPrinterPixels);
            Assert.AreNotEqual(DivisionStartOption.Continuous, divTitleIntroFirstBook.StartAt);
            Assert.AreEqual(DivisionStartOption.Continuous, divScriptureFirstBook.StartAt);
            Assert.AreNotEqual(DivisionStartOption.Continuous, divTitleIntroSecondBook.StartAt);
            Assert.AreEqual(DivisionStartOption.Continuous, divScriptureSecondBook.StartAt);
            Assert.Greater(divTitleIntroFirstBook.MainRootBox.Height, 0);
            Assert.Greater(divScriptureFirstBook.MainRootBox.Height, 0);
            // Intro of Philemon is quite long, so we just test that the heights of the two division are not equal
            Assert.AreNotEqual(divScriptureFirstBook.MainRootBox.Height, divTitleIntroFirstBook.MainRootBox.Height);
            Assert.Greater(divTitleIntroSecondBook.MainRootBox.Height, 0);
            Assert.Greater(divScriptureSecondBook.MainRootBox.Height, 0);
            Assert.Greater(divScriptureSecondBook.MainRootBox.Height, divTitleIntroSecondBook.MainRootBox.Height);

            Assert.AreEqual(2, m_ScrPubCtrl.Pages[1].FirstDivOnPage,
                            "Page 2 should start with second book (third division)");
            Assert.AreEqual(0, m_ScrPubCtrl.Pages[1].OffsetFromTopOfDiv(
                                m_ScrPubCtrl.Divisions[m_ScrPubCtrl.Pages[2].FirstDivOnPage]),
                            "Third division should start on top of page 2");

            Assert.Greater(m_ScrPubCtrl.PageCount, 2);

            Assert.IsNotNull(divTitleIntroFirstBook.MainVc as ScriptureBookIntroVc);
            Assert.IsNotNull(divScriptureFirstBook.MainVc as ScriptureBodyVc);
            Assert.IsNotNull(divTitleIntroSecondBook.MainVc as ScriptureBookIntroVc);
            Assert.IsNotNull(divScriptureSecondBook.MainVc as ScriptureBodyVc);

            foreach (DivisionLayoutMgr div in m_ScrPubCtrl.Divisions)
            {
                IVwLayoutStream layoutStream = div.MainLayoutStream;
                Assert.IsNotNull(layoutStream);
                Assert.IsNotNull(layoutStream as IVwRootBox);
            }
        }