WoWInterface SVN zz_Actionbuttons

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 5 to Rev 6
    Reverse comparison

Rev 5 → Rev 6

trunk/zz_Actionbuttons/core.lua
7,25 → 7,21
local defBars = {
'Action','MultiBarBottomLeft','MultiBarBottomRight','MultiBarLeft','MultiBarRight','Shapeshift','PetAction' ,'BonusAction'
}
local micro = {
'Character',
'Spellbook',
'Talent',
'Achievement',
'QuestLog',
'Guild',
'PVP',
'LFD',
'Raid',
'EJ',
'MainMenu',
'Help',
}
 
local privFrame = {
['Action'] = "MainMenuBar",
['Action'] = true,
['MultiBarRight'] = true,
['BonusAction'] = "BonusActionBarFrame",
['Shapeshift'] = "ShapeshiftBarFrame",
}
 
local bagButtons = {
MainMenuBarBackpackButton,
CharacterBag0Slot,
CharacterBag1Slot,
CharacterBag2Slot,
CharacterBag3Slot,
}
addon['MSQ'] = LibStub("Masque",true)
if(addon['MSQ']) then addon['MSQGroup'] = addon['MSQ']:Group(name,name) end
local function dragAble()
33,16 → 29,56
end
local hooked = {}
local dummy = function() end
 
local function addDrag(self)
if(not hooked[self]) then
local bname = self:GetName()
self:SetParent(UIParent)
self:SetWidth(1)
self:SetHeight(1)
self:SetPoint("CENTER")
if(not _G[bname.."drag"]) then
db['bars'][bname] = db['bars'][bname] or {
['rows'] = 1,
['scale'] = 1,
}
self['db'] = db['bars'][bname]
self['dragAble'] = dragAble
self:SetScale(self['db']['scale'])
addon['AddDrag'](self,"BOX",{
['width'] = 64,
['height'] = 64,
['anchor'] = "TOPLEFT",
['parentanchor'] = "TOPLEFT",
['xOffset'] = 16,
['yOffset'] = 16,
['offset'] = 16,
})
end
hooked[self] = true
else
self:SetScale(self['db']['scale'])
end
end
 
local function getBarname(bname)
return (_G[bname] and privFrame[bname] == nil) and bname or ( type(privFrame[bname]) == 'string' and privFrame[bname] or name..bname.."Bar")
end
 
local function localButtons()
wipe(buttons)
local lastbutton
for b = 1, #defBars do
local barname = _G[defBars[b]] and defBars[b] or ( type(privFrame[defBars[b]]) == 'string' and privFrame[defBars[b]] or name..defBars[b].."Bar")
local barname = getBarname(defBars[b])
local f = _G[barname] or CreateFrame("Frame", barname, UIParent, "SecureHandlerStateTemplate")
UIPARENT_MANAGED_FRAME_POSITIONS[barname] = nil
if(f) then
if(defBars[b]=='Action' and not hooked[f]) then
f:SetAttribute("actionpage",b)
end
f:SetFrameStrata("MEDIUM")
if(defBars[b] == 'BonusAction' and not hooked['BonusAction']) then
f:SetParent(UIParent)
if(defBars[b] == 'BonusAction' and not hooked[f]) then
f:HookScript("OnShow", function(self,...)
for i = 1, 12 do
_G["ActionButton"..i]:SetAlpha(0)
55,39 → 91,21
_G["ActionButton"..i]:EnableMouse(true)
end
end)
hooked['BonusAction'] = true
f:ClearAllPoints()
f:SetWidth(1)
f:SetHeight(1)
f:SetPoint("CENTER")
end
 
db['bars'][defBars[b]] = db['bars'][defBars[b]] or {
['rows'] = 1,
['scale'] = 1,
}
f:SetParent(UIParent)
f:SetScale(db['bars'][defBars[b]]['scale'])
f['db'] = db['bars'][defBars[b]]
f['dragAble'] = dragAble
if(not _G[barname.."drag"]) then
addon['AddDrag'](f,"BOX",{
['width'] = 64,
['height'] = 64,
['anchor'] = "TOPLEFT",
['parentanchor'] = "TOPLEFT",
['xOffset'] = 16,
['yOffset'] = 16,
['offset'] = 16,
})
end
addDrag(f)
local i,y = 1,1
local row = 0
local spr = 12/db['bars'][defBars[b]]['rows']
local spr = 12/f['db']['rows']
lastbutton = f
while(_G[defBars[b]..'Button'..i]) do
local button = _G[defBars[b]..'Button'..i]
UIPARENT_MANAGED_FRAME_POSITIONS[button:GetName()] = nil
button:SetParent(f)
if(defBars[b] == 'Action') then
button:SetID(i)
else
button:SetID(0)
end
buttons[#buttons + 1] = button
if(addon['MSQ'] and addon['MSQGroup']) then
addon['MSQGroup']:AddButton(button)
109,35 → 127,38
end
end
local f = _G[name.."MicroMenu"] or CreateFrame("Frame", name.."MicroMenu", UIParent)
 
if(not hooked[f]) then
f:SetWidth(1)
f:SetHeight(1)
f:SetPoint("CENTER")
if(not _G[name.."MicroMenu".."drag"]) then
db['bars'][name.."MicroMenu"] = db['bars'][name.."MicroMenu"] or {
['rows'] = 1,
['scale'] = 1,
}
f['db'] = db['bars'][name.."MicroMenu"]
f['dragAble'] = dragAble
addon['AddDrag'](f,"BOX",{
['width'] = 64,
['height'] = 64,
['anchor'] = "TOPLEFT",
['parentanchor'] = "TOPLEFT",
['xOffset'] = 16,
['yOffset'] = 16,
['offset'] = 16,
})
addDrag(f)
 
local spr = 12/db['bars'][f:GetName()]['rows']
lastbutton = f
local y,row = 1,0
for _, bname in pairs(MICRO_BUTTONS) do
local btn = _G[bname]
if(btn) then
UIPARENT_MANAGED_FRAME_POSITIONS[btn:GetName()] = nil
btn:SetParent(f)
btn:ClearAllPoints()
if(y == 1) then
btn:SetPoint("TOPLEFT", f, "TOPLEFT",0 , -row * 34)
else
btn:SetPoint("TOPLEFT", lastbutton, "TOPRIGHT")
end
y = y + 1
lastbutton = btn
if(y > spr) then
y = 1
row = row + 1
end
end
hooked[f] = true
end
local spr = 12/db['bars'][name.."MicroMenu"]['rows']
f = _G[name.."BagBar"] or CreateFrame("Frame", name.."BagBar", UIParent)
addDrag(f)
local spr = 12/db['bars'][f:GetName()]['rows']
lastbutton = f
local y,row = 1,0
for i = 1, #micro do
local btn = _G[micro[i].."MicroButton"]
for i = 1, #bagButtons do
local btn = _G[bagButtons[i]]
print(i,bagButtons[i], btn)
if(btn) then
UIPARENT_MANAGED_FRAME_POSITIONS[btn:GetName()] = nil
btn:SetParent(f)
155,7 → 176,6
end
end
end
f.SetPoint = dummy
end
 
local function getBarPref(pref)
169,8 → 189,9
 
local function buildPrefs()
for b = 1, #defBars do
local bname = getBarname(defBars[b])
local o = addon['AddConfigMenu'](addon, {
['name'] = defBars[b],
['name'] = bname,
['menuGet'] = getBarPref,
['menuSet'] = setBarPref,
}, addon['options']['args'][childName])
245,6 → 266,15
end
MainMenuBar:SetFrameStrata("BACKGROUND")
end
 
local function togglePriv(show)
for k,v in pairs(privFrame) do
if(type(v) == 'boolean') then
_G[name..k.."Bar"]:SetAlpha(show and 1 or 0)
end
end
end
 
local function init()
options = addon['InitConfig'](addon, childName, true, {
['type'] = "launcher",
254,18 → 284,16
localButtons()
addon['AddConfigEntry'](addon, name, 'toggle', 'dragAble', 'Unlocked', 'Use alt+click to move your bars', 0)
buildPrefs()
addon['RegisterFunc']({"UNIT_EXITED_VEHICLE"}, "OnEvent", function(self, event,arg1,...)
addon['RegisterFunc']({"UNIT_EXITED_VEHICLE","UNIT_ENTERING_VEHICLE"}, "OnEvent", function(self, event,arg1,...)
if(arg1 ~= 'player') then return end
for b = 1, #defBars do
local barname = _G[defBars[b]] and defBars[b] or ( type(privFrame[defBars[b]]) == 'string' and privFrame[defBars[b]] or name..defBars[b].."Bar")
local f = _G[barname] or CreateFrame("Frame", barname, UIParent, "SecureHandlerStateTemplate")
print(f, barname)
if(f) then
-- addon['LoadFrame'](f)
localButtons()
end
if(event == "UNIT_EXITED_VEHICLE") then
togglePriv(true)
elseif(event == "UNIT_ENTERING_VEHICLE") then
togglePriv(false)
end
end)
MoveMicroButtons = function() end
VehicleMenuBar_MoveMicroButtons = function() end
end
 
addon['startup'](addon, name, childName, init, true, defaults)
\ No newline at end of file