WoWInterface SVN KeyboardAccess

[/] [trunk/] [core.lua] - Rev 3

Go to most recent revision | Compare with Previous | Blame | View Log

--[[
        ##AddOn   : KeyboardAccess 
        ##Subfile : core.lua
        ##Author  : Hati-EK
--]]
--[[Logic Rules:
FIFO Principe
Example:
1. Ready-Check comes in.
2. Rogue wants to swap poison on MH.
3. !No Rule Conflict!
=> Rule#1:
What shows up first -> Gets handled first


informations
>>readycheck module
        ReadyCheckFrameYesButton --yes
        ReadyCheckFrameNoButton --no


>>npc/enchant module
        StaticPopup1Button1 --yes
        StaticPopup1Button2 --no
        up to StaticPopup4

>>LFD tool (role)
        LFDRoleCheckPopupAcceptButton
        LFDRoleCheckPopupDeclineButton
        
>>LFD tool (join)
        LFDDungeonReadyDialogEnterDungeonButton --Enter
        LFDDungeonReadyDialogLeaveQueueButton --Leave
]]
KeyboardAccess = { } --just for personal debugging issues
local KA = KeyboardAccess  -- 4b6579626f617264416363657373 = Hex-CODE for KeyboarAccess
KA.name = 'KeyboardAccess'
KA.ver = GetAddOnMetadata( KA.name, 'Version')
if KA.ver=='rwowi:revision' then KA.ver='SVN' end
KA.MODShift=false
KA.handleT = {}
local events = {}

function events:MODIFIER_STATE_CHANGED(modi,state) --required for still opening chat or config 
        if modi=='LSHIFT' or modi=='RSHIFT' then
                KA.MODShift=state
        end
end

function events:READY_CHECK(...) --ReadyCheck PopUp
        --print('READY_CHECK')
end

function events:LFG_PROPOSAL_SHOW(...) --LFD Tool PopUp
        --print('LFG_PROPOSAL_SHOW')
end

KA.handler = CreateFrame('Frame',KA.name.."_Handler")
KA.handler:SetScript('OnEvent',function(self,event,...)
        events[event](self, ...)
end)
for k, v in pairs(events) do
        KA.handler:RegisterEvent(k); -- Register all events for which handlers have been defined
end


--overwriting all possible frames
local popups = {
        LFDRoleCheckPopup, --rolecheck
        StaticPopup1, --default
        StaticPopup2, --popup frames 
        StaticPopup3, --for enchants
        StaticPopup4 --buying items
}
KA.oldShow = { }
--storing old shows & creating new ones
for _,k in ipairs(popups) do
        local name = k:GetName()
        KA.oldShow[name] = k:GetScript('OnShow')
        k:SetScript('OnShow',function(...)
                tinsert(KA.handleT,name)
                KA.oldShow[name](...)
        end)
end


Go to most recent revision | Compare with Previous | Blame