Files
pfUI/modules/actionbar.lua
T
2016-05-02 20:47:00 +02:00

331 lines
16 KiB
Lua

-- override defaultUI functions to always show grid
function ActionButton_ShowGrid(button) return end
function ActionButton_HideGrid(button) return end
Hook_ShowBonusActionBar = ShowBonusActionBar
function ShowBonusActionBar()
for i=1, 12 do getglobal("ActionButton" .. i):SetAlpha(0) end
Hook_ShowBonusActionBar()
end
Hook_HideBonusActionBar = HideBonusActionBar
function HideBonusActionBar()
for i=1, 12 do getglobal("ActionButton" .. i):SetAlpha(1) end
Hook_HideBonusActionBar()
end
-- hide default blizz
MainMenuBar:Hide()
BonusActionBarTexture0:Hide()
BonusActionBarTexture1:Hide()
-- create action bar frame
pfUI.bars = CreateFrame("Frame",nil,UIParent)
pfUI.bars:RegisterEvent("PLAYER_ENTERING_WORLD")
pfUI.bars:RegisterEvent("CVAR_UPDATE")
pfUI.bars:RegisterEvent("UNIT_FLAGS")
pfUI.bars:RegisterEvent("UNIT_PET")
pfUI.bars:RegisterEvent("PET_BAR_UPDATE")
pfUI.bars:RegisterEvent("PET_BAR_UPDATE_COOLDOWN")
pfUI.bars:RegisterEvent("PLAYER_CONTROL_GAINED")
pfUI.bars:RegisterEvent("PLAYER_CONTROL_LOST")
pfUI.bars:RegisterEvent("PLAYER_FARSIGHT_FOCUS_CHANGED")
pfUI.bars:RegisterEvent("UNIT_AURA")
pfUI.bars:RegisterEvent("PET_BAR_SHOWGRID")
pfUI.bars:RegisterEvent("PET_BAR_HIDEGRID")
pfUI.bars.shapeshift = CreateFrame("Frame", "pfBarBottom", UIParent)
pfUI.bars.bottomleft = CreateFrame("Frame", "pfBarBottom", UIParent)
pfUI.bars.bottomright = CreateFrame("Frame", "pfBarBottom", UIParent)
pfUI.bars.vertical = CreateFrame("Frame", "pfBarBottom", UIParent)
pfUI.bars.pet = CreateFrame("Frame", "pfBarBottom", UIParent)
PetActionBarFrame:SetParent(pfUI.bars.pet)
pfUI.bars:SetScript("OnEvent", function()
local bpc = 1; if MultiBarBottomLeft:IsShown() then bpc = bpc + 1 end -- bottom panel count
pfUI.bars.bottom:SetWidth(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 12 + pfUI.config.bars.border * 12)
pfUI.bars.bottom:SetHeight(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * bpc + pfUI.config.bars.border * bpc)
PetActionBar_Update()
if (PetHasActionBar()) then
--ShowPetActionBar()
--LockPetActionBar()
pfUI.bars.pet:Show()
pfUI.bars.pet:SetFrameStrata("LOW")
pfUI.bars.pet:SetPoint("BOTTOM", pfUI.bars.bottom, "TOP", 0, 5)
pfUI.bars.pet:SetBackdrop(pfUI.backdrop)
pfUI.bars.pet:SetWidth(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 10 + pfUI.config.bars.border * 10)
pfUI.bars.pet:SetHeight(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 1 + pfUI.config.bars.border)
PetActionBarFrame:ClearAllPoints()
PetActionBarFrame:SetAllPoints(pfUI.bars.pet)
PetActionButton1:ClearAllPoints()
PetActionButton1:SetParent(pfUI.bars.pet)
PetActionButton1:SetPoint("BOTTOMLEFT", pfUI.config.bars.border*2, pfUI.config.bars.border*2)
for i=2, 10 do
local b = getglobal("PetActionButton"..i)
local b2 = getglobal("PetActionButton"..i-1)
b:SetAllPoints(pfUI.bars.pet)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", pfUI.config.bars.border, 0)
end
else
pfUI.bars.pet:Hide()
end
ShapeshiftBarFrame:ClearAllPoints()
ShapeshiftBarFrame:SetAllPoints(pfUI.bars.shapeshift)
ShapeshiftButton1:ClearAllPoints()
ShapeshiftButton1:SetParent(pfUI.bars.shapeshift)
ShapeshiftButton1:SetPoint("BOTTOMLEFT", pfUI.config.bars.border*2, pfUI.config.bars.border*2)
local shapeshiftbuttons = 0
if ShapeshiftButton1:IsShown() then
shapeshiftbuttons = 1
pfUI.bars.shapeshift:Show()
else
pfUI.bars.shapeshift:Hide()
end
for i=2, 10 do
local b = getglobal("ShapeshiftButton"..i)
local b2 = getglobal("ShapeshiftButton"..i-1)
b:SetAllPoints(pfUI.bars.shapeshift)
b:SetParent(pfUI.bars.shapeshift)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", pfUI.config.bars.border, 0)
if b:IsShown() then shapeshiftbuttons = shapeshiftbuttons + 1 end
end
pfUI.bars.shapeshift:SetFrameStrata("LOW")
pfUI.bars.shapeshift:SetPoint("BOTTOM", pfUI.bars.bottom, "TOP", 0, 5)
pfUI.bars.shapeshift:SetBackdrop(pfUI.backdrop)
pfUI.bars.shapeshift:SetWidth(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * shapeshiftbuttons + pfUI.config.bars.border * shapeshiftbuttons)
pfUI.bars.shapeshift:SetHeight(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 1 + pfUI.config.bars.border)
if SHOW_MULTI_ACTIONBAR_1 then
MultiBarBottomLeft:SetParent(pfUI.bars.bottom)
MultiBarBottomLeft:ClearAllPoints()
MultiBarBottomLeft:SetAllPoints(pfUI.bars.bottom)
MultiBarBottomLeftButton1:ClearAllPoints()
MultiBarBottomLeftButton1:SetPoint("BOTTOM", ActionButton1, "TOP", 0, pfUI.config.bars.border)
for i=2, 12 do
local b = getglobal("MultiBarBottomLeftButton"..i)
local b2 = getglobal("MultiBarBottomLeftButton"..i-1)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", pfUI.config.bars.border, 0)
end
end
if SHOW_MULTI_ACTIONBAR_2 then
pfUI.bars.bottomleft:Show()
pfUI.bars.bottomleft:SetFrameStrata("LOW")
pfUI.bars.bottomleft:SetPoint("BOTTOMRIGHT", pfUI.bars.bottom, "BOTTOMLEFT", -5, 0)
pfUI.bars.bottomleft:SetBackdrop(pfUI.backdrop)
pfUI.bars.bottomleft:SetWidth(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 6 + pfUI.config.bars.border * 6)
pfUI.bars.bottomleft:SetHeight(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 2 + pfUI.config.bars.border * 2)
MultiBarBottomRight:SetParent(pfUI.bars.bottomleft)
MultiBarBottomRight:ClearAllPoints()
MultiBarBottomRight:SetAllPoints(pfUI.bars.bottomleft)
MultiBarBottomRightButton1:ClearAllPoints()
MultiBarBottomRightButton1:SetPoint("BOTTOMLEFT", pfUI.config.bars.border*2, pfUI.config.bars.border*2)
for i=2, 6 do
local b = getglobal("MultiBarBottomRightButton"..i)
local b2 = getglobal("MultiBarBottomRightButton"..i-1)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", pfUI.config.bars.border, 0)
end
for i=7, 12 do
local b = getglobal("MultiBarBottomRightButton"..i)
local b2 = getglobal("MultiBarBottomRightButton"..i-6)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", -pfUI.config.bars.icon_size, pfUI.config.bars.icon_size + pfUI.config.bars.border)
end
else
pfUI.bars.bottomleft:Hide()
end
if SHOW_MULTI_ACTIONBAR_3 then
pfUI.bars.bottomright:Show()
pfUI.bars.bottomright:SetFrameStrata("LOW")
pfUI.bars.bottomright:SetPoint("BOTTOMLEFT", pfUI.bars.bottom, "BOTTOMRIGHT", 5, 0)
pfUI.bars.bottomright:SetBackdrop(pfUI.backdrop)
pfUI.bars.bottomright:SetWidth(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 6 + pfUI.config.bars.border * 6)
pfUI.bars.bottomright:SetHeight(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 2 + pfUI.config.bars.border * 2)
MultiBarRight:SetParent(pfUI.bars.bottomright)
MultiBarRight:ClearAllPoints()
MultiBarRight:SetAllPoints(pfUI.bars.bottomright)
MultiBarRightButton1:ClearAllPoints()
MultiBarRightButton1:SetPoint("BOTTOMLEFT", pfUI.config.bars.border*2, pfUI.config.bars.border*2)
for i=2, 6 do
local b = getglobal("MultiBarRightButton"..i)
local b2 = getglobal("MultiBarRightButton"..i-1)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", pfUI.config.bars.border, 0)
end
for i=7, 12 do
local b = getglobal("MultiBarRightButton"..i)
local b2 = getglobal("MultiBarRightButton"..i-6)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", -pfUI.config.bars.icon_size, pfUI.config.bars.icon_size + pfUI.config.bars.border)
end
else
pfUI.bars.bottomright:Hide()
end
if SHOW_MULTI_ACTIONBAR_4 and SHOW_MULTI_ACTIONBAR_3 then
pfUI.bars.vertical:Show()
pfUI.bars.vertical:SetFrameStrata("LOW")
pfUI.bars.vertical:SetPoint("RIGHT", -5, 0)
pfUI.bars.vertical:SetBackdrop(pfUI.backdrop)
pfUI.bars.vertical:SetWidth(pfUI.config.bars.border*4 + pfUI.config.bars.icon_size)
pfUI.bars.vertical:SetHeight(pfUI.config.bars.border*3 + pfUI.config.bars.icon_size * 12 + pfUI.config.bars.border * 12)
MultiBarLeft:SetParent(pfUI.bars.vertical)
MultiBarLeft:ClearAllPoints()
MultiBarLeft:SetAllPoints(pfUI.bars.vertical)
MultiBarLeftButton1:ClearAllPoints()
MultiBarLeftButton1:SetPoint("TOPLEFT", pfUI.config.bars.border*2, -pfUI.config.bars.border*2)
for i=2, 12 do
local b = getglobal("MultiBarLeftButton"..i)
local b2 = getglobal("MultiBarLeftButton"..i-1)
b:ClearAllPoints()
b:SetPoint("TOP", b2, "BOTTOM", 0, -pfUI.config.bars.border)
end
else
pfUI.bars.vertical:Hide()
end
end)
-- create bottom bar frame
pfUI.bars.bottom = CreateFrame("Frame", "pfBarBottom", UIParent)
pfUI.bars.bottom:SetFrameStrata("LOW")
pfUI.bars.bottom:SetPoint("BOTTOM", 0, 5)
pfUI.bars.bottom:SetBackdrop(pfUI.backdrop)
ActionButton1:SetParent(pfUI.bars.bottom)
ActionButton1:ClearAllPoints()
ActionButton1:SetPoint("BOTTOMLEFT", pfUI.config.bars.border*2, pfUI.config.bars.border*2)
for i=2, 12 do
local b = getglobal("ActionButton"..i)
local b2 = getglobal("ActionButton"..i-1)
b:SetParent(pfUI.bars.bottom)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", pfUI.config.bars.border, 0)
end
BonusActionBarFrame:SetParent(pfUI.bars.bottom)
BonusActionBarFrame:ClearAllPoints()
BonusActionBarFrame:SetAllPoints(pfUI.bars.bottom)
BonusActionButton1:ClearAllPoints()
BonusActionButton1:SetPoint("BOTTOMLEFT", pfUI.config.bars.border*2 -4, pfUI.config.bars.border*2)
for i=2, 12 do
local b = getglobal("BonusActionButton"..i)
local b2 = getglobal("BonusActionButton"..i-1)
b:ClearAllPoints()
b:SetPoint("LEFT", b2, "RIGHT", pfUI.config.bars.border, 0)
end
for i = 1, 10 do
getglobal("ShapeshiftButton"..i):SetBackdrop(pfUI.backdrop)
getglobal("ShapeshiftButton"..i):SetBackdropColor(0,0,0,0)
getglobal("ShapeshiftButton"..i):SetWidth(pfUI.config.bars.icon_size)
getglobal("ShapeshiftButton"..i):SetHeight(pfUI.config.bars.icon_size)
getglobal("ShapeshiftButton"..i):Show()
getglobal("ShapeshiftButton"..i).showgrid = 1
getglobal("ShapeshiftButton"..i..'Icon'):SetAllPoints(getglobal("ShapeshiftButton"..i))
getglobal("ShapeshiftButton"..i..'Border'):SetTexture(1,1,0,1)
getglobal("ShapeshiftButton"..i..'NormalTexture'):SetAlpha(0)
getglobal("ShapeshiftButton"..i..'NormalTexture'):SetPoint("TOPLEFT", getglobal("ShapeshiftButton"..i) ,"TOPLEFT", -5, 5)
getglobal("ShapeshiftButton"..i..'NormalTexture'):SetPoint("BOTTOMRIGHT", getglobal("ShapeshiftButton"..i) ,"BOTTOMRIGHT", 5, -5)
getglobal("ShapeshiftButton"..i..'Border'):SetPoint("TOPLEFT", getglobal("ShapeshiftButton"..i) ,"TOPLEFT", 1, -1)
getglobal("ShapeshiftButton"..i..'Border'):SetPoint("BOTTOMRIGHT", getglobal("ShapeshiftButton"..i) ,"BOTTOMRIGHT", -1, 1)
getglobal("ShapeshiftButton"..i..'HotKey'):SetPoint("TOPLEFT", getglobal("ShapeshiftButton"..i) ,"TOPLEFT", 1, -1)
getglobal("ShapeshiftButton"..i..'HotKey'):SetPoint("BOTTOMRIGHT", getglobal("ShapeshiftButton"..i) ,"BOTTOMRIGHT", -1, 1)
getglobal("ShapeshiftButton"..i..'HotKey'):SetFont("Interface\\AddOns\\pfUI\\fonts\\homespun.ttf", 7, "OUTLINE")
getglobal("ShapeshiftButton"..i..'HotKey'):SetJustifyH("RIGHT")
getglobal("ShapeshiftButton"..i..'HotKey'):SetJustifyV("TOP")
getglobal("ShapeshiftButton"..i..'Name'):SetPoint("TOPLEFT", getglobal("ShapeshiftButton"..i) ,"TOPLEFT", 1, -1)
getglobal("ShapeshiftButton"..i..'Name'):SetPoint("BOTTOMRIGHT", getglobal("ShapeshiftButton"..i) ,"BOTTOMRIGHT", -1, 1)
getglobal("ShapeshiftButton"..i..'Name'):SetFont("Interface\\AddOns\\pfUI\\fonts\\homespun.ttf", 7, "OUTLINE")
getglobal("ShapeshiftButton"..i..'Name'):SetJustifyH("CENTER")
getglobal("ShapeshiftButton"..i..'Name'):SetJustifyV("BOTTOM")
end
for i = 1, 10 do
getglobal("PetActionButton"..i):SetBackdrop(pfUI.backdrop)
getglobal("PetActionButton"..i):SetBackdropColor(0,0,0,0)
getglobal("PetActionButton"..i):SetWidth(pfUI.config.bars.icon_size)
getglobal("PetActionButton"..i):SetHeight(pfUI.config.bars.icon_size)
getglobal("PetActionButton"..i):Show()
getglobal("PetActionButton"..i).showgrid = 1
getglobal("PetActionButton"..i..'AutoCast'):SetScale(.75)
getglobal("PetActionButton"..i..'AutoCast'):SetAlpha(.50)
getglobal("PetActionButton"..i..'AutoCastable'):SetAlpha(0)
--getglobal("PetActionButton"..i..'Cooldown'):SetScale(.75)
getglobal("PetActionButton"..i..'Icon'):SetAllPoints(getglobal("PetActionButton"..i))
getglobal("PetActionButton"..i..'Border'):SetTexture(1,1,0,1)
getglobal("PetActionButton"..i..'NormalTexture2'):SetAlpha(0)
getglobal("PetActionButton"..i..'NormalTexture2'):SetPoint("TOPLEFT", getglobal("PetActionButton"..i) ,"TOPLEFT", -5, 5)
getglobal("PetActionButton"..i..'NormalTexture2'):SetPoint("BOTTOMRIGHT", getglobal("PetActionButton"..i) ,"BOTTOMRIGHT", 5, -5)
getglobal("PetActionButton"..i..'Border'):SetPoint("TOPLEFT", getglobal("PetActionButton"..i) ,"TOPLEFT", 1, -1)
getglobal("PetActionButton"..i..'Border'):SetPoint("BOTTOMRIGHT", getglobal("PetActionButton"..i) ,"BOTTOMRIGHT", -1, 1)
getglobal("PetActionButton"..i..'HotKey'):SetPoint("TOPLEFT", getglobal("PetActionButton"..i) ,"TOPLEFT", 1, -1)
getglobal("PetActionButton"..i..'HotKey'):SetPoint("BOTTOMRIGHT", getglobal("PetActionButton"..i) ,"BOTTOMRIGHT", -1, 1)
getglobal("PetActionButton"..i..'HotKey'):SetFont("Interface\\AddOns\\pfUI\\fonts\\homespun.ttf", 7, "OUTLINE")
getglobal("PetActionButton"..i..'HotKey'):SetJustifyH("RIGHT")
getglobal("PetActionButton"..i..'HotKey'):SetJustifyV("TOP")
getglobal("PetActionButton"..i..'Name'):SetPoint("TOPLEFT", getglobal("PetActionButton"..i) ,"TOPLEFT", 1, -1)
getglobal("PetActionButton"..i..'Name'):SetPoint("BOTTOMRIGHT", getglobal("PetActionButton"..i) ,"BOTTOMRIGHT", -1, 1)
getglobal("PetActionButton"..i..'Name'):SetFont("Interface\\AddOns\\pfUI\\fonts\\homespun.ttf", 7, "OUTLINE")
getglobal("PetActionButton"..i..'Name'):SetJustifyH("CENTER")
getglobal("PetActionButton"..i..'Name'):SetJustifyV("BOTTOM")
end
-- theme all actionbars (spacing, size, border, text position and style)
local actionbars = { "ActionButton", "MultiBarLeftButton", "MultiBarRightButton",
"MultiBarBottomLeftButton", "MultiBarBottomRightButton", "BonusActionButton", }
for i = 1, 12 do
for _, button in pairs(actionbars) do
getglobal(button..i..'NormalTexture'):SetAlpha(0)
getglobal(button..i):SetBackdrop(pfUI.backdrop)
getglobal(button..i):SetBackdropColor(0,0,0,0)
getglobal(button..i):SetWidth(pfUI.config.bars.icon_size)
getglobal(button..i):SetHeight(pfUI.config.bars.icon_size)
getglobal(button..i):Show()
getglobal(button..i).showgrid = 1
--getglobal(button..i..'Icon'):SetTexCoord(.3,.7,.3,.7)
--getglobal(button..i..'Cooldown'):SetScale(.75)
getglobal(button..i..'Icon'):SetAllPoints(getglobal(button..i))
getglobal(button..i..'Border'):SetTexture(1,1,0,1)
getglobal(button..i..'NormalTexture'):SetPoint("TOPLEFT", getglobal(button..i) ,"TOPLEFT", -5, 5)
getglobal(button..i..'NormalTexture'):SetPoint("BOTTOMRIGHT", getglobal(button..i) ,"BOTTOMRIGHT", 5, -5)
getglobal(button..i..'Border'):SetPoint("TOPLEFT", getglobal(button..i) ,"TOPLEFT", 1, -1)
getglobal(button..i..'Border'):SetPoint("BOTTOMRIGHT", getglobal(button..i) ,"BOTTOMRIGHT", -1, 1)
getglobal(button..i..'HotKey'):SetPoint("TOPLEFT", getglobal(button..i) ,"TOPLEFT", 1, -1)
getglobal(button..i..'HotKey'):SetPoint("BOTTOMRIGHT", getglobal(button..i) ,"BOTTOMRIGHT", -1, 1)
getglobal(button..i..'HotKey'):SetFont("Interface\\AddOns\\pfUI\\fonts\\homespun.ttf", 7, "OUTLINE")
getglobal(button..i..'HotKey'):SetJustifyH("RIGHT")
getglobal(button..i..'HotKey'):SetJustifyV("TOP")
getglobal(button..i..'Name'):SetPoint("TOPLEFT", getglobal(button..i) ,"TOPLEFT", 1, -1)
getglobal(button..i..'Name'):SetPoint("BOTTOMRIGHT", getglobal(button..i) ,"BOTTOMRIGHT", -1, 1)
getglobal(button..i..'Name'):SetFont("Interface\\AddOns\\pfUI\\fonts\\homespun.ttf", 7, "OUTLINE")
getglobal(button..i..'Name'):SetJustifyH("CENTER")
getglobal(button..i..'Name'):SetJustifyV("BOTTOM")
end
end