Nextrek
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
|
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2013 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
using System.Collections.Generic;
/// <summary>
/// Similar to UIButtonColor, but adds a 'disabled' state based on whether the collider is enabled or not.
/// </summary>
[AddComponentMenu("NGUI/Interaction/Button")]
public class UIButton : UIButtonColor
{
/// <summary>
/// Current button that sent out the onClick event.
/// </summary>
static public UIButton current;
/// <summary>
/// Color that will be applied when the button is disabled.
/// </summary>
public Color disabledColor = Color.grey;
/// <summary>
/// Click event listener.
/// </summary>
public List<EventDelegate> onClick = new List<EventDelegate>();
protected override void OnEnable ()
{
if (isEnabled)
{
if (mStarted)
{
if (mHighlighted) base.OnEnable();
else UpdateColor(true, false);
}
}
else UpdateColor(false, true);
}
public override void OnHover (bool isOver) { if (isEnabled) base.OnHover(isOver); }
public override void OnPress (bool isPressed) { if (isEnabled) base.OnPress(isPressed); }
/// <summary>
/// Call the listener function.
/// </summary>
void OnClick ()
{
if (isEnabled)
{
current = this;
EventDelegate.Execute(onClick);
current = null;
}
}
/// <summary>
/// Whether the button should be enabled.
/// </summary>
public bool isEnabled
{
get
{
if (!enabled) return false;
Collider col = collider;
return col && col.enabled;
}
set
{
Collider col = collider;
if (col != null) col.enabled = value;
else enabled = value;
UpdateColor(value, false);
}
}
/// <summary>
/// Update the button's color to either enabled or disabled state.
/// </summary>
public void UpdateColor (bool shouldBeEnabled, bool immediate)
{
if (tweenTarget)
{
if (!mStarted)
{
mStarted = true;
Init();
}
Color c = shouldBeEnabled ? defaultColor : disabledColor;
TweenColor tc = TweenColor.Begin(tweenTarget, 0.15f, c);
if (tc != null && immediate)
{
tc.color = c;
tc.enabled = false;
}
}
}
}
|
Revision |
Author |
Commited |
Message |
83
|
FMMortaroli
|
Tue 13 May, 2014 11:32:51 +0000 |
|