-
Notifications
You must be signed in to change notification settings - Fork 96
/
SCAN_ColorPicker.cs
145 lines (114 loc) · 2.95 KB
/
SCAN_ColorPicker.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#region license
/* [Scientific Committee on Advanced Navigation]
* S.C.A.N. Satellite
*
* CanvasFader - Monobehaviour for making smooth fade in and fade out for UI windows
*
* Copyright (c)2013 damny;
* Copyright (c)2014 technogeeky <technogeeky@gmail.com>;
* Copyright (c)2014 DMagic
* Copyright (c)2014 (Your Name Here) <your email here>; see LICENSE.txt for licensing details.
*/
#endregion
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using SCANsat.Unity.HSVPicker.UI;
namespace SCANsat.Unity
{
public class SCAN_ColorPicker : MonoBehaviour
{
[SerializeField]
private ColorImage m_ColorOne = null;
[SerializeField]
private ColorImage m_ColorTwo = null;
[SerializeField]
private Image m_OldColorOne = null;
[SerializeField]
private Image m_OldColorTwo = null;
[SerializeField]
private InputHandler m_RInputField = null;
[SerializeField]
private InputHandler m_GInputField = null;
[SerializeField]
private InputHandler m_BInputField = null;
private ColorPicker picker;
private bool anyInputActive;
public Color GetColorOne
{
get { return m_ColorOne.CurrentColor; }
}
public Color GetColorTwo
{
get { return m_ColorTwo.CurrentColor; }
}
public bool AnyInputActive
{
get { return anyInputActive; }
}
private void Awake()
{
picker = GetComponent<ColorPicker>();
}
private void Update()
{
anyInputActive = m_RInputField.IsFocused || m_GInputField.IsFocused || m_RInputField.IsFocused;
}
public void Setup(Color one, Color two, bool reset)
{
if (picker != null && reset)
picker.CurrentColor = one;
if (m_ColorOne != null)
{
m_ColorOne.SetColor(one);
if (reset)
m_ColorOne.IsActive = true;
}
if (m_ColorTwo != null)
m_ColorTwo.SetColor(two);
if (m_OldColorOne != null)
m_OldColorOne.color = one;
if (m_OldColorTwo != null)
m_OldColorTwo.color = two;
if (m_RInputField != null)
m_RInputField.OnTextUpdate.Invoke("");
if (m_GInputField != null)
m_GInputField.OnTextUpdate.Invoke("");
if (m_BInputField != null)
m_BInputField.OnTextUpdate.Invoke("");
}
public void ColorOne(bool isOn)
{
if (m_ColorOne == null)
return;
m_ColorOne.IsActive = isOn;
if (isOn)
{
picker.CurrentColor = m_ColorOne.CurrentColor;
if (m_RInputField != null)
m_RInputField.OnTextUpdate.Invoke("");
if (m_GInputField != null)
m_GInputField.OnTextUpdate.Invoke("");
if (m_BInputField != null)
m_BInputField.OnTextUpdate.Invoke("");
}
}
public void ColorTwo(bool isOn)
{
if (m_ColorTwo == null)
return;
m_ColorTwo.IsActive = isOn;
if (isOn)
{
picker.CurrentColor = m_ColorTwo.CurrentColor;
if (m_RInputField != null)
m_RInputField.OnTextUpdate.Invoke("");
if (m_GInputField != null)
m_GInputField.OnTextUpdate.Invoke("");
if (m_BInputField != null)
m_BInputField.OnTextUpdate.Invoke("");
}
}
}
}