Back to Home

ESO Lua File v100018

common/zo_uierrors/errorframe.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
--
--[[ ZO_ErrorFrame ]]--
--
local ZO_ErrorFrame = ZO_Object:Subclass()
function ZO_ErrorFrame:New(...)
    local errorFrame = ZO_Object.New(self)
    errorFrame:Initialize(...)
    return errorFrame
end
local LOW_MEMORY_STRING = GetString(SI_LUA_LOW_MEMORY)
function ZO_ErrorFrame:Initialize(control)
    self.control = control
    self.textEditControl = control:GetNamedChild("TextEdit")
    self.titleControl = control:GetNamedChild("Title")
    self.dismissControl = control:GetNamedChild("Dismiss")
    self.dismissIcon = self.dismissControl:GetNamedChild("GamepadIcon")
    self.queuedErrors = {}
    self.suppressErrorDialog = false
    self.displayingError = false
    EVENT_MANAGER:RegisterForEvent("ErrorFrame", EVENT_LUA_ERROR, function(eventCode, ...) self:OnUIError(...) end)
    EVENT_MANAGER:RegisterForEvent("ErrorFrame", EVENT_LUA_LOW_MEMORY, function() self:OnUIError(LOW_MEMORY_STRING) end)
end
local KEYBOARD_STYLES = {
                            textEditTemplate = "ZO_ErrorFrameTextEdit_Keyboard_Template",
                            titleTemplate = "ZO_ErrorFrameTitle_Keyboard_Template",
                            dismissTemplate = "ZO_ErrorFrameDismiss_Keyboard_Template",
                            hideDismissIcon = true,
                        }
local GAMEPAD_STYLES =  {
                            textEditTemplate = "ZO_ErrorFrameTextEdit_Gamepad_Template",
                            titleTemplate = "ZO_ErrorFrameTitle_Gamepad_Template",
                            dismissTemplate = "ZO_ErrorFrameDismiss_Gamepad_Template",
                            hideDismissIcon = false,
                        }
function ZO_ErrorFrame:UpdatePlatformStyles(styleTable)
    ApplyTemplateToControl(self.textEditControl, styleTable.textEditTemplate)
    ApplyTemplateToControl(self.titleControl, styleTable.titleTemplate)
    ApplyTemplateToControl(self.dismissControl, styleTable.dismissTemplate)
    self.dismissIcon:SetHidden(styleTable.hideDismissIcon)
end
function ZO_ErrorFrame:InitializePlatformStyles()
    ZO_PlatformStyle:New(function(...) self:UpdatePlatformStyles(...) end, KEYBOARD_STYLES, GAMEPAD_STYLES)
end
function ZO_ErrorFrame:GetNextQueuedError()
    if #self.queuedErrors > 0 then
        return table.remove(self.queuedErrors, 1)
    end
end
function ZO_ErrorFrame:OnUIError(errorString)
    if not self.suppressErrorDialog and errorString then
        table.insert(self.queuedErrors, errorString)
        if not self.displayingError then
            self.displayingError = true
            self.control:SetHidden(false)
            self.textEditControl:SetText(self:GetNextQueuedError())
            self.textEditControl:SetTopLineIndex(1)
        end
    end
end
function ZO_ErrorFrame:HideCurrentError()
    if not self.suppressErrorDialog then
        if self.displayingError then
            self.displayingError = false
            self.control:SetHidden(true)
            self.textEditControl:SetText("")
        end
        
    end
end
function ZO_ErrorFrame:HideAllErrors()
    if not self.suppressErrorDialog then
        self.queuedErrors = {}
        self:HideCurrentError()
    end
end
function ZO_ErrorFrame:ToggleSupressDialog()
    if not self.suppressErrorDialog then
        self:HideAllErrors()
    end
    self.suppressErrorDialog = not self.suppressErrorDialog
end
-- XML Handlers
    ZO_ERROR_FRAME = ZO_ErrorFrame:New(control)
end
    ZO_ERROR_FRAME:HideCurrentError()
end
function ZO_UIErrors_HideAll()
    ZO_ERROR_FRAME:HideAllErrors()
end
    ZO_ERROR_FRAME:ToggleSupressDialog()
end