72 lines
2.2 KiB
C#
Raw Normal View History

2025-09-08 14:51:28 +08:00
#define Graph_And_Chart_PRO
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEditor;
using UnityEngine;
namespace ChartAndGraph
{
class RenameWindow :EditorWindow
{
string mStartName;
string mValue = "";
string mType;
Func<string, string, bool> mRenameMethod;
string mMessage = null;
public void ShowDialog(string currentName,string type,Func<string,string, bool> renameMethod)
{
mStartName = currentName;
mValue = currentName;
mType = type;
mRenameMethod = renameMethod;
float height = (float)(EditorGUIUtility.singleLineHeight * 6f);
minSize = maxSize = new Vector2(300, height);
Show();
}
void OnGUI()
{
EditorGUILayout.LabelField(string.Format("Select a new {0} name",mType));
mValue = EditorGUILayout.TextField(mValue);
bool disabled = false;
if (mValue.Trim().Length == 0)
{
mMessage = null;
EditorGUILayout.LabelField("Name can't be empty");
disabled = true;
}
else
if (ChartEditorCommon.IsAlphaNum(mValue) == false)
{
mMessage = null;
EditorGUILayout.LabelField("Name contains invalid charecters");
disabled = true;
}
if (mMessage != null)
EditorGUILayout.LabelField(mMessage);
EditorGUILayout.BeginHorizontal();
GUI.enabled = !disabled;
if (GUILayout.Button("Rename"))
{
if (mStartName == mValue)
Close();
else
{
if (mRenameMethod(mStartName,mValue))
Close();
else
mMessage = string.Format("A {0} by the name {1} already exists", mType, mValue);
}
}
GUI.enabled = true;
GUILayout.FlexibleSpace();
if (GUILayout.Button("Cancel"))
Close();
EditorGUILayout.EndHorizontal();
}
}
}