chore: move addon into Chatter/ + add standard .gitignore
Matches the Exiles fork-layout convention (each addon in its own folder).
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
-- Strip icons like |TInterface\\FriendsFrame\\UI-Toast-ToastIcons.tga:16:16:0:0:128:64:2:29:34:61
|
||||
local mod = Chatter:NewModule("BNet", "AceHook-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("Chatter")
|
||||
mod.modName = L["RealID Polish"]
|
||||
|
||||
local defaults = {
|
||||
profile = {
|
||||
toastx = 0,
|
||||
toasty = 0,
|
||||
showToast = false
|
||||
}
|
||||
}
|
||||
|
||||
local options
|
||||
function mod:GetOptions()
|
||||
options = options or {
|
||||
showToastIcons = {
|
||||
order=100,
|
||||
type = "toggle",
|
||||
name = L["Show Toast Icons"],
|
||||
desc = L["Show toast icons in the chat frames"],
|
||||
get = function()
|
||||
return mod.db.profile.showToast
|
||||
end,
|
||||
set = function(info, v)
|
||||
mod.db.profile.showToast = v
|
||||
end,
|
||||
},
|
||||
toastWindowXoffset = {
|
||||
order=101,
|
||||
type = "range",
|
||||
min = -4000,
|
||||
max = 4000,
|
||||
name = L["Toast X offset"],
|
||||
desc = L["Move the Toast X offset to ChatFrame1"],
|
||||
step = 1,
|
||||
bigStep = 1,
|
||||
get = function()
|
||||
return mod.db.profile.toastx
|
||||
end,
|
||||
set = function(info, v)
|
||||
mod.db.profile.toastx = v
|
||||
mod:UpdateToastOffsets()
|
||||
end,
|
||||
},
|
||||
toastWindowYoffset = {
|
||||
order=102,
|
||||
type = "range",
|
||||
min = -4000,
|
||||
max = 4000,
|
||||
name = L["Toast Y offset"],
|
||||
desc = L["Move the Toast Y offset, relative to ChatFrame1"],
|
||||
step = 1,
|
||||
bigStep = 1,
|
||||
get = function()
|
||||
return mod.db.profile.toasty
|
||||
end,
|
||||
set = function(info, v)
|
||||
mod.db.profile.toasty = v
|
||||
mod:UpdateToastOffsets()
|
||||
end,
|
||||
},
|
||||
testToast = {
|
||||
order=103,
|
||||
name = L["Test"],
|
||||
type = "execute",
|
||||
func = function() BNToastFrame_AddToast(BN_TOAST_TYPE_NEW_INVITE) end,
|
||||
}
|
||||
}
|
||||
return options
|
||||
end
|
||||
|
||||
|
||||
function mod:UpdateToastOffsets()
|
||||
if self:IsEnabled() then
|
||||
local cf = DEFAULT_CHAT_FRAME
|
||||
local bside = cf.buttonSide
|
||||
local cfTop = cf.buttonFrame:GetTop() or 0
|
||||
local bnH = BNToastFrame:GetHeight() or 0
|
||||
local offscreen = cfTop + bnH + BN_TOAST_TOP_OFFSET + BN_TOAST_TOP_BUFFER > GetScreenHeight();
|
||||
BN_TOAST_LEFT_OFFSET = 1 + self.db.profile.toastx
|
||||
if bside == "right" then
|
||||
BN_TOAST_RIGHT_OFFSET = -1 + self.db.profile.toastx
|
||||
end
|
||||
BN_TOAST_TOP_OFFSET = 40 + self.db.profile.toasty
|
||||
if offscreen then
|
||||
BN_TOAST_BOTTOM_OFFSET = -12 + self.db.profile.toasty
|
||||
end
|
||||
BNToastFrame_UpdateAnchor(true)
|
||||
end
|
||||
end
|
||||
|
||||
function mod:OnInitialize()
|
||||
self.db = Chatter.db:RegisterNamespace("RealIdPolish", defaults)
|
||||
end
|
||||
|
||||
function mod:OnDisable()
|
||||
self:UnhookAll()
|
||||
BN_TOAST_TOP_OFFSET = 40
|
||||
BN_TOAST_BOTTOM_OFFSET = -12
|
||||
BN_TOAST_RIGHT_OFFSET = -1
|
||||
BN_TOAST_LEFT_OFFSET = 1
|
||||
BN_TOAST_TOP_BUFFER = 20
|
||||
BN_TOAST_MAX_LINE_WIDTH = 196
|
||||
end
|
||||
|
||||
function mod:OnEnable()
|
||||
for i = 1, NUM_CHAT_WINDOWS do
|
||||
local cf = _G["ChatFrame" .. i]
|
||||
if cf ~= COMBATLOG then
|
||||
self:RawHook(cf, "AddMessage", true)
|
||||
end
|
||||
end
|
||||
self:Hook("BNToastFrame_Close",true)
|
||||
self:UpdateToastOffsets()
|
||||
end
|
||||
|
||||
function mod:BNToastFrame_Close()
|
||||
self:UpdateToastOffsets()
|
||||
end
|
||||
|
||||
function mod:ParseLinks(text)
|
||||
if not text then return nil end
|
||||
if mod.db.profile.showToast then return text end
|
||||
text = gsub(text, "(|TInterface(.*)ToastIcons.tga([:%d]*)|t)", "")
|
||||
return text
|
||||
end
|
||||
|
||||
function mod:AddMessage(frame, text, ...)
|
||||
return self.hooks[frame].AddMessage(frame, mod:ParseLinks(text), ...)
|
||||
end
|
||||
Reference in New Issue
Block a user