Thank you. You taught me a lot with that and I won't use OnUpdate again
That works perfectly!
---------- Post added 2013-01-19 at 10:54 AM ----------
I am having a few issues with this. The first is that when I log on I get a lua error which I've linked at the bottom of this post. Another is that when I log on, the panel is showing when I am not holding down the Alt key which is most likely because of the lua error. The other problem is that I had to reuse the OnUpdate code which you said was redundant because I have two panels and the both should only show with the Alt key if their own targeted panel is showing: "if kgPanels:FetchFrame("BottomBars2"):IsVisible() then...". It is hard to explain without using my UI but I hope this makes sense. Sorry for the overwhelming amount of code that follows this. It is just the best way to explain my problem. My lua skills are poor so I'm sure there is a lot wrong with what I'm doing. Thank you for your time if anyone looks through this.
First Panel:
OnLoad:
Code:
self:RegisterEvent("MODIFIER_STATE_CHANGED")
self:RegisterEvent("PLAYER_REGEN_ENABLED")
self:RegisterEvent("PLAYER_REGEN_DISABLED")
if kgPanels:FetchFrame("BottomBars"):IsVisible() then
function self:UpdateVisibility()
if IsAltKeyDown() and (not IsControlKeyDown()) and (not IsShiftKeyDown()) and (not self.combatState) then
self:Show()
else
self:Hide()
end
end
else
self:Hide()
end
OnEvent:
Code:
if event == "PLAYER_REGEN_ENABLED" then
self.combatState = false
elseif event == "PLAYER_REGEN_DISABLED" then
self.combatState = true
end
self:UpdateVisibility()
OnUpdate:
Code:
if kgPanels:FetchFrame("BottomBars"):IsVisible() then
self:Show()
else
self:Hide()
end
My Second Panel:
OnLoad:
Code:
self:RegisterEvent("MODIFIER_STATE_CHANGED")
self:RegisterEvent("PLAYER_REGEN_ENABLED")
self:RegisterEvent("PLAYER_REGEN_DISABLED")
if kgPanels:FetchFrame("BottomBars2"):IsVisible() then
function self:UpdateVisibility()
if IsAltKeyDown() and (not IsControlKeyDown()) and (not IsShiftKeyDown()) and (not self.combatState) then
self:Show()
else
self:Hide()
end
end
else
self:Hide()
end
OnEvent:
Code:
if event == "PLAYER_REGEN_ENABLED" then
self.combatState = false
elseif event == "PLAYER_REGEN_DISABLED" then
self.combatState = true
end
self:UpdateVisibility()
OnUpdate:
Code:
if kgPanels:FetchFrame("BottomBars"):IsVisible() then
self:Hide()
else
self:Show()
end
Also I am getting the following lua error when I press Alt:
Code:
Message: [string "Retract_OnEvent"]:6: attempt to call method 'UpdateVisibility' (a nil value)
Time: 01/19/13 10:48:31
Count: 14
Stack: [string "Retract_OnEvent"]:6: in function <[string "Retract_OnEvent"]:1>
Locals: self = kgPanel3 {
0 = <userdata>
_backdrop_options = <table> {
}
_GetBackdropColor = <function> defined =[C]:-1
SetBackdropGradientAlpha = <function> defined @Interface\AddOns\kgPanels\Libs\LibBackdrop-1.0\LibBackdrop-1.0.lua:513
_SetBackdrop = <function> defined =[C]:-1
GetBackdropBorderSection = <function> defined @Interface\AddOns\kgPanels\Libs\LibBackdrop-1.0\LibBackdrop-1.0.lua:141
GetBackdropColor = <function> defined =[C]:-1
_backdrop = <unnamed> {
}
_GetBackdropBorderColor = <function> defined =[C]:-1
SetBackdropBorderColor = <function> defined =[C]:-1
bg = <unnamed> {
}
missing_anchor_at_load = false
missing_parent_at_load = false
scripts_loaded = false
SetBackdropBorderGradientAlpha = <function> defined @Interface\AddOns\kgPanels\Libs\LibBackdrop-1.0\LibBackdrop-1.0.lua:546
GetBackdropBackground = <function> defined @Interface\AddOns\kgPanels\Libs\LibBackdrop-1.0\LibBackdrop-1.0.lua:134
text = <unnamed> {
}
SetBackdrop = <function> defined =[C]:-1
BorderTextureFunction = <function> defined @Interface\AddOns\kgPanels\Libs\LibBackdrop-1.0\LibBackdrop-1.0.lua:122
SetBackdropColor = <function> defined =[C]:-1
GetBackdropBorderColor = <function> defined =[C]:-1
_GetBackdrop = <function> defined =[C]:-1
GetBackdrop = <function> defined =[C]:-1
SetBackdropBorderGradient = <function> defined @Interface\AddOns\kgPanels\Libs\LibBackdrop-1.0\LibBackdrop-1.0.lua:520
_SetBackdropBorderColor = <function> defined =[C]:-1
_SetBackdropColor = <function> defined =[C]:-1
SetBackdropGradient = <function> defined @Interface\AddOns\kgPanels\Libs\LibBackdrop-1.0\LibBackdrop-1.0.lua:506
}
event = "MODIFIER_STATE_CHANGED"
arg1 = "LALT"
arg2 = 0
arg3 = nil
arg4 = nil
arg5 = nil
arg6 = nil
arg7 = nil
arg8 = nil
arg9 = nil
arg10 = nil
kgPanels = <table> {
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:383
FetchFont = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:382
SetupScript = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:1017
Enable = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:315
RegisterChatCommand = <function> defined @Interface\AddOns\Bagnon\libs\AceConsole-3.0\AceConsole-3.0.lua:85
EnableModule = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:348
modules = <table> {
}
GetModule = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:231
IterateEmbeds = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:458
ResetFont = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:999
defaultModuleLibraries = <table> {
}
eframe = kgPanels_Dep_Frame {
}
UnregisterChatCommand = <function> defined @Interface\AddOns\Bagnon\libs\AceConsole-3.0\AceConsole-3.0.lua:111
Printf = <function> defined @Interface\AddOns\Bagnon\libs\AceConsole-3.0\AceConsole-3.0.lua:69
angles = <table> {
}
GetName = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:300
AddMissingMedia = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:467
ReParent = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:721
name = "kgPanels"
FetchArt = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:379
IsEnabled = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:467
orderedModules = <table> {
}
CommandLine = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:616
DisableModule = <function> defined @Interface\AddOns\Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:366
active = "Main"
RemoveFrame = <function> defined @Interface\AddOns\kgPanels\kgPanels.lua:736
parents = <table> {
}
GetArgs = <function> defined @Interface\AddOn