Skip to content

Commit

Permalink
[Feature] Implement detached Cast Bar positioning (#172)
Browse files Browse the repository at this point in the history
* add detached props to Cast Bar

* update Cast Bar menu options

* Add W.SetDetachedRelativePosition

* add Edit Mode overlay for Cast Bar
  • Loading branch information
Krealle authored Nov 8, 2024
1 parent 87bb785 commit 05d3f2b
Show file tree
Hide file tree
Showing 6 changed files with 390 additions and 19 deletions.
7 changes: 7 additions & 0 deletions Data/Defaults.lua
Original file line number Diff line number Diff line change
Expand Up @@ -637,12 +637,19 @@ Defaults.Widgets = {
useClassColor = true,
frameLevel = 10,
onlyShowInterrupt = false,
anchorToParent = true,
position = {
point = "TOPLEFT",
offsetY = -30,
offsetX = 0,
relativePoint = "BOTTOMLEFT",
},
detachedPosition = {
point = "CENTER",
offsetY = 0,
offsetX = 0,
relativePoint = "CENTER",
},
size = {
width = 200,
height = 30,
Expand Down
19 changes: 8 additions & 11 deletions Menu/Builder.lua
Original file line number Diff line number Diff line change
Expand Up @@ -986,18 +986,19 @@ end
---@param minVal number?
---@param maxVal number?
---@param path string?
---@param width number?
---@return SizeOptions
function Builder:CreateSizeOptions(parent, widgetName, minVal, maxVal, path)
function Builder:CreateSizeOptions(parent, widgetName, minVal, maxVal, path, width)
---@class SizeOptions: OptionsFrame
local f = CUF:CreateFrame(nil, parent, 1, 1, true, true)
minVal = minVal or 0
maxVal = maxVal or 100

f.sizeWidthSlider = self:CreateSlider(f, widgetName, L["Width"], nil, minVal, maxVal,
f.sizeWidthSlider = self:CreateSlider(f, widgetName, L["Width"], width, minVal, maxVal,
(path or const.AURA_OPTION_KIND.SIZE) .. "." .. const.OPTION_KIND.WIDTH)
f.sizeWidthSlider:SetPoint("TOPLEFT", f)

f.sizeHeightSlider = self:CreateSlider(f, widgetName, L["Height"], nil, minVal, maxVal,
f.sizeHeightSlider = self:CreateSlider(f, widgetName, L["Height"], width, minVal, maxVal,
(path or const.AURA_OPTION_KIND.SIZE) .. "." .. const.OPTION_KIND.HEIGHT)
f.sizeHeightSlider:SetPoint("TOPLEFT", f.sizeWidthSlider, "TOPRIGHT", self.spacingX, 0)

Expand Down Expand Up @@ -1384,22 +1385,18 @@ function Builder:CreateCastBarGeneralOptions(parent, widgetName)
---@class CastBarOptions: OptionsFrame
local f = CUF:CreateFrame(nil, parent, 1, 1, true, true)
f.id = "CastBarOptions"
f.optionHeight = 185
f.optionHeight = 135

-- Title
f.title = self:CreateOptionTitle(f, "General")

-- First Row
f.anchorOptions = self:CreateFullAnchorOptions(f, widgetName, nil, -1000, 1000)
self:AnchorBelow(f.anchorOptions, f.title)

-- Second Row
f.sizeOptions = self:CreateSizeOptions(f, widgetName, 0, 500)
self:AnchorBelow(f.sizeOptions, f.anchorOptions.sliderX)
f.sizeOptions = self:CreateSizeOptions(f, widgetName, 0, 1800, nil, 150)
self:AnchorBelow(f.sizeOptions, f.title)

-- Third Row
f.reverseCB = self:CreateCheckBox(f, widgetName, L.Reverse, const.OPTION_KIND.REVERSE)
self:AnchorBelow(f.reverseCB, f.anchorOptions.relativeDropdown)
self:AnchorBelow(f.reverseCB, f.sizeOptions.sizeWidthSlider)

f.classColorCB = self:CreateCheckBox(f, widgetName, L.UseClassColor, const.OPTION_KIND.USE_CLASS_COLOR)
self:AnchorRightOfCB(f.classColorCB, f.reverseCB)
Expand Down
Loading

0 comments on commit 05d3f2b

Please sign in to comment.