116 lines
3.6 KiB
Lua
116 lines
3.6 KiB
Lua
|
--------------------------------------------------------------------------------
|
||
|
-- # MODULES > STYLE
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
-- add additional font sizes
|
||
|
CHAT_FONT_HEIGHTS = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}
|
||
|
|
||
|
-- fade chat frame and tabs
|
||
|
CHAT_FRAME_FADE_TIME = .5
|
||
|
CHAT_TAB_SHOW_DELAY = 0
|
||
|
CHAT_TAB_HIDE_DELAY = .5
|
||
|
CHAT_FRAME_FADE_OUT_TIME = .5
|
||
|
CHAT_FRAME_TAB_NORMAL_MOUSEOVER_ALPHA = 1
|
||
|
CHAT_FRAME_TAB_NORMAL_NOMOUSE_ALPHA = .2
|
||
|
CHAT_FRAME_TAB_SELECTED_MOUSEOVER_ALPHA = 1
|
||
|
CHAT_FRAME_TAB_SELECTED_NOMOUSE_ALPHA = .8
|
||
|
CHAT_FRAME_TAB_ALERTING_MOUSEOVER_ALPHA = 1
|
||
|
CHAT_FRAME_TAB_ALERTING_NOMOUSE_ALPHA = 1
|
||
|
|
||
|
local f = CreateFrame('Frame')
|
||
|
f:RegisterEvent('PLAYER_ENTERING_WORLD')
|
||
|
f:SetScript('OnEvent', function(self, event)
|
||
|
|
||
|
-- hide social button
|
||
|
QuickJoinToastButton:HookScript('OnShow', QuickJoinToastButton.Hide)
|
||
|
QuickJoinToastButton:Hide()
|
||
|
|
||
|
-- hide shortcut button for emotes/languages/etc
|
||
|
ChatFrameMenuButton:HookScript('OnShow', ChatFrameMenuButton.Hide)
|
||
|
ChatFrameMenuButton:Hide()
|
||
|
|
||
|
-- hide voice deafen button
|
||
|
ChatFrameToggleVoiceDeafenButton:HookScript('OnShow', ChatFrameToggleVoiceDeafenButton.Hide)
|
||
|
ChatFrameToggleVoiceDeafenButton:Hide()
|
||
|
|
||
|
-- hide voice mute button
|
||
|
ChatFrameToggleVoiceMuteButton:HookScript('OnShow', ChatFrameToggleVoiceMuteButton.Hide)
|
||
|
ChatFrameToggleVoiceMuteButton:Hide()
|
||
|
ChatFrameChannelButton:HookScript('OnShow', ChatFrameChannelButton.Hide)
|
||
|
ChatFrameChannelButton:Hide()
|
||
|
|
||
|
-- keep track of frames we have already seen
|
||
|
local frames = {}
|
||
|
|
||
|
local function SkinChatFrames(frame)
|
||
|
if frames[frame] then return end
|
||
|
local name = frame:GetName()
|
||
|
local editbox = _G[name..'EditBox']
|
||
|
|
||
|
-- hide button frame
|
||
|
_G[name..'ButtonFrame']:Hide()
|
||
|
|
||
|
-- strip edit box textures
|
||
|
for k = 3, 8 do
|
||
|
select(k, editbox:GetRegions()):SetTexture(nil)
|
||
|
end
|
||
|
|
||
|
-- allow arrow keys in edit box
|
||
|
editbox:SetAltArrowKeyMode(false)
|
||
|
|
||
|
-- create backdrop for edit box
|
||
|
Mixin(editbox, BackdropTemplateMixin)
|
||
|
editbox:SetBackdrop( {
|
||
|
bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
|
||
|
edgeFile = "Interface\\Buttons\\WHITE8x8",
|
||
|
tile = true,
|
||
|
tileEdge = true,
|
||
|
tileSize = 8,
|
||
|
edgeSize = 1,
|
||
|
insets = { left = 1, right = 1, top = 1, bottom = 1 },
|
||
|
})
|
||
|
editbox:SetBackdropColor(0, 0, 0, .5)
|
||
|
editbox:SetBackdropBorderColor(0, 0, 0, .8)
|
||
|
|
||
|
-- adjust edit box border based on active chat channel
|
||
|
hooksecurefunc("ChatEdit_UpdateHeader", function(editBox)
|
||
|
local chatType = editBox:GetAttribute("chatType")
|
||
|
if not chatType then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local info = ChatTypeInfo[chatType]
|
||
|
editbox:SetBackdropBorderColor(info.r, info.g, info.b, .5)
|
||
|
end)
|
||
|
|
||
|
-- reposition edit box
|
||
|
editbox:ClearAllPoints()
|
||
|
editbox:SetPoint('TOPLEFT', ChatFrame1, 'BOTTOMLEFT', -3, -8)
|
||
|
editbox:SetPoint('TOPRIGHT', ChatFrame1, 'BOTTOMRIGHT', 16, -8)
|
||
|
|
||
|
-- hide chat tabs textures
|
||
|
local tab = _G[name..'Tab']
|
||
|
for i = 1, select('#', tab:GetRegions()) do
|
||
|
local texture = select(i, tab:GetRegions())
|
||
|
if texture and texture:GetObjectType() == 'Texture' then
|
||
|
texture:SetTexture(nil)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
frames[frame] = true
|
||
|
end
|
||
|
|
||
|
-- retrieve all permanent chat windows and apply skin
|
||
|
for i = 1, NUM_CHAT_WINDOWS do
|
||
|
SkinChatFrames(_G['ChatFrame' .. i])
|
||
|
end
|
||
|
|
||
|
-- set up a dirty hook to catch temporary windows to apply skin on them
|
||
|
local old_OpenTemporaryWindow = FCF_OpenTemporaryWindow
|
||
|
FCF_OpenTemporaryWindow = function(...)
|
||
|
local frame = old_OpenTemporaryWindow(...)
|
||
|
SkinChatFrames(frame)
|
||
|
return frame
|
||
|
end
|
||
|
end)
|