Ejemplo n.º 1
0
        /// <summary>
        /// Renders the control using specified skin.
        /// </summary>
        /// <param name="skin">Skin to use.</param>
        protected override void Render(Skin.SkinBase skin)
        {
            if (!m_Root)
            {
                int bottom = 0;
                if (m_InnerPanel.Children.Count > 0)
                {
                    bottom = m_InnerPanel.Children.Last().ActualTop + m_InnerPanel.ActualTop;
                }

                skin.DrawTreeNode(this, m_InnerPanel.IsVisible, IsSelected, m_Title.ActualHeight, m_Title.ActualWidth, (int)(m_ToggleButton.ActualTop + m_ToggleButton.ActualHeight * 0.5f), bottom, RootNode == Parent, m_ToggleButton.ActualWidth);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Renders the control using specified skin.
        /// </summary>
        /// <param name="skin">Skin to use.</param>
        protected override void render(Skin.SkinBase skin)
        {
            int bottom = 0;

            if (innerPanel.Children.Count > 0)
            {
                bottom = innerPanel.Children.Last().Y + innerPanel.Y;
            }

            skin.DrawTreeNode(this, innerPanel.IsVisible, IsSelected, title.Height, title.TextRight,
                              (int)(toggleButton.Y + toggleButton.Height * 0.5f), bottom, treeControl == Parent); // IsRoot

            //[halfofastaple] HACK - The treenodes are taking two passes until their height is set correctly,
            //  this means that the height is being read incorrectly by the parent, causing
            //  the TreeNode bug where nodes get hidden when expanding and collapsing.
            //  The hack is to constantly invalide TreeNodes, which isn't bad, but there is
            //  definitely a better solution (possibly: Make it set the height from childmost
            //  first and work it's way up?) that invalidates and draws properly in 1 loop.
            this.Invalidate();
        }