icons are replaced everywhere, select character bank added in bankframe
This commit is contained in:
+1
-3
@@ -184,9 +184,7 @@
|
|||||||
<OnLoad>
|
<OnLoad>
|
||||||
local icon = getglobal(this:GetName().."_Icon")
|
local icon = getglobal(this:GetName().."_Icon")
|
||||||
if icon then
|
if icon then
|
||||||
-- Use 3D portrait of the player
|
icon:SetTexture("Interface\\AddOns\\Guda\\Assets\\All_Characters")
|
||||||
SetPortraitTexture(icon, "player")
|
|
||||||
-- Reset TexCoord for portrait (portraits don't need cropping)
|
|
||||||
icon:SetTexCoord(0, 1, 0, 1)
|
icon:SetTexCoord(0, 1, 0, 1)
|
||||||
end
|
end
|
||||||
</OnLoad>
|
</OnLoad>
|
||||||
|
|||||||
@@ -1088,6 +1088,117 @@ function Guda_BankFrame_ClearBagButtonHighlight()
|
|||||||
end
|
end
|
||||||
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
|
-- Drag handlers for bank bag slots
|
||||||
function Guda_BankBagSlot_OnDragStart(button, bagID)
|
function Guda_BankBagSlot_OnDragStart(button, bagID)
|
||||||
if not bagID or bagID == -1 then return end
|
if not bagID or bagID == -1 then return end
|
||||||
|
|||||||
@@ -202,6 +202,53 @@
|
|||||||
</Scripts>
|
</Scripts>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
<!-- Characters Button (header left, next to Blizzard UI button) -->
|
||||||
|
<Button name="$parent_CharsButton">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="24" y="24"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="$parent_BlizzardUIButton">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="2" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="ARTWORK">
|
||||||
|
<Texture name="$parent_Icon">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="20" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER"/>
|
||||||
|
</Anchors>
|
||||||
|
<Color r="0.8" g="0.8" b="0.8"/>
|
||||||
|
</Texture>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
local icon = getglobal(this:GetName().."_Icon")
|
||||||
|
if icon then
|
||||||
|
icon:SetTexture("Interface\\AddOns\\Guda\\Assets\\All_Characters")
|
||||||
|
icon:SetTexCoord(0, 1, 0, 1)
|
||||||
|
end
|
||||||
|
</OnLoad>
|
||||||
|
<OnClick>
|
||||||
|
Guda_BankFrame_ToggleBankDropdown(this)
|
||||||
|
</OnClick>
|
||||||
|
<OnEnter>
|
||||||
|
GameTooltip:SetOwner(this, "ANCHOR_TOP")
|
||||||
|
GameTooltip:SetText("View Other Characters' Bank")
|
||||||
|
GameTooltip:Show()
|
||||||
|
</OnEnter>
|
||||||
|
<OnLeave>
|
||||||
|
GameTooltip:Hide()
|
||||||
|
</OnLeave>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
|
||||||
<!-- Search Bar (below title) -->
|
<!-- Search Bar (below title) -->
|
||||||
<Frame name="$parent_SearchBar">
|
<Frame name="$parent_SearchBar">
|
||||||
<Size>
|
<Size>
|
||||||
|
|||||||
Reference in New Issue
Block a user