예제 #1
0
    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;
                    }
                }
            }
        }
    }
예제 #2
0
	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;
					}
				}
			}
		}
	}