/// <summary>
    /// Add a member to the list.
    /// Supported Memberinfos are PropertyInfo and FieldInfo
    /// </summary>
    /// <param name="theMemberInfo"></param>
    /// <param name="theHeader"></param>
    /// <param name="theSearchable"></param>
    /// <param name="theDisplay"></param>
    public void AddMember(MemberInfo theMemberInfo, string theHeader, bool theSearchable, bool theDisplay)
    {
        KGFObjectListColumnItem anItem = new KGFObjectListColumnItem(theMemberInfo);

        anItem.itsHeader     = theHeader;
        anItem.itsSearchable = theSearchable;
        anItem.itsDisplay    = theDisplay;
        itsListFieldCache.Add(anItem);

        itsData.Columns.Add(new KGFDataColumn(theHeader, anItem.GetReturnType()));

        if (anItem.itsSearchable)
        {
            itsDisplayFullTextSearch = true;
        }
    }
    void DrawFilterBox(KGFObjectListColumnItem theItem, uint theWidth)
    {
        if (theItem.GetReturnType().IsEnum || theItem.GetReturnType() == typeof(bool))
        {
            if (theItem.itsDropDown == null)
            {
                if (theItem.GetReturnType() == typeof(bool))
                {
                    theItem.itsDropDown = new KGFGUIDropDown((new List <string>(itsBoolValues)).InsertItem(NONE_STRING, 0), theWidth, 5, KGFGUIDropDown.eDropDirection.eUp);
                }
                else if (theItem.GetReturnType().IsEnum)
                {
                    theItem.itsDropDown = new KGFGUIDropDown(Enum.GetNames(theItem.GetReturnType()).InsertItem(NONE_STRING, 0), theWidth, 5, KGFGUIDropDown.eDropDirection.eUp);
                }

                theItem.itsDropDown.itsTitle = "";
                theItem.itsDropDown.SetSelectedItem(theItem.itsFilterString);
                theItem.itsDropDown.SelectedValueChanged += OnDropDownValueChanged;
            }
            theItem.itsDropDown.Render();
        }
        else if (theItem.GetReturnType() == typeof(string))
        {
            if (theItem.itsFilterString == null)
            {
                theItem.itsFilterString = "";
            }

            string aFilter = KGFGUIUtility.TextField(theItem.itsFilterString, KGFGUIUtility.eStyleTextField.eTextField, GUILayout.Width(theWidth));
            if (aFilter != theItem.itsFilterString)
            {
                theItem.itsFilterString = aFilter;
                UpdateList();
                OnSettingsChanged();
            }
        }
    }
	/// <summary>
	/// Add a member to the list.
	/// Supported Memberinfos are PropertyInfo and FieldInfo
	/// </summary>
	/// <param name="theMemberInfo"></param>
	/// <param name="theHeader"></param>
	/// <param name="theSearchable"></param>
	/// <param name="theDisplay"></param>
	public void AddMember(MemberInfo theMemberInfo,string theHeader, bool theSearchable, bool theDisplay)
	{
		KGFObjectListColumnItem anItem = new KGFObjectListColumnItem (theMemberInfo);
		anItem.itsHeader = theHeader;
		anItem.itsSearchable = theSearchable;
		anItem.itsDisplay = theDisplay;
		itsListFieldCache.Add (anItem);
		
		itsData.Columns.Add (new KGFDataColumn (theHeader, anItem.GetReturnType()));
		
		if (anItem.itsSearchable)
		{
			itsDisplayFullTextSearch = true;
		}
	}
	void DrawFilterBox (KGFObjectListColumnItem theItem, uint theWidth)
	{
		if (theItem.GetReturnType().IsEnum ||theItem.GetReturnType() == typeof(bool))
		{
			if (theItem.itsDropDown == null)
			{
				if (theItem.GetReturnType() == typeof(bool))
				{
					theItem.itsDropDown = new KGFGUIDropDown ((new List<string>(itsBoolValues)).InsertItem (NONE_STRING, 0), theWidth, 5, KGFGUIDropDown.eDropDirection.eUp);
				}else if (theItem.GetReturnType().IsEnum)
				{
					theItem.itsDropDown = new KGFGUIDropDown (Enum.GetNames (theItem.GetReturnType()).InsertItem (NONE_STRING, 0), theWidth, 5, KGFGUIDropDown.eDropDirection.eUp);
				}
				
				theItem.itsDropDown.itsTitle = "";
				theItem.itsDropDown.SetSelectedItem(theItem.itsFilterString);
				theItem.itsDropDown.SelectedValueChanged += OnDropDownValueChanged;
			}
			theItem.itsDropDown.Render ();
		}
		else if (theItem.GetReturnType() == typeof(string))
		{
			if (theItem.itsFilterString == null)
				theItem.itsFilterString = "";
			
			string aFilter = KGFGUIUtility.TextField(theItem.itsFilterString,KGFGUIUtility.eStyleTextField.eTextField,GUILayout.Width(theWidth));
			if (aFilter != theItem.itsFilterString)
			{
				theItem.itsFilterString = aFilter;
				UpdateList ();
				OnSettingsChanged();
			}
		}
	}