initial commit
This commit is contained in:
167
Core/UI/MainUI/Settings/Mailing.lua
Normal file
167
Core/UI/MainUI/Settings/Mailing.lua
Normal file
@@ -0,0 +1,167 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster --
|
||||
-- https://tradeskillmaster.com --
|
||||
-- All Rights Reserved - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
local _, TSM = ...
|
||||
local Mailing = TSM.MainUI.Settings:NewPackage("Mailing")
|
||||
local L = TSM.Include("Locale").GetTable()
|
||||
local Sound = TSM.Include("Util.Sound")
|
||||
local Math = TSM.Include("Util.Math")
|
||||
local UIElements = TSM.Include("UI.UIElements")
|
||||
local private = {
|
||||
sounds = {},
|
||||
soundkeys = {},
|
||||
}
|
||||
local ITEM_QUALITY_DESCS = { ITEM_QUALITY2_DESC, ITEM_QUALITY3_DESC, ITEM_QUALITY4_DESC }
|
||||
local ITEM_QUALITY_KEYS = { 2, 3, 4 }
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Module Functions
|
||||
-- ============================================================================
|
||||
|
||||
function Mailing.OnInitialize()
|
||||
TSM.MainUI.Settings.RegisterSettingPage(L["Mailing"], "middle", private.GetMailingSettingsFrame)
|
||||
for key, name in pairs(Sound.GetSounds()) do
|
||||
tinsert(private.sounds, name)
|
||||
tinsert(private.soundkeys, key)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Mailing Settings UI
|
||||
-- ============================================================================
|
||||
|
||||
function private.GetMailingSettingsFrame()
|
||||
TSM.UI.AnalyticsRecordPathChange("main", "settings", "mailing")
|
||||
return UIElements.New("ScrollFrame", "mailingSettings")
|
||||
:SetPadding(8, 8, 8, 0)
|
||||
:AddChild(TSM.MainUI.Settings.CreateExpandableSection("Mailing", "inbox", L["Inbox Settings"], "")
|
||||
:AddChild(UIElements.New("Frame", "content")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(20)
|
||||
:SetMargin(0, 0, 0, 12)
|
||||
:AddChild(UIElements.New("Checkbox", "inboxMessagesCheckbox")
|
||||
:SetWidth("AUTO")
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Enable inbox chat messages"])
|
||||
:SetSettingInfo(TSM.db.global.mailingOptions, "inboxMessages")
|
||||
)
|
||||
:AddChild(UIElements.New("Spacer", "spacer"))
|
||||
)
|
||||
:AddChild(UIElements.New("Text", "label")
|
||||
:SetHeight(18)
|
||||
:SetMargin(0, 0, 0, 4)
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Amount of bag space to keep free"])
|
||||
)
|
||||
:AddChild(UIElements.New("Frame", "freeSpaceFrame")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(24)
|
||||
:SetMargin(0, 0, 0, 8)
|
||||
:AddChild(UIElements.New("Input", "keepMailInput")
|
||||
:SetMargin(0, 8, 0, 0)
|
||||
:SetBackgroundColor("ACTIVE_BG")
|
||||
:SetValidateFunc("NUMBER", "0:20")
|
||||
:SetSettingInfo(TSM.db.global.mailingOptions, "keepMailSpace")
|
||||
)
|
||||
:AddChild(UIElements.New("Text", "label")
|
||||
:SetSize("AUTO", 16)
|
||||
:SetFont("BODY_BODY3")
|
||||
:SetText(L["Min 0 - Max 20"])
|
||||
)
|
||||
)
|
||||
:AddChild(UIElements.New("Text", "label")
|
||||
:SetHeight(18)
|
||||
:SetMargin(0, 0, 0, 4)
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Open mail complete sound"])
|
||||
)
|
||||
:AddChild(UIElements.New("SelectionDropdown", "soundDropdown")
|
||||
:SetHeight(24)
|
||||
:SetItems(private.sounds, private.soundkeys)
|
||||
:SetSettingInfo(TSM.db.global.mailingOptions, "openMailSound")
|
||||
:SetScript("OnSelectionChanged", private.SoundOnSelectionChanged)
|
||||
)
|
||||
)
|
||||
:AddChild(TSM.MainUI.Settings.CreateExpandableSection("Mailing", "send", L["Sending Settings"], "")
|
||||
:AddChild(UIElements.New("Frame", "check1")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(20)
|
||||
:SetMargin(0, 0, 0, 12)
|
||||
:AddChild(UIElements.New("Checkbox", "sendMessagesCheckbox")
|
||||
:SetWidth("AUTO")
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Enable sending chat messages"])
|
||||
:SetSettingInfo(TSM.db.global.mailingOptions, "sendMessages")
|
||||
)
|
||||
:AddChild(UIElements.New("Spacer", "spacer"))
|
||||
)
|
||||
:AddChild(UIElements.New("Frame", "check2")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(20)
|
||||
:SetMargin(0, 0, 0, 22)
|
||||
:AddChild(UIElements.New("Checkbox", "sendItemsCheckbox")
|
||||
:SetWidth("AUTO")
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Send grouped items individually"])
|
||||
:SetSettingInfo(TSM.db.global.mailingOptions, "sendItemsIndividually")
|
||||
)
|
||||
:AddChild(UIElements.New("Spacer", "spacer"))
|
||||
)
|
||||
:AddChild(UIElements.New("Text", "label")
|
||||
:SetHeight(20)
|
||||
:SetMargin(0, 0, 0, 4)
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Restart delay (minutes)"])
|
||||
)
|
||||
:AddChild(UIElements.New("Frame", "restartDelayFrame")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(24)
|
||||
:SetMargin(0, 0, 0, 12)
|
||||
:AddChild(UIElements.New("Input", "restartDelay")
|
||||
:SetMargin(0, 8, 0, 0)
|
||||
:SetBackgroundColor("ACTIVE_BG")
|
||||
:SetValidateFunc("NUMBER", "0.5:10")
|
||||
:SetValue(TSM.db.global.mailingOptions.resendDelay)
|
||||
:SetScript("OnValueChanged", private.RestartDelayOnValueChanged)
|
||||
)
|
||||
:AddChild(UIElements.New("Text", "label")
|
||||
:SetSize("AUTO", 16)
|
||||
:SetFont("BODY_BODY3")
|
||||
:SetText(L["Min 0.5 - Max 10"])
|
||||
)
|
||||
)
|
||||
:AddChild(UIElements.New("Text", "label")
|
||||
:SetHeight(20)
|
||||
:SetMargin(0, 0, 0, 4)
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Mail disenchantables max quality"])
|
||||
)
|
||||
:AddChild(UIElements.New("SelectionDropdown", "mailPageDropdown")
|
||||
:SetHeight(26)
|
||||
:SetItems(ITEM_QUALITY_DESCS, ITEM_QUALITY_KEYS)
|
||||
:SetSettingInfo(TSM.db.global.mailingOptions, "deMaxQuality")
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Local Script Handlers
|
||||
-- ============================================================================
|
||||
|
||||
function private.SoundOnSelectionChanged(self, selection)
|
||||
Sound.PlaySound(TSM.db.global.mailingOptions.openMailSound)
|
||||
end
|
||||
|
||||
function private.RestartDelayOnValueChanged(input)
|
||||
local value = Math.Round(tonumber(input:GetValue()), 0.5)
|
||||
TSM.db.global.mailingOptions.resendDelay = value
|
||||
end
|
||||
Reference in New Issue
Block a user