diff --git a/UI/ItemButton.lua b/UI/ItemButton.lua
index 6af5821..71593c4 100644
--- a/UI/ItemButton.lua
+++ b/UI/ItemButton.lua
@@ -33,6 +33,22 @@ function Guda_ItemButton_OnLoad(self)
self.itemData = nil
self.isBank = false
self.otherChar = nil
+
+ -- Create backdrop for quality border with rounded corners
+ -- Will be positioned relative to icon later
+ if not self.qualityBorder then
+ local backdrop = CreateFrame("Frame", nil, self)
+ backdrop:SetFrameLevel(self:GetFrameLevel() + 5)
+ backdrop:SetBackdrop({
+ bgFile = nil,
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ edgeSize = 12,
+ insets = {left = 4, right = 4, top = 4, bottom = 4}
+ })
+ backdrop:SetBackdropBorderColor(0, 0, 0, 0) -- Hidden by default
+ backdrop:Hide()
+ self.qualityBorder = backdrop
+ end
end
-- Set item data
@@ -50,7 +66,6 @@ function Guda_ItemButton_SetItem(self, bagID, slotID, itemData, isBank, otherCha
end
local countText = getglobal(self:GetName().."_Count")
- local qualityBorder = getglobal(self:GetName().."_QualityBorder")
local emptySlotBg = getglobal(self:GetName().."_EmptySlotBg")
-- Apply icon size setting
@@ -172,17 +187,20 @@ function Guda_ItemButton_SetItem(self, bagID, slotID, itemData, isBank, otherCha
countText:Hide()
end
- -- Set quality border (or keyring border)
- if bagID == -2 then
- -- Special border for keyring items (cyan/blue)
- qualityBorder:SetVertexColor(0.2, 0.8, 1.0, 1)
- qualityBorder:Show()
- elseif itemData.quality and itemData.quality > 1 then
- local r, g, b = addon.Modules.Utils:GetQualityColor(itemData.quality)
- qualityBorder:SetVertexColor(r, g, b, 1)
- qualityBorder:Show()
- else
- qualityBorder:Hide()
+ -- Set quality border (pfUI style using backdrop border)
+ if self.qualityBorder then
+ if bagID == -2 then
+ -- Special border for keyring items (cyan/blue)
+ self.qualityBorder:SetBackdropBorderColor(0.2, 0.8, 1.0, 1)
+ self.qualityBorder:Show()
+ elseif itemData.quality then
+ -- Show colored border for all items (Poor, Common, Uncommon, Rare, Epic, etc.)
+ local r, g, b = addon.Modules.Utils:GetQualityColor(itemData.quality)
+ self.qualityBorder:SetBackdropBorderColor(r, g, b, 1)
+ self.qualityBorder:Show()
+ else
+ self.qualityBorder:Hide()
+ end
end
self:Show()
@@ -215,12 +233,14 @@ function Guda_ItemButton_SetItem(self, bagID, slotID, itemData, isBank, otherCha
countText:Hide()
- -- Show border for empty keyring slots
- if bagID == -2 then
- qualityBorder:SetVertexColor(0.2, 0.8, 1.0, 0.5) -- Dimmer cyan for empty slots
- qualityBorder:Show()
- else
- qualityBorder:Hide()
+ -- Show border for empty keyring slots (pfUI style)
+ if self.qualityBorder then
+ if bagID == -2 then
+ self.qualityBorder:SetBackdropBorderColor(0.2, 0.8, 1.0, 0.5) -- Dimmer cyan for empty slots
+ self.qualityBorder:Show()
+ else
+ self.qualityBorder:Hide()
+ end
end
self:Show()
@@ -248,12 +268,19 @@ function Guda_ItemButton_SetItem(self, bagID, slotID, itemData, isBank, otherCha
local iconDisplaySize = iconSize - iconInset
iconTexture:ClearAllPoints()
- iconTexture:SetPoint("CENTER", self, "CENTER", 0, 0)
+ iconTexture:SetPoint("CENTER", self, "CENTER", -0.5, 0.5)
iconTexture:SetWidth(iconDisplaySize)
iconTexture:SetHeight(iconDisplaySize)
-- Crop icon edges slightly (pfUI uses .08 to .92)
iconTexture:SetTexCoord(0.08, 0.92, 0.08, 0.92)
iconTexture:Show()
+
+ -- Position quality border around the icon (not the slot)
+ if self.qualityBorder then
+ self.qualityBorder:ClearAllPoints()
+ self.qualityBorder:SetPoint("TOPLEFT", iconTexture, "TOPLEFT", -5, 5)
+ self.qualityBorder:SetPoint("BOTTOMRIGHT", iconTexture, "BOTTOMRIGHT", 5, -5)
+ end
else
-- Hide icon for empty slots
iconTexture:Hide()
diff --git a/UI/ItemButton.xml b/UI/ItemButton.xml
index 6294667..dccdb67 100644
--- a/UI/ItemButton.xml
+++ b/UI/ItemButton.xml
@@ -17,15 +17,6 @@
-
-
-
-
-
-
-
-
-