using System; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using UnityEditor; 
 | 
using qtools.qhierarchy.pcomponent.pbase; 
 | 
using qtools.qhierarchy.phierarchy; 
 | 
using qtools.qhierarchy.phelper; 
 | 
using qtools.qhierarchy.pdata; 
 | 
  
 | 
namespace qtools.qhierarchy.pcomponent 
 | 
{ 
 | 
    public class QChildrenCountComponent: QBaseComponent 
 | 
    { 
 | 
        // PRIVATE 
 | 
        private Color backgroundColor; 
 | 
        private GUIStyle labelStyle; 
 | 
        private int childrenCount; 
 | 
  
 | 
        // CONSTRUCTOR 
 | 
        public QChildrenCountComponent () 
 | 
        { 
 | 
            backgroundColor = QResources.getInstance().getColor(QColor.Background); 
 | 
  
 | 
            labelStyle = new GUIStyle(); 
 | 
            labelStyle.normal.textColor = QResources.getInstance().getColor(QColor.Gray); 
 | 
            labelStyle.fontSize = 9; 
 | 
            labelStyle.clipping = TextClipping.Clip;   
 | 
            labelStyle.alignment = TextAnchor.MiddleRight; 
 | 
  
 | 
            QSettings.getInstance().addEventListener(QSetting.ShowChildrenCountComponent              , settingsChanged); 
 | 
            QSettings.getInstance().addEventListener(QSetting.ShowChildrenCountComponentDuringPlayMode, settingsChanged); 
 | 
            settingsChanged(); 
 | 
        } 
 | 
  
 | 
        // PRIVATE 
 | 
        private void settingsChanged() 
 | 
        { 
 | 
            enabled = QSettings.getInstance().get<bool>(QSetting.ShowChildrenCountComponent); 
 | 
            showComponentDuringPlayMode = QSettings.getInstance().get<bool>(QSetting.ShowChildrenCountComponentDuringPlayMode); 
 | 
        } 
 | 
  
 | 
        // DRAW 
 | 
        public override void layout(GameObject gameObject, QObjectList objectList, ref Rect rect) 
 | 
        { 
 | 
            childrenCount = gameObject.transform.childCount; 
 | 
            rect.x -= 22; 
 | 
            rect.width = 22; 
 | 
        } 
 | 
         
 | 
        public override void draw(GameObject gameObject, QObjectList objectList, Rect selectionRect, Rect curRect) 
 | 
        {   
 | 
            EditorGUI.DrawRect(curRect, backgroundColor); 
 | 
            curRect.x -= 2; 
 | 
            if (childrenCount > 0) GUI.Label(curRect, childrenCount.ToString(), labelStyle); 
 | 
        } 
 | 
    } 
 | 
} 
 |