Fixed type definitions and renamed functions
This commit is contained in:
+15
-3
@@ -185,6 +185,16 @@
|
||||
---@field GetOrientation fun(self: statusbar) : string
|
||||
---@field GetReverseFill fun(self: statusbar) : boolean
|
||||
|
||||
---@class scrollframe : frame
|
||||
---@field SetScrollChild fun(self: scrollframe, child: frame)
|
||||
---@field GetScrollChild fun(self: scrollframe) : frame
|
||||
---@field SetHorizontalScroll fun(self: scrollframe, offset: number)
|
||||
---@field SetVerticalScroll fun(self: scrollframe, offset: number)
|
||||
---@field GetHorizontalScroll fun(self: scrollframe) : number
|
||||
---@field GetVerticalScroll fun(self: scrollframe) : number
|
||||
---@field GetHorizontalScrollRange fun(self: scrollframe) : number
|
||||
---@field GetVerticalScrollRange fun(self: scrollframe) : number
|
||||
|
||||
---@class region : uiobject
|
||||
|
||||
---@class fontstring : region
|
||||
@@ -424,12 +434,14 @@
|
||||
---@class breakdownexpandbutton : button
|
||||
---@field texture texture
|
||||
|
||||
---@class breakdownspellscrollframe : frame
|
||||
---@field Header frame
|
||||
---@class breakdownspellscrollframe : df_scrollboxmixin, scrollframe
|
||||
---@field Header df_headerframe
|
||||
---@field RefreshMe fun(scrollFrame: breakdownspellscrollframe, data: table|nil)
|
||||
|
||||
|
||||
|
||||
---@class breakdownspellbar : button
|
||||
|
||||
---@class breakdownspellbar : button, df_headerfunctions
|
||||
---@field index number
|
||||
---@field rank number
|
||||
---@field spellId number
|
||||
|
||||
@@ -56,6 +56,7 @@ local geterrorhandler = geterrorhandler
|
||||
---@field texture texture
|
||||
|
||||
--mixed functions
|
||||
---@class df_headerfunctions : table
|
||||
detailsFramework.HeaderFunctions = {
|
||||
---comment
|
||||
---@param self df_headerchild
|
||||
|
||||
+4
-1
@@ -418,7 +418,7 @@ detailsFramework.ScriptHookMixin = {
|
||||
|
||||
---mixin to use with DetailsFramework:Mixin(table, detailsFramework.SortFunctions)
|
||||
---add methods to be used on scrollframes
|
||||
---@class DetailsFramework.ScrollBoxFunctions
|
||||
---@class df_scrollboxmixin
|
||||
detailsFramework.ScrollBoxFunctions = {
|
||||
---refresh the scrollbox by resetting all lines created with :CreateLine(), then calling the refresh_func which was set at :CreateScrollBox()
|
||||
---@param self table
|
||||
@@ -687,6 +687,9 @@ detailsFramework.ScrollBoxFunctions = {
|
||||
end,
|
||||
}
|
||||
|
||||
--back compatibility, can be removed in the future (28/04/2023)
|
||||
---@class DetailsFramework.ScrollBoxFunctions : df_scrollboxmixin
|
||||
|
||||
local SortMember = ""
|
||||
local SortByMember = function(t1, t2)
|
||||
return t1[SortMember] > t2[SortMember]
|
||||
|
||||
@@ -6,6 +6,7 @@ local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
local SharedMedia = LibStub:GetLibrary("LibSharedMedia-3.0")
|
||||
local unpack = unpack
|
||||
local GetTime = GetTime
|
||||
local wipe = wipe
|
||||
local GetCursorPosition = GetCursorPosition
|
||||
local CreateFrame = CreateFrame
|
||||
local GetSpellLink = GetSpellLink
|
||||
@@ -60,14 +61,14 @@ end
|
||||
|
||||
---return the breakdownspellscrollframe object, there's only one of this in the breakdown window
|
||||
---@return breakdownspellscrollframe
|
||||
function spellsTab.GetSpellScrollContainer()
|
||||
function spellsTab.GetSpellScrollFrame()
|
||||
return spellsTab.TabFrame.SpellScrollFrame
|
||||
end
|
||||
|
||||
---return the breakdownspellblockcontainer object, there's only one of this in the breakdown window
|
||||
---@return breakdownspellblockcontainer
|
||||
function spellsTab.GetSpellBlockContainer()
|
||||
return spellsTab.TabFrame.SpellBlockContainer
|
||||
function spellsTab.GetSpellBlockFrame()
|
||||
return spellsTab.TabFrame.SpellBlockFrame
|
||||
end
|
||||
|
||||
function spellsTab.OnProfileChange()
|
||||
@@ -145,7 +146,7 @@ local onColumnHeaderClickCallback = function(headerFrame, columnHeader)
|
||||
local containerType = headerContainerType[headerFrame]
|
||||
|
||||
if (containerType == "spells") then
|
||||
spellsTab.TabFrame.SpellScrollFrame:Refresh()
|
||||
spellsTab.GetSpellScrollFrame():Refresh()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -192,7 +193,7 @@ function spellsTab.UpdateHeadersSettings(containerType)
|
||||
|
||||
if (containerType == "spells") then
|
||||
spellsTab.spellsHeaderData = spellsTab.BuildHeaderTable("spells")
|
||||
spellsTab.SpellScrollFrame.Header:SetHeaderTable(spellsTab.spellsHeaderData)
|
||||
spellsTab.GetSpellScrollFrame().Header:SetHeaderTable(spellsTab.spellsHeaderData)
|
||||
|
||||
elseif (containerType == "targets") then
|
||||
spellsTab.spellsHeaderData = spellsTab.BuildHeaderTable("targets")
|
||||
@@ -285,8 +286,6 @@ function spellsTab.SelectSpellBar(spellBar)
|
||||
end
|
||||
end
|
||||
|
||||
--it is only selecting the bar is the mouse down elapsed 0.4 seconds or more
|
||||
|
||||
--as the spell block container get an update when hovering over
|
||||
--update the spell block container for the breakdownspellbar just selected
|
||||
--this is necessary since a previous breakdownspellbar could have been selected and prevented this breakdownspellbar to update on hover over
|
||||
@@ -325,13 +324,13 @@ function spellsTab.OnShownTab()
|
||||
--unselect any selected breakdownspellbar
|
||||
spellsTab.UnSelectSpellBar()
|
||||
--reset the spell blocks
|
||||
spellsTab.GetSpellBlockContainer():ClearBlocks()
|
||||
--update spells header frame
|
||||
spellsTab.GetSpellBlockFrame():ClearBlocks()
|
||||
--update spells header frame (for the used spells frame)
|
||||
spellsTab.UpdateHeadersSettings("spells")
|
||||
end
|
||||
|
||||
--called when the tab is getting created, run only once
|
||||
function spellsTab.OnCreateTabCallback(tabButton, tabFrame)
|
||||
function spellsTab.OnCreateTabCallback(tabButton, tabFrame) --~init
|
||||
spellsTab.spellcontainer_header_settings = Details.breakdown_spell_tab.spellcontainer_headers
|
||||
|
||||
spellBreakdownSettings = Details.breakdown_spell_tab
|
||||
@@ -345,7 +344,6 @@ function spellsTab.OnCreateTabCallback(tabButton, tabFrame)
|
||||
--these blocks show the spell info like normal hits, critical hits, average, etc
|
||||
---@type breakdownspellblockcontainer
|
||||
local spellBlockContainer = spellsTab.CreateSpellBlockContainer(tabFrame)
|
||||
spellsTab.SpellBlockContainer = spellBlockContainer
|
||||
|
||||
--create the targets container
|
||||
spellsTab.CreateTargetContainer(tabFrame)
|
||||
@@ -362,7 +360,7 @@ function spellsTab.OnCreateTabCallback(tabButton, tabFrame)
|
||||
spellsTab.TabFrame = tabFrame
|
||||
|
||||
--open the breakdown window at startup for testing
|
||||
--[=
|
||||
--[= debug
|
||||
C_Timer.After(1, function()
|
||||
Details:OpenPlayerDetails(1)
|
||||
C_Timer.After(1, function()
|
||||
@@ -413,7 +411,7 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
local mainAttribute, subAttribute = instance:GetDisplay()
|
||||
|
||||
---@type breakdownspellblockcontainer
|
||||
local spellBlockContainer = spellsTab.GetSpellBlockContainer()
|
||||
local spellBlockContainer = spellsTab.GetSpellBlockFrame()
|
||||
spellBlockContainer:ClearBlocks()
|
||||
|
||||
---@type number
|
||||
@@ -725,7 +723,7 @@ local spellBlockMixin = {
|
||||
end,
|
||||
}
|
||||
|
||||
---create a spell block into the spellcontainer
|
||||
---create a spell block into the spellblockcontainer
|
||||
---@param spellBlockContainer breakdownspellblockcontainer
|
||||
---@param index number
|
||||
---@return breakdownspellblock
|
||||
@@ -827,6 +825,7 @@ local spellBlockContainerMixin = {
|
||||
|
||||
spellBlock:SetSize(width - 2, blockHeight)
|
||||
spellBlock:SetPoint("topleft", self, "topleft", 1, (blockHeight * (i - 1) - i) * -1 - (i*2) + ((i-1) * padding))
|
||||
spellBlock:SetPoint("topright", self, "topright", 1, (blockHeight * (i - 1) - i) * -1 - (i*2) + ((i-1) * padding))
|
||||
spellBlock.sparkTexture:SetSize(spellBreakdownSettings.blockspell_spark_width, blockHeight)
|
||||
spellBlock.sparkTexture:SetShown(spellBreakdownSettings.blockspell_spark_show)
|
||||
spellBlock.sparkTexture:SetVertexColor(unpack(spellBreakdownSettings.blockspell_spark_color))
|
||||
@@ -883,11 +882,6 @@ local spellBlockContainerMixin = {
|
||||
---@param tabFrame tabframe
|
||||
---@return breakdownspellblockcontainer
|
||||
function spellsTab.CreateSpellBlockContainer(tabFrame)
|
||||
---@type width
|
||||
local width = Details.breakdown_spell_tab.breakdown_spell_tab
|
||||
---@type height
|
||||
local height = Details.breakdown_spell_tab.blockcontainer_height
|
||||
|
||||
--create a container for the scrollframe
|
||||
local options = {
|
||||
width = Details.breakdown_spell_tab.blockcontainer_width,
|
||||
@@ -908,10 +902,10 @@ function spellsTab.CreateSpellBlockContainer(tabFrame)
|
||||
local settingChangedCallbackFunction = function(frameContainer, settingName, settingValue) --doing here the callback for thge settings changed in the container
|
||||
if (frameContainer:IsShown()) then
|
||||
if (settingName == "height") then
|
||||
---@type height
|
||||
local currentHeight = spellsTab.SpellScrollFrame:GetHeight()
|
||||
---@type number
|
||||
local currentHeight = spellsTab.GetSpellScrollFrame():GetHeight()
|
||||
Details.breakdown_spell_tab.blockcontainer_height = settingValue
|
||||
spellsTab.SpellScrollFrame:SetNumFramesShown(math.floor(currentHeight / CONST_SPELLSCROLL_LINEHEIGHT) - 1)
|
||||
spellsTab.GetSpellScrollFrame():SetNumFramesShown(math.floor(currentHeight / CONST_SPELLSCROLL_LINEHEIGHT) - 1)
|
||||
|
||||
elseif (settingName == "width") then
|
||||
Details.breakdown_spell_tab.blockcontainer_width = settingValue
|
||||
@@ -921,33 +915,35 @@ function spellsTab.CreateSpellBlockContainer(tabFrame)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
container:SetSettingChangedCallback(settingChangedCallbackFunction)
|
||||
|
||||
--create the container which will hold the spell blocks
|
||||
---@type breakdownspellblockcontainer
|
||||
local spellBlockContainer = CreateFrame("Frame", "$parentSpellBlockContainer", container, "BackdropTemplate")
|
||||
spellBlockContainer:EnableMouse(false)
|
||||
spellBlockContainer:SetResizable(false)
|
||||
spellBlockContainer:SetMovable(false)
|
||||
spellBlockContainer:SetAllPoints()
|
||||
DetailsFramework:Mixin(spellBlockContainer, spellBlockContainerMixin)
|
||||
tabFrame.SpellBlockContainer = spellBlockContainer
|
||||
local spellBlockFrame = CreateFrame("Frame", "$parentSpellBlockContainer", container, "BackdropTemplate")
|
||||
spellBlockFrame:EnableMouse(false)
|
||||
spellBlockFrame:SetResizable(false)
|
||||
spellBlockFrame:SetMovable(false)
|
||||
spellBlockFrame:SetAllPoints()
|
||||
DetailsFramework:Mixin(spellBlockFrame, spellBlockContainerMixin)
|
||||
|
||||
container:RegisterChildForDrag(spellBlockContainer)
|
||||
tabFrame.SpellBlockFrame = spellBlockFrame
|
||||
spellsTab.SpellBlockFrame = spellBlockFrame
|
||||
|
||||
spellBlockContainer.SpellBlocks = {}
|
||||
container:RegisterChildForDrag(spellBlockFrame)
|
||||
|
||||
spellBlockFrame.SpellBlocks = {}
|
||||
|
||||
--create the spell blocks within the spellBlockFrame
|
||||
for i = 1, spellBlockContainerSettings.amount do
|
||||
---@type breakdownspellblock
|
||||
local spellBlock = spellsTab.CreateSpellBlock(spellBlockContainer, i)
|
||||
table.insert(spellBlockContainer.SpellBlocks, spellBlock)
|
||||
local spellBlock = spellsTab.CreateSpellBlock(spellBlockFrame, i)
|
||||
table.insert(spellBlockFrame.SpellBlocks, spellBlock)
|
||||
--size and point are set on ~UpdateBlocks
|
||||
end
|
||||
|
||||
spellBlockContainer:UpdateBlocks()
|
||||
spellBlockFrame:UpdateBlocks()
|
||||
|
||||
return spellBlockContainer
|
||||
return spellBlockFrame
|
||||
end
|
||||
|
||||
function spellsTab.CreateTargetContainer(tabFrame)
|
||||
@@ -1226,7 +1222,7 @@ local getSpellBar = function(scrollFrame, lineIndex)
|
||||
|
||||
spellBar.bIsExpandedSpell = false
|
||||
|
||||
table.wipe(spellBar.ExpandedChildren)
|
||||
wipe(spellBar.ExpandedChildren)
|
||||
|
||||
--reset header alignment
|
||||
spellBar:ResetFramesToHeaderAlignment()
|
||||
@@ -1358,10 +1354,10 @@ function spellsTab.CreateSpellScrollContainer(tabFrame) --~scroll ~create
|
||||
local settingChangedCallbackFunction = function(frameContainer, settingName, settingValue) --doing here the callback for thge settings changed in the container
|
||||
if (frameContainer:IsShown()) then
|
||||
if (settingName == "height") then
|
||||
---@type height
|
||||
local currentHeight = spellsTab.SpellScrollFrame:GetHeight()
|
||||
---@type number
|
||||
local currentHeight = spellsTab.GetSpellScrollFrame():GetHeight()
|
||||
Details.breakdown_spell_tab.spellcontainer_height = settingValue
|
||||
spellsTab.SpellScrollFrame:SetNumFramesShown(math.floor(currentHeight / CONST_SPELLSCROLL_LINEHEIGHT) - 1)
|
||||
spellsTab.GetSpellScrollFrame():SetNumFramesShown(math.floor(currentHeight / CONST_SPELLSCROLL_LINEHEIGHT) - 1)
|
||||
|
||||
elseif (settingName == "width") then
|
||||
Details.breakdown_spell_tab.spellcontainer_width = settingValue
|
||||
@@ -1371,15 +1367,14 @@ function spellsTab.CreateSpellScrollContainer(tabFrame) --~scroll ~create
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local defaultAmountOfLines = 50
|
||||
|
||||
container:SetSettingChangedCallback(settingChangedCallbackFunction)
|
||||
|
||||
--replace this with a framework scrollframe
|
||||
---@type breakdownspellscrollframe
|
||||
local scrollFrame = DF:CreateScrollBox(container, "$parentSpellScroll", refreshFunc, {}, width, height, defaultAmountOfLines, CONST_SPELLSCROLL_LINEHEIGHT)
|
||||
DF:ReskinSlider(scrollFrame)
|
||||
scrollFrame:SetBackdrop(nil)
|
||||
scrollFrame:SetBackdrop({})
|
||||
scrollFrame:SetPoint("topleft", container, "topleft", 0, 0) --need to set the points
|
||||
scrollFrame:SetPoint("bottomright", container, "bottomright", 0, 0) --need to set the points
|
||||
|
||||
@@ -1834,7 +1829,7 @@ function Details.InitializeSpellBreakdownTab()
|
||||
spellsTab.currentActor = actorObject
|
||||
spellsTab.combatObject = combatObject
|
||||
spellsTab.instance = instance
|
||||
spellsTab.TabFrame.SpellScrollFrame:RefreshMe(data)
|
||||
spellsTab.GetSpellScrollFrame():RefreshMe(data)
|
||||
end
|
||||
|
||||
---@type detailseventlistener
|
||||
@@ -1851,7 +1846,7 @@ end
|
||||
function spellsTab.CreateReportButtons(tabFrame)
|
||||
--spell list report button
|
||||
tabFrame.report_esquerda = Details.gump:NewDetailsButton(tabFrame, tabFrame, nil, _detalhes.Reportar, tabFrame, 1, 16, 16, "Interface\\COMMON\\VOICECHAT-ON", "Interface\\COMMON\\VOICECHAT-ON", "Interface\\COMMON\\VOICECHAT-ON", "Interface\\COMMON\\VOICECHAT-ON", nil, "DetailsJanelaInfoReport2")
|
||||
tabFrame.report_esquerda:SetPoint("bottomleft", tabFrame.SpellScrollFrame, "TOPLEFT", 33, 3)
|
||||
tabFrame.report_esquerda:SetPoint("bottomleft", spellsTab.GetSpellScrollFrame(), "TOPLEFT", 33, 3)
|
||||
tabFrame.report_esquerda:SetFrameLevel(tabFrame:GetFrameLevel()+2)
|
||||
tabFrame.topleft_report = tabFrame.report_esquerda
|
||||
|
||||
|
||||
Reference in New Issue
Block a user