WoWInterface SVN mikma

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /NeonChat
    from Rev 216 to Rev 256
    Reverse comparison

Rev 216 → Rev 256

NeonChat.lua
1,100 → 1,52
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)
\ No newline at end of file
NeonChat.toc
1,6 → 1,6
## Interface: 30000
## Title: NeonChat v1.4
## Interface: 30100
## Title: NeonChat v2
## Notes: Colors the border of chatinput depending where you are planning to write. Never write nasty secrets to wrong chat again!
## Author: Mikma
## SavedVariables: NeonChatDBv2
## SavedVariables: NeonChatDB
NeonChat.lua