From add444dbe5153f761a27f860aef3ed4e257de244 Mon Sep 17 00:00:00 2001 From: Vati Date: Wed, 18 Mar 2026 02:59:01 +0400 Subject: [PATCH] version: 2.1.5 --- Core/Database.lua | 1 + Guda.toc | 2 +- UI/ItemButton.lua | 6 ++-- UI/QuestItemBar.lua | 76 ++++++++++++++++++++++++++++++++++++-------- UI/SettingsPopup.lua | 6 ++++ 5 files changed, 75 insertions(+), 16 deletions(-) diff --git a/Core/Database.lua b/Core/Database.lua index 834eb4f..0f3024e 100644 --- a/Core/Database.lua +++ b/Core/Database.lua @@ -149,6 +149,7 @@ function DB:Initialize() Guda_CharDB.settings.theme = "pfui" Guda_CharDB.settings.hideBorders = true Guda_CharDB.settings.bgTransparency = 0 + Guda_CharDB.settings.iconSpacing = 8 end end diff --git a/Guda.toc b/Guda.toc index 68a03ef..f72e2e7 100644 --- a/Guda.toc +++ b/Guda.toc @@ -2,7 +2,7 @@ ## Title: Guda ## Notes: All-in-one bag and bank addon for World of Warcraft 1.12.1 (Turtle WoW) ## Author: Vati -## Version: 2.1.4 +## Version: 2.1.5 ## SavedVariables: Guda_DB ## SavedVariablesPerCharacter: Guda_CharDB diff --git a/UI/ItemButton.lua b/UI/ItemButton.lua index 898f34a..e85e769 100644 --- a/UI/ItemButton.lua +++ b/UI/ItemButton.lua @@ -530,7 +530,6 @@ local function AcquireLockIcon() local icon = table.remove(lockIconPool) if not icon then icon = CreateFrame("Frame", nil, UIParent) - icon:SetFrameStrata("HIGH") icon:SetWidth(13) icon:SetHeight(13) @@ -556,6 +555,7 @@ local function ReleaseLockIcon(icon) if icon then icon:Hide() icon:ClearAllPoints() + icon:SetParent(UIParent) table.insert(lockIconPool, icon) end end @@ -577,6 +577,7 @@ local function UpdateLockIcon(button, iconSize) if not button.lockIcon then button.lockIcon = AcquireLockIcon() end + button.lockIcon:SetParent(button) local lockSize = math.max(8, math.min(12, iconSize * 0.35 - 3)) button.lockIcon:SetWidth(lockSize) button.lockIcon:SetHeight(lockSize) @@ -612,7 +613,6 @@ local function AcquirePinIcon() local icon = table.remove(pinIconPool) if not icon then icon = CreateFrame("Frame", nil, UIParent) - icon:SetFrameStrata("HIGH") icon:SetWidth(13) icon:SetHeight(13) @@ -638,6 +638,7 @@ local function ReleasePinIcon(icon) if icon then icon:Hide() icon:ClearAllPoints() + icon:SetParent(UIParent) table.insert(pinIconPool, icon) end end @@ -655,6 +656,7 @@ local function UpdatePinIcon(button, iconSize) if not button.pinIcon then button.pinIcon = AcquirePinIcon() end + button.pinIcon:SetParent(button) local pinSize = math.max(10, math.min(14, iconSize * 0.35)) button.pinIcon:SetWidth(pinSize) button.pinIcon:SetHeight(pinSize) diff --git a/UI/QuestItemBar.lua b/UI/QuestItemBar.lua index 967f01c..49f36a8 100644 --- a/UI/QuestItemBar.lua +++ b/UI/QuestItemBar.lua @@ -259,8 +259,17 @@ function QuestItemBar:Update() button.slotID = nil local icon = getglobal(button:GetName() .. "IconTexture") - icon:SetTexture("Interface\\Buttons\\UI-EmptySlot") - icon:SetVertexColor(0.5, 0.5, 0.5, 0.5) + local slotStyle = "rounded" + if addon.Modules and addon.Modules.Theme then + slotStyle = addon.Modules.Theme:GetSlotStyle() + end + if slotStyle == "square" then + icon:SetTexture("Interface\\Buttons\\WHITE8x8") + icon:SetVertexColor(0.05, 0.05, 0.05, 0.5) + else + icon:SetTexture("Interface\\Buttons\\UI-EmptySlot") + icon:SetVertexColor(0.5, 0.5, 0.5, 0.5) + end local countText = getglobal(button:GetName() .. "Count") countText:Hide() @@ -324,18 +333,44 @@ function QuestItemBar:Update() end -- Scale border proportionally (64/37 is the standard ratio for WoW item buttons) - local borderSize = buttonSize * 64 / 37 + local slotStyle = "rounded" + if addon.Modules and addon.Modules.Theme then + slotStyle = addon.Modules.Theme:GetSlotStyle() + end + local normalTex = getglobal(button:GetName() .. "NormalTexture") - if normalTex then - normalTex:SetWidth(borderSize) - normalTex:SetHeight(borderSize) + if slotStyle == "square" then + -- Hide rounded border in pfUI mode + button:SetNormalTexture("") + if normalTex then + normalTex:SetTexture(nil) + normalTex:Hide() + end + -- Crop icon for pfUI style + if icon then + icon:SetTexCoord(.08, .92, .08, .92) + end + else + local borderSize = buttonSize * 64 / 37 + if normalTex then + normalTex:SetWidth(borderSize) + normalTex:SetHeight(borderSize) + end end -- Resize empty slot background local emptyBg = getglobal(button:GetName() .. "_EmptySlotBg") if emptyBg then - emptyBg:SetWidth(buttonSize) - emptyBg:SetHeight(buttonSize) + if slotStyle == "square" then + emptyBg:SetTexture("Interface\\Buttons\\WHITE8x8") + emptyBg:SetVertexColor(0.05, 0.05, 0.05, 1) + emptyBg:ClearAllPoints() + emptyBg:SetPoint("TOPLEFT", button, "TOPLEFT", 0, 0) + emptyBg:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", 0, 0) + else + emptyBg:SetWidth(buttonSize) + emptyBg:SetHeight(buttonSize) + end end -- Update visual overlays (cooldown, etc) @@ -562,12 +597,27 @@ function QuestItemBar:UpdateFlyout(parent) btnIcon:SetHeight(buttonSize) end - -- Scale border proportionally (64/37 is the standard ratio for WoW item buttons) - local borderSize = buttonSize * 64 / 37 + -- Scale or hide border based on theme local btnNormalTex = getglobal(btn:GetName() .. "NormalTexture") - if btnNormalTex then - btnNormalTex:SetWidth(borderSize) - btnNormalTex:SetHeight(borderSize) + local flyoutSlotStyle = "rounded" + if addon.Modules and addon.Modules.Theme then + flyoutSlotStyle = addon.Modules.Theme:GetSlotStyle() + end + if flyoutSlotStyle == "square" then + btn:SetNormalTexture("") + if btnNormalTex then + btnNormalTex:SetTexture(nil) + btnNormalTex:Hide() + end + if btnIcon then + btnIcon:SetTexCoord(.08, .92, .08, .92) + end + else + local borderSize = buttonSize * 64 / 37 + if btnNormalTex then + btnNormalTex:SetWidth(borderSize) + btnNormalTex:SetHeight(borderSize) + end end -- Resize empty slot background diff --git a/UI/SettingsPopup.lua b/UI/SettingsPopup.lua index 9374ff0..fbbfb0b 100644 --- a/UI/SettingsPopup.lua +++ b/UI/SettingsPopup.lua @@ -58,7 +58,13 @@ function Guda_SettingsPopup_OnLoad(self) "Ctrl + Right Click on any item to lock/unlock it.\n" .. "Locked items cannot be sold at vendors, deleted, or disenchanted.\n" .. "Equipment set items are automatically protected.\n" .. + "Ctrl + Right Click a set item to toggle its protection.\n" .. "A lock icon appears on the bottom-right corner.\n\n" .. + "|cffffd100Pin Slot:|r\n" .. + "Alt + Right Click on any bag slot to pin/unpin it.\n" .. + "Pinned slots are skipped during sorting.\n" .. + "The pin stays on the slot, not the item.\n" .. + "A pin icon appears on the top-left corner.\n\n" .. "|cffffd100Moving Bars:|r\n" .. "Shift + Left Click and drag any item on the Quest Item Bar or Tracked Item Bar to move the bar.\n" instructions:SetText(text)