예제 #1
0
        public void Draw()
        {
            if (refs == null)
            {
                return;
            }

            if (dirty || list == null)
            {
                ApplyFilter();
            }
            groupDrawer.Draw();

            if (showSearch)
            {
                if (toolbarSearchField == null)
                {
                    toolbarSearchField                  = "ToolbarSeachTextFieldPopup";
                    toolbarSearchFieldCancelButton      = "ToolbarSeachCancelButton";
                    toolbarSearchFieldCancelButtonEmpty = "ToolbarSeachCancelButtonEmpty";
                }

                GUILayout.BeginHorizontal(EditorStyles.toolbar);
                {
                    var v = GUILayout.Toggle(caseSensitive, "Aa", EditorStyles.toolbarButton, GUILayout.Width(24f));
                    if (v != caseSensitive)
                    {
                        caseSensitive = v;
                        dirty         = true;
                    }

                    GUILayout.Space(2f);
                    var value = GUILayout.TextField(searchTerm, toolbarSearchField);
                    if (searchTerm != value)
                    {
                        searchTerm = value;
                        dirty      = true;
                    }

                    var style = string.IsNullOrEmpty(searchTerm) ? toolbarSearchFieldCancelButtonEmpty : toolbarSearchFieldCancelButton;
                    if (GUILayout.Button("Cancel", style))
                    {
                        searchTerm = string.Empty;
                        dirty      = true;
                    }

                    GUILayout.Space(2f);
                }
                GUILayout.EndHorizontal();
            }

            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            {
                if (FR2_Unity.DrawToggleToolbar(ref FR2_Setting.showSettings, "*", 20f))
                {
                    dirty = true;
                    if (FR2_Setting.showSettings)
                    {
                        selectFilter = false;
                    }
                }

                bool v;
                if (excludeCount > 0)
                {
                    var oc = GUI.backgroundColor;
                    GUI.backgroundColor = Color.red;
                    v = GUILayout.Toggle(selectFilter, "Filter", EditorStyles.toolbarButton, GUILayout.Width(50f));
                    GUI.backgroundColor = oc;
                }
                else
                {
                    v = GUILayout.Toggle(selectFilter, "Filter", EditorStyles.toolbarButton, GUILayout.Width(50f));
                }

                if (v != selectFilter)
                {
                    selectFilter = v;
                    if (selectFilter)
                    {
                        FR2_Setting.showSettings = false;
                    }
                }

                v = GUILayout.Toggle(showSearch, "Search", EditorStyles.toolbarButton, GUILayout.Width(50f));
                if (v != showSearch)
                {
                    showSearch = v;
                    dirty      = true;
                }

                var ss = FR2_Setting.ShowSelection;
                v = GUILayout.Toggle(ss, "Selection", EditorStyles.toolbarButton, GUILayout.Width(60f));
                if (v != ss)
                {
                    FR2_Setting.ShowSelection = v;
                    dirty = true;
                }

                GUILayout.FlexibleSpace();

                var o = EditorGUIUtility.labelWidth;
                EditorGUIUtility.labelWidth = 42f;

                var ov = FR2_Setting.GroupMode;
                var vv = (Mode)EditorGUILayout.EnumPopup("Group", ov, GUILayout.Width(122f));
                if (vv != ov)
                {
                    FR2_Setting.GroupMode = vv;
                    dirty = true;
                }

                GUILayout.Space(4f);
                EditorGUIUtility.labelWidth = 30f;

                var s   = FR2_Setting.SortMode;
                var vvv = (Sort)EditorGUILayout.EnumPopup("Sort", s, GUILayout.Width(100f));
                if (vvv != s)
                {
                    FR2_Setting.SortMode = vvv;
                    RefreshSort();
                }

                EditorGUIUtility.labelWidth = o;
            }

            GUILayout.EndHorizontal();

            if (FR2_Setting.showSettings)
            {
                FR2_Setting.s.DrawSettings();
            }
            else if (selectFilter)
            {
                if (AssetType.DrawSearchFilter())
                {
                    dirty = true;
                }
            }
        }