diff --git a/UI/BagFrame.xml b/UI/BagFrame.xml
index 8f97f90..73aa99b 100644
--- a/UI/BagFrame.xml
+++ b/UI/BagFrame.xml
@@ -184,9 +184,7 @@
local icon = getglobal(this:GetName().."_Icon")
if icon then
- -- Use 3D portrait of the player
- SetPortraitTexture(icon, "player")
- -- Reset TexCoord for portrait (portraits don't need cropping)
+ icon:SetTexture("Interface\\AddOns\\Guda\\Assets\\All_Characters")
icon:SetTexCoord(0, 1, 0, 1)
end
diff --git a/UI/BankFrame.lua b/UI/BankFrame.lua
index 6407ab9..077a42f 100644
--- a/UI/BankFrame.lua
+++ b/UI/BankFrame.lua
@@ -1088,6 +1088,117 @@ function Guda_BankFrame_ClearBagButtonHighlight()
end
end
+-- Bank character dropdown (similar to BagFrame's bank dropdown)
+local bankCharDropdown
+
+function Guda_BankFrame_ToggleBankDropdown(button)
+ if bankCharDropdown and bankCharDropdown:IsShown() then
+ bankCharDropdown:Hide()
+ return
+ end
+
+ if not bankCharDropdown then
+ -- Create dropdown frame
+ bankCharDropdown = CreateFrame("Frame", "Guda_BankCharDropdown", UIParent)
+ bankCharDropdown:SetFrameStrata("DIALOG")
+ bankCharDropdown:SetWidth(200)
+ bankCharDropdown:SetBackdrop({
+ bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+ edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border",
+ tile = true,
+ tileSize = 16,
+ edgeSize = 16,
+ insets = { left = 4, right = 4, top = 4, bottom = 4 }
+ })
+ bankCharDropdown:SetBackdropColor(0, 0, 0, 0.95)
+ bankCharDropdown:EnableMouse(true)
+ bankCharDropdown:Hide()
+
+ bankCharDropdown.buttons = {}
+ end
+
+ -- Position dropdown below the button
+ bankCharDropdown:ClearAllPoints()
+ bankCharDropdown:SetPoint("TOPLEFT", button, "BOTTOMLEFT", 0, -2)
+
+ -- Clear existing buttons
+ for _, btn in ipairs(bankCharDropdown.buttons) do
+ btn:Hide()
+ end
+ bankCharDropdown.buttons = {}
+
+ -- Get all characters
+ local chars = addon.Modules.DB:GetAllCharacters(true)
+
+ local yOffset = -8
+
+ -- Add character buttons
+ for _, char in ipairs(chars) do
+ -- Capture variables in local scope for closure
+ local charFullName = char.fullName
+ local charName = char.name
+ local charMoney = char.money or 0
+ local charClassToken = char.classToken
+
+ local charButton = CreateFrame("Button", nil, bankCharDropdown)
+ charButton:SetWidth(188)
+ charButton:SetHeight(20)
+ charButton:SetPoint("TOP", bankCharDropdown, "TOP", 0, yOffset)
+
+ -- Button background on hover
+ local charBg = charButton:CreateTexture(nil, "BACKGROUND")
+ charBg:SetAllPoints()
+ charBg:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight")
+ charBg:SetBlendMode("ADD")
+ charBg:SetAlpha(0)
+
+ -- Get class color
+ local classColor = charClassToken and RAID_CLASS_COLORS[charClassToken]
+ local r, g, b = 1, 1, 1
+ if classColor then
+ r, g, b = classColor.r, classColor.g, classColor.b
+ end
+
+ -- Button text
+ local charText = charButton:CreateFontString(nil, "ARTWORK", "GameFontHighlight")
+ charText:SetPoint("LEFT", charButton, "LEFT", 8, 0)
+ charText:SetText(charName)
+ charText:SetTextColor(r, g, b)
+
+ -- Money text
+ local moneyText = charButton:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+ moneyText:SetPoint("RIGHT", charButton, "RIGHT", -8, 0)
+ moneyText:SetText(addon.Modules.Utils:FormatMoney(charMoney))
+ moneyText:SetTextColor(0.7, 0.7, 0.7)
+
+ -- Button scripts
+ charButton:SetScript("OnEnter", function()
+ charBg:SetAlpha(0.3)
+ end)
+ charButton:SetScript("OnLeave", function()
+ charBg:SetAlpha(0)
+ end)
+ charButton:SetScript("OnClick", function()
+ if charFullName then
+ -- Show bank for this character using the BankFrame module
+ addon.Modules.BankFrame:ShowCharacter(charFullName)
+ bankCharDropdown:Hide()
+ else
+ addon:Print("Error: Character fullName is nil")
+ end
+ end)
+
+ table.insert(bankCharDropdown.buttons, charButton)
+ yOffset = yOffset - 20
+ end
+
+ -- Set dropdown height based on content
+ bankCharDropdown:SetHeight(math.abs(yOffset) + 8)
+
+ -- Show dropdown
+ bankCharDropdown:Show()
+end
+
-- Drag handlers for bank bag slots
function Guda_BankBagSlot_OnDragStart(button, bagID)
if not bagID or bagID == -1 then return end
diff --git a/UI/BankFrame.xml b/UI/BankFrame.xml
index 58223fb..016fa15 100644
--- a/UI/BankFrame.xml
+++ b/UI/BankFrame.xml
@@ -202,6 +202,53 @@
+
+
+