Esempio n. 1
0
            public static void DrawItemsDatabaseSelectorForGeneralCategoryOnly(string defaultCategory,                    //UIDrawer.DefaultDrawerCategory
                                                                               SerializedProperty name, string nameLabel, //UILabels.DrawerName
                                                                               SerializedProperty customName,
                                                                               NamesDatabase database,
                                                                               ColorName componentColorName)
            {
                Color color = GUI.color;

                Line.Draw(true, componentColorName, NameBackgroundHeight,
                          () =>
                {
                    List <string> items = database.GetNamesList(UIDrawer.DefaultDrawerCategory);
                    int selectedIndex   = 0;
                    if (!customName.boolValue)
                    {
                        if (items.Contains(name.stringValue))
                        {
                            selectedIndex = items.IndexOf(name.stringValue);
                        }
                        else
                        {
                            customName.boolValue = true;
                        }
                    }

                    GUILayout.BeginVertical();
                    {
                        Label.Draw(nameLabel, Size.S, TextAlign.Left, componentColorName);           //draw 'Name' label
                        GUILayout.BeginHorizontal(GUILayout.Height(Properties.SingleLineHeight));
                        {
                            GUI.color = Colors.GetDColor(componentColorName).Light.WithAlpha(GUI.color.a);
                            if (customName.boolValue)
                            {
                                EditorGUILayout.PropertyField(name, GUIContent.none, true);           //draw name property field (text field)
                            }
                            else
                            {
                                EditorGUI.BeginChangeCheck();
                                selectedIndex = EditorGUILayout.Popup(selectedIndex, items.ToArray());           //draw name selector (dropdown field)
                                if (EditorGUI.EndChangeCheck())
                                {
                                    name.stringValue = items[selectedIndex];
                                }
                            }

                            GUI.color = color;
                            EditorGUI.BeginChangeCheck();
                            Toggle.Checkbox.Draw(customName, Properties.Labels.CustomName, componentColorName, Properties.SingleLineHeight + Properties.Space(2));           //draw 'custom' toggle
                            if (EditorGUI.EndChangeCheck())
                            {
                                if (!customName.boolValue)
                                {
                                    if (!items.Contains(name.stringValue))
                                    {
                                        if (EditorUtility.DisplayDialog("New Name",
                                                                        "Add the '" + name.stringValue + "' name to the database?",
                                                                        "Yes",
                                                                        "No"))
                                        {
                                            database.GetNamesList(defaultCategory, true).Add(name.stringValue);
                                            database.SetDirty(true);
                                        }
                                        else
                                        {
                                            name.stringValue = database.GetNamesList(defaultCategory)[0];
                                        }
                                    }
                                }
                            }
                        }
                        GUILayout.EndHorizontal();
                    }
                    GUILayout.EndVertical();
                });
            }
Esempio n. 2
0
            public static void DrawItemsDatabaseSelector(SerializedObject serializedObject,
                                                         SerializedProperty category, string categoryLabel,
                                                         SerializedProperty name, string nameLabel,
                                                         NamesDatabase database,
                                                         ColorName colorName)
            {
                if (s_namesList == null)
                {
                    s_namesList = new List <string>();
                }
                s_namesList.Clear();

                int  categorySelectedIndex = database.CategoryNames.Contains(category.stringValue) ? database.CategoryNames.IndexOf(category.stringValue) : database.CategoryNames.IndexOf(NamesDatabase.CUSTOM);
                bool hasCustomName         = category.stringValue.Equals(NamesDatabase.CUSTOM);
                int  nameSelectedIndex     = 0;

                if (!database.Contains(category.stringValue)) //database does not contain this category -> reset it to custom
                {
                    hasCustomName        = true;
                    category.stringValue = NamesDatabase.CUSTOM;
                }

                if (!hasCustomName)
                {
                    s_namesList = database.GetNamesList(category.stringValue);
                    if (s_namesList.Count == 0)
                    {
                        if (!database.GetNamesList(NamesDatabase.GENERAL, true).Contains(NamesDatabase.UNNAMED))
                        {
                            database.GetNamesList(NamesDatabase.GENERAL, true).Add(NamesDatabase.UNNAMED);
                            database.SetDirty(true);
                        }

                        category.stringValue = NamesDatabase.GENERAL;
                        s_namesList          = database.GetNamesList(category.stringValue);
                    }


                    if (s_namesList.Contains(name.stringValue))
                    {
                        nameSelectedIndex = s_namesList.IndexOf(name.stringValue);
                    }
                    else
                    {
                        if (category.stringValue.Equals(NamesDatabase.GENERAL))
                        {
                            name.stringValue  = NamesDatabase.UNNAMED;
                            nameSelectedIndex = s_namesList.IndexOf(NamesDatabase.UNNAMED);
                        }
                        else if (name.stringValue != NamesDatabase.UNNAMED && EditorUtility.DisplayDialog("Add Name", "Add the '" + name.stringValue + "' name to the '" + category.stringValue + "' category?", "Yes", "No"))
                        {
                            string cleanName = name.stringValue.Trim();
                            if (string.IsNullOrEmpty(cleanName))
                            {
                                name.stringValue = s_namesList[nameSelectedIndex];
                            }
                            else if (s_namesList.Contains(cleanName))
                            {
                                name.stringValue  = cleanName;
                                nameSelectedIndex = s_namesList.IndexOf(cleanName);
                            }
                            else
                            {
                                ListOfNames categoryAsset = database.GetCategory(category.stringValue);
                                categoryAsset.Names.Add(cleanName);
                                categoryAsset.SetDirty(false);
                                database.Sort(false, true);
                                name.stringValue  = cleanName;
                                nameSelectedIndex = s_namesList.IndexOf(name.stringValue);
                            }
                        }
                        else
                        {
                            name.stringValue = s_namesList[nameSelectedIndex];
                        }
                    }
                }

                float           lineHeight             = Properties.SingleLineHeight;
                float           backgroundHeight       = lineHeight * 2 + Properties.Space(2);
                GUILayoutOption backgroundHeightOption = GUILayout.Height(backgroundHeight);

                bool  isUnnamed    = name.stringValue.Equals(NamesDatabase.UNNAMED);
                Color initialColor = GUI.color;
                float labelAlpha   = Properties.TextIconAlphaValue(!isUnnamed);

                GUILayout.BeginHorizontal(backgroundHeightOption);
                {
                    GUILayout.BeginVertical(backgroundHeightOption);
                    {
                        Background.Draw(colorName, backgroundHeight);
                        GUILayout.Space(-backgroundHeight);
                        GUILayout.Space(Properties.Space());
                        GUILayout.BeginHorizontal();
                        GUILayout.Space(Properties.Space(2));
                        GUI.color = GUI.color.WithAlpha(labelAlpha);
                        Label.Draw(categoryLabel, Size.S, colorName);
                        GUI.color = initialColor;
                        GUILayout.EndHorizontal();

                        GUI.color = Colors.PropertyColor(colorName);
                        EditorGUI.BeginChangeCheck();
                        categorySelectedIndex = EditorGUILayout.Popup(categorySelectedIndex, database.CategoryNames.ToArray());
                        if (EditorGUI.EndChangeCheck())
                        {
                            category.stringValue = database.CategoryNames[categorySelectedIndex];
                            if (database.CategoryNames[categorySelectedIndex] != NamesDatabase.CUSTOM)
                            {
                                ListOfNames newCategory = database.GetCategory(database.CategoryNames[categorySelectedIndex]);

                                if (newCategory.Names.Count == 0)
                                {
                                    DDebug.Log("'" + database.CategoryNames[categorySelectedIndex] + "' " + Properties.Labels.CategoryIsEmpty);
                                }
                                else
                                {
                                    if (string.IsNullOrEmpty(name.stringValue.Trim()))
                                    {
                                        name.stringValue = database.GetNamesList(database.CategoryNames[categorySelectedIndex])[0];
                                    }
                                    else if (name.stringValue != NamesDatabase.UNNAMED && !database.GetNamesList(database.CategoryNames[categorySelectedIndex]).Contains(name.stringValue))
                                    {
                                        if (EditorUtility.DisplayDialog("Add Name", "Add the '" + name.stringValue + "' to the '" + database.CategoryNames[categorySelectedIndex] + "' category?", "Yes", "No"))
                                        {
                                            ListOfNames categoryAsset = database.GetCategory(database.CategoryNames[categorySelectedIndex]);
                                            categoryAsset.Names.Add(name.stringValue);
                                            categoryAsset.SetDirty(false);
                                            database.Sort(false, true);
                                        }
                                        else if (database.CategoryNames[categorySelectedIndex] == NamesDatabase.GENERAL)
                                        {
                                            name.stringValue = NamesDatabase.UNNAMED;
                                        }
                                        else
                                        {
                                            name.stringValue = database.GetNamesList(database.CategoryNames[categorySelectedIndex])[0];
                                        }
                                    }
                                    hasCustomName = false;
                                }
                            }

                            Properties.ResetKeyboardFocus();
                        }

                        GUI.color = initialColor;
                    }
                    GUILayout.EndVertical();
                    GUILayout.Space(Properties.Space());
                    GUILayout.BeginVertical(backgroundHeightOption);
                    {
                        Background.Draw(colorName, backgroundHeight);
                        GUILayout.Space(-backgroundHeight);
                        GUILayout.Space(Properties.Space());
                        GUILayout.BeginHorizontal();
                        GUILayout.Space(Properties.Space(2));
                        GUI.color = GUI.color.WithAlpha(labelAlpha);
                        Label.Draw(nameLabel, Size.S, colorName);
                        GUI.color = initialColor;
                        GUILayout.EndHorizontal();

                        GUI.color = Colors.PropertyColor(colorName);
                        if (hasCustomName)
                        {
                            EditorGUILayout.PropertyField(name, GUIContent.none, true);
                        }
                        else
                        {
                            EditorGUI.BeginChangeCheck();
                            nameSelectedIndex = EditorGUILayout.Popup(nameSelectedIndex, s_namesList.ToArray());
                            if (EditorGUI.EndChangeCheck())
                            {
                                name.stringValue = s_namesList[nameSelectedIndex];
                                Properties.ResetKeyboardFocus();
                            }
                        }

                        GUI.color = initialColor;
                    }
                    GUILayout.EndVertical();
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(-Properties.Space() - 1);
            }
Esempio n. 3
0
        private void DrawItemsDatabase(NamesDatabase database, bool showOnlyGeneralCategory, View view)
        {
            Event current = Event.current;

            DatabaseRenameCategory.target = view != View.General && m_categoryBeingRenamed != string.Empty;
            bool      newCategoryCreated = false;
            ColorName viewColorName      = CurrentViewColorName;

            DrawItemsDatabaseTopButtons(database, showOnlyGeneralCategory, view);

            #region CREATE NEW CATEGORY - TEXT FIELD

            if (DGUI.FadeOut.Begin(DatabaseCreateCategory, false))
            {
                GUILayout.Space(DGUI.Properties.Space(2) * DatabaseCreateCategory.faded);
                GUILayout.BeginHorizontal(GUILayout.Height(DGUI.Properties.SingleLineHeight + DGUI.Properties.Space(2)));
                {
                    GUILayout.Space((FullViewWidth - NewCategoryNameTextFieldWidth - 32) / 2);

                    GUI.color         = DGUI.Colors.GetDColor(ColorName.Green).Normal.WithAlpha(GUI.color.a);
                    m_newCategoryName = EditorGUILayout.TextField(GUIContent.none, m_newCategoryName, GUILayout.Width(NewCategoryNameTextFieldWidth));
                    GUI.color         = InitialGUIColor;


                    if (DGUI.Button.IconButton.Ok() ||
                        current.type == EventType.KeyUp && (current.keyCode == KeyCode.Return || current.keyCode == KeyCode.KeypadEnter))
                    {
                        if (database.CreateCategory(m_newCategoryName, new List <string>(), true, false))
                        {
                            newCategoryCreated = true;
                            GetAnimBool(view + m_newCategoryName, true);
                            ResetCreateNewCategory();
                        }
                        else
                        {
                            Instance.Focus();
                        }
                    }

                    if (DGUI.Button.IconButton.Cancel() ||
                        current.keyCode == KeyCode.Escape && current.type == EventType.KeyUp)
                    {
                        ResetCreateNewCategory();
                    }

                    GUILayout.FlexibleSpace();
                }
                GUILayout.EndHorizontal();
            }

            DGUI.FadeOut.End(DatabaseCreateCategory);

            GUI.color = InitialGUIColor;

            #endregion

            DrawDynamicViewVerticalSpace();

            #region SEARCH ROW

            DatabaseSearchEnabled.target = m_searchPattern.Length > 0; //search has been enabled if the dev typed a least on character in the search field
            if (!showOnlyGeneralCategory)
            {
                GUILayout.BeginHorizontal();
                {
                    DrawViewSearchHorizontalPadding();
                    DrawSearchIconAndText();

                    DGUI.Properties.SetNextControlName(SEARCH);
                    m_searchPattern = EditorGUILayout.TextField(GUIContent.none, m_searchPattern, GUILayout.ExpandWidth(true)); //search text field

                    if (!DatabaseSearchEnabled.target && m_searchPattern.Length > 0)                                            //search was just initiated -> reset the categories list that contain items that match the search pattern
                    {
                        m_categoriesWithSearchedItems.Clear();
                    }

                    if (!EditorGUIUtility.editingTextField && current.keyCode == KeyCode.S && current.type == EventType.KeyUp)
                    {
                        StartSearchDatabase();
                        EditorGUI.FocusTextInControl(SEARCH);
                    }

                    GUI.color = InitialGUIColor;

                    if (DatabaseSearchEnabled.faded > 0.1f)
                    {
                        DGUI.AlphaGroup.Begin(DatabaseSearchEnabled);
                        if (ButtonClearSearch(DatabaseSearchEnabled))
                        {
                            ResetSearchDatabase();
                            GUILayout.EndHorizontal();
                            return;
                        }

                        DGUI.AlphaGroup.End();
                    }

                    DrawViewSearchHorizontalPadding();
                }
                GUILayout.EndHorizontal();

                DrawDynamicViewVerticalSpace();
            }

            #endregion

            if (newCategoryCreated)
            {
                return;
            }
            DatabaseSearchEnabled.target = m_searchPattern.Length > 0; //search has been enabled if the dev typed a least on character in the search field

            //START - draw database
            bool foundNullCategory = false;

            #region Draw Database

            GUILayout.BeginHorizontal();
            {
                DrawViewHorizontalPadding();

                GUILayout.BeginVertical();
                {
                    //DRAW CATEGORY
                    foreach (ListOfNames category in database.Categories)
                    {
                        if (category == null)
                        {
                            foundNullCategory = true;
                            continue;
                        }

                        bool isGeneralCategory = category.CategoryName.Equals(NamesDatabase.GENERAL);
                        if (!isGeneralCategory && showOnlyGeneralCategory)
                        {
                            continue;
                        }
                        bool     categoryContainsSearchedItems = false;
                        bool     renamingThisCategory          = !DatabaseSearchEnabled.target && m_viewContainingCategoryThatIsBeingRenamed == view && m_categoryBeingRenamed == category.CategoryName;
                        AnimBool categoryAnimBool = GetAnimBool(view + category.CategoryName);

                        GUILayout.BeginHorizontal();
                        {
                            bool enabledState = GUI.enabled;
                            GUI.enabled = !(DatabaseRenameCategory.target && renamingThisCategory) && !DatabaseSearchEnabled.target; //do not allow the dev to use this button if THIS category is being renamed or a search is happening

                            if (showOnlyGeneralCategory)
                            {
                                categoryAnimBool.target = true;
                            }
                            else
                            {
                                DGUI.Bar.Draw(category.CategoryName,
                                              Size.L,
                                              DGUI.Bar.Caret.CaretType.Caret,
                                              DatabaseSearchEnabled.target                                        //search is enabled
                                                  ? m_categoriesWithSearchedItems.Contains(category.CategoryName) //check if this category contains items that match the search pattern
                                                        ? viewColorName                                           //search is enabled and this category contains items that match the search pattern
                                                        : ColorName.Gray                                          //search is enabled and this category DOES NOT contain items that match the search pattern
                                                  : renamingThisCategory                                          //rename for THIS category is enabled
                                                      ? RENAME_COLOR_NAME                                         //rename for THIS category is enabled
                                                      : viewColorName,                                            //rename for THIS category is NOT enabled
                                              categoryAnimBool);
                            }

                            GUI.enabled = enabledState;

                            if (!isGeneralCategory)
                            {
                                if (!DatabaseSearchEnabled.target && categoryAnimBool.faded > 0.05f && DatabaseRenameCategory.faded < 0.5f)
                                {
                                    DGUI.AlphaGroup.Begin(categoryAnimBool.faded * (1 - DatabaseRenameCategory.faded));
                                    {
                                        #region Button - RENAME CATEGORY

                                        if (DGUI.Button.Draw(DGUI.Properties.Labels.Rename,
                                                             Size.S,
                                                             TextAlign.Center,
                                                             DGUI.Colors.DisabledBackgroundColorName,
                                                             DGUI.Colors.DisabledTextColorName,
                                                             true,
                                                             DGUI.Bar.Height(Size.L),
                                                             80 * categoryAnimBool.faded * (1 - DatabaseRenameCategory.faded))
                                            ||
                                            renamingThisCategory && Event.current.keyCode == KeyCode.Escape && Event.current.type == EventType.KeyUp)
                                        {
                                            if (!renamingThisCategory &&
                                                EditorUtility.DisplayDialog(UILabels.RenameCategory + " '" + category + "'",
                                                                            UILabels.RenameCategoryDialogMessage +
                                                                            "\n\n" +
                                                                            UILabels.YouAreResponsibleToUpdateYourCode,
                                                                            UILabels.Continue,
                                                                            UILabels.Cancel))
                                            {
                                                StartRenameCategory(view, category.CategoryName);
                                                Instance.Focus();
                                            }
                                            else
                                            {
                                                ResetRenameCategory();
                                            }
                                        }

                                        #endregion

                                        #region Button - DELETE CATEGORY

                                        if (DGUI.Button.IconButton.Cancel(BarHeight)) //DELETE Category
                                        {
                                            database.DeleteCategory(category);
                                            break;
                                        }

                                        #endregion
                                    }
                                    DGUI.AlphaGroup.End();
                                }
                            }
                        }
                        GUILayout.EndHorizontal();


                        if (DGUI.FadeOut.Begin(DatabaseSearchEnabled.target ? 1 : categoryAnimBool.faded))
                        {
                            GUILayout.BeginVertical();
                            {
                                //RENAME CATEGORY
                                if (renamingThisCategory)
                                {
                                    if (DGUI.FadeOut.Begin(DatabaseRenameCategory))
                                    {
                                        GUILayout.BeginVertical();
                                        {
                                            GUILayout.Space(DGUI.Properties.Space() * DatabaseRenameCategory.faded);
                                            GUILayout.BeginHorizontal(GUILayout.Height(DGUI.Properties.SingleLineHeight + DGUI.Properties.Space(2)));
                                            {
                                                DrawDefaultViewHorizontalSpacing();

                                                GUI.color = DGUI.Colors.GetDColor(RENAME_COLOR_NAME).Normal.WithAlpha(GUI.color.a);

                                                DGUI.Label.Draw(UILabels.RenameTo, Size.S, DGUI.Properties.SingleLineHeight + DGUI.Properties.Space(2)); //rename to label

                                                GUI.SetNextControlName(RENAME);
                                                m_newCategoryName = EditorGUILayout.TextField(GUIContent.none, m_newCategoryName); //rename to field
                                                GUI.color         = InitialGUIColor;

                                                if (DGUI.Button.IconButton.Ok() ||
                                                    Event.current.keyCode == KeyCode.Return && Event.current.type == EventType.KeyUp) //rename OK button
                                                {
                                                    Instance.Focus();

                                                    if (database.Rename(category.CategoryName, m_newCategoryName))
                                                    {
                                                        GetAnimBool(view + m_newCategoryName).value = true;
                                                        ResetRenameCategory();
                                                        Event.current.Use();
                                                        break;
                                                    }
                                                }

                                                if (DGUI.Button.IconButton.Cancel() ||
                                                    Event.current.keyCode == KeyCode.Escape && Event.current.type == EventType.KeyUp) //rename CANCEL button
                                                {
                                                    ResetRenameCategory();
                                                    Event.current.Use();
                                                }

                                                EditorGUI.FocusTextInControl(RENAME);

                                                DrawDefaultViewHorizontalSpacing();
                                            }
                                            GUILayout.EndHorizontal();

                                            GUILayout.Space(DGUI.Properties.Space(4) * DatabaseRenameCategory.faded);
                                        }
                                        GUILayout.EndVertical();
                                        GUI.color = InitialGUIColor;
                                    }

                                    DGUI.FadeOut.End(DatabaseRenameCategory, false);
                                }

                                GUI.enabled = !(DatabaseRenameCategory.target && renamingThisCategory);

                                if (category.Names.Count == 0)
                                {
                                    GUILayout.Space(DGUI.Properties.Space());
                                    DGUI.Colors.SetDisabledGUIColorAlpha();
                                    DGUI.Label.Draw(UILabels.CategoryIsEmpty, Size.S);
                                    DGUI.Colors.SetNormalGUIColorAlpha();
                                }
                                else
                                {
                                    for (int index = 0; index < category.Names.Count; index++)
                                    {
                                        string currentName = category.Names[index];

                                        if (DatabaseSearchEnabled.target)
                                        {
                                            if (!Regex.IsMatch(category.Names[index], m_searchPattern, RegexOptions.IgnoreCase))
                                            {
                                                continue;
                                            }
                                            categoryContainsSearchedItems = true;
                                        }

                                        GUILayout.BeginHorizontal();
                                        {
                                            if (showOnlyGeneralCategory)
                                            {
                                                GUILayout.Space(-DGUI.Properties.Space(3) * categoryAnimBool.faded);
                                            }
                                            string newName    = currentName;
                                            bool   guiEnabled = GUI.enabled;
                                            if (isGeneralCategory && !NamesDatabase.CanDeleteItem(database, currentName))
                                            {
                                                GUI.enabled = false;
                                            }
                                            EditorGUI.BeginChangeCheck();
                                            newName = EditorGUILayout.DelayedTextField(GUIContent.none, newName);
                                            if (EditorGUI.EndChangeCheck())
                                            {
                                                category.UndoRecord(UILabels.Rename);
                                                category.Names[index] = newName;
                                                category.SetDirty(false);
                                                m_needsSave = true;
//                                                break;
                                            }

                                            if (DGUI.Button.IconButton.Minus()) //remove entry
                                            {
                                                if (!isGeneralCategory || isGeneralCategory && NamesDatabase.CanDeleteItem(database, currentName))
                                                {
                                                    category.UndoRecord(UILabels.RemoveItem);
                                                    category.Names.RemoveAt(index);
                                                    category.SetDirty(false);
                                                    m_needsSave = true;
                                                }

//                                                break;
                                            }

                                            GUI.enabled = guiEnabled;
                                        }
                                        GUILayout.EndHorizontal();
                                    }
                                }

                                if (!DatabaseSearchEnabled.target)
                                {
                                    GUILayout.BeginHorizontal();
                                    {
                                        GUILayout.FlexibleSpace();
                                        if (DGUI.Button.IconButton.Plus())
                                        {
                                            category.UndoRecord(UILabels.AddItem);
                                            category.Names.Add("");
                                            category.SetDirty(false);
                                            m_needsSave = true;
                                            break;
                                        }
                                    }
                                    GUILayout.EndHorizontal();
                                }

                                GUILayout.Space(DGUI.Properties.Space(2) * categoryAnimBool.faded);
                                GUI.enabled = true;
                            }
                            GUILayout.EndVertical();
                        }

                        DGUI.FadeOut.End(DatabaseSearchEnabled.target ? 1 : categoryAnimBool.faded);

                        if (!DatabaseSearchEnabled.target)
                        {
                            continue;
                        }
                        if (categoryContainsSearchedItems && !m_categoriesWithSearchedItems.Contains(category.CategoryName))
                        {
                            m_categoriesWithSearchedItems.Add(category.CategoryName);
                            categoryAnimBool.target = true;
                        }
                        else if (!categoryContainsSearchedItems && m_categoriesWithSearchedItems.Contains(category.CategoryName))
                        {
                            m_categoriesWithSearchedItems.Remove(category.CategoryName);
                            categoryAnimBool.target = false;
                        }
                    }
                }
                GUILayout.EndVertical();

                DrawViewHorizontalPadding();
            }
            GUILayout.EndHorizontal();

            #endregion

            if (foundNullCategory)
            {
                database.RefreshDatabase(false, false);
            }
        }
Esempio n. 4
0
        private void DrawItemsDatabaseTopButtons(NamesDatabase database, bool showOnlyGeneralCategory, View view)
        {
            GUILayout.BeginHorizontal();
            {
                DrawDefaultViewHorizontalSpacing();
                GUILayout.FlexibleSpace();

                if (!showOnlyGeneralCategory)
                {
                    if (ButtonNew(DatabaseCreateCategory.target, UILabels.NewCategory))
                    {
                        if (DatabaseCreateCategory.target)
                        {
                            ResetCreateNewCategory();
                        }
                        else
                        {
                            CollapseAllCategories(database, view);
                            ResetRenameCategory();
                            ResetSearchDatabase();
                            StartCreateNewCategory();
                        }
                    }

                    DrawDefaultViewHorizontalSpacing();
                }


                if (ButtonSortDatabase())
                {
                    ResetCreateNewCategory();
                    ResetSearchDatabase();
                    ResetRenameCategory();
                    database.RemoveEmptyNames(true);
                    database.Sort(false);
                    database.UpdateListOfCategoryNames();
                }

                DrawDefaultViewHorizontalSpacing();

                if (ButtonRefreshDatabase())
                {
                    ResetCreateNewCategory();
                    ResetSearchDatabase();
                    ResetRenameCategory();
                    database.RefreshDatabase(true, false);
                }

                DrawDefaultViewHorizontalSpacing();

                if (ButtonResetDatabase())
                {
                    ResetCreateNewCategory();
                    ResetSearchDatabase();
                    ResetRenameCategory();
                    database.ResetDatabase();
                }

                DrawDefaultViewHorizontalSpacing();

                if (ButtonSaveDatabase())
                {
                    Save();
                }

                DrawDefaultViewHorizontalSpacing();

                if (!showOnlyGeneralCategory)
                {
                    DrawDefaultViewHorizontalSpacing();
                    if (ButtonSearchFor(UILabels.SearchForCategories))
                    {
                        ResetCreateNewCategory();
                        ResetSearchDatabase();
                        ResetRenameCategory();
                        database.SearchForUnregisteredDatabases(true);
                    }
                }

                GUILayout.FlexibleSpace();
                DrawDefaultViewHorizontalSpacing();
            }
            GUILayout.EndHorizontal();
        }
Esempio n. 5
0
        public static void UpdateDatabase()
        {
            Instance.database = NamesDatabase.GetDatabase(DoozyPath.UIBUTTON_DATABASE, NamesDatabase.GetPath(NamesDatabaseType.UIButton));
#if UNITY_EDITOR
            if (Instance.database == null)
            {
                return;
            }
            Instance.database.DatabaseType = NamesDatabaseType.UIButton;
            Instance.database.SearchForUnregisteredDatabases(false);
            Instance.database.RefreshDatabase(false, false);
            Instance.SetDirty(true);
#endif
        }