public void DrawDatabase(TargetDatabase databaseType, DUIData.Database database, float width) { DrawNewCategoryAndSearch(width, databaseType); QUI.Space(SPACE_16); if (database.categories.Count == 0) { DrawInfoMessage(InfoMessageName.AddCategoryToStart.ToString(), width); return; } DrawExpandCollapseButtons(width, databaseType); QUI.Space(SPACE_8); foreach (string categoryName in database.categoryNames) { if (categoryName.Equals(DUI.CUSTOM_NAME)) { continue; } QUI.BeginHorizontal(width); { #region Button Bar if (RenameCategoryAnimBool.target && RenameCategoryTargetCategoryName.Equals(categoryName)) { QLabel.text = "Rename category to"; QLabel.style = Style.Text.Normal; QUI.Label(QLabel); QUI.Space(SPACE_2); QUI.SetNextControlName("RenameCategoryName"); RenameCategoryName = QUI.TextField(RenameCategoryName, width - QLabel.x - 46); QUI.Space(1); if (QUI.ButtonOk() || (DetectKey_Return() && QUI.GetNameOfFocusedControl().Equals("RenameCategoryName"))) { RenameCategoryName = RenameCategoryName.Trim(); if (string.IsNullOrEmpty(RenameCategoryName)) { QUI.DisplayDialog("Action Required", "Please enter a new category name in order to cotinue.", "Ok"); } else if (database.categoryNames.Contains(RenameCategoryName)) { QUI.DisplayDialog("Action Required", "There is another category with the name '" + RenameCategoryName + "' already in the database." + "\n\n" + "Enter another category name.", "Ok"); } else { database.RenameCategory(categoryName, RenameCategoryName); RenameCategoryName = ""; RenameCategoryAnimBool.target = false; RenameCategoryTargetCategoryName = ""; break; } } QUI.Space(1); if (QUI.ButtonCancel() || QUI.DetectKeyDown(Event.current, KeyCode.Escape)) { RenameCategoryName = ""; RenameCategoryAnimBool.target = false; RenameCategoryTargetCategoryName = ""; } } else { if (QUI.GhostBar(categoryName, SearchPatternAnimBool.target ? QColors.Color.Orange : QColors.Color.Blue, database.GetCategory(categoryName).isExpanded, width - 70 * database.GetCategory(categoryName).isExpanded.faded *(1 - SearchPatternAnimBool.faded), BarHeight)) { database.GetCategory(categoryName).isExpanded.target = !database.GetCategory(categoryName).isExpanded.target; } if (database.GetCategory(categoryName).isExpanded.faded > 0.7f && SearchPatternAnimBool.faded < 0.3f) { QUI.Space(1); if (QUI.GhostButton("rename", QColors.Color.Gray, 52, BarHeight, database.GetCategory(categoryName).isExpanded.value)) { if (QUI.DisplayDialog("Information", "Note that after you rename this category, all the UI settings (and code references) that use the current category name, will not get automatically changed." + "\n\n" + "You are responsible to update your code and the UI settings.", "Continue", "Cancel")) { RenameCategoryAnimBool.target = true; RenameCategoryName = categoryName; RenameCategoryTargetCategoryName = categoryName; QUI.FocusControl("RenameCategoryName"); QUI.FocusTextInControl("RenameCategoryName"); } } QUI.Space(3); if (QUI.ButtonCancel()) { if (categoryName.Equals(DUI.UNCATEGORIZED_CATEGORY_NAME)) { QUI.DisplayDialog("Info", "You cannot and should not try to delete the '" + categoryName + "' category.", "Ok"); } else if (QUI.DisplayDialog("Delete category?", "Are you sure you want to delete the '" + categoryName + "'?", "Yes", "Cancel")) { Undo.RecordObject(DUIData.Instance, "DeleteCategory"); database.RemoveCategory(categoryName, true); QUI.EndHorizontal(); break; } } } } #endregion } QUI.EndHorizontal(); if (QUI.BeginFadeGroup(database.GetCategory(categoryName).isExpanded.faded)) { DrawStringList(database.GetCategory(categoryName).itemNames, width, database.GetCategory(categoryName).isExpanded); QUI.Space(SPACE_8 * database.GetCategory(categoryName).isExpanded.faded); } QUI.EndFadeGroup(); QUI.Space(SPACE_2); } }
void DrawNewUISoundAndSearch(float width) { QUI.BeginHorizontal(width); { #region New UISound if (SearchPatternAnimBool.faded < 0.2f) { if (QUI.GhostButton("New UISound", QColors.Color.Green, 100 * (1 - SearchPatternAnimBool.faded), 20, NewUISoundAnimBool.value) || DetectKeyCombo_Alt_N()) { NewUISoundAnimBool.target = !NewUISoundAnimBool.target; if (NewUISoundAnimBool.target) { NewUISoundName = ""; SearchPatternAnimBool.target = false; } } } if (NewUISoundAnimBool.target) { SearchPatternAnimBool.target = false; QUI.SetGUIBackgroundColor(QColors.GreenLight.Color); QUI.SetNextControlName("NewUISoundName"); NewUISoundName = EditorGUILayout.TextField(NewUISoundName, GUILayout.Width((width - 149) * NewUISoundAnimBool.faded)); QUI.ResetColors(); if (!NewUISoundAnimBool.value && Event.current.type == EventType.Layout) //if NewUISoundAnimBool.target is true and NewUISoundAnimBool.value is false -> in transition -> select the text in the control { QUI.FocusControl("NewUISoundName"); QUI.FocusTextInControl("NewUISoundName"); } if (QUI.ButtonOk() || (DetectKey_Return() && QUI.GetNameOfFocusedControl().Equals("NewUISoundName"))) { if (NewUISoundName.IsNullOrEmpty()) { EditorUtility.DisplayDialog("Info", "Cannot create an unnamed UISound. Try again.", "Ok"); } else { if (DUIData.Instance.DatabaseUISounds.Contains(NewUISoundName)) { EditorUtility.DisplayDialog("Info", "A UISound named '" + NewUISoundName + "' already exists in the database. Try again.", "Ok"); } else { DUIData.Instance.DatabaseUISounds.CreateUISound(NewUISoundName, selectedUISoundsDatabaseFilter, null); NewUISoundAnimBool.target = false; } } } QUI.Space(1); if (QUI.ButtonCancel() || QUI.DetectKeyDown(Event.current, KeyCode.Escape)) { NewUISoundName = string.Empty; NewUISoundAnimBool.target = false; } } #endregion QUI.FlexibleSpace(); #region Search if (SearchPatternAnimBool.value) { NewUISoundAnimBool.target = false; QUI.SetGUIBackgroundColor(QColors.OrangeLight.Color); QUI.SetNextControlName("SearchPattern"); SearchPattern = EditorGUILayout.TextField(SearchPattern, GUILayout.Width((width - 104) * SearchPatternAnimBool.faded)); QUI.ResetColors(); if (SearchPatternAnimBool.target && Event.current.type == EventType.Layout) //if SearchPatternAnimBool.target is true and SearchPatternAnimBool.value is false -> in transition -> select the text in the control { QUI.FocusControl("SearchPattern"); QUI.FocusTextInControl("SearchPattern"); } } if (NewUISoundAnimBool.faded < 0.2f) { if (QUI.GhostButton(SearchPatternAnimBool.value ? "Clear Search" : "Search", QColors.Color.Orange, 100 * (1 - NewUISoundAnimBool.faded), 20, SearchPatternAnimBool.value) || DetectKeyCombo_Alt_S() || //Toggle Search (DetectKey_Escape() && SearchPatternAnimBool.target)) //Clear Search { SearchPatternAnimBool.target = !SearchPatternAnimBool.target; if (SearchPatternAnimBool.target) { SearchPattern = string.Empty; NewUISoundAnimBool.target = false; } } } #endregion } QUI.EndHorizontal(); }
void DrawDefineSymbolsSymbolsPreset(float width) { QUI.BeginVertical(width); { QUI.GhostTitle("SYMBOLS PRESET", QColors.Color.Green, width); QUI.Space(SPACE_4); QUI.BeginHorizontal(width); { QUI.Space(SPACE_8); if (QUI.GhostButton("<<< Copy to Build Target Group", QColors.Color.Green, width - SPACE_8, 24)) { List <string> tempList = presetSymbols; tempList = QUtils.CleanList(tempList); presetSymbols.Clear(); presetSymbols.AddRange(tempList); symbols.Clear(); symbols.AddRange(presetSymbols); QUtils.SetScriptingDefineSymbolsForGroup(selectedBuildTargetGroup, symbols); if (presetSymbols.Count == 0) { presetSymbols.Add(""); } } QUI.FlexibleSpace(); } QUI.EndHorizontal(); QUI.Space(SPACE_4); if (defineSymbolsNewPreset.value) //NEW PRESET { QUI.BeginHorizontal(width); { QUI.Space(SPACE_8); QUI.Label("Enter a new preset name...", Style.Text.Small, width - SPACE_8); } QUI.EndHorizontal(); QUI.Space(-SPACE_4); QUI.BeginHorizontal(width); { QUI.Space(SPACE_8); GUI.SetNextControlName("newPresetName"); newPresetName = QUI.TextField(newPresetName, EditorGUIUtility.isProSkin ? QColors.Green.Color : QColors.GreenLight.Color, (width - SPACE_8 - 16 - 2 - 16) * defineSymbolsNewPreset.faded); //if the user hits Enter while either the key or value fields were being edited bool keyboardReturnPressed = Event.current.isKey && Event.current.keyCode == KeyCode.Return && Event.current.type == EventType.KeyUp && (GUI.GetNameOfFocusedControl() == "newPresetName"); QUI.Space(-2); if (QUI.ButtonOk() || keyboardReturnPressed) { newPresetName = newPresetName.Trim(); if (newPresetName.Equals(DEFAULT_PRESET_NAME)) { QUI.DisplayDialog("Enter a new preset name", "You are trying to save a preset with the defaut preset name '" + DEFAULT_PRESET_NAME + "'. Please enter another preset name.", "Ok"); } else if (string.IsNullOrEmpty(newPresetName)) { QUI.DisplayDialog("Enter a new preset name", "You are trying to save a preset with no name. Please enter a name.", "Ok"); } else if (Q.GetResource <DefineSymbols.DefineSymbolsPreset>(EZT.RESOURCES_PATH_DEFINE_SYMBOLS_PRESETS, newPresetName) != null) { if (QUI.DisplayDialog("Overwrite preset?", "There is a preset with the same name '" + newPresetName + "' in the presets list. Are you sure you want to overwrite it?", "Overwrite", "Cancel")) { AssetDatabase.MoveAssetToTrash(EZT.RELATIVE_PATH_DEFINE_SYMBOLS_PRESETS + newPresetName + ".asset"); SavePreset(presetSymbols, newPresetName); selectedPresetName = newPresetName; RefreshPresetNames(); defineSymbolsNewPreset.target = false; newPresetName = ""; } } else { SavePreset(presetSymbols, newPresetName); selectedPresetName = newPresetName; RefreshPresetNames(); defineSymbolsNewPreset.target = false; newPresetName = ""; } } QUI.Space(2); //if the user hits Escape while either the key or value fields were being edited bool keyboardEscapePressed = Event.current.isKey && Event.current.keyCode == KeyCode.Escape && Event.current.type == EventType.KeyUp && (GUI.GetNameOfFocusedControl() == "newPresetName"); if (QUI.ButtonCancel() || keyboardEscapePressed) { defineSymbolsNewPreset.target = false; newPresetName = ""; } QUI.FlexibleSpace(); } QUI.EndHorizontal(); QUI.Space(5); } else //NORMAL VIEW { QUI.BeginHorizontal(width); { QUI.Space(SPACE_8); QUI.BeginChangeCheck(); QUI.SetGUIBackgroundColor(EditorGUIUtility.isProSkin ? QColors.Green.Color : QColors.GreenLight.Color); selectedPresetIndex = EditorGUILayout.Popup(selectedPresetIndex, presets, GUILayout.Width(width - SPACE_8)); QUI.ResetColors(); if (QUI.EndChangeCheck()) { Undo.RecordObject(this, "Select Preset"); selectedPresetName = presets[selectedPresetIndex]; } QUI.FlexibleSpace(); } QUI.EndHorizontal(); QUI.Space(SPACE_2); if (loadedPresetName.Equals(selectedPresetName) || selectedPresetName.Equals(DEFAULT_PRESET_NAME)) { QUI.BeginHorizontal(width); { QUI.Space(SPACE_8); if (selectedPresetName.Equals(DEFAULT_PRESET_NAME)) { if (QUI.GhostButton("Create a New Preset with current symbols", QColors.Color.Green, width - SPACE_8)) { defineSymbolsNewPreset.target = true; newPresetName = ""; } } else { if (QUI.GhostButton("NEW", QColors.Color.Green, ((width - SPACE_8) / 4) - SPACE_2)) { defineSymbolsNewPreset.target = true; newPresetName = ""; } QUI.Space(SPACE_2); if (QUI.GhostButton("RELOAD", QColors.Color.Green, ((width - SPACE_8) / 4) - SPACE_2)) { LoadPreset(selectedPresetName); } QUI.Space(SPACE_2); if (QUI.GhostButton("SAVE", QColors.Color.Green, ((width - SPACE_8) / 4) - SPACE_2)) { SavePreset(presetSymbols, selectedPresetName); } QUI.Space(SPACE_2); if (QUI.GhostButton("DELETE", QColors.Color.Red, ((width - SPACE_8) / 4) - SPACE_2)) { if (QUI.DisplayDialog("Delete preset?", "Are you sure you want to delete the '" + selectedPresetName + "' preset?", "Yes", "No")) { DeletePreset(selectedPresetName); } } } QUI.FlexibleSpace(); } QUI.EndHorizontal(); } else { QUI.BeginHorizontal(width); { QUI.Space(SPACE_8); if (QUI.GhostButton("Load Preset", QColors.Color.Green, width - SPACE_8)) { LoadPreset(selectedPresetName); } QUI.FlexibleSpace(); } QUI.EndHorizontal(); } } QUI.Space(-SPACE_8 - SPACE_4); DrawSelectedPresetsList(width); } QUI.EndVertical(); }