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); }
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); } }