using System; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using UnityEditor; 
 | 
using qtools.qhierarchy.pcomponent.pbase; 
 | 
using qtools.qhierarchy.pdata; 
 | 
using qtools.qhierarchy.phelper; 
 | 
  
 | 
namespace qtools.qhierarchy.pcomponent 
 | 
{ 
 | 
    public class QSeparatorComponent: QBaseComponent 
 | 
    { 
 | 
        // PRIVATE 
 | 
        private Color separatorColor; 
 | 
        private Color shadingColor; 
 | 
        private bool showRowShading; 
 | 
  
 | 
        // CONSTRUCTOR 
 | 
        public QSeparatorComponent () 
 | 
        { 
 | 
            separatorColor = new Color(0f, 0f, 0f, 0.15f); 
 | 
            shadingColor = new Color(0f, 0f, 0f, 0.05f); 
 | 
  
 | 
            showComponentDuringPlayMode = true; 
 | 
  
 | 
            QSettings.getInstance().addEventListener(QSetting.ShowRowShading, settingsChanged); 
 | 
            QSettings.getInstance().addEventListener(QSetting.ShowSeparatorComponent, settingsChanged); 
 | 
            settingsChanged(); 
 | 
        } 
 | 
         
 | 
        // PRIVATE 
 | 
        private void settingsChanged() 
 | 
        { 
 | 
            showRowShading = QSettings.getInstance().get<bool>(QSetting.ShowRowShading); 
 | 
            enabled = QSettings.getInstance().get<bool>(QSetting.ShowSeparatorComponent); 
 | 
        } 
 | 
  
 | 
        // DRAW 
 | 
        public override void draw(GameObject gameObject, QObjectList objectList, Rect selectionRect, Rect curRect) 
 | 
        { 
 | 
            curRect.y = selectionRect.y + selectionRect.height - 1; 
 | 
            curRect.width = selectionRect.width + selectionRect.x; 
 | 
            curRect.height = 1; 
 | 
            curRect.x = 0; 
 | 
  
 | 
            EditorGUI.DrawRect(curRect, separatorColor); 
 | 
  
 | 
            if (showRowShading && (Mathf.FloorToInt(((selectionRect.y - 4) / 16) % 2) == 0)) 
 | 
            { 
 | 
                selectionRect.width += selectionRect.x; 
 | 
                selectionRect.x = 0; 
 | 
                selectionRect.height -=1; 
 | 
                EditorGUI.DrawRect(selectionRect, shadingColor); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
} 
 |