From e846c64d6f927879cb8a095e62d773a8d7b3c9f4 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 15 Oct 2020 07:24:10 +0800 Subject: *ability system --- .../AdvancedInspector/Attributes/TextField.cs | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Assets/Plugins/AdvancedInspector/Attributes/TextField.cs (limited to 'Assets/Plugins/AdvancedInspector/Attributes/TextField.cs') diff --git a/Assets/Plugins/AdvancedInspector/Attributes/TextField.cs b/Assets/Plugins/AdvancedInspector/Attributes/TextField.cs new file mode 100644 index 00000000..555fa1cb --- /dev/null +++ b/Assets/Plugins/AdvancedInspector/Attributes/TextField.cs @@ -0,0 +1,87 @@ +using System; + +namespace AdvancedInspector +{ + /// + /// This allows control over how a string field is displayed. + /// Only useful on string field. + /// + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class TextFieldAttribute : Attribute, IListAttribute + { + private const string TITLE = "Select Path..."; + private const string PATH = ""; + private const string EXTENSION = ""; + + private string title = ""; + + /// + /// Title of the modal dialog + /// + public string Title + { + get { return title; } + set { title = value; } + } + + private string path = "C:\\"; + + /// + /// Default file/folder path + /// + public string Path + { + get { return path; } + set { path = value; } + } + + private string extension = ""; + + /// + /// Force the file dialog to show only specific file type. + /// + public string Extension + { + get { return extension; } + set { extension = value; } + } + + private TextFieldType type; + + /// + /// What type of control is this string. + /// + public TextFieldType Type + { + get { return type; } + set { type = value; } + } + + public TextFieldAttribute(TextFieldType type) + : this(type, TITLE, PATH, EXTENSION) { } + + public TextFieldAttribute(TextFieldType type, string title) + : this(type, title, PATH, EXTENSION) { } + + public TextFieldAttribute(TextFieldType type, string title, string path) + : this(type, title, path, EXTENSION) { } + + public TextFieldAttribute(TextFieldType type, string title, string path, string extension) + { + this.type = type; + this.title = title; + this.path = path; + this.extension = extension; + } + } + + public enum TextFieldType + { + Standard, + Password, + Area, + Tag, + File, + Folder + } +} \ No newline at end of file -- cgit v1.1-26-g67d0