Replace ScrollFrame with Messages queue and refactor speeches options
This commit is contained in:
parent
b6d64d65b5
commit
b17f37ee42
5 changed files with 87 additions and 152 deletions
|
@ -1,32 +1,21 @@
|
|||
local _, addon = ...
|
||||
local messages = {}
|
||||
|
||||
local GAP = 2
|
||||
|
||||
local function ReflowMessages()
|
||||
local offsetY = 5
|
||||
local offsetY = 0
|
||||
for i = #messages, 1, -1 do
|
||||
local Frame = messages[i]
|
||||
Frame:ClearAllPoints()
|
||||
Frame:SetPoint("BOTTOMLEFT", addon.SpeechFrame.ContentFrame, "BOTTOMLEFT", 5, offsetY)
|
||||
Frame:SetPoint("BOTTOMLEFT", addon.SpeechFrame, "BOTTOMLEFT", 0, offsetY)
|
||||
Frame:Show()
|
||||
offsetY = offsetY + Frame:GetHeight()
|
||||
offsetY = offsetY + Frame:GetHeight() + GAP
|
||||
end
|
||||
|
||||
if #messages == 0 then
|
||||
addon.SpeechFrame:Hide()
|
||||
end
|
||||
|
||||
-- calculate Content height
|
||||
-- cannot be smaller then SpeechFrame
|
||||
offsetY = offsetY + 5
|
||||
if offsetY < 150 then
|
||||
offsetY = 150
|
||||
end
|
||||
addon.SpeechFrame.ContentFrame:SetHeight(offsetY)
|
||||
|
||||
-- Scroll down
|
||||
--addon.SpeechFrame:UpdateScrollChildRect()
|
||||
--local maxScroll = addon.SpeechFrame:GetVerticalScrollRange()
|
||||
--addon.SpeechFrame:SetVerticalScroll(maxScroll)
|
||||
end
|
||||
|
||||
local function RemoveMessage(frame)
|
||||
|
@ -51,7 +40,7 @@ end
|
|||
|
||||
local function AddMessage(sender, message)
|
||||
local text = string.format("|cffffd200%s|r\n%s", sender, message)
|
||||
local MessageFrame = addon.SpeechFrame.ContentFrame:CreateMessage(text)
|
||||
local MessageFrame = addon.SpeechFrame:CreateMessage(text)
|
||||
|
||||
-- put into table and rerender while queue
|
||||
table.insert(messages, MessageFrame)
|
||||
|
@ -68,10 +57,8 @@ local function ShowSpeechTranslation(sender, message)
|
|||
if text == nil and CzechQuestsAddon_Store.config.SPEECH_ORIGINAL_WHEN_MISSING then
|
||||
text = message
|
||||
end
|
||||
|
||||
if text ~= nil then
|
||||
addon.SpeechFrame:Show()
|
||||
addon.SpeechFrame.ContentFrame:Show()
|
||||
AddMessage(sender, text)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue