Example #1
0
        void renderPage(WikiPageData page)
        {
            foreach (var block in buildingBlocksForCurrentPage)
            {
                Destroy(block.gameObject);
            }

            foreach (var titleContainer in PageTitleContainers)
            {
                titleContainer.text = page.Title;
            }

            Window.Title = $"{page.Title} - {BaseTitle}";

            buildingBlocksForCurrentPage = new List <WikiPageBuildingBlock>();

            Transform blockParent = PageContentContainer.transform;

            var leadBlock = Instantiate(LeadBuildingBlock, blockParent);

            leadBlock.SetContent(page.LeadSection);
            buildingBlocksForCurrentPage.Add(leadBlock);

            foreach (var bodySection in page.BodySections)
            {
                var bodyBlock = Instantiate(BodySectionBuildingBlock, blockParent);
                bodyBlock.SetContent(bodySection);
                buildingBlocksForCurrentPage.Add(bodyBlock);
            }

            NavigateForwardButton.interactable = currentPositionInSessionBrowsingHistory < sessionBrowsingHistory.Count - 1;
            NavigateBackButton.interactable    = currentPositionInSessionBrowsingHistory > 0;
        }
Example #2
0
        public void OpenPage(WikiPageData page)
        {
            if (currentPositionInSessionBrowsingHistory >= 0)
            {
                recordScrollRectPositionToHistory();
            }

            if (currentPositionInSessionBrowsingHistory < sessionBrowsingHistory.Count - 1)
            {
                int cuttingPoint = currentPositionInSessionBrowsingHistory + 1;
                sessionBrowsingHistory.RemoveRange(cuttingPoint, sessionBrowsingHistory.Count - cuttingPoint);
            }

            currentPositionInSessionBrowsingHistory++;
            sessionBrowsingHistory.Add(new SessionDataPageSnapshot(page));

            renderPage(page);

            ScrollRect.verticalNormalizedPosition = 1;
        }
Example #3
0
 public SessionDataPageSnapshot(WikiPageData page)
 {
     Page           = page;
     ScrollPosition = 1; // 1 == top of page
 }