summaryrefslogtreecommitdiff
path: root/Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-15 07:24:10 +0800
committerchai <chaifix@163.com>2020-10-15 07:24:10 +0800
commite846c64d6f927879cb8a095e62d773a8d7b3c9f4 (patch)
tree7882744bbf2b6c7096ec15fb300f088c5a0807c5 /Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs
parentcd12e74241678ee3c0752484d310b202187ba24c (diff)
*ability system
Diffstat (limited to 'Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs')
-rw-r--r--Assets/Plugins/Editor/AdvancedInspector/FieldEditors/DateTimeEditor.cs69
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