Back to Home

ESO Lua File v101044

libraries/zo_spinner/gamepad/zo_spinner_gamepad.lua

[◄ back to folders ]
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
146
147
148
149
150
151
152
153
ZO_Spinner_Gamepad = ZO_Spinner:Subclass()
GAMEPAD_SPINNER_DIRECTION_VERTICAL = 1
GAMEPAD_SPINNER_DIRECTION_HORIZONTAL = 2
local function GetMagnitude(direction)
    if direction == GAMEPAD_SPINNER_DIRECTION_VERTICAL then
        return DIRECTIONAL_INPUT:GetY(ZO_DI_LEFT_STICK, ZO_DI_DPAD)
    end
    return DIRECTIONAL_INPUT:GetX(ZO_DI_LEFT_STICK, ZO_DI_DPAD)
end
function ZO_Spinner_Gamepad:Initialize(control, min, max, stickDirection, spinnerMode, accelerationTime, magnitudeQueryFunction)
    local IS_GAMEPAD = true
    ZO_Spinner.Initialize(self, control, min, max, IS_GAMEPAD, spinnerMode, accelerationTime)
    self.stickDirection = stickDirection or GAMEPAD_SPINNER_DIRECTION_HORIZONTAL
    self:SetActive(false)
    local function GetDirectionalInputNarrationData()
        --Only narrate directional input if there is more than one possible value
        if self:GetMin() ~= self:GetMax() then
            if self.stickDirection == GAMEPAD_SPINNER_DIRECTION_VERTICAL then
                if self.hideButtons or self.spinnerMode == SPINNER_MODE_WRAP then
                    return ZO_GetNumericVerticalDirectionalInputNarrationData()
                else
                    --Only include enabled state if the buttons are visible
                end
            else
                if self.hideButtons or self.spinnerMode == SPINNER_MODE_WRAP then
                    return ZO_GetHorizontalDirectionalInputNarrationData()
                else
                    --Only include enabled state if the buttons are visible
                    local DEFAULT_LEFT_TEXT = nil
                    local DEFAULT_RIGHT_TEXT = nil
                    return ZO_GetHorizontalDirectionalInputNarrationData(DEFAULT_LEFT_TEXT, DEFAULT_RIGHT_TEXT, self:IsDecreaseEnabled(), self:IsIncreaseEnabled())
                end
            end
        else
            return {}
        end
    end
end
function ZO_Spinner_Gamepad:SetActive(active)
    ZO_Spinner.SetEnabled(self, active)
    if self.active ~= active then
        self.active = active
        if self.active then
            self:FireCallbacks("OnActivated")
            DIRECTIONAL_INPUT:Activate(self, self.control)
        else
            if self.lastInput ~= nil then
                self:OnButtonUp()
                self.lastInput = nil
            end
            DIRECTIONAL_INPUT:Deactivate(self)
        end
    end
end
--Sets the name used for screen narration
function ZO_Spinner_Gamepad:SetName(name)
    self.name = name
end
function ZO_Spinner_Gamepad:GetName()
    return self.name
end
function ZO_Spinner_Gamepad:IsActive()
    return self.active
end
function ZO_Spinner_Gamepad:Activate()
    self:SetActive(true)
end
function ZO_Spinner_Gamepad:Deactivate()
    self:SetActive(false)
end
do
    local DIRECTION_INCREMENT = 1
    local DIRECTION_DECREMENT = -1
    local MAGNITUDE_THRESHOLD = 0.1
    function ZO_Spinner_Gamepad:UpdateDirectionalInput()
        local magnitude = self.magnitudeQueryFunction(self.stickDirection)
        local input = nil
        if magnitude > MAGNITUDE_THRESHOLD then
            input = DIRECTION_INCREMENT
        elseif magnitude < -MAGNITUDE_THRESHOLD then
            input = DIRECTION_DECREMENT
        end
        if input ~= self.lastInput then
            if self.lastInput ~= nil then
                self:OnButtonUp()
            end
            if input ~= nil then
                self:OnButtonDown(input)
            end
            self.lastInput = input
        end
    end
end
end
function ZO_Spinner_Gamepad:GetHeaderNarration()
    if self.headerNarrationFunction then
        return self.headerNarrationFunction()
    end
end
--Whether or not we should narrate visible tooltips when narrating this spinner
function ZO_Spinner_Gamepad:SetCanNarrateTooltips(canNarrateTooltips)
end
function ZO_Spinner_Gamepad:CanNarrateTooltips()
    return self.canNarrateTooltips
end
--Used to set a custom narration function for this spinner
function ZO_Spinner_Gamepad:SetCustomNarrationFunction(narrationFunction)
end
--Returns the narration for this spinner. If self.customNarrationFunction is set, it will generate the narration using that
function ZO_Spinner_Gamepad:GetNarrationText()
    if self.customNarrationFunction then
        return self.customNarrationFunction(self)
    else
    end
end
function ZO_Spinner_Gamepad:GetAdditionalInputNarrationFunction()
end