Привет!
А что происходит при отключении аддона? Я так понимаю, что обратно кнопка не возвращается?
Прикреплю свою наработку по этой теме, может поможет чем.
--------------------------------------------------------------------------------
-- GLOBALS
--------------------------------------------------------------------------------
Global( "HBSB_sortBtn", nil )
Global( "HBSB_dropdownBtn", nil )
--------------------------------------------------------------------------------
-- EVENT HANDLERS
--------------------------------------------------------------------------------
-- "EVENT_ADDON_LOAD_STATE_CHANGED"
function OnEventHandler( params )
if (params.loading) then
--hide buttons by loading addon
HBSB_sortBtn:Show(false)
HBSB_dropdownBtn:Show(false)
else
--show button by unloading addon
HBSB_sortBtn:Show(true)
HBSB_dropdownBtn:Show(true)
end
end
--------------------------------------------------------------------------------
-- INITIALIZATION
--------------------------------------------------------------------------------
function Init()
HBSB_isAvailable = true;
local contextBag = stateMainForm:GetChildChecked( "ContextBag", false )
local bag = contextBag:GetChildChecked( "Bag", false )
local buttons = bag:GetChildChecked( "Buttons", false )
HBSB_sortBtn = buttons:GetChildChecked( "Sort", false )
HBSB_dropdownBtn = buttons:GetChildChecked( "DropDown", false )
common.RegisterEventHandler( OnEventHandler, "EVENT_ADDON_LOAD_STATE_CHANGED" )
--run when addon has been dropped
rawset(_G, 'HBSB_disposeObject', newproxy(true))
getmetatable(HBSB_disposeObject).__gc = Dispose
end
--------------------------------------------------------------------------------
-- DISPOSE
--------------------------------------------------------------------------------
function Dispose()
HBSB_sortBtn:Show(true)
HBSB_dropdownBtn:Show(true)
HBSB_sortBtn = nil
HBSB_dropdownBtn = nil
common.UnRegisterEvent( "EVENT_ADDON_LOAD_STATE_CHANGED" )
end
--------------------------------------------------------------------------------
if (avatar.IsExist()) then Init()
else common.RegisterEventHandler(Init, "EVENT_AVATAR_CREATED")
end
--------------------------------------------------------------------------------