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