mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-25 21:40:49 +00:00
thirdparty: rewrite addon dock logic
This commit is contained in:
+233
-255
@@ -1,185 +1,160 @@
|
|||||||
pfUI:RegisterModule("thirdparty", "vanilla", function ()
|
pfUI:RegisterModule("thirdparty", "vanilla", function()
|
||||||
|
local rawborder, default_border = GetBorderSize()
|
||||||
|
|
||||||
pfUI.thirdparty = {}
|
pfUI.thirdparty = {}
|
||||||
pfUI.thirdparty.meters = {}
|
|
||||||
pfUI.thirdparty.meters.damage = false
|
|
||||||
pfUI.thirdparty.meters.threat = false
|
|
||||||
pfUI.thirdparty.meters.state = false
|
|
||||||
pfUI.thirdparty.bagsort = nil
|
pfUI.thirdparty.bagsort = nil
|
||||||
|
|
||||||
local ktm_scale = 0.9
|
pfUI.thirdparty.meters = CreateFrame("Frame")
|
||||||
|
pfUI.thirdparty.meters:SetScript("OnEvent", function()
|
||||||
local showmeter = CreateFrame("Frame")
|
pfUI.thirdparty.meters.state = nil
|
||||||
showmeter:SetScript("OnEvent", function()
|
|
||||||
pfUI.thirdparty.meters.state = false
|
|
||||||
pfUI.thirdparty.meters:Toggle()
|
pfUI.thirdparty.meters:Toggle()
|
||||||
this:UnregisterAllEvents()
|
this:UnregisterAllEvents()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local function GetKtmWidthDiff(view, match_size)
|
pfUI.thirdparty.meters.damage = nil
|
||||||
local default_width = 0
|
pfUI.thirdparty.meters.threat = nil
|
||||||
for column, header in view.head do
|
pfUI.thirdparty.meters.state = nil
|
||||||
if (header.vis()) then
|
|
||||||
default_width = default_width + header.width
|
function pfUI.thirdparty.meters:RegisterMeter(side, data)
|
||||||
else
|
-- abort when one addon is already register on the side
|
||||||
default_width = default_width + 0.1
|
if pfUI.thirdparty.meters[side] then return end
|
||||||
|
|
||||||
|
-- load addon table
|
||||||
|
local config, addon, frame, single, dual, show, hide, once = unpack(data)
|
||||||
|
|
||||||
|
-- put addon into dockmode when enabled
|
||||||
|
if C.thirdparty[config] and C.thirdparty[config].dock == "1" then
|
||||||
|
pfUI.thirdparty.meters[side] = data
|
||||||
|
|
||||||
|
-- initialize and hide the frame in the beginning
|
||||||
|
if once then once() end
|
||||||
|
if hide then hide() end
|
||||||
|
|
||||||
|
-- enable toggle event on the panel button
|
||||||
|
if pfUI.panel then
|
||||||
|
pfUI.panel.right.hide:SetScript("OnClick", function()
|
||||||
|
pfUI.thirdparty.meters:Toggle()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- toggle meter by default if configured
|
||||||
|
if C.thirdparty.showmeter == "1" then
|
||||||
|
self:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return match_size / (default_width + 12)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function SetKtmWidth(view, diff_width)
|
|
||||||
for column, header in view.head do
|
|
||||||
header.width = round(round(header.width * diff_width) / ktm_scale)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function RefreshKtmWidth(width)
|
|
||||||
local width = width or pfUI.chat.right:GetWidth()
|
|
||||||
if (pfUI.thirdparty.meters.damage and pfUI.thirdparty.meters.threat) then
|
|
||||||
width = width / 2
|
|
||||||
end
|
|
||||||
SetKtmWidth(KLHTM_Gui.raid, GetKtmWidthDiff(KLHTM_Gui.raid, width))
|
|
||||||
SetKtmWidth(KLHTM_Gui.self, GetKtmWidthDiff(KLHTM_Gui.self, width))
|
|
||||||
KLHTM_Redraw(true)
|
|
||||||
KLHTM_UpdateRaidFrame()
|
|
||||||
KLHTM_UpdateSelfFrame()
|
|
||||||
KLHTM_UpdateFrame()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.thirdparty.meters:Resize()
|
function pfUI.thirdparty.meters:Resize()
|
||||||
if pfUI.chat and pfUI.panel then
|
if not pfUI.chat or not pfUI.panel then return end
|
||||||
|
|
||||||
local rawborder, default_border = GetBorderSize()
|
if self.damage then -- resize damage meter
|
||||||
|
local config, addon, frame, single, dual, show, hide = unpack(self.damage)
|
||||||
if DPSMate_DPSMate and C.thirdparty.dpsmate.dock == "1" then
|
if frame and C.thirdparty[config].dock == "1" then
|
||||||
-- DPSMate Single View
|
if not self.threat then single() else dual() end
|
||||||
if pfUI.thirdparty.meters.damage and not pfUI.thirdparty.meters.threat then
|
|
||||||
DPSMate_DPSMate:ClearAllPoints()
|
|
||||||
DPSMate_DPSMate:SetAllPoints(pfUI.chat.right)
|
|
||||||
DPSMate_DPSMate:SetWidth(pfUI.chat.right:GetWidth())
|
|
||||||
DPSMate_DPSMate_ScrollFrame:ClearAllPoints()
|
|
||||||
DPSMate_DPSMate_ScrollFrame:SetWidth(pfUI.chat.right:GetWidth())
|
|
||||||
DPSMate_DPSMate_ScrollFrame:SetPoint("TOPLEFT", DPSMate_DPSMate_Head, "BOTTOMLEFT", 0, 0)
|
|
||||||
DPSMate_DPSMate_ScrollFrame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, pfUI.panel.right:GetHeight())
|
|
||||||
DPSMate_DPSMate_ScrollFrame_Child:SetWidth(pfUI.chat.right:GetWidth())
|
|
||||||
DPSMate_DPSMate_Resize:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- DPSMate Dual View
|
|
||||||
if pfUI.thirdparty.meters.damage and pfUI.thirdparty.meters.threat then
|
|
||||||
DPSMate_DPSMate:ClearAllPoints()
|
|
||||||
DPSMate_DPSMate:SetPoint("TOPLEFT", pfUI.chat.right, "TOP", 0, 0)
|
|
||||||
DPSMate_DPSMate:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, 0)
|
|
||||||
DPSMate_DPSMate:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
|
||||||
DPSMate_DPSMate_ScrollFrame:ClearAllPoints()
|
|
||||||
DPSMate_DPSMate_ScrollFrame:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
|
||||||
DPSMate_DPSMate_ScrollFrame:SetPoint("TOPLEFT", DPSMate_DPSMate_Head, "BOTTOMLEFT", 0, 0)
|
|
||||||
DPSMate_DPSMate_ScrollFrame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, pfUI.panel.right:GetHeight())
|
|
||||||
DPSMate_DPSMate_ScrollFrame_Child:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
|
||||||
DPSMate_DPSMate_Resize:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if SW_BarFrame1 and C.thirdparty.swstats.dock == "1" then
|
if self.threat then -- resize threat meter
|
||||||
-- SWStats Single View
|
local config, addon, frame, single, dual, show, hide = unpack(self.threat)
|
||||||
if pfUI.thirdparty.meters.damage and not pfUI.thirdparty.meters.threat then
|
if frame and C.thirdparty[config].dock == "1" then
|
||||||
SW_BarFrame1:SetWidth(pfUI.chat.right:GetWidth())
|
if not self.damage then single() else dual() end
|
||||||
SW_BarFrame1:ClearAllPoints()
|
|
||||||
SW_BarFrame1:SetAllPoints(pfUI.chat.right)
|
|
||||||
SW_BarFrame1_Resizer:Hide()
|
|
||||||
SW_BarsLayout("SW_BarFrame1", true)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- SWStats Dual View
|
|
||||||
if pfUI.thirdparty.meters.damage and pfUI.thirdparty.meters.threat then
|
|
||||||
SW_BarFrame1:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
|
||||||
SW_BarFrame1:ClearAllPoints()
|
|
||||||
SW_BarFrame1:SetPoint("TOPLEFT", pfUI.chat.right, "TOP", 0, 0)
|
|
||||||
SW_BarFrame1:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0 ,0)
|
|
||||||
SW_BarFrame1_Resizer:Hide()
|
|
||||||
SW_BarsLayout("SW_BarFrame1", true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if KLHTM_Frame and C.thirdparty.ktm.dock == "1" then
|
|
||||||
-- KLHTM Single View
|
|
||||||
if not pfUI.thirdparty.meters.damage and pfUI.thirdparty.meters.threat then
|
|
||||||
RefreshKtmWidth()
|
|
||||||
KLHTM_Frame:ClearAllPoints()
|
|
||||||
KLHTM_Frame:SetPoint("TOPLEFT", pfUI.chat.right, "TOPLEFT", 0, 0)
|
|
||||||
KLHTM_Frame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, pfUI.panel.right:GetHeight())
|
|
||||||
KLHTM_Frame.backdrop:SetPoint("BOTTOMRIGHT", KLHTM_Frame, "BOTTOMRIGHT", 0, -(KLHTM_Frame:GetBottom() - pfUI.chat.right:GetBottom()))
|
|
||||||
end
|
|
||||||
|
|
||||||
-- KLHTM Dual View
|
|
||||||
if pfUI.thirdparty.meters.damage and pfUI.thirdparty.meters.threat then
|
|
||||||
RefreshKtmWidth()
|
|
||||||
KLHTM_Frame:ClearAllPoints()
|
|
||||||
KLHTM_Frame:SetPoint("TOPLEFT", pfUI.chat.right, "TOPLEFT", 0, 0)
|
|
||||||
KLHTM_Frame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOM", -default_border, pfUI.panel.right:GetHeight())
|
|
||||||
KLHTM_Frame.backdrop:SetPoint("BOTTOMRIGHT", KLHTM_Frame, "BOTTOMRIGHT", 0, -(KLHTM_Frame:GetBottom() - pfUI.chat.right:GetBottom()))
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.thirdparty.meters:Toggle()
|
function pfUI.thirdparty.meters:Toggle()
|
||||||
pfUI.thirdparty.meters:Resize()
|
self:Resize()
|
||||||
|
|
||||||
|
-- show/hide right chatframe
|
||||||
|
if pfUI.chat and C.chat.right.enable == "1" then
|
||||||
|
pfUI.chat.right:SetAlpha(self.state and 1 or 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- show/hide damage meters
|
||||||
|
if self.damage then
|
||||||
|
local config, addon, frame, single, dual, show, hide = unpack(self.damage)
|
||||||
|
if not self.state then show() else hide() end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- show/hide threat meters
|
||||||
|
if self.threat then
|
||||||
|
local config, addon, frame, single, dual, show, hide = unpack(self.threat)
|
||||||
|
if not self.state then show() else hide() end
|
||||||
|
end
|
||||||
|
|
||||||
-- show meters
|
-- show meters
|
||||||
if pfUI.thirdparty.meters.state == false then
|
if not self.state then
|
||||||
pfUI.thirdparty.meters.state = true
|
self.state = true
|
||||||
|
|
||||||
-- chat
|
|
||||||
if pfUI.chat and C.chat.right.enable == "1" then
|
|
||||||
pfUI.chat.right:SetAlpha(0)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- ktm
|
|
||||||
if C.thirdparty.ktm.dock == "1" and KLHTM_Frame then
|
|
||||||
KLHTM_SetVisible(true)
|
|
||||||
KLHTM_Frame:Show()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- dpsmate
|
|
||||||
if C.thirdparty.dpsmate.dock == "1" and DPSMate_DPSMate then
|
|
||||||
DPSMate_DPSMate:Show()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- swstats
|
|
||||||
if C.thirdparty.swstats.dock == "1" and SW_BarFrame1 then
|
|
||||||
SW_BarFrame1:Show()
|
|
||||||
SW_OptKey(1)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- hide meters
|
|
||||||
else
|
else
|
||||||
pfUI.thirdparty.meters.state = false
|
self.state = nil
|
||||||
|
|
||||||
-- chat
|
|
||||||
if pfUI.chat and C.chat.right.enable == "1" then
|
|
||||||
pfUI.chat.right:SetAlpha(1)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- ktm
|
|
||||||
if C.thirdparty.ktm.dock == "1" and KLHTM_Frame then
|
|
||||||
KLHTM_SetVisible(false)
|
|
||||||
KLHTM_Frame:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- dpsmate
|
|
||||||
if C.thirdparty.dpsmate.dock == "1" and DPSMate_DPSMate then
|
|
||||||
DPSMate_DPSMate:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- swstats
|
|
||||||
if C.thirdparty.swstats.dock == "1" and SW_BarFrame1 then
|
|
||||||
SW_BarFrame1:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
HookAddonOrVariable("KLHThreatMeter", function()
|
HookAddonOrVariable("KLHThreatMeter", function()
|
||||||
|
local ktm_scale = 1
|
||||||
|
local function GetKtmWidthDiff(view, match_size)
|
||||||
|
local default_width = 0
|
||||||
|
for column, header in view.head do
|
||||||
|
if (header.vis()) then
|
||||||
|
default_width = default_width + header.width
|
||||||
|
else
|
||||||
|
default_width = default_width + 0.1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return match_size / (default_width + 12)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function SetKtmWidth(view, diff_width)
|
||||||
|
for column, header in view.head do
|
||||||
|
header.width = round(round(header.width * diff_width) / ktm_scale)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function RefreshKtmWidth(width)
|
||||||
|
local width = width or pfUI.chat.right:GetWidth()
|
||||||
|
if (pfUI.thirdparty.meters.damage and pfUI.thirdparty.meters.threat) then
|
||||||
|
width = width / 2
|
||||||
|
end
|
||||||
|
SetKtmWidth(KLHTM_Gui.raid, GetKtmWidthDiff(KLHTM_Gui.raid, width))
|
||||||
|
SetKtmWidth(KLHTM_Gui.self, GetKtmWidthDiff(KLHTM_Gui.self, width))
|
||||||
|
KLHTM_Redraw(true)
|
||||||
|
KLHTM_UpdateRaidFrame()
|
||||||
|
KLHTM_UpdateSelfFrame()
|
||||||
|
KLHTM_UpdateFrame()
|
||||||
|
end
|
||||||
|
|
||||||
|
local docktable = { "ktm", "TODO", "KLHTM_Frame",
|
||||||
|
function() -- single
|
||||||
|
RefreshKtmWidth()
|
||||||
|
KLHTM_Frame:ClearAllPoints()
|
||||||
|
KLHTM_Frame:SetPoint("TOPLEFT", pfUI.chat.right, "TOPLEFT", 0, 0)
|
||||||
|
KLHTM_Frame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, pfUI.panel.right:GetHeight())
|
||||||
|
KLHTM_Frame.backdrop:SetPoint("BOTTOMRIGHT", KLHTM_Frame, "BOTTOMRIGHT", 0, -(KLHTM_Frame:GetBottom() - pfUI.chat.right:GetBottom())-default_border)
|
||||||
|
end,
|
||||||
|
function() -- dual
|
||||||
|
RefreshKtmWidth()
|
||||||
|
KLHTM_Frame:ClearAllPoints()
|
||||||
|
KLHTM_Frame:SetPoint("TOPLEFT", pfUI.chat.right, "TOPLEFT", 0, 0)
|
||||||
|
KLHTM_Frame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOM", -default_border, pfUI.panel.right:GetHeight())
|
||||||
|
KLHTM_Frame.backdrop:SetPoint("BOTTOMRIGHT", KLHTM_Frame, "BOTTOMRIGHT", 0, -(KLHTM_Frame:GetBottom() - pfUI.chat.right:GetBottom())-default_border)
|
||||||
|
end,
|
||||||
|
function() -- show
|
||||||
|
KLHTM_SetVisible(true)
|
||||||
|
KLHTM_Frame:Show()
|
||||||
|
end,
|
||||||
|
function() -- hide
|
||||||
|
KLHTM_SetVisible(false)
|
||||||
|
KLHTM_Frame:Hide()
|
||||||
|
end,
|
||||||
|
function() -- once
|
||||||
|
if KLHTM_Gui.frame then
|
||||||
|
KLHTM_SetGuiScale(ktm_scale)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
pfUI.thirdparty.meters:RegisterMeter("threat", docktable)
|
||||||
|
|
||||||
if C.thirdparty.ktm.skin == "1" then
|
if C.thirdparty.ktm.skin == "1" then
|
||||||
-- remove titlebar
|
-- remove titlebar
|
||||||
if KLHTM_Gui then
|
if KLHTM_Gui then
|
||||||
@@ -269,31 +244,43 @@ pfUI:RegisterModule("thirdparty", "vanilla", function ()
|
|||||||
if KLHTM_SelfFrameLine then KLHTM_SelfFrameLine:Hide() end
|
if KLHTM_SelfFrameLine then KLHTM_SelfFrameLine:Hide() end
|
||||||
if KLHTM_SelfFrameBottomLine then KLHTM_SelfFrameBottomLine:Hide() end
|
if KLHTM_SelfFrameBottomLine then KLHTM_SelfFrameBottomLine:Hide() end
|
||||||
end
|
end
|
||||||
|
|
||||||
if C.thirdparty.ktm.dock == "1" then
|
|
||||||
pfUI.thirdparty.meters.threat = true
|
|
||||||
|
|
||||||
KLHTM_Frame:Hide()
|
|
||||||
|
|
||||||
-- adjust scale to match the dock
|
|
||||||
if KLHTM_Gui.frame then
|
|
||||||
KLHTM_SetGuiScale(ktm_scale)
|
|
||||||
end
|
|
||||||
|
|
||||||
if pfUI.panel then
|
|
||||||
pfUI.panel.right.hide:SetScript("OnClick", function()
|
|
||||||
pfUI.thirdparty.meters:Toggle()
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- toggle meter by default if configured
|
|
||||||
if C.thirdparty.showmeter == "1" then
|
|
||||||
showmeter:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("DPSMate", function()
|
HookAddonOrVariable("DPSMate", function()
|
||||||
|
local docktable = { "dpsmate", "DPSMate", "DPSMate_DPSMate",
|
||||||
|
function() -- single
|
||||||
|
DPSMate_DPSMate:ClearAllPoints()
|
||||||
|
DPSMate_DPSMate:SetAllPoints(pfUI.chat.right)
|
||||||
|
DPSMate_DPSMate:SetWidth(pfUI.chat.right:GetWidth())
|
||||||
|
DPSMate_DPSMate_ScrollFrame:ClearAllPoints()
|
||||||
|
DPSMate_DPSMate_ScrollFrame:SetWidth(pfUI.chat.right:GetWidth())
|
||||||
|
DPSMate_DPSMate_ScrollFrame:SetPoint("TOPLEFT", DPSMate_DPSMate_Head, "BOTTOMLEFT", 0, 0)
|
||||||
|
DPSMate_DPSMate_ScrollFrame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, pfUI.panel.right:GetHeight())
|
||||||
|
DPSMate_DPSMate_ScrollFrame_Child:SetWidth(pfUI.chat.right:GetWidth())
|
||||||
|
DPSMate_DPSMate_Resize:Hide()
|
||||||
|
end,
|
||||||
|
function() -- dual
|
||||||
|
DPSMate_DPSMate:ClearAllPoints()
|
||||||
|
DPSMate_DPSMate:SetPoint("TOPLEFT", pfUI.chat.right, "TOP", 0, 0)
|
||||||
|
DPSMate_DPSMate:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, 0)
|
||||||
|
DPSMate_DPSMate:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
||||||
|
DPSMate_DPSMate_ScrollFrame:ClearAllPoints()
|
||||||
|
DPSMate_DPSMate_ScrollFrame:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
||||||
|
DPSMate_DPSMate_ScrollFrame:SetPoint("TOPLEFT", DPSMate_DPSMate_Head, "BOTTOMLEFT", 0, 0)
|
||||||
|
DPSMate_DPSMate_ScrollFrame:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0, pfUI.panel.right:GetHeight())
|
||||||
|
DPSMate_DPSMate_ScrollFrame_Child:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
||||||
|
DPSMate_DPSMate_Resize:Hide()
|
||||||
|
end,
|
||||||
|
function() -- show
|
||||||
|
DPSMate_DPSMate:Show()
|
||||||
|
end,
|
||||||
|
function() -- hide
|
||||||
|
DPSMate_DPSMate:Hide()
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
pfUI.thirdparty.meters:RegisterMeter("damage", docktable)
|
||||||
|
|
||||||
if C.thirdparty.dpsmate.skin == "1" then
|
if C.thirdparty.dpsmate.skin == "1" then
|
||||||
if DPSMateSettings then
|
if DPSMateSettings then
|
||||||
-- set DPSMate appearance to match pfUI
|
-- set DPSMate appearance to match pfUI
|
||||||
@@ -338,28 +325,55 @@ pfUI:RegisterModule("thirdparty", "vanilla", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if C.thirdparty.dpsmate.dock == "1" then
|
|
||||||
pfUI.thirdparty.meters.damage = true
|
|
||||||
|
|
||||||
if DPSMate_DPSMate then
|
|
||||||
DPSMate_DPSMate:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
if pfUI.panel then
|
|
||||||
pfUI.panel.right.hide:SetScript("OnClick", function()
|
|
||||||
pfUI.thirdparty.meters:Toggle()
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- toggle meter by default if configured
|
|
||||||
if C.thirdparty.showmeter == "1" then
|
|
||||||
showmeter:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("SW_Stats", function()
|
HookAddonOrVariable("SW_Stats", function()
|
||||||
|
local docktable = { "swstats", "TODO", "SW_BarFrame1",
|
||||||
|
function() -- single
|
||||||
|
SW_BarFrame1:SetWidth(pfUI.chat.right:GetWidth())
|
||||||
|
SW_BarFrame1:ClearAllPoints()
|
||||||
|
SW_BarFrame1:SetAllPoints(pfUI.chat.right)
|
||||||
|
SW_BarFrame1_Resizer:Hide()
|
||||||
|
SW_BarsLayout("SW_BarFrame1", true)
|
||||||
|
end,
|
||||||
|
function() -- dual
|
||||||
|
SW_BarFrame1:SetWidth(pfUI.chat.right:GetWidth() / 2)
|
||||||
|
SW_BarFrame1:ClearAllPoints()
|
||||||
|
SW_BarFrame1:SetPoint("TOPLEFT", pfUI.chat.right, "TOP", 0, 0)
|
||||||
|
SW_BarFrame1:SetPoint("BOTTOMRIGHT", pfUI.chat.right, "BOTTOMRIGHT", 0 ,0)
|
||||||
|
SW_BarFrame1_Resizer:Hide()
|
||||||
|
SW_BarsLayout("SW_BarFrame1", true)
|
||||||
|
end,
|
||||||
|
function() -- show
|
||||||
|
SW_BarFrame1:Show()
|
||||||
|
SW_OptKey(1)
|
||||||
|
end,
|
||||||
|
function() -- hide
|
||||||
|
SW_BarFrame1:Hide()
|
||||||
|
end,
|
||||||
|
function() -- once
|
||||||
|
SW_Settings["SHOWMAIN"] = nil
|
||||||
|
SW_BarFrame1:Hide()
|
||||||
|
|
||||||
|
SW_OptChk_Running:ClearAllPoints()
|
||||||
|
SW_OptChk_Running:SetParent(SW_BarFrame1_Title)
|
||||||
|
SW_OptChk_Running:SetPoint("RIGHT", SW_BarFrame1_Title_TimeLine, "LEFT", -2, 0)
|
||||||
|
-- hide bottom panels
|
||||||
|
SW_BarFrame1_Selector:Hide()
|
||||||
|
|
||||||
|
-- let user select mode by clicking the title
|
||||||
|
HookScript(SW_BarFrame1_Title, "OnMouseUp", function()
|
||||||
|
local page = SW_Settings and SW_Settings.BarFrames and SW_Settings.BarFrames.SW_BarFrame1 and SW_Settings.BarFrames.SW_BarFrame1.Selected
|
||||||
|
if page then
|
||||||
|
local target = (arg1 == "LeftButton") and (page + 1) or (arg1 == "RightButton") and (page - 1)
|
||||||
|
SW_OptKey((target > SW_OPT_COUNT) and 1 or (target < 1) and SW_OPT_COUNT or target)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
pfUI.thirdparty.meters:RegisterMeter("damage", docktable)
|
||||||
|
|
||||||
if C.thirdparty.swstats.skin == "1" then
|
if C.thirdparty.swstats.skin == "1" then
|
||||||
SW_Settings["OPT_ShowMainWinDPS"] = 1
|
SW_Settings["OPT_ShowMainWinDPS"] = 1
|
||||||
SW_Settings["Colors"] = SW_Settings["Colors"] or {}
|
SW_Settings["Colors"] = SW_Settings["Colors"] or {}
|
||||||
@@ -597,39 +611,6 @@ pfUI:RegisterModule("thirdparty", "vanilla", function ()
|
|||||||
SW_FrameConsole_Text2_MsgDown:SetPoint("BOTTOMRIGHT", -5, 30)
|
SW_FrameConsole_Text2_MsgDown:SetPoint("BOTTOMRIGHT", -5, 30)
|
||||||
SW_FrameConsole_Text2_MsgBottom:SetPoint("BOTTOMRIGHT", -5, 12)
|
SW_FrameConsole_Text2_MsgBottom:SetPoint("BOTTOMRIGHT", -5, 12)
|
||||||
end
|
end
|
||||||
|
|
||||||
if C.thirdparty.swstats.dock == "1" then
|
|
||||||
pfUI.thirdparty.meters.damage = true
|
|
||||||
|
|
||||||
SW_Settings["SHOWMAIN"] = nil
|
|
||||||
SW_BarFrame1:Hide()
|
|
||||||
|
|
||||||
SW_OptChk_Running:ClearAllPoints()
|
|
||||||
SW_OptChk_Running:SetParent(SW_BarFrame1_Title)
|
|
||||||
SW_OptChk_Running:SetPoint("RIGHT", SW_BarFrame1_Title_TimeLine, "LEFT", -2, 0)
|
|
||||||
-- hide bottom panels
|
|
||||||
SW_BarFrame1_Selector:Hide()
|
|
||||||
|
|
||||||
-- let user select mode by clicking the title
|
|
||||||
HookScript(SW_BarFrame1_Title, "OnMouseUp", function()
|
|
||||||
local page = SW_Settings and SW_Settings.BarFrames and SW_Settings.BarFrames.SW_BarFrame1 and SW_Settings.BarFrames.SW_BarFrame1.Selected
|
|
||||||
if page then
|
|
||||||
local target = (arg1 == "LeftButton") and (page + 1) or (arg1 == "RightButton") and (page - 1)
|
|
||||||
SW_OptKey((target > SW_OPT_COUNT) and 1 or (target < 1) and SW_OPT_COUNT or target)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
if pfUI.panel then
|
|
||||||
pfUI.panel.right.hide:SetScript("OnClick", function()
|
|
||||||
pfUI.thirdparty.meters:Toggle()
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- toggle meter by default if configured
|
|
||||||
if C.thirdparty.showmeter == "1" then
|
|
||||||
showmeter:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("WIM", function()
|
HookAddonOrVariable("WIM", function()
|
||||||
@@ -1256,30 +1237,6 @@ pfUI:RegisterModule("thirdparty", "vanilla", function ()
|
|||||||
UpdateMovable(DruidManaBar)
|
UpdateMovable(DruidManaBar)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local EnableHealComm = function()
|
|
||||||
-- hook healcomm's addon message to parse single-player events
|
|
||||||
if AceLibrary and AceLibrary:HasInstance("HealComm-1.0") and pfUI.prediction then
|
|
||||||
local HealComm = AceLibrary("HealComm-1.0")
|
|
||||||
|
|
||||||
-- use pfUI frames to draw healComm predictions
|
|
||||||
local pfHookHealCommSendAddonMessage = HealComm.SendAddonMessage
|
|
||||||
function HealComm.SendAddonMessage(this, msg)
|
|
||||||
if not UnitInRaid("player") and GetNumPartyMembers() < 1 then
|
|
||||||
pfUI.prediction:ParseChatMessage(UnitName("player"), msg)
|
|
||||||
end
|
|
||||||
pfHookHealCommSendAddonMessage(this, msg)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- disable pfUI predictions
|
|
||||||
pfUI.prediction.sender:UnregisterAllEvents()
|
|
||||||
pfUI.prediction.sender.enabled = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
HookAddonOrVariable("HealComm", EnableHealComm)
|
|
||||||
HookAddonOrVariable("LunaUnitFrames", EnableHealComm)
|
|
||||||
HookAddonOrVariable("NotGrid", EnableHealComm)
|
|
||||||
|
|
||||||
HookAddonOrVariable("NoteIt", function()
|
HookAddonOrVariable("NoteIt", function()
|
||||||
if C.thirdparty.noteit.enable == "0" then return end
|
if C.thirdparty.noteit.enable == "0" then return end
|
||||||
|
|
||||||
@@ -1367,7 +1324,28 @@ pfUI:RegisterModule("thirdparty", "vanilla", function ()
|
|||||||
NoteInputTextBackground:ClearAllPoints()
|
NoteInputTextBackground:ClearAllPoints()
|
||||||
NoteInputTextBackground:SetPoint("TOPLEFT", NoteInputNameChooseFrame, "BOTTOMLEFT", -2, -38)
|
NoteInputTextBackground:SetPoint("TOPLEFT", NoteInputNameChooseFrame, "BOTTOMLEFT", -2, -38)
|
||||||
NoteInputTextBackground:SetPoint("TOPRIGHT", NoteInputNameChooseFrame, "BOTTOMRIGHT", 22, -38)
|
NoteInputTextBackground:SetPoint("TOPRIGHT", NoteInputNameChooseFrame, "BOTTOMRIGHT", 22, -38)
|
||||||
|
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
local EnableHealComm = function()
|
||||||
|
-- hook healcomm's addon message to parse single-player events
|
||||||
|
if AceLibrary and AceLibrary:HasInstance("HealComm-1.0") and pfUI.prediction then
|
||||||
|
local HealComm = AceLibrary("HealComm-1.0")
|
||||||
|
|
||||||
|
-- use pfUI frames to draw healComm predictions
|
||||||
|
local pfHookHealCommSendAddonMessage = HealComm.SendAddonMessage
|
||||||
|
function HealComm.SendAddonMessage(this, msg)
|
||||||
|
if not UnitInRaid("player") and GetNumPartyMembers() < 1 then
|
||||||
|
pfUI.prediction:ParseChatMessage(UnitName("player"), msg)
|
||||||
|
end
|
||||||
|
pfHookHealCommSendAddonMessage(this, msg)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- disable pfUI predictions
|
||||||
|
pfUI.prediction.sender:UnregisterAllEvents()
|
||||||
|
pfUI.prediction.sender.enabled = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HookAddonOrVariable("HealComm", EnableHealComm)
|
||||||
|
HookAddonOrVariable("LunaUnitFrames", EnableHealComm)
|
||||||
|
HookAddonOrVariable("NotGrid", EnableHealComm)
|
||||||
end)
|
end)
|
||||||
|
|||||||
Reference in New Issue
Block a user