From e846c64d6f927879cb8a095e62d773a8d7b3c9f4 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 15 Oct 2020 07:24:10 +0800 Subject: *ability system --- .../FieldEditors/DateTimeEditor.cs | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs (limited to 'Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs') 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(); + 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 -- cgit v1.1-26-g67d0