From db72a4a8d0985907b0ba02602a3c45da16a1d5e2 Mon Sep 17 00:00:00 2001 From: Dusk-92 Date: Sun, 6 Sep 2026 15:09:49 +0200 Subject: [PATCH] Add custom WowRadio minimap icon Add a custom WowRadio minimap radio icon while preserving the existing Blizzard minimap border and button behavior. --- MinimapIcon.lua | 35 +++++++++++++++++++++++++++++++++ WowRadio-Vanilla.toc | 1 + media/WowRadio_MinimapIcon.tga | Bin 0 -> 4128 bytes 3 files changed, 36 insertions(+) create mode 100644 MinimapIcon.lua create mode 100644 media/WowRadio_MinimapIcon.tga diff --git a/MinimapIcon.lua b/MinimapIcon.lua new file mode 100644 index 0000000..81c69d6 --- /dev/null +++ b/MinimapIcon.lua @@ -0,0 +1,35 @@ +-- Custom WowRadio minimap icon. +-- Loaded after Core.lua so the button keeps all existing behavior. + +local function ApplyWowRadioMinimapIcon() +if not WowRadioMinimapButton then +return +end + +-- Do not depend on GetRegions()/region order on Vanilla. +-- Draw a dedicated texture directly over the stock icon instead. +if not WowRadioMinimapButton.WowRadioCustomIcon then +local icon = WowRadioMinimapButton:CreateTexture(nil, "ARTWORK") +icon:SetTexture("Interface\\AddOns\\WowRadio-Vanilla\\media\\WowRadio_MinimapIcon.tga") +-- The custom artwork is already tightly cropped for the 20x20 minimap slot. +icon:SetTexCoord(0, 1, 0, 1) +icon:SetWidth(20) +icon:SetHeight(20) +icon:SetPoint("TOPLEFT", WowRadioMinimapButton, "TOPLEFT", 7, -5) +WowRadioMinimapButton.WowRadioCustomIcon = icon +else +WowRadioMinimapButton.WowRadioCustomIcon:SetTexture("Interface\\AddOns\\WowRadio-Vanilla\\media\\WowRadio_MinimapIcon.tga") +WowRadioMinimapButton.WowRadioCustomIcon:SetTexCoord(0, 1, 0, 1) +WowRadioMinimapButton.WowRadioCustomIcon:Show() +end +end + +local originalCreateMinimapButton = WowRadio.CreateMinimapButton + +function WowRadio:CreateMinimapButton() +originalCreateMinimapButton(self) +ApplyWowRadioMinimapIcon() +end + +-- Also handle the case where the button already exists when this file loads. +ApplyWowRadioMinimapIcon() diff --git a/WowRadio-Vanilla.toc b/WowRadio-Vanilla.toc index 49636ee..24f7db4 100644 --- a/WowRadio-Vanilla.toc +++ b/WowRadio-Vanilla.toc @@ -21,3 +21,4 @@ Locale-enEN.lua Locale-enUS.lua Stations.lua Core.lua +MinimapIcon.lua diff --git a/media/WowRadio_MinimapIcon.tga b/media/WowRadio_MinimapIcon.tga new file mode 100644 index 0000000000000000000000000000000000000000..53838214926266b1bf005e4eca4fbf8d16400425 GIT binary patch literal 4128 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