Here is a different approach:
Code:
local frame = CreateFrame('Frame', nil, UIParent)
frame:SetFrameStrata('DIALOG')
frame:SetPoint('LEFT', 3, 10)
frame:SetHeight(400)
frame:SetWidth(500)
frame:Hide()
frame:SetBackdrop({
bgFile = [[Interface\DialogFrame\UI-DialogBox-Background]],
edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]],
edgeSize = 16, tileSize = 16, tile = true,
insets = { left = 3, right = 3, top = 5, bottom = 3 }
})
frame:SetBackdropColor(0, 0, 0, 1)
local scrollArea = CreateFrame('ScrollFrame', "wChatScrollFrame", frame, 'UIPanelScrollFrameTemplate')
scrollArea:SetPoint('TOPLEFT', 8, -30)
scrollArea:SetPoint('BOTTOMRIGHT', -30, 8)
local editBox = CreateFrame('EditBox', nil, frame)
editBox:SetMultiLine(true)
editBox:SetMaxLetters(20000)
editBox:EnableMouse(true)
editBox:SetAutoFocus(true)
editBox:SetFontObject(ChatFontNormal)
editBox:SetWidth(450)
editBox:SetHeight(270)
editBox:SetScript('OnEscapePressed', function() frame:Hide() end)
scrollArea:SetScrollChild(editBox)
local close = CreateFrame('Button', nil, frame, 'UIPanelCloseButton')
close:SetPoint('TOPRIGHT', 0, -1)
local CopyChat = function(self, chatTab)
local chatFrame = _G['ChatFrame' .. chatTab:GetID()]
local numMessages = chatFrame:GetNumMessages()
if numMessages >= 1 then
local GetMessageInfo = chatFrame.GetMessageInfo
local text = GetMessageInfo(chatFrame, 1)
for index = 2, numMessages do
text = text .. "\n" .. GetMessageInfo(chatFrame, index)
end
frame:Show()
editBox:SetText(text)
end
end
hooksecurefunc('FCF_Tab_OnClick', function(self)
local info = UIDropDownMenu_CreateInfo()
info.text = "Copy Chat Contents"
info.notCheckable = true
info.func = CopyChat
info.arg1 = self
UIDropDownMenu_AddButton(info)
end)
I'm not sure if you changed those backdrop textures or not but I set them to the default UI's so I wouldn't have to download wChat. Also, without sounding to much like an ass I hope, is your primary language something other than english?