void DrawComponentField()
        {
            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Component", GUILayout.Width(100));
            string[] pops = new string[mAllCmpTypes.Count + 1];
            pops[0] = "All";
            for (int i = 1; i < pops.Length; i++)
            {
                pops[i] = mAllCmpTypes[i - 1].Name;
            }
            cmpIndex = Mathf.Min(cmpIndex, pops.Length - 1);
            GUILayout.Label(pops[cmpIndex], "ShurikenModuleTitle");
            GUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.BeginVertical();
            EditorGUILayout.BeginHorizontal();
            showCmps = QuickGUI.SearchTextBar(showCmps);
            EditorGUILayout.EndHorizontal();
            cmpPos = GUILayout.BeginScrollView(cmpPos, "box");
            bool first = true;

            for (int i = 0; i < pops.Length; i++)
            {
                bool old = cmpIndex == i;
                if (!old && !pops[i].ToLower().Contains(showCmps.ToLower()))
                {
                    continue;
                }
                if (!first)
                {
                    GUILayout.Space(3);
                    QuickGUI.HLine(Color.gray);
                }
                bool last = GUILayout.Toggle(old, pops[i], "PlayerSettingsLevel");
                if (last)
                {
                    cmpIndex = i;
                }
                if (last ^ old)
                {
                    showCmps = "";
                }
                first = false;
            }
            GUILayout.EndScrollView();
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndHorizontal();
        }
        bool DrawResultItem(int index, int counter)
        {
            if (index >= showResults.Count)
            {
                return(false);
            }
            SearchResult sr = showResults[index];

            if (!sr.gameObj)
            {
                return(false);
            }
            if (counter > 0)
            {
                GUILayout.Space(5);
                QuickGUI.HLine(Color.gray);
            }
            GameObject go = sr.gameObj;

            bool oldFout = foutIndex == index;// EditorPrefs.GetBool("go" + index);

            GUILayout.BeginHorizontal();
            GUILayout.BeginVertical();
            string goName = go.name;

            GUILayout.BeginHorizontal();
            bool act = GUILayout.Toggle(go.activeSelf, "", GUILayout.Width(15));

            if (act ^ go.activeSelf)
            {
                go.SetActive(act);
            }
            bool fout = GUILayout.Toggle(oldFout, goName, "PlayerSettingsLevel");
            bool ding = GUILayout.Toggle(go == mDingObject, "\u2764", "SearchModeFilter", GUILayout.MaxWidth(20));

            if (ding)
            {
                mDingObject = go;
                mDing       = true;
            }
            GUILayout.EndHorizontal();
            if (fout ^ oldFout)
            {
                //EditorGUIUtility.PingObject(go);
                if (fout)
                {
                    PopupResult(index);
                }
            }
            if (fout)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(3);
                DrawResultItem(sr, !oldFout);
                GUILayout.Space(3);
                GUILayout.EndHorizontal();
            }

            GUILayout.EndVertical();
            GUILayout.EndHorizontal();

            return(true);
        }