diff --git a/UI/QuestItemBar.lua b/UI/QuestItemBar.lua index f5dc15f..fa17a19 100644 --- a/UI/QuestItemBar.lua +++ b/UI/QuestItemBar.lua @@ -172,9 +172,12 @@ function QuestItemBar:Update() frame:Show() local pinnedItems = addon.Modules.DB:GetSetting("questBarPinnedItems") or {} - local buttonSize = 37 + local buttonSize = addon.Modules.DB:GetSetting("questBarSize") or 36 local spacing = 2 local xOffset = 5 + + -- Update frame height based on button size + frame:SetHeight(buttonSize + 8) -- Used to keep track of which bag items are already displayed local usedBagSlots = {} @@ -358,13 +361,37 @@ function QuestItemBar:Update() button:ClearAllPoints() button:SetPoint("LEFT", frame, "LEFT", xOffset + (i-1) * (buttonSize + spacing), 0) + button:SetWidth(buttonSize) + button:SetHeight(buttonSize) + + -- Resize all button textures to match button size + local icon = getglobal(button:GetName() .. "IconTexture") + if icon then + icon:SetWidth(buttonSize) + icon:SetHeight(buttonSize) + end + + -- Scale border proportionally (64/37 is the standard ratio for WoW item buttons) + local borderSize = buttonSize * 64 / 37 + local normalTex = getglobal(button:GetName() .. "NormalTexture") + if normalTex then + normalTex:SetWidth(borderSize) + normalTex:SetHeight(borderSize) + end + + -- Resize empty slot background + local emptyBg = getglobal(button:GetName() .. "_EmptySlotBg") + if emptyBg then + emptyBg:SetWidth(buttonSize) + emptyBg:SetHeight(buttonSize) + end -- Update visual overlays (cooldown, etc) if Guda_ItemButton_UpdateCooldown then Guda_ItemButton_UpdateCooldown(button) end end - + -- Hide any extra buttons beyond current slots for j = slots + 1, table.getn(buttons) do local extra = buttons[j] @@ -451,8 +478,8 @@ end function QuestItemBar:UpdateFlyout(parent) if not flyoutFrame then return end flyoutFrame.parent = parent - - local buttonSize = 37 + + local buttonSize = addon.Modules.DB:GetSetting("questBarSize") or 36 local spacing = 2 -- Collect items not in main buttons @@ -573,8 +600,33 @@ function QuestItemBar:UpdateFlyout(parent) btn:ClearAllPoints() btn:SetPoint("BOTTOM", flyoutFrame, "BOTTOM", 0, (i-1) * (buttonSize + spacing) + 5) + btn:SetWidth(buttonSize) + btn:SetHeight(buttonSize) + + -- Resize all button textures to match button size + local btnIcon = getglobal(btn:GetName() .. "IconTexture") + if btnIcon then + btnIcon:SetWidth(buttonSize) + btnIcon:SetHeight(buttonSize) + end + + -- Scale border proportionally (64/37 is the standard ratio for WoW item buttons) + local borderSize = buttonSize * 64 / 37 + local btnNormalTex = getglobal(btn:GetName() .. "NormalTexture") + if btnNormalTex then + btnNormalTex:SetWidth(borderSize) + btnNormalTex:SetHeight(borderSize) + end + + -- Resize empty slot background + local btnEmptyBg = getglobal(btn:GetName() .. "_EmptySlotBg") + if btnEmptyBg then + btnEmptyBg:SetWidth(buttonSize) + btnEmptyBg:SetHeight(buttonSize) + end + btn:Show() - + if Guda_ItemButton_UpdateCooldown then Guda_ItemButton_UpdateCooldown(btn) end diff --git a/UI/SettingsPopup.lua b/UI/SettingsPopup.lua index 38f8055..1fbf4b1 100644 --- a/UI/SettingsPopup.lua +++ b/UI/SettingsPopup.lua @@ -122,6 +122,8 @@ function Guda_SettingsPopup_OnShow(self) local bgTransparency = Guda.Modules.DB:GetSetting("bgTransparency") or 0.15 local bagViewType = Guda.Modules.DB:GetSetting("bagViewType") or "single" local bankViewType = Guda.Modules.DB:GetSetting("bankViewType") or "single" + local questBarSize = Guda.Modules.DB:GetSetting("questBarSize") or 36 + local trackedBarSize = Guda.Modules.DB:GetSetting("trackedBarSize") or 36 -- Update sliders and checkboxes local bagSlider = getglobal("Guda_SettingsPopup_BagColumnsSlider") @@ -130,6 +132,8 @@ function Guda_SettingsPopup_OnShow(self) local iconFontSizeSlider = getglobal("Guda_SettingsPopup_IconFontSizeSlider") local iconSpacingSlider = getglobal("Guda_SettingsPopup_IconSpacingSlider") local bgTransparencySlider = getglobal("Guda_SettingsPopup_BgTransparencySlider") + local questBarSizeSlider = getglobal("Guda_SettingsPopup_QuestBarSizeSlider") + local trackedBarSizeSlider = getglobal("Guda_SettingsPopup_TrackedBarSizeSlider") local lockCheckbox = getglobal("Guda_SettingsPopup_LockBagsCheckbox") local hideBordersCheckbox = getglobal("Guda_SettingsPopup_HideBordersCheckbox") local qualityBorderEquipmentCheckbox = getglobal("Guda_SettingsPopup_QualityBorderEquipmentCheckbox") @@ -171,6 +175,14 @@ function Guda_SettingsPopup_OnShow(self) bgTransparencySlider:SetValue(bgTransparency) end + if questBarSizeSlider then + questBarSizeSlider:SetValue(questBarSize) + end + + if trackedBarSizeSlider then + trackedBarSizeSlider:SetValue(trackedBarSize) + end + if lockCheckbox then lockCheckbox:SetChecked(lockBags and 1 or 0) end @@ -514,6 +526,76 @@ function Guda_SettingsPopup_IconSpacingSlider_OnValueChanged(self) end end +-- Quest Bar Size Slider OnLoad +function Guda_SettingsPopup_QuestBarSizeSlider_OnLoad(self) + getglobal(self:GetName().."Low"):SetText("22px") + getglobal(self:GetName().."High"):SetText("64px") + + local text = getglobal(self:GetName().."Text") + text:SetText("Quest bar size") + + -- Increase font size + local font, _, flags = text:GetFont() + if font then + text:SetFont(font, 12, flags) + end + + self:SetMinMaxValues(22, 64) + self:SetValueStep(1) + + local currentValue = Guda.Modules.DB:GetSetting("questBarSize") or 36 + self:SetValue(currentValue) +end + +-- Quest Bar Size Slider OnValueChanged +function Guda_SettingsPopup_QuestBarSizeSlider_OnValueChanged(self) + local value = math.floor(self:GetValue() + 0.5) + + getglobal(self:GetName().."Text"):SetText("Quest bar size: " .. value .. "px") + + Guda.Modules.DB:SetSetting("questBarSize", value) + + -- Update quest item bar + if Guda.Modules.QuestItemBar and Guda.Modules.QuestItemBar.Update then + Guda.Modules.QuestItemBar:Update() + end +end + +-- Tracked Bar Size Slider OnLoad +function Guda_SettingsPopup_TrackedBarSizeSlider_OnLoad(self) + getglobal(self:GetName().."Low"):SetText("22px") + getglobal(self:GetName().."High"):SetText("64px") + + local text = getglobal(self:GetName().."Text") + text:SetText("Tracked bar size") + + -- Increase font size + local font, _, flags = text:GetFont() + if font then + text:SetFont(font, 12, flags) + end + + self:SetMinMaxValues(22, 64) + self:SetValueStep(1) + + local currentValue = Guda.Modules.DB:GetSetting("trackedBarSize") or 36 + self:SetValue(currentValue) +end + +-- Tracked Bar Size Slider OnValueChanged +function Guda_SettingsPopup_TrackedBarSizeSlider_OnValueChanged(self) + local value = math.floor(self:GetValue() + 0.5) + + getglobal(self:GetName().."Text"):SetText("Tracked bar size: " .. value .. "px") + + Guda.Modules.DB:SetSetting("trackedBarSize", value) + + -- Update tracked item bar + if Guda.Modules.TrackedItemBar and Guda.Modules.TrackedItemBar.Update then + Guda.Modules.TrackedItemBar:Update() + end +end + -- Lock Bags Checkbox OnLoad function Guda_SettingsPopup_LockBagsCheckbox_OnLoad(self) local text = getglobal(self:GetName().."Text") diff --git a/UI/SettingsPopup.xml b/UI/SettingsPopup.xml index 4ca31e4..8b67f0a 100644 --- a/UI/SettingsPopup.xml +++ b/UI/SettingsPopup.xml @@ -478,10 +478,54 @@ + + + + + + + + + + + + + + + Guda_SettingsPopup_QuestBarSizeSlider_OnLoad(this) + + + Guda_SettingsPopup_QuestBarSizeSlider_OnValueChanged(this) + + + + + + + + + + + + + + + + + + + Guda_SettingsPopup_TrackedBarSizeSlider_OnLoad(this) + + + Guda_SettingsPopup_TrackedBarSizeSlider_OnValueChanged(this) + + + + - + diff --git a/UI/TrackedItemBar.lua b/UI/TrackedItemBar.lua index 8883f0c..03c6e97 100644 --- a/UI/TrackedItemBar.lua +++ b/UI/TrackedItemBar.lua @@ -74,10 +74,13 @@ function TrackedItemBar:Update() frame:Show() self:ScanForTrackedItems() - - local buttonSize = 37 + + local buttonSize = addon.Modules.DB:GetSetting("trackedBarSize") or 36 local spacing = 2 local xOffset = 5 + + -- Update frame height based on button size + frame:SetHeight(buttonSize + 8) -- Hide all buttons initially for _, btn in ipairs(buttons) do @@ -162,9 +165,34 @@ function TrackedItemBar:Update() button:ClearAllPoints() button:SetPoint("LEFT", frame, "LEFT", xOffset + (i-1) * (buttonSize + spacing), 0) + button:SetWidth(buttonSize) + button:SetHeight(buttonSize) + + -- Resize all button textures to match button size + local icon = getglobal(button:GetName() .. "IconTexture") + if icon then + icon:SetWidth(buttonSize) + icon:SetHeight(buttonSize) + end + + -- Scale border proportionally (64/37 is the standard ratio for WoW item buttons) + local borderSize = buttonSize * 64 / 37 + local normalTex = getglobal(button:GetName() .. "NormalTexture") + if normalTex then + normalTex:SetWidth(borderSize) + normalTex:SetHeight(borderSize) + end + + -- Resize empty slot background + local emptyBg = getglobal(button:GetName() .. "_EmptySlotBg") + if emptyBg then + emptyBg:SetWidth(buttonSize) + emptyBg:SetHeight(buttonSize) + end + button:Show() end - + local numItems = table.getn(trackedItemsInfo) if numItems > 0 then local newWidth = xOffset * 2 + numItems * (buttonSize + spacing) - spacing diff --git a/img.png b/img.png new file mode 100644 index 0000000..5d59752 Binary files /dev/null and b/img.png differ