summaryrefslogtreecommitdiff
path: root/Assets/Plugins/AdvancedInspector/Attributes/Enum.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Plugins/AdvancedInspector/Attributes/Enum.cs')
-rw-r--r--Assets/Plugins/AdvancedInspector/Attributes/Enum.cs68
1 files changed, 68 insertions, 0 deletions
diff --git a/Assets/Plugins/AdvancedInspector/Attributes/Enum.cs b/Assets/Plugins/AdvancedInspector/Attributes/Enum.cs
new file mode 100644
index 00000000..f9b88281
--- /dev/null
+++ b/Assets/Plugins/AdvancedInspector/Attributes/Enum.cs
@@ -0,0 +1,68 @@
+using System;
+
+namespace AdvancedInspector
+{
+ /// <summary>
+ /// Controls how an enum is handled and displayed.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
+ public class EnumAttribute : Attribute, IListAttribute
+ {
+ private bool masked = false;
+
+ /// <summary>
+ /// Turns a normal enum into a bitfield.
+ /// Careful, your enum should be properly setup to accepted bitfield input.
+ /// </summary>
+ public bool Masked
+ {
+ get { return masked; }
+ set { masked = value; }
+ }
+
+ private EnumDisplay display = EnumDisplay.DropDown;
+
+ /// <summary>
+ /// Forces an enum to be displayed differently.
+ /// </summary>
+ public EnumDisplay Display
+ {
+ get { return display; }
+ set { display = value; }
+ }
+
+ private int maxItemsPerRow = 6;
+
+ /// <summary>
+ /// When display is using Button or Checkbox, this is the maximum number of button displayed per rows before creating a new one.
+ /// </summary>
+ public int MaxItemsPerRow
+ {
+ get { return maxItemsPerRow; }
+ set { maxItemsPerRow = value; }
+ }
+
+ public EnumAttribute(bool masked)
+ {
+ this.masked = masked;
+ }
+
+ public EnumAttribute(EnumDisplay display)
+ {
+ this.display = display;
+ }
+
+ public EnumAttribute(bool masked, EnumDisplay display)
+ {
+ this.masked = masked;
+ this.display = display;
+ }
+ }
+
+ public enum EnumDisplay
+ {
+ DropDown,
+ Button,
+ Checkbox
+ }
+} \ No newline at end of file