Back to Home

ESO Lua File v101044

ingame/armory/keyboard/armorydialogs_keyboard.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
ZO_ArmoryBuildSettingsDialog_Keyboard = ZO_InitializingObject:Subclass()
function ZO_ArmoryBuildSettingsDialog_Keyboard:Initialize(control)
    self.control = control
    self.containerControl = control:GetNamedChild("ContentContainer")
    self.buildNameEditBox = self.containerControl:GetNamedChild("EditBox")
    self.armoryBuildIconPickerGridListControl = self.containerControl:GetNamedChild("BuildIconPicker")
    self.armoryBuildIconPicker = ZO_ArmoryBuildIconPicker_Keyboard:New(self.armoryBuildIconPickerGridListControl)
    --Needed in order for the requiresTextInput field in the dialog data to work
    control.requiredTextFields = ZO_RequiredTextFields:New()
    control.requiredTextFields:AddTextField(self.buildNameEditBox)
end
function ZO_ArmoryBuildSettingsDialog_Keyboard:SetFocusedBuildData(buildData)
    self.selectedBuildData = buildData
    self.buildNameEditBox:SetText(buildData:GetName())
    self.armoryBuildIconPicker:SetupIconPickerForArmoryBuild(buildData)
end
function ZO_ArmoryBuildSettingsDialog_Keyboard:SavePendingChanges()
    --If we somehow don't have any build data, there isn't anything to save our changes to
    if self.selectedBuildData then
        local pendingBuildName = self.buildNameEditBox:GetText()
        if pendingBuildName and pendingBuildName ~= "" then
            local violations = { IsValidArmoryBuildName(pendingBuildName) }
            if #violations == 0 then
                self.selectedBuildData:SetName(pendingBuildName)
                self.selectedBuildData:SetIconIndex(self.armoryBuildIconPicker:GetSelectedArmoryBuildIconIndex())
                return true
            end
        end
    end
    --If we get here, that means we failed to save the pending changes for some reason, so return false
    return false
end
    self.object = ZO_ArmoryBuildSettingsDialog_Keyboard:New(self)
    ZO_Dialogs_RegisterCustomDialog("ArmorySettingsDialog",
    {
        title =
        {
            text = SI_ARMORY_BUILD_DIALOG_TITLE,
        },
        mainText =
        {
            text = "",
        },
        setup = function(dialog, data)
            --Set up the rules for the edit box
            local editControl = dialog:GetNamedChild("ContentContainerEditBox")
            editControl:SetTextType(TEXT_TYPE_ALL)
            editControl:SetMaxInputChars(MAX_ARMORY_BUILD_NAME_LENGTH)
            self.object:SetFocusedBuildData(data.selectedBuildData)
            self.object.armoryBuildIconPicker:ScrollToSelectedData()
            self.object.armoryBuildIconPicker:RefreshGridList()
        end,
        customControl = self,
        buttons =
        {
            {
                requiresTextInput = true,
                noReleaseOnClick = true,
                control = self:GetNamedChild("Close"),
                text = SI_DIALOG_CLOSE,
                callback = function(dialog)
                    --Only close the dialog if the changes were saved successfully
                    if dialog.object:SavePendingChanges() then
                        if dialog.data.confirmCallback then
                            dialog.data:confirmCallback()
                        end
                        ZO_Dialogs_ReleaseDialog("ArmorySettingsDialog")
                    end
                end
            },
        }
    })
end
------------------
--Global XML
------------------
    if ZO_CheckButton_IsEnabled(self:GetNamedChild("IconContainerFrame")) then
        self:GetNamedChild("Highlight"):SetHidden(false)
    end
end
    self:GetNamedChild("Highlight"):SetHidden(true)
end