Elin Decompiled Documentation EA 23.153 Nightly
Loading...
Searching...
No Matches
WidgetMemo.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class WidgetMemo : Widget
6{
7 public class Extra
8 {
9 public bool autoHide;
10 }
11
12 public static WidgetMemo Instance;
13
14 public int id;
15
16 [NonSerialized]
17 public float hideTimer;
18
19 public InputField input;
20
21 public Window window;
22
23 public Image bgInput;
24
25 public Text textInput;
26
28
30
32
33 public CanvasGroup cgText;
34
35 public RectTransform inputRect;
36
37 public Extra extra => base.config.extra as Extra;
38
39 public override bool AlwaysBottom => true;
40
41 public override Type SetSiblingAfter => typeof(WidgetSideScreen);
42
43 public override object CreateExtra()
44 {
45 return new Extra();
46 }
47
48 public override void OnActivate()
49 {
50 input.text = ((id == 0) ? EMono.player.memo : EMono.player.memo2);
51 buttonEdit.SetOnClick(delegate
52 {
53 SE.Tab();
54 ToggleInput(!input.isFocused);
55 });
56 Instance = this;
57 buttonAutoHide.icon.SetAlpha(extra.autoHide ? 0.4f : 1f);
58 if (extra.autoHide)
59 {
60 cgText.alpha = 0f;
61 }
62 }
63
64 public override void OnDeactivate()
65 {
66 SaveText();
67 }
68
69 public void ToggleInput(bool enable)
70 {
71 input.interactable = enable;
72 bgInput.enabled = enable;
73 textInput.raycastTarget = enable;
74 buttonClose.SetActive(enable);
75 if (enable)
76 {
77 input.Select();
78 }
79 }
80
81 public override void OnUpdateConfig()
82 {
83 SaveText();
84 }
85
86 public void SaveText()
87 {
88 if (id == 0)
89 {
90 EMono.player.memo = input.text;
91 }
92 else
93 {
94 EMono.player.memo2 = input.text;
95 }
96 }
97
98 public void ToggleAutoHide()
99 {
100 SE.Tab();
101 extra.autoHide = !extra.autoHide;
102 hideTimer = 0f;
103 cgText.alpha = 1f;
104 buttonAutoHide.icon.SetAlpha(extra.autoHide ? 0.4f : 1f);
105 }
106
107 private void Update()
108 {
109 if (!input.isFocused)
110 {
111 if (input.interactable && !InputModuleEX.IsPointerChildOf(this))
112 {
113 ToggleInput(enable: false);
114 }
115 }
116 else if (!bgInput.enabled)
117 {
118 ToggleInput(enable: true);
119 }
120 if (extra.autoHide)
121 {
122 bool flag = InputModuleEX.IsPointerOver(this) || input.isFocused;
123 if (!flag && cgText.alpha != 0f)
124 {
125 Vector3 point = inputRect.InverseTransformPoint(Input.mousePosition);
126 if (inputRect.rect.Contains(point))
127 {
128 flag = true;
129 }
130 }
131 if (flag)
132 {
133 hideTimer = 0f;
134 cgText.alpha = 1f;
135 return;
136 }
138 if (hideTimer > 1f)
139 {
140 cgText.alpha = 0f;
141 }
142 }
143 else
144 {
145 cgText.alpha = 1f;
146 hideTimer = 0f;
147 }
148 }
149}
Definition: Core.cs:14
static float delta
Definition: Core.cs:17
Definition: EMono.cs:4
static Player player
Definition: EMono.cs:11
static bool IsPointerChildOf(Component c)
static bool IsPointerOver(Component c)
string memo
Definition: Player.cs:823
string memo2
Definition: Player.cs:826
Image icon
Definition: UIButton.cs:110
UIButton buttonEdit
Definition: WidgetMemo.cs:29
CanvasGroup cgText
Definition: WidgetMemo.cs:33
override bool AlwaysBottom
Definition: WidgetMemo.cs:39
Extra extra
Definition: WidgetMemo.cs:37
void ToggleAutoHide()
Definition: WidgetMemo.cs:98
static WidgetMemo Instance
Definition: WidgetMemo.cs:12
void ToggleInput(bool enable)
Definition: WidgetMemo.cs:69
override void OnActivate()
Definition: WidgetMemo.cs:48
void SaveText()
Definition: WidgetMemo.cs:86
override object CreateExtra()
Definition: WidgetMemo.cs:43
float hideTimer
Definition: WidgetMemo.cs:17
InputField input
Definition: WidgetMemo.cs:19
UIButton buttonClose
Definition: WidgetMemo.cs:27
UIButton buttonAutoHide
Definition: WidgetMemo.cs:31
override void OnUpdateConfig()
Definition: WidgetMemo.cs:81
Text textInput
Definition: WidgetMemo.cs:25
Window window
Definition: WidgetMemo.cs:21
RectTransform inputRect
Definition: WidgetMemo.cs:35
override void OnDeactivate()
Definition: WidgetMemo.cs:64
Image bgInput
Definition: WidgetMemo.cs:23
void Update()
Definition: WidgetMemo.cs:107
override Type SetSiblingAfter
Definition: WidgetMemo.cs:41
Definition: Widget.cs:7
Definition: Window.cs:13