diff options
author | chai <chaifix@163.com> | 2020-10-15 07:24:10 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-15 07:24:10 +0800 |
commit | e846c64d6f927879cb8a095e62d773a8d7b3c9f4 (patch) | |
tree | 7882744bbf2b6c7096ec15fb300f088c5a0807c5 /Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs | |
parent | cd12e74241678ee3c0752484d310b202187ba24c (diff) |
*ability system
Diffstat (limited to 'Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs')
-rw-r--r-- | Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs b/Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs new file mode 100644 index 00000000..de120b87 --- /dev/null +++ b/Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs @@ -0,0 +1,69 @@ +using UnityEngine; +using UnityEditor; +using System; +using System.Collections; + +using UniToolsEditor; + +namespace AdvancedInspector +{ + public class DateTimeEditor : FieldEditor, IModal + { + private InspectorField field; + + public override Type[] EditedTypes + { + get { return new Type[] { typeof(DateTime) }; } + } + + private static Texture calendar; + + internal static Texture Calendar + { + get + { + if (calendar == null) + calendar = Helper.Load(EditorResources.Calendar); + + return calendar; + } + } + + public override void Draw(InspectorField field, GUIStyle style) + { + DateTime time = field.GetValue<DateTime>(); + if (time == DateTime.MinValue) + time = DateTime.Now; + + string title = time.ToString(); + if (field.Mixed) + title = " - - - "; + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.Space(); + if (GUILayout.Button(Calendar, GUIStyle.none, GUILayout.Width(18), GUILayout.Height(18))) + { + this.field = field; + DateTimeDialog.Create(this, time, GUIUtility.GUIToScreenPoint(Event.current.mousePosition)); + } + + TextAnchor anchor = GUI.skin.label.alignment; + GUI.skin.label.alignment = TextAnchor.MiddleLeft; + GUILayout.Label(title); + GUI.skin.label.alignment = anchor; + + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + } + + public void ModalRequest(bool shift) { } + + public void ModalClosed(ModalWindow window) + { + if (window.Result != WindowResult.Ok) + return; + + field.SetValue(((DateTimeDialog)window).Time); + } + } +}
\ No newline at end of file |