--[[ Name: idChat2_Buttons Developed by: Curney of Uther Originally by: Industrial Thanks to: Wubin for helping me understand hooking better Website: http://wiki.wowace.com/idChat2_Buttons SVN: http://svn.wowace.com/root/trunk/idChat2_Buttons Description: Module for idChat2 that toggles the chat menu and chat window buttons on and off (default=off). Dependencies: idChat2 ]] idChat2_Buttons = idChat2:NewModule('buttons') function idChat2_Buttons:OnInitialize() self.db = idChat2:AcquireDBNamespace('Buttons') idChat2:RegisterDefaults('Buttons', 'profile', { on = true, default = true, menu = false, chatframe = {false, false, false, false, false, false, false} }) idChat2.Options.args.buttons = { name = "Buttons", desc = "Toggle the chat menu and chat window buttons on and off (default=off)", type = "group", args = { toggle = { name = "Toggle", desc = "Toggle the module on and off", type = "toggle", get = function() return self.db.profile.on end, set = function(v) if v then self:OnEnable() else self:OnDisable() end self.db.profile.on = v end }, chatmenu = { name = "ChatMenu", type = "toggle", desc = "Toggles chat menu on and off", get = function() return self.db.profile.menu end, set = function(v) self.db.profile.menu = v self:Menu(v) end }, chat1 = { name = "Chat1Buttons", type = "toggle", desc = "Toggles buttons on and off for chat window 1", get = function() return self.db.profile.chatframe[1] end, set = function(v) self.db.profile.chatframe[1] = v self:Buttons(1,v) end }, chat2 = { name = "Chat2Buttons", type = "toggle", desc = "Toggles buttons on and off for chat window 2", get = function() return self.db.profile.chatframe[2] end, set = function(v) self.db.profile.chatframe[2] = v self:Buttons(2,v) end }, chat3 = { name = "Chat3Buttons", type = "toggle", desc = "Toggles buttons on and off for chat window 3", get = function() return self.db.profile.chatframe[3] end, set = function(v) self.db.profile.chatframe[3] = v self:Buttons(3,v) end }, chat4 = { name = "Chat4Buttons", type = "toggle", desc = "Toggles buttons on and off for chat window 4", get = function() return self.db.profile.chatframe[4] end, set = function(v) self.db.profile.chatframe[4] = v self:Buttons(4,v) end }, chat5 = { name = "Chat5Buttons", type = "toggle", desc = "Toggles buttons on and off for chat window 5", get = function() return self.db.profile.chatframe[5] end, set = function(v) self.db.profile.chatframe[5] = v self:Buttons(5,v) end }, chat6 = { name = "Chat6Buttons", type = "toggle", desc = "Toggles buttons on and off for chat window 6", get = function() return self.db.profile.chatframe[6] end, set = function(v) self.db.profile.chatframe[6] = v self:Buttons(6,v) end }, chat7 = { name = "Chat7Buttons", type = "toggle", desc = "Toggles buttons on and off for chat window 7", get = function() return self.db.profile.chatframe[7] end, set = function(v) self.db.profile.chatframe[7] = v self:Buttons(7,v) end } } } end function idChat2_Buttons:OnEnable() self:Hook("ChatFrame_OnUpdate") end function idChat2_Buttons:OnDisable() self:Unhook("ChatFrame_OnUpdate") self:Menu(self.db.profile.default) for i = 1, 7 do self:Buttons(i,self.db.profile.default) end end function idChat2_Buttons:ChatFrame_OnUpdate(elapsed) self.hooks["ChatFrame_OnUpdate"](elapsed) self:Control() end function idChat2_Buttons:Control() self:Menu(self.db.profile.menu) for i = 1, 7 do self:Buttons(i,self.db.profile.chatframe[i]) end end function idChat2_Buttons:Menu(visible) if visible then ChatFrameMenuButton:Show() else ChatFrameMenuButton:Hide() end end function idChat2_Buttons:Buttons(frame,visible) if visible then getglobal('ChatFrame'..frame..'UpButton'):Show() getglobal('ChatFrame'..frame..'DownButton'):Show() getglobal('ChatFrame'..frame..'BottomButton'):Show() else getglobal('ChatFrame'..frame..'UpButton'):Hide() getglobal('ChatFrame'..frame..'DownButton'):Hide() getglobal('ChatFrame'..frame..'BottomButton'):Hide() end end