public void OnDocumentLoaded(PDFDocument document)
        {
#if !UNITY_WEBGL
            if (!m_Loaded && gameObject.activeInHierarchy)
            {
                m_Loaded   = true;
                m_Document = document;

                m_TopLevelItems = new List <RectTransform>();

                m_RectTransform = transform as RectTransform;
                m_LeftPanel     = transform.parent as RectTransform;

                PDFViewer   viewer       = GetComponentInParent <PDFViewer>();
                PDFBookmark rootBookmark = m_Document.GetRootBookmark(viewer);

                if (rootBookmark != null)
                {
                    m_ItemPrefab.gameObject.SetActive(true);

                    foreach (PDFBookmark child in rootBookmark.EnumerateChildrenBookmarks())
                    {
                        PDFBookmarkListItem item = null;

                        item = Instantiate(m_ItemPrefab.gameObject).GetComponent <PDFBookmarkListItem>();
                        RectTransform itemTransform = item.transform as RectTransform;
                        itemTransform.SetParent(m_BooksmarksContainer, false);
                        itemTransform.localScale = Vector3.one;
                        itemTransform.anchorMin  = new Vector2(0.0f, 1.0f);
                        itemTransform.anchorMax  = new Vector2(0.0f, 1.0f);
                        itemTransform.offsetMin  = Vector2.zero;
                        itemTransform.offsetMax  = Vector2.zero;

                        m_TopLevelItems.Add(item.transform as RectTransform);

                        item.Initilize(child, 0, false);
                    }

                    m_ItemPrefab.gameObject.SetActive(false);

                    m_Initialized = true;

                    if (GetComponentInParent <PDFViewerLeftPanel>().m_Thumbnails.gameObject.GetComponent <CanvasGroup>().alpha == 0.0f)
                    {
                        StartCoroutine(DelayedShow());
                    }
                }
            }
#endif
        }
Ejemplo n.º 2
0
        public void Initilize(PDFBookmark bookmark, int indent, bool lastSibling)
        {
            m_ChildrenItems = new List <PDFBookmarkListItem>();

            m_IsLastSibling = lastSibling;
            m_PDFBookmark   = bookmark;
            m_HorizontalLine.gameObject.SetActive(true);
            m_VerticalLine.gameObject.SetActive(false);
            m_VerticalLine2.gameObject.SetActive(true);
            m_ExpandImage.gameObject.SetActive(true);

            if (m_PDFBookmark.IsTopLevelBookmark && m_PDFBookmark.ChildCount == 0)
            {
                m_HorizontalLine.gameObject.SetActive(false);
                m_ExpandImage.gameObject.SetActive(false);
            }
            else if (m_PDFBookmark.ChildCount > 0)
            {
                m_HorizontalLine.gameObject.SetActive(true);
                m_ExpandImage.gameObject.SetActive(true);
            }
            else if (!m_PDFBookmark.IsTopLevelBookmark)
            {
                m_HorizontalLine.gameObject.SetActive(true);
                m_HorizontalLine.offsetMin = new Vector2(m_HorizontalLine.offsetMin.x + 6, m_HorizontalLine.offsetMin.y);
                if (!m_IsLastSibling)
                {
                    m_VerticalLine2.gameObject.SetActive(true);
                }
                m_ExpandImage.gameObject.SetActive(false);
            }

            m_Title.text = m_PDFBookmark.GetTitle();

            name = m_Title.text.Substring(0, Mathf.Min(24, m_Title.text.Length));

            for (int i = 0; i < m_PDFBookmark.ChildCount; ++i)
            {
                PDFBookmark child = m_PDFBookmark.GetChild(i);

                PDFBookmarkListItem item = Instantiate(gameObject).GetComponent <PDFBookmarkListItem>();
                m_ChildrenItems.Add(item);

                RectTransform itemTransform = item.transform as RectTransform;
                itemTransform.SetParent(transform.parent, false);
                itemTransform.localScale = Vector3.one;
                itemTransform.anchorMin  = new Vector2(0.0f, 1.0f);
                itemTransform.anchorMax  = new Vector2(0.0f, 1.0f);
                itemTransform.offsetMin  = Vector2.zero;
                itemTransform.offsetMax  = Vector2.zero;

                item.Initilize(child, indent + 1, i == m_PDFBookmark.ChildCount - 1);

                if (indent == 0)
                {
                    StartCoroutine(SetVisible());
                    item.m_CanvasGroup.alpha = 0.0f;
                }
            }

            for (int i = 0; i < m_ChildrenItems.Count - 1; ++i)
            {
                m_ChildrenItems[i].m_NextSibling = m_ChildrenItems[i + 1].gameObject.transform as RectTransform;
            }

            m_Internal.offsetMin = new Vector2(20.0f * indent, m_Internal.offsetMin.y);
            m_Initialized        = true;
            m_SizeAdjusted       = 1;
        }