private static void SetEdit(MvcConfig.View view) { editingName = view.Name; editingBaseClassName = view.GetBaseClass(); editingLifeType = view.LifeType; editingRescaleMode = view.ViewRescaleMode; editingInitial = view.IsInitial; }
private static bool ApplyEdit(MvcConfig config, MvcConfig.View view) { // Silently replace view name that ends with suffix "View". editingName = ViewNameTrim(editingName); if (view.SetViewName(editingName) && view.SetBaseClassName(editingBaseClassName) && config.IsConfigValid()) { view.LifeType = editingLifeType; view.ViewRescaleMode = editingRescaleMode; if (editingInitial != view.IsInitial) { config.ToggleInitial(editingInitial ? view : null); } return(true); } return(false); }
private static void DrawClosedView(MVCEditor editor, MvcConfig config, MvcConfig.View view, int index) { GUILayout.BeginHorizontal("GroupBox"); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label(view.Name + " : " + view.GetBaseClass()); GUILayout.Label(view.LifeType.ToString() + " on dispose."); if (view.IsInitial) { GUILayout.Label("Initial view"); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); if (GUILayout.Button("Edit")) { ConfigViewEditorFlags.SetOpen(index); SetEdit(view); } GUILayout.EndHorizontal(); }
private static void DrawOpenedView(MVCEditor editor, MvcConfig config, MvcConfig.View view, int index) { GUILayout.BeginVertical("LightmapEditorSelectedHighlight"); editingName = ViewNameTrim( EditorGUILayout.TextField("View name", editingName) ); editingBaseClassName = EditorGUILayout.TextField("Custom base class", editingBaseClassName); editingLifeType = (MvcLifeType)EditorGUILayout.EnumPopup("Custom lifecycle", editingLifeType); editingRescaleMode = (MvcRescaleType)EditorGUILayout.EnumPopup("View rescale mode", editingRescaleMode); editingInitial = EditorGUILayout.Toggle("Is initial view?", editingInitial); if (GUILayout.Button("Save & Close")) { if (ApplyEdit(config, view)) { ConfigViewEditorFlags.ResetFlags(); } } EditorColors.SetBackgroundColor(Color.red); { if (GUILayout.Button("Danger Zone!")) { ConfigViewEditorFlags.IsDeleteOpen ^= true; } } EditorColors.ResetBackgroundColor(); if (ConfigViewEditorFlags.IsDeleteOpen) { GUILayout.BeginVertical("GroupBox"); EditorGUILayout.HelpBox( "It is highly recommended to apply configurations first before performing any actions here.", MessageType.Warning ); // Red background for danger zone buttons EditorColors.SetBackgroundColor(Color.red); { if (GUILayout.Button("Delete config")) { if (EditorDialog.OpenAlert( "Delete view configuration.", "Are you sure you want to delete this view's configuration? " + DeleteWarning, "Yes", "No")) { // Remove view from views list. MvcViewRemover.RemoveFromConfig(config.Views, index); ConfigViewEditorFlags.Setup(config); ConfigViewEditorFlags.ResetFlags(); } } // If loaded from resources, the user must've already created a prefab or at least scripts. if (view.IsFromResources) { EditorGUILayout.Space(); if (GUILayout.Button("Delete prefab")) { // Confirm prefab deletion if (EditorDialog.OpenAlert( "Delete view prefab", "Are you sure you want to delete this view's prefab? " + DeleteWarning, "Yes", "No")) { MvcViewRemover.RemovePrefab(view); } } EditorGUILayout.Space(); if (GUILayout.Button("Delete all")) { // Confirm deletion of all view-related things if (EditorDialog.OpenAlert( "Delete view config, scripts, prefab", "Are you sure you want to delete this view's config, scripts, and prefab?" + DeleteWarning, "Yes", "No")) { MvcViewRemover.RemoveFromConfig(config.Views, index); MvcViewRemover.RemoveScripts(view); MvcViewRemover.RemovePrefab(view); MvcViewRemover.Finalize(config); ConfigViewEditorFlags.Setup(config); ConfigViewEditorFlags.ResetFlags(); } } } } EditorColors.ResetBackgroundColor(); GUILayout.EndVertical(); } GUILayout.EndVertical(); }