self:SetTextInsets(5, 5, 0, 0)
local text = self:GetText()
local number = tonumber(text)
if number then
self.number = number
elseif text:match("^[0.]*$") then
self.number = 0
end
if number == ww_weights.rightPanel.statList[self:GetParent().statName] or (number == 0 and ww_weights.rightPanel.statList[self:GetParent().statName] == nil) then
ww_weights.rightPanel.changedStats[self] = nil
local changed = false
for _ in pairs(ww_weights.rightPanel.changedStats) do
changed = true
break
end
for _ in pairs(ww_weights.rightPanel.changedTriggers) do
changed = true
break
end
if not changed then
ww_weights.rightPanel.saveButton:Disable()
ww_weights.rightPanel.resetButton:Disable()
end
else
ww_weights.rightPanel.changedStats[self] = self:GetParent().statName
ww_weights.rightPanel.saveButton:Enable()
ww_weights.rightPanel.resetButton:Enable()
end
if ww_validateNumber(text, self:GetText()) then
self.number = tonumber(self:GetText()) or 0
else
local cursorPosition = self:GetCursorPosition() - 1
self:SetText(self.number)
self:SetCursorPosition(cursorPosition)
end
self:GetParent().highlightFrame:Show()
self:HighlightText()
self:GetParent().highlightFrame:Hide()
self:HighlightText(0,0)
ww_changeFocus(self:GetParent())
self:ClearFocus()
-- The nots convert things to boolean (instead of 1/nil)
if not self:GetChecked() == not ww_weights.rightPanel.statList.triggers[self:GetText()] then
ww_weights.rightPanel.changedTriggers[self] = nil
local changed = false
for _ in pairs(ww_weights.rightPanel.changedStats) do
changed = true
break
end
for _ in pairs(ww_weights.rightPanel.changedTriggers) do
changed = true
break
end
if not changed then
ww_weights.rightPanel.saveButton:Disable()
ww_weights.rightPanel.resetButton:Disable()
end
else
ww_weights.rightPanel.changedTriggers[self] = self:GetText()
ww_weights.rightPanel.saveButton:Enable()
ww_weights.rightPanel.resetButton:Enable()
end
local parent = self:GetParent()
local class = parent.category.class
if not ww_charVars.activeWeights[class] then
ww_charVars.activeWeights[class] = {}
table.insert(ww_charVars.activeWeights, class)
end
if self:GetChecked() then
table.insert(ww_charVars.activeWeights[class], parent.name)
else
for i, weight in ipairs(ww_charVars.activeWeights[class]) do
if weight == parent.name then
table.remove(ww_charVars.activeWeights[class], i)
break
end
end
end
GameTooltip:SetOwner(self,"ANCHOR_RIGHT")
GameTooltip:AddLine(ww_localization["WATCH_TT"], 1, 1, 1)
GameTooltip:Show()
GameTooltip:Hide()
ww_scrollBarUpdate(self, ww_weights.leftPanel.scrollContainer, 22, 0, 25)
FauxScrollFrame_OnVerticalScroll(self, offset, 22, self:GetScript("OnShow"))
ww_scrollBarUpdate(self, ww_weights.rightPanel.scrollContainer, 22, -30, 22)
FauxScrollFrame_OnVerticalScroll(self, offset, 22, self:GetScript("OnShow"))
if not ww_weights.popup then
ww_changeFocus(self.scrollContainer.stats[#(self.scrollContainer.stats)])
end
self.title:SetText(ww_localization[self.title:GetText()])
self.weightsAttribution:SetText(ww_localization[self.weightsAttribution:GetText()])
table.insert(UISpecialFrames, self:GetName())
function self:SmartHide(func)
self.afterHide = func
self:Hide()
end
if self.reallyClose then
self.reallyClose = nil
if self.afterHide then
self.afterHide()
end
self.afterHide = nil
else
self.popup = true
self:Show()
ww_configDiscardChanges(function()
self.reallyClose = true
if self.rightPanel:IsShown() then
ww_configResetWeight()
end
self:Hide()
if self.afterHide then
self.afterHide()
end
self.afterHide = nil
end)
self.popup = nil
end
self:SetTextInsets(5, 5, 0, 0)
if self:GetText() == "" then
self:GetParent().createButton:Disable()
else
self:GetParent().createButton:Enable()
end
if StaticPopup_Visible("WW_WEIGHT_EXISTS") then
StaticPopup_Hide("WW_WEIGHT_EXISTS")
else
self:GetParent().createButton:Click()
end
if StaticPopup_Visible("WW_WEIGHT_EXISTS") then
StaticPopup_Hide("WW_WEIGHT_EXISTS")
else
self:GetParent().cancelButton:Click()
end
self.text:SetText(ww_localization[self.text:GetText()])
self.editBox:SetFocus()