void ValiateUIButtonNameAndCategory()
 {
     if (string.IsNullOrEmpty(buttonName.stringValue)) //buttonName is empty? -> reset button name to default
     {
         buttonName.stringValue = DUI.DEFAULT_BUTTON_NAME;
     }
     if (buttonCategory.stringValue != DUI.CUSTOM_NAME)
     {
         if (!DUI.UIButtonCategoryExists(buttonCategory.stringValue)) //category does not exist -> reset button category to default
         {
             EditorUtility.DisplayDialog("Information", "This button's category is set to '" + buttonCategory.stringValue + "', but this category was not found in the UIButtons Database.\nResetting this button's category to the default value (" + DUI.DEFAULT_CATEGORY_NAME + ").", "Ok");
             buttonCategory.stringValue = DUI.DEFAULT_CATEGORY_NAME;
         }
         if (!DUI.UIButtonNameExists(buttonCategory.stringValue, buttonName.stringValue)) //button name does not exist in the set category -> change category to default & add the button name to the database
         {
             if (EditorUtility.DisplayDialog("Action Required", "This button's name is set to '" + buttonName.stringValue + "', but it was not found in the '" + buttonCategory.stringValue + "' category.\nDo you want to add the name to the set category?", "Yes", "No"))
             {
                 DUI.AddUIButtonName(buttonCategory.stringValue, buttonName.stringValue);
                 buttonNameIndex = DUI.GetUIButtonNames(buttonCategory.stringValue).IndexOf(buttonName.stringValue);
             }
             else
             {
                 EditorUtility.DisplayDialog("Information", "This button's category was reset to the default value (" + DUI.DEFAULT_CATEGORY_NAME + ").", "Ok");
                 buttonCategory.stringValue = DUI.DEFAULT_CATEGORY_NAME;
                 if (!DUI.UIButtonNameExists(buttonCategory.stringValue, buttonName.stringValue))
                 {
                     if (EditorUtility.DisplayDialog("Action Required", "This button's name is set to '" + buttonName.stringValue + "', but it was not found in the '" + buttonCategory.stringValue + "' category.\nDo you want to add the name to the set category?", "Yes", "No"))
                     {
                         DUI.AddUIButtonName(buttonCategory.stringValue, buttonName.stringValue);
                         buttonNameIndex = DUI.GetUIButtonNames(buttonCategory.stringValue).IndexOf(buttonName.stringValue);
                     }
                     else
                     {
                         EditorUtility.DisplayDialog("Information", "This button's name was reset to the default value (" + DUI.DEFAULT_BUTTON_NAME + ").", "Ok");
                         buttonName.stringValue = DUI.DEFAULT_BUTTON_NAME;
                         buttonNameIndex        = DUI.GetUIButtonNames(buttonCategory.stringValue).IndexOf(buttonName.stringValue);
                     }
                 }
                 else
                 {
                     buttonNameIndex = DUI.GetUIButtonNames(buttonCategory.stringValue).IndexOf(buttonName.stringValue);
                 }
             }
         }
         else
         {
             buttonNameIndex = DUI.GetUIButtonNames(buttonCategory.stringValue).IndexOf(buttonName.stringValue);
         }
     }
     else
     {
         buttonNameIndex = DUI.GetUIButtonNames(DUI.DEFAULT_CATEGORY_NAME).IndexOf(DUI.DEFAULT_BUTTON_NAME);
     }
     buttonCategoryIndex = DUI.UIButtonCategories.IndexOf(buttonCategory.stringValue);
 }
 void DrawButtonName()
 {
     QUI.BeginHorizontal(WIDTH_420);
     {
         QUI.Label("Button Name", DUIStyles.GetStyle(DUIStyles.TextStyle.LabelNormal), WIDTH_105);
         if (EditorApplication.isPlayingOrWillChangePlaymode)
         {
             QUI.Label(buttonName.stringValue, DUIStyles.GetStyle(DUIStyles.TextStyle.LabelNormalItalic));
         }
         else
         {
             if (buttonCategory.stringValue.Equals(DUI.CUSTOM_NAME))
             {
                 EditorGUILayout.DelayedTextField(buttonName, GUIContent.none);
             }
             else
             {
                 if (DUI.GetUIButtonNames(DUI.UIButtonCategories[buttonCategoryIndex]).Count == 0)
                 {
                     QUI.Label(buttonName.stringValue, DUIStyles.GetStyle(DUIStyles.TextStyle.LabelNormalItalic), 90);
                     QUI.FlexibleSpace();
                     QUI.Label("(Empty Category)", DUIStyles.GetStyle(DUIStyles.TextStyle.LabelSmallItalic), 86);
                 }
                 else
                 {
                     QUI.BeginChangeCheck();
                     {
                         if (!DUI.UIButtonCategoryExists(buttonCategory.stringValue))
                         {
                             RefreshButtonNameAndCategory(true);
                         }
                         buttonNameIndex = EditorGUILayout.Popup(buttonNameIndex, DUI.GetUIButtonNames(buttonCategory.stringValue).ToArray());
                     }
                     if (QUI.EndChangeCheck())
                     {
                         buttonName.stringValue = DUI.GetUIButtonNames(buttonCategory.stringValue)[buttonNameIndex];
                     }
                 }
             }
         }
     }
     QUI.EndHorizontal();
     QUI.Space(SPACE_4);
 }
예제 #3
0
        void DrawUIButtonsDatabase()
        {
            QUI.DrawTexture(DUIResources.headerUIButtonsDatabase.texture, 552, 64);
            float sectionWidth = PAGE_WIDTH - SIDE_BAR_SHADOW_WIDTH * 2;

            QUI.BeginHorizontal(sectionWidth);
            {
                #region New Category
                if (!NewCategoryAnimBool.value)
                {
                    if (QUI.Button(DUIStyles.GetStyle(DUIStyles.ControlPanel.PageButtonNewCategory), 100 * (1 - SearchPatternAnimBool.faded), 20))
                    {
                        NewCategoryName              = "";
                        NewCategoryAnimBool.target   = true;
                        SearchPatternAnimBool.target = false;
                        foreach (string category in UIButtonsDatabaseAnimBool.Keys)
                        {
                            UIButtonsDatabaseAnimBool[category].target = false;
                        }
                    }
                }
                else
                {
                    SearchPatternAnimBool.target = false;
                    QUI.DrawTexture(DUIResources.pageButtonNewCategory.active, 100, 20);
                    QUI.Space(80);
                    SaveColors();
                    QUI.SetGUIBackgroundColor(DUIColors.GreenLight.Color);
                    NewCategoryName = EditorGUILayout.TextField(NewCategoryName, GUILayout.Width((sectionWidth - 149) * NewCategoryAnimBool.faded));
                    RestoreColors();
                    if (QUI.Button(DUIStyles.GetStyle(DUIStyles.ControlPanel.PageButtonOk), 20, 20))
                    {
                        if (string.IsNullOrEmpty(NewCategoryName))
                        {
                            EditorUtility.DisplayDialog("Info", "Cannot create an unnamed category. Try again.", "Ok");
                        }
                        else if (DUI.UIButtonCategoryExists(NewCategoryName))
                        {
                            EditorUtility.DisplayDialog("Info", "A category named '" + NewCategoryName + "' already exists in the database. Try again.", "Ok");
                        }
                        else
                        {
                            DUI.CreateUIButtonsCategory(NewCategoryName);
                            NewCategoryAnimBool.target = false;
                            RefreshUIButtonsDatabase(true);
                        }
                    }
                    QUI.Space(1);
                    if (QUI.Button(DUIStyles.GetStyle(DUIStyles.ControlPanel.PageButtonCancel), 20, 20))
                    {
                        NewCategoryName            = "";
                        NewCategoryAnimBool.target = false;
                    }
                }
                #endregion
                QUI.Space(342 * (1 - NewCategoryAnimBool.faded) * (1 - SearchPatternAnimBool.faded));
                #region Search
                if (!SearchPatternAnimBool.value)
                {
                    QUI.FlexibleSpace();
                    if (QUI.Button(DUIStyles.GetStyle(DUIStyles.ControlPanel.PageButtonSearch), 100 * (1 - NewCategoryAnimBool.faded), 20))
                    {
                        SearchPattern = string.Empty;
                        SearchPatternAnimBool.target = true;
                        NewCategoryAnimBool.target   = false;
                        foreach (string category in UIButtonsDatabaseAnimBool.Keys)
                        {
                            UIButtonsDatabaseAnimBool[category].target = true;
                        }
                    }
                }
                else
                {
                    NewCategoryAnimBool.target = false;
                    if (QUI.Button(DUIStyles.GetStyle(DUIStyles.ControlPanel.PageButtonClearSearch), 100 * SearchPatternAnimBool.faded, 20))
                    {
                        SearchPattern = string.Empty;
                        SearchPatternAnimBool.target = false;
                        foreach (string category in UIButtonsDatabaseAnimBool.Keys)
                        {
                            UIButtonsDatabaseAnimBool[category].target = false;
                        }
                    }
                    GUILayout.Space(1);
                    SaveColors();
                    QUI.SetGUIBackgroundColor(DUIColors.BlueLight.Color);
                    SearchPattern = EditorGUILayout.TextField(SearchPattern, GUILayout.Width((sectionWidth - 210) * SearchPatternAnimBool.faded));
                    RestoreColors();
                    QUI.DrawTexture(DUIResources.pageButtonSearch.active, 100, 20);
                }
                #endregion
            }
            QUI.EndHorizontal();
            QUI.Space(16);
            if (DUI.UIButtonsDatabase.Keys.Count == 0)
            {
                QUI.DrawTexture(DUIResources.pageImageEmptyDatabase.texture, 552, 256);
                return;
            }

            foreach (string category in DUI.UIButtonsDatabase.Keys)
            {
                QUI.BeginHorizontal(sectionWidth);
                {
                    #region Button Bar
                    if (ButtonBar(category + (SearchPatternAnimBool.target ? "*" : ""), UIButtonsDatabaseAnimBool[category], (sectionWidth - 203 * UIButtonsDatabaseAnimBool[category].faded * (1 - SearchPatternAnimBool.faded))))
                    {
                        UIButtonsDatabaseAnimBool[category].target = !UIButtonsDatabaseAnimBool[category].target;
                    }

                    QUI.Space(-7);

                    if (QUI.Button(DUIStyles.GetStyle(DUIStyles.ControlPanel.PageButtonSortAtoZ), 100 * UIButtonsDatabaseAnimBool[category].faded * (1 - SearchPatternAnimBool.faded), 20))
                    {
                        DUI.UIButtonsDatabase[category].RemoveEmpty();
                        DUI.UIButtonsDatabase[category].Sort();
                    }

                    QUI.Space(1);

                    if (QUI.Button(DUIStyles.GetStyle(DUIStyles.ControlPanel.PageButtonDelete), 100 * UIButtonsDatabaseAnimBool[category].faded * (1 - SearchPatternAnimBool.faded), 20))
                    {
                        if (EditorUtility.DisplayDialog("Delete the '" + category + "' category?", "Are you sure you want to proceed?\nOperation cannot be undone!", "Yes", "Cancel"))
                        {
                            DUI.DeleteUIButtonsCategory(category);
                            RefreshUIButtonsDatabase(true);
                            QUI.EndHorizontal();
                            break;
                        }
                    }
                    #endregion
                }
                QUI.EndHorizontal();
                if (!UIButtonsDatabaseAnimBool.ContainsKey(category))
                {
                    RefreshUIButtonsDatabase(true);
                }
                else
                {
                    if (QUI.BeginFadeGroup(UIButtonsDatabaseAnimBool[category].faded))
                    {
                        QUI.BeginChangeCheck();
                        {
                            if (DUI.UIButtonsDatabase[category] == null)
                            {
                                RefreshUIButtonsDatabase();
                            }
                            else
                            {
                                DrawNamesList(DUI.UIButtonsDatabase[category].data, PAGE_WIDTH - 200, "Category is empty...");
                            }
                        }
                        if (QUI.EndChangeCheck())
                        {
                            if (DUI.UIButtonsDatabase[category] == null)
                            {
                                RefreshUIButtonsDatabase();
                            }
                            else
                            {
                                EditorUtility.SetDirty(DUI.UIButtonsDatabase[category]);
                            }
                        }
                        QUI.Space(8);
                    }
                    QUI.EndFadeGroup();
                }
                QUI.Space(2);
            }
        }