public void Render() { if (itsEntrys.Count <= itsMaxVisibleItems) { itsHeight = (uint)itsEntrys.Count * (uint)KGFGUIUtility.GetSkinHeight(); } else { itsHeight = itsMaxVisibleItems * (uint)KGFGUIUtility.GetSkinHeight(); } if (itsVisible) { GUILayout.BeginHorizontal(GUILayout.Width(itsWidth)); { KGFGUIUtility.BeginHorizontalBox(KGFGUIUtility.eStyleBox.eBoxLeft); { if (itsTitle != string.Empty) { KGFGUIUtility.Label(itsTitle, KGFGUIUtility.eStyleLabel.eLabelFitIntoBox, GUILayout.ExpandWidth(true)); } else { KGFGUIUtility.Label(itsCurrentSelected, KGFGUIUtility.eStyleLabel.eLabelFitIntoBox, GUILayout.ExpandWidth(true)); } } KGFGUIUtility.EndHorizontalBox(); if (itsIcon == null) { if (KGFGUIUtility.Button("v", KGFGUIUtility.eStyleButton.eButtonRight, GUILayout.ExpandWidth(false))) { if (itsOpenInstance != this) { itsOpenInstance = this; itsCorrectedOffset = false; } else { itsOpenInstance = null; itsCorrectedOffset = false; } } } else { if (KGFGUIUtility.Button(itsIcon, KGFGUIUtility.eStyleButton.eButtonRight, GUILayout.ExpandWidth(false))) { if (itsOpenInstance != this) { itsOpenInstance = this; itsCorrectedOffset = false; } else { itsOpenInstance = null; itsCorrectedOffset = false; } } } } GUILayout.EndHorizontal(); if (Event.current.type == EventType.Repaint) { itsLastRect = GUILayoutUtility.GetLastRect(); } else { Vector3 aMousePosition = Input.mousePosition; aMousePosition.y = Screen.height - aMousePosition.y; if (itsLastRect.Contains(aMousePosition)) { itsHover = true; } else { if (KGFGUIDropDown.itsOpenInstance != this) { itsHover = false; } } } } }
public void Render() { if(itsEntrys.Count <= itsMaxVisibleItems) { itsHeight = (uint)itsEntrys.Count * (uint)KGFGUIUtility.GetSkinHeight(); } else { itsHeight = itsMaxVisibleItems * (uint)KGFGUIUtility.GetSkinHeight(); } if(itsVisible) { GUILayout.BeginHorizontal(GUILayout.Width(itsWidth)); { KGFGUIUtility.BeginHorizontalBox(KGFGUIUtility.eStyleBox.eBoxLeft); { if(itsTitle != string.Empty) { KGFGUIUtility.Label(itsTitle, KGFGUIUtility.eStyleLabel.eLabelFitIntoBox, GUILayout.ExpandWidth(true)); } else { KGFGUIUtility.Label(itsCurrentSelected, KGFGUIUtility.eStyleLabel.eLabelFitIntoBox, GUILayout.ExpandWidth(true)); } } KGFGUIUtility.EndHorizontalBox(); if(itsIcon == null) { if(KGFGUIUtility.Button("v", KGFGUIUtility.eStyleButton.eButtonRight, GUILayout.ExpandWidth(false))) { if(itsOpenInstance != this) { itsOpenInstance = this; itsCorrectedOffset = false; } else { itsOpenInstance = null; itsCorrectedOffset = false; } } } else { if(KGFGUIUtility.Button(itsIcon, KGFGUIUtility.eStyleButton.eButtonRight, GUILayout.ExpandWidth(false))) { if(itsOpenInstance != this) { itsOpenInstance = this; itsCorrectedOffset = false; } else { itsOpenInstance = null; itsCorrectedOffset = false; } } } } GUILayout.EndHorizontal(); if(Event.current.type == EventType.Repaint) { itsLastRect = GUILayoutUtility.GetLastRect(); } else { Vector3 aMousePosition = Input.mousePosition; aMousePosition.y = Screen.height - aMousePosition.y; if(itsLastRect.Contains(aMousePosition)) { itsHover = true; } else { if(KGFGUIDropDown.itsOpenInstance != this) { itsHover = false; } } } } }