framework update

This commit is contained in:
Tercio Jose
2022-10-07 11:16:31 -03:00
parent ea9caa1f40
commit f1fa3f5cfe
5 changed files with 127 additions and 102 deletions
+55 -55
View File
@@ -750,7 +750,7 @@ function DetailsFrameworkDropDownOnMouseDown(button, buttontype)
if (currentText) then
selectedTexture:Hide()
else
selectedTexture:SetWidth(frameWitdh-20)
selectedTexture:SetWidth(frameWitdh - 20)
end
for o = showing + 1, #object.menus do
@@ -764,7 +764,7 @@ function DetailsFrameworkDropDownOnMouseDown(button, buttontype)
object:ShowScroll()
scrollFrame:EnableMouseWheel(true)
object.scroll:Altura(size-35) --height
object.scroll:SetMinMaxValues(0, (showing*20) - size + 2)
object.scroll:SetMinMaxValues(0, (showing * 20) - size + 2)
--width
scrollBorder:SetWidth(frameWitdh+20)
@@ -774,16 +774,16 @@ function DetailsFrameworkDropDownOnMouseDown(button, buttontype)
--height
scrollBorder:SetHeight(size+2)
scrollFrame:SetHeight(size+2)
scrollChild:SetHeight((showing*20)+20)
scrollChild:SetHeight((showing * 20) + 20)
--mouse over texture
mouseOverTexture:SetWidth(frameWitdh-7)
mouseOverTexture:SetWidth(frameWitdh - 7)
--selected
selectedTexture:SetWidth(frameWitdh - 9)
for index, row in ipairs(object.menus) do
row:SetPoint("topright", scrollChild, "topright", -22, ((-index-1)*20)-5)
row:SetPoint("topright", scrollChild, "topright", -22, ((-index-1) * 20) - 5)
end
else
--hide scrollbar and disable wheel
@@ -794,20 +794,20 @@ function DetailsFrameworkDropDownOnMouseDown(button, buttontype)
scrollFrame:SetWidth(frameWitdh)
scrollChild:SetWidth(frameWitdh)
--height
scrollBorder:SetHeight((showing*20) + 1)
scrollFrame:SetHeight((showing*20) + 1)
scrollBorder:SetHeight((showing * 20) + 1)
scrollFrame:SetHeight((showing * 20) + 1)
--mouse over texture
mouseOverTexture:SetWidth(frameWitdh - 1)
--selected
selectedTexture:SetWidth(frameWitdh - 1)
for index, row in ipairs(object.menus) do
row:SetPoint("topright", scrollChild, "topright", -5, ((-index-1)*20)-5)
row:SetPoint("topright", scrollChild, "topright", -5, ((-index-1) * 20) -5)
end
end
if (object.myvaluelabel and currentIndex and scrollFrame.slider:IsShown()) then
object.scroll:SetValue(max((currentIndex*20) - 80, 0))
object.scroll:SetValue(max((currentIndex * 20) - 80, 0))
else
object.scroll:SetValue(0)
end
@@ -1123,68 +1123,68 @@ local borderBackdrop = {edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1,
local childBackdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 256, insets = {left = 0, right = 0, top = 0, bottom = 0}}
function DF:CreateNewDropdownFrame(parent, name)
local f = CreateFrame("button", name, parent, "BackdropTemplate")
f:SetBackdrop(defaultBackdrop)
f:SetBackdropColor(1, 1, 1, .5)
f:SetSize(150, 20)
local newDropdownFrame = CreateFrame("button", name, parent, "BackdropTemplate")
newDropdownFrame:SetBackdrop(defaultBackdrop)
newDropdownFrame:SetBackdropColor(1, 1, 1, .5)
newDropdownFrame:SetSize(150, 20)
local statusbar = f:CreateTexture("$parent_StatusBarTexture", "BACKGROUND")
statusbar:SetPoint("topleft", f, "topleft", 0, 0)
statusbar:SetPoint("bottomright", f, "bottomright", 0, 0)
f.statusbar = statusbar
local statusbar = newDropdownFrame:CreateTexture("$parent_StatusBarTexture", "BACKGROUND")
statusbar:SetPoint("topleft", newDropdownFrame, "topleft", 0, 0)
statusbar:SetPoint("bottomright", newDropdownFrame, "bottomright", 0, 0)
newDropdownFrame.statusbar = statusbar
local icon = f:CreateTexture("$parent_IconTexture", "ARTWORK")
icon:SetPoint("left", f, "left", 2, 0)
local icon = newDropdownFrame:CreateTexture("$parent_IconTexture", "ARTWORK")
icon:SetPoint("left", newDropdownFrame, "left", 2, 0)
icon:SetSize(20, 20)
icon:SetTexture([[Interface\COMMON\UI-ModelControlPanel]])
icon:SetTexCoord(0.625, 0.78125, 0.328125, 0.390625)
icon:SetVertexColor(1, 1, 1, 0.4)
f.icon = icon
newDropdownFrame.icon = icon
local text = f:CreateFontString("$parent_Text", "ARTWORK", "GameFontHighlightSmall")
local text = newDropdownFrame:CreateFontString("$parent_Text", "ARTWORK", "GameFontHighlightSmall")
text:SetPoint("left", icon, "right", 5, 0)
text:SetJustifyH("left")
text:SetText("no option selected")
text:SetTextColor(1, 1, 1, 0.4)
DF:SetFontSize(text, 10)
f.text = text
newDropdownFrame.text = text
local arrowHightlight = f:CreateTexture ("$parent_ArrowTexture2", "OVERLAY", nil, 2)
arrowHightlight:SetPoint ("right", f, "right", 5, -1)
local arrowHightlight = newDropdownFrame:CreateTexture("$parent_ArrowTexture2", "OVERLAY", nil, 2)
arrowHightlight:SetPoint ("right", newDropdownFrame, "right", 5, -1)
arrowHightlight:SetBlendMode ("ADD")
arrowHightlight:SetTexture ([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Highlight]])
arrowHightlight:Hide()
arrowHightlight:SetSize (32, 28)
f.arrowTexture2 = arrowHightlight
newDropdownFrame.arrowTexture2 = arrowHightlight
local arrowTexture = f:CreateTexture("$parent_ArrowTexture", "OVERLAY", nil, 1)
arrowTexture:SetPoint("right", f, "right", 5, -1)
local arrowTexture = newDropdownFrame:CreateTexture("$parent_ArrowTexture", "OVERLAY", nil, 1)
arrowTexture:SetPoint("right", newDropdownFrame, "right", 5, -1)
arrowTexture:SetTexture([[Interface\Buttons\UI-ScrollBar-ScrollDownButton-Up]])
arrowTexture:SetSize(32, 28)
f.arrowTexture = arrowTexture
newDropdownFrame.arrowTexture = arrowTexture
--scripts
f:SetScript ("OnSizeChanged", DetailsFrameworkDropDownOnSizeChanged)
f:SetScript ("OnMouseDown", DetailsFrameworkDropDownOnMouseDown)
newDropdownFrame:SetScript("OnSizeChanged", DetailsFrameworkDropDownOnSizeChanged)
newDropdownFrame:SetScript("OnMouseDown", DetailsFrameworkDropDownOnMouseDown)
--dropdown
local border = CreateFrame("frame", "$Parent_Border", f, "BackdropTemplate")
local border = CreateFrame("frame", "$Parent_Border", newDropdownFrame, "BackdropTemplate")
border:Hide()
border:SetFrameStrata("FULLSCREEN")
border:SetSize(150, 150)
border:SetPoint("topleft", f, "bottomleft", 0, 0)
border:SetPoint("topleft", newDropdownFrame, "bottomleft", 0, 0)
border:SetBackdrop(borderBackdrop)
border:SetScript("OnHide", DetailsFrameworkDropDownOptionsFrameOnHide)
border:SetBackdropColor(0, 0, 0, 0.92)
border:SetBackdropBorderColor(0, 0, 0, 1)
f.dropdownborder = border
newDropdownFrame.dropdownborder = border
local scroll = CreateFrame("ScrollFrame", "$Parent_ScrollFrame", f, "BackdropTemplate")
local scroll = CreateFrame("ScrollFrame", "$Parent_ScrollFrame", newDropdownFrame, "BackdropTemplate")
scroll:SetFrameStrata("FULLSCREEN")
scroll:SetSize(150, 150)
scroll:SetPoint("topleft", f, "bottomleft", 0, 0)
scroll:SetPoint("topleft", newDropdownFrame, "bottomleft", 0, 0)
scroll:Hide()
f.dropdownframe = scroll
newDropdownFrame.dropdownframe = scroll
local child = CreateFrame("frame", "$Parent_ScrollChild", scroll, "BackdropTemplate")
child:SetSize(150, 150)
@@ -1214,41 +1214,41 @@ function DF:CreateNewDropdownFrame(parent, name)
child.mouseover = mouseover
scroll:SetScrollChild(child)
tinsert(UISpecialFrames, f.dropdownborder:GetName())
tinsert(UISpecialFrames, newDropdownFrame.dropdownborder:GetName())
--tinsert(UISpecialFrames, f.dropdownframe:GetName()) --not adding this solves an issue with ConsolePort addon and stackoverflows on Hide...
return f
return newDropdownFrame
end
function DF:CreateDropdownButton(parent, name)
local f = CreateFrame("button", name, parent, "BackdropTemplate")
f:SetSize(150, 20)
local newButton = CreateFrame("button", name, parent, "BackdropTemplate")
newButton:SetSize(150, 20)
local statusbar = f:CreateTexture("$parent_StatusBarTexture", "ARTWORK")
statusbar:SetPoint("topleft", f, "topleft", 0, 0)
statusbar:SetPoint("bottomright", f, "bottomright", 0, 0)
local statusbar = newButton:CreateTexture("$parent_StatusBarTexture", "ARTWORK")
statusbar:SetPoint("topleft", newButton, "topleft", 0, 0)
statusbar:SetPoint("bottomright", newButton, "bottomright", 0, 0)
statusbar:SetTexture([[Interface\Tooltips\UI-Tooltip-Background]])
f.statusbar = statusbar
newButton.statusbar = statusbar
local icon = f:CreateTexture("$parent_IconTexture", "OVERLAY")
icon:SetPoint("left", f, "left", 2, 0)
local icon = newButton:CreateTexture("$parent_IconTexture", "OVERLAY")
icon:SetPoint("left", newButton, "left", 2, 0)
icon:SetSize(20, 20)
icon:SetTexture([[Interface\ICONS\Spell_ChargePositive]])
f.icon = icon
newButton.icon = icon
local text = f:CreateFontString("$parent_Text", "OVERLAY", "GameFontHighlightSmall")
local text = newButton:CreateFontString("$parent_Text", "OVERLAY", "GameFontHighlightSmall")
text:SetPoint("left", icon, "right", 5, 0)
text:SetJustifyH("left")
DF:SetFontSize(text, 10)
f.label = text
newButton.label = text
local rightButton = DF:CreateButton(f, function()end, 16, 16, "", 0, 0, "", "rightButton", "$parentRightButton", nil, DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE"))
rightButton:SetPoint("right", f, "right", -2, 0)
local rightButton = DF:CreateButton(newButton, function()end, 16, 16, "", 0, 0, "", "rightButton", "$parentRightButton", nil, DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE"))
rightButton:SetPoint("right", newButton, "right", -2, 0)
rightButton:Hide()
f:SetScript("OnMouseDown", DetailsFrameworkDropDownOptionClick)
f:SetScript("OnEnter", DetailsFrameworkDropDownOptionOnEnter)
f:SetScript("OnLeave", DetailsFrameworkDropDownOptionOnLeave)
newButton:SetScript("OnMouseDown", DetailsFrameworkDropDownOptionClick)
newButton:SetScript("OnEnter", DetailsFrameworkDropDownOptionOnEnter)
newButton:SetScript("OnLeave", DetailsFrameworkDropDownOptionOnLeave)
return f
return newButton
end
+9
View File
@@ -107,6 +107,15 @@ function DF.IsShadowlandsWow()
end
end
function DF.GetContainerItemInfo(containerIndex, slotIndex)
if (DF.IsDragonflightAndBeyond()) then
local itemInfo = C_Container.GetContainerItemInfo(containerIndex, slotIndex)
return itemInfo.iconFileID, itemInfo.stackCount, itemInfo.isLocked, itemInfo.quality, itemInfo.isReadable, itemInfo.hasLoot, itemInfo.hyperlink, itemInfo.isFiltered, itemInfo.hasNoValue, itemInfo.itemID, itemInfo.isBound
else
return GetContainerItemInfo(containerIndex, slotIndex)
end
end
local roleBySpecTextureName = {
DruidBalance = "DAMAGER",
DruidFeralCombat = "DAMAGER",
+59 -43
View File
@@ -72,6 +72,57 @@ detailsFramework.LayeredRegionMetaFunctionsGet = {
end,
}
local getFrame = function(frame)
return rawget(frame, "widget") or frame
end
detailsFramework.FrameMixin = {
SetFrameStrata = function(self, strata)
self = getFrame(self)
if (type(strata) == "table" and strata.GetObjectType) then
local UIObject = strata
self:SetFrameStrata(UIObject:GetFrameStrata())
else
self:SetFrameStrata(strata)
end
end,
SetFrameLevel = function(self, level, UIObject)
self = getFrame(self)
if (not UIObject) then
self:SetFrameLevel(level)
else
local framelevel = UIObject:GetFrameLevel(UIObject) + level
self:SetFrameLevel(framelevel)
end
end,
SetSize = function(self, width, height)
self = getFrame(self)
if (width) then
self:SetWidth(width)
end
if (height) then
self:SetHeight(height)
end
end,
SetBackdrop = function(self, ...)
self = getFrame(self)
self:SetBackdrop(...)
end,
SetBackdropColor = function(self, ...)
self = getFrame(self)
self:SetBackdropColor(...)
end,
SetBackdropBorderColor = function(self, ...)
self = getFrame(self)
getFrame(self):SetBackdropBorderColor(...)
end,
}
local doublePoint = {
["lefts"] = true,
["rights"] = true,
@@ -89,47 +140,6 @@ local doublePoint = {
["left-right"] = true,
}
detailsFramework.FrameMixin = {
SetFrameStrata = function(self, strata)
if (type(strata) == "table" and strata.GetObjectType) then
local UIObject = strata
self.widget:SetFrameStrata(UIObject:GetFrameStrata())
else
self.widget:SetFrameStrata(strata)
end
end,
SetFrameLevel = function(self, level, UIObject)
if (not UIObject) then
return self.widget:SetFrameLevel(level)
else
local framelevel = UIObject:GetFrameLevel(UIObject) + level
return self.widget:SetFrameLevel(framelevel)
end
end,
SetBackdrop = function(self, ...)
return self.widget:SetBackdrop(...)
end,
SetBackdropColor = function(self, ...)
return self.widget:SetBackdropColor(...)
end,
SetBackdropBorderColor = function(self, ...)
return self.widget:SetBackdropBorderColor(...)
end,
SetSize = function(self, width, height)
if (width) then
self.widget:SetWidth(width)
end
if (height) then
return self.widget:SetHeight(height)
end
end
}
detailsFramework.SetPointMixin = {
SetPoint = function(object, anchorName1, anchorObject, anchorName2, xOffset, yOffset)
if (doublePoint[anchorName1]) then
@@ -137,7 +147,7 @@ detailsFramework.SetPointMixin = {
local anchorTo
if (anchorObject and type(anchorObject) == "table") then
xOffset, yOffset = anchorName2 or 0, xOffset or 0
anchorTo = anchorObject.widget or anchorObject
anchorTo = getFrame(anchorObject)
else
xOffset, yOffset = anchorObject or 0, anchorName2 or 0
anchorTo = object:GetParent()
@@ -200,7 +210,13 @@ detailsFramework.SetPointMixin = {
error("SetPoint: Invalid parameter.")
return
end
return object.widget:SetPoint(anchorName1, anchorObject, anchorName2, xOffset, yOffset)
if (not object.widget) then
local SetPoint = getmetatable(object).__index.SetPoint
return SetPoint(object, anchorName1, anchorObject, anchorName2, xOffset, yOffset)
else
return object.widget:SetPoint(anchorName1, anchorObject, anchorName2, xOffset, yOffset)
end
end,
}
+1 -1
View File
@@ -1374,7 +1374,7 @@ local createAdjustmentSliderFrames = function(parent, options, name)
DF:Mixin(adjustmentSlider, DF.AdjustmentSliderFunctions)
DF:Mixin(adjustmentSlider, DF.PayloadMixin)
DF:Mixin(adjustmentSlider, DF.SetPointMixin)
DF:Mixin(adjustmentSlider, DF.FrameMixin)
--DF:Mixin(adjustmentSlider, DF.FrameMixin)
adjustmentSlider:BuildOptionsTable(DF.AdjustmentSliderOptions, options)
adjustmentSlider:SetSize(adjustmentSlider.options.width, adjustmentSlider.options.height)
+3 -3
View File
@@ -71,7 +71,6 @@
}
local registredPlugins = {}
local temp = {}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> comm functions
@@ -444,11 +443,12 @@
return
end
local prefix, player, realm, coreVersion, arg6, arg7, arg8, arg9 = select(2, deserializedTable)
tremove(deserializedTable, 1)
local prefix, player, realm, coreVersion, arg6, arg7, arg8, arg9 = unpack(deserializedTable)
player = source
if (Details.debugnet) then
Details:Msg("(debug) network received:", prefix, "length:", string.len(data))
Details:Msg("(debug) network received prefix:", prefix, "length:", string.len(data))
end
if (type(prefix) ~= "string") then