--SkinChat local function SkinChat(self) if not self then return end local name = self:GetName() --chat frame resizing self:SetClampRectInsets(0, 0, 0, 0) self:SetMaxResize(UIParent:GetWidth()/2, UIParent:GetHeight()/2) self:SetMinResize(100, 50) self:SetFont(unpack(cfg.chat.font)) self:SetShadowOffset(unpack(cfg.dropshadow.offset)) self:SetShadowColor(unpack(cfg.dropshadow.color)) --chat fading self:SetFading(false) --hide button frame local bf = _G[name.."ButtonFrame"] bf:HookScript("OnShow", bf.Hide) bf:Hide() --editbox local eb = _G[name.."EditBox"] eb:SetAltArrowKeyMode(false) --textures _G[name.."EditBoxLeft"]:Hide() _G[name.."EditBoxMid"]:Hide() _G[name.."EditBoxRight"]:Hide() --reposition eb:ClearAllPoints() if name == "ChatFrame2" then eb:SetPoint("BOTTOM",self,"TOP",0,22+24) --CombatLogQuickButtonFrame_Custom:GetHeight() else eb:SetPoint("BOTTOM",self,"TOP",0,22) end eb:SetPoint("LEFT",self,-5,0) eb:SetPoint("RIGHT",self,10,0) end
--OpenTemporaryWindow local function OpenTemporaryWindow() for _, name in next, CHAT_FRAMES do local frame = _G[name] if (frame.isTemporary) then SkinChat(frame) end end end
--OnMOuseScroll local function OnMOuseScroll(self,dir) if(dir > 0) then if(IsShiftKeyDown()) then self:ScrollToTop() else self:ScrollUp() end else if(IsShiftKeyDown()) then self:ScrollToBottom() else self:ScrollDown() end end end
--we replace the default setitemref and use it to parse links for alt invite and url copy function SetItemRef(link, ...) local type, value = link:match("(%a+):(.+)") if IsAltKeyDown() and type == "player" then InviteUnit(value:match("([^:]+)")) elseif (type == "url") then local eb = LAST_ACTIVE_CHAT_EDIT_BOX or ChatFrame1EditBox if not eb then return end eb:SetText(value) eb:SetFocus() eb:HighlightText() if not eb:IsShown() then eb:Show() end else return DefaultSetItemRef(link, ...) end end
--AddMessage local function AddMessage(self, text, ...) --channel replace (Trade and such) text = text:gsub('|h%[(%d+)%. .-%]|h', '|h%1.|h') --url search text = text:gsub('([wWhH][wWtT][wWtT][%.pP]%S+[^%p%s])', '|cffffffff|Hurl:%1|h[%1]|h|r') return self.DefaultAddMessage(self, text, ...) end
--editbox font ChatFontNormal:SetFont(unpack(cfg.editbox.font)) ChatFontNormal:SetShadowOffset(unpack(cfg.dropshadow.offset)) ChatFontNormal:SetShadowColor(unpack(cfg.dropshadow.color))
--remove the annoying guild loot messages by replacing them with the original ones YOU_LOOT_MONEY_GUILD = YOU_LOOT_MONEY LOOT_MONEY_SPLIT_GUILD = LOOT_MONEY_SPLIT
--don't cut the toastframe BNToastFrame:SetClampedToScreen(true) BNToastFrame:SetClampRectInsets(-15,15,15,-15)
--hide the menu button ChatFrameMenuButton:HookScript("OnShow", ChatFrameMenuButton.Hide) ChatFrameMenuButton:Hide()
--hide the friend micro button local button = QuickJoinToastButton or FriendsMicroButton button:HookScript("OnShow", button.Hide) button:Hide()
--skin chat for i = 1, NUM_CHAT_WINDOWS do local chatframe = _G["ChatFrame"..i] SkinChat(chatframe) --adjust channel display if (i ~= 2) then chatframe.DefaultAddMessage = chatframe.AddMessage chatframe.AddMessage = AddMessage end end