local AddOn = "|cFFFF7733NeonChat:|r " |
local oldalpha |
local color1,color2,color3,color4 = ChatFrame1Background:GetVertexColor() |
local table = { ChatFrame1ResizeTopLeftTexture, ChatFrame1ResizeTopTexture, ChatFrame1ResizeTopRightTexture, ChatFrame1ResizeRightTexture, ChatFrame1ResizeBottomRightTexture, ChatFrame1ResizeBottomTexture, ChatFrame1ResizeBottomLeftTexture, ChatFrame1ResizeLeftTexture, } |
if not NeonChatDB then NeonChatDB = { background = 0.75, border = 1, chatborder = "true", } end |
|
NeonChatDefaults = { |
background = 0.75, |
border = 1, |
chatborder = "true", |
} |
|
if not NeonChatDBv2 then NeonChatDBv2 = NeonChatDefaults end |
|
local function printhelp() |
ChatFrame1:AddMessage(AddOn.."slashcommands:") |
ChatFrame1:AddMessage(" ' /neonchat background value ' - where value is '0-1'") |
ChatFrame1:AddMessage(" ' /neonchat border value ' - where value is '0-1'") |
ChatFrame1:AddMessage(" ' /neonchat chatborder value ' - where value is 'true' or 'false'") |
ChatFrame1:AddMessage("|cFFFF7733NeonChat: slashcommands:|r") |
ChatFrame1:AddMessage(" ' /neonchat background (0-1) ', ie: /neonchat background 0.5") |
ChatFrame1:AddMessage(" ' /neonchat border (0-1) ', ie: /neonchat border 0.5") |
ChatFrame1:AddMessage(" ' /neonchat chatborder ', toggles chatborder on/off") |
end |
|
SLASH_NEONCHAT1 = "/neonchat" |
SlashCmdList["NEONCHAT"] = function(value) |
local a,b = strsplit(" ", value, 2) |
if (a == "border" or a == "background") then |
if (b == nil or b == "") then |
printhelp() |
elseif (b == "0" or b == "1") or (b > "0" and b < "1") then |
NeonChatDBv2[a] = b |
else |
ChatFrame1:AddMessage(AddOn.."|cFFFF0000Error:|r "..a.." Use value between 0-1. ie: 0.5.") |
if (b == nil or b == "") then printhelp() |
elseif (b == "0" or b == "1") or (b > "0" and b < "1") then NeonChatDB[a] = b else printhelp() |
end |
elseif (a == "chatborder") then |
if (b == "true" or b == "false") then |
NeonChatDBv2[a] = b |
else |
ChatFrame1:AddMessage(AddOn.."|cFFFF0000Error:|r "..a.." Use values 'true' or 'false'") |
end |
else |
printhelp() |
end |
if NeonChatDB[a] == true then NeonChatDB[a] = nil else NeonChatDB[a] = true end |
else printhelp() end |
end |
|
select(6, ChatFrameEditBox:GetRegions()):Hide() |
select(7, ChatFrameEditBox:GetRegions()):Hide() |
select(8, ChatFrameEditBox:GetRegions()):Hide() |
for i=6,8 do select(i, ChatFrameEditBox:GetRegions()):Hide() end |
|
local editbox = CreateFrame("Button", nil, ChatFrameEditBox) |
editbox:SetBackdrop({bgFile = "Interface\\ChatFrame\\ChatFrameBackground", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 14, insets = {left = 3, right = 3, top = 3, bottom = 3}}) |
editbox:ClearAllPoints() |
editbox:SetPoint("TOPLEFT", "ChatFrameEditBoxLeft", "TOPLEFT", 2, -2) |
editbox:SetPoint("BOTTOMRIGHT", "ChatFrameEditBoxRight", "BOTTOMRIGHT", -2, 2) |
editbox:SetBackdrop(GameTooltip:GetBackdrop()) |
editbox:SetPoint("TOPLEFT", "ChatFrameEditBoxLeft", "TOPLEFT", 1, -2) |
editbox:SetPoint("BOTTOMRIGHT", "ChatFrameEditBoxRight", "BOTTOMRIGHT", -1, 2) |
editbox:SetFrameLevel(ChatFrameEditBox:GetFrameLevel()-1) |
editbox:Show() |
|
local chatborder = CreateFrame("Button", nil, ChatFrameEditBox) |
chatborder:SetBackdrop(GameTooltip:GetBackdrop()) |
chatborder:SetPoint("TOPLEFT", "ChatFrame1ResizeTopLeft") |
chatborder:SetPoint("BOTTOMRIGHT", "ChatFrame1ResizeBottomRight") |
chatborder:SetBackdropColor(0,0,0,0) |
|
local function colorize(r,g,b) |
editbox:SetBackdropBorderColor(r,g,b,NeonChatDB.border) |
chatborder:SetBackdropBorderColor(r,g,b,NeonChatDB.border) |
if NeonChatDB.chatborder then chatborder:Show() else chatborder:Hide() end |
editbox:SetBackdropColor(r/5,g/5,b/5,NeonChatDB.border) |
end |
|
hooksecurefunc("ChatEdit_UpdateHeader", function() |
local type = DEFAULT_CHAT_FRAME.editBox:GetAttribute("chatType") |
if ( type == "CHANNEL" ) then |
local id = GetChannelName(DEFAULT_CHAT_FRAME.editBox:GetAttribute("channelTarget")) |
if id == 0 then |
editbox:SetBackdropBorderColor(0.5,0.5,0.5,NeonChatDBv2.border) |
if NeonChatDBv2.chatborder == "true" then |
for v,k in pairs(table) do |
k:SetVertexColor(color1,color2,color3,color4) |
end |
end |
else |
editbox:SetBackdropBorderColor(ChatTypeInfo[type..id].r,ChatTypeInfo[type..id].g,ChatTypeInfo[type..id].b,NeonChatDBv2.border) |
if NeonChatDBv2.chatborder == "true" then |
for v,k in pairs(table) do |
k:SetVertexColor(ChatTypeInfo[type..id].r,ChatTypeInfo[type..id].g,ChatTypeInfo[type..id].b,1) |
end |
end |
if id == 0 then colorize(0.5,0.5,0.5) |
else colorize(ChatTypeInfo[type..id].r,ChatTypeInfo[type..id].g,ChatTypeInfo[type..id].b) |
end |
else |
editbox:SetBackdropBorderColor(ChatTypeInfo[type].r,ChatTypeInfo[type].g,ChatTypeInfo[type].b,NeonChatDBv2.border) |
if NeonChatDBv2.chatborder == "true" then |
for v,k in pairs(table) do |
k:SetVertexColor(ChatTypeInfo[type].r,ChatTypeInfo[type].g,ChatTypeInfo[type].b,1) |
end |
|
end |
else colorize(ChatTypeInfo[type].r,ChatTypeInfo[type].g,ChatTypeInfo[type].b) |
end |
editbox:SetBackdropColor(ChatTypeInfo[type].r/10,ChatTypeInfo[type].g/10,ChatTypeInfo[type].b/10,NeonChatDBv2.background) |
end) |
|
hooksecurefunc(ChatFrameEditBox, "Show", function() |
color1,color2,color3,color4 = ChatFrame1Background:GetVertexColor() |
oldalpha = ChatFrame1.oldAlpha |
ChatFrame1.oldAlpha = 1 |
ChatFrame1.hasBeenFaded = nil |
end) |
|
hooksecurefunc(ChatFrameEditBox, "Hide", function() |
ChatFrame1.oldAlpha = oldalpha |
ChatFrame1.hasBeenFaded = nil |
for v,k in pairs(table) do |
k:SetVertexColor(color1,color2,color3,color4) |
end |
end) |
|
end) |