view SkeletonKey/Events.lua @ 19:67db6b712bf3

- option checkbutton literals are stored by enclosure - detect and save any old keybindings when a slot is assigned (anything that begins with 'CLICK KeyBinder*' is ours) - mouseover mode key input will stay active after leaving a button - button border flashes when a non-modifier key is pressed
author Nenue
date Sat, 30 Jul 2016 19:08:11 -0400
parents 500f9b2bd9ac
children 73df13211b22
line wrap: on
line source
-- KrakTool
-- Events.lua
-- Created: 7/24/2016 11:10 PM
-- %file-revision%
-- Event handlers, and the init block that sets them up; nothing else should be here

local kb, print = LibStub("LibKraken").register(KeyBinder)

kb.init = function()
  kb:RegisterEvent('PLAYER_ENTERING_WORLD')
  kb:RegisterEvent('UPDATE_MACROS')
  kb:RegisterUnitEvent('PLAYER_SPECIALIZATION_CHANGED', 'player', 'pet')
  kb:RegisterUnitEvent('UNIT_PORTRAIT_UPDATE', 'player', 'pet')
  kb:RegisterUnitEvent('SPELLS_CHANGED')
  kb:RegisterUnitEvent('TALENT_UPDATE', 'player', 'pet')

  kb:RegisterEvent('PLAYER_REGEN_DISABLED')
  kb:RegisterEvent('PLAYER_REGEN_ENABLED')
end

kb.event = function(event, ...)
  if kb[event] then
    kb[event](kb, event, ...)
  end
end

kb.PLAYER_REGEN_DISABLED = function()
  kb.ui()
end

kb.UNIT_PORTRAIT_UPDATE = function()
  if KeyBinderCharacterTab then
    SetPortraitTexture(KeyBinderCharacterTab.icon, 'player')
  end
end

kb.PLAYER_REGEN_ENABLED = function()
  kb.ui()
end

kb.PLAYER_SPECIALIZATION_CHANGED =  function()
  kb.UpdateSpecInfo()
  kb.UpdateTalentInfo()
  kb.SelectProfileSet(kb.profileName)
  kb.ApplyAllBindings()
  kb.ui(true)
end
kb.PLAYER_TALENT_UPDATE = function()
  kb.UpdateTalentInfo()
  kb.SelectProfileSet(kb.profileName)
  kb.ApplyAllBindings()
  kb.ui()
end
kb.ACTIONBAR_SLOT_CHANGED = function(self, event, slot)
  kb.HotKeyText(slot)
  return true
end

-- only need to respond to this for pet actions
kb.SPELLS_CHANGED = function(self, event, unit)
  print('|cFFFF0088'.. event..'|r', unit)
  kb.UpdatePetInfo()
end