Skip to content

Commit

Permalink
Updated MSA_DropDownMenu
Browse files Browse the repository at this point in the history
  • Loading branch information
evil-morfar committed May 25, 2024
1 parent faa3c21 commit cd62b28
Showing 1 changed file with 27 additions and 28 deletions.
55 changes: 27 additions & 28 deletions Libs/MSA-DropDownMenu-1.0/MSA-DropDownMenu-1.0.lua
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
--- MSA-DropDownMenu-1.0 - DropDown menu for non-Blizzard addons
--- Copyright (c) 2016-2022, Marouan Sabbagh <[email protected]>
--- Copyright (c) 2016-2024, Marouan Sabbagh <[email protected]>
--- All Rights Reserved.
---
--- https://www.curseforge.com/wow/addons/msa-dropdownmenu-10

local name, version = "MSA-DropDownMenu-1.0", 15
local name, version = "MSA-DropDownMenu-1.0", 18

local lib, oldVersion = LibStub:NewLibrary(name, version)
local lib = LibStub:NewLibrary(name, version)
if not lib then return end

-- WoW API
local _G = _G

-- Hack - Support of different WoW API versions
local IsAddOnLoaded = C_AddOns.IsAddOnLoaded or IsAddOnLoaded;

MSA_DROPDOWNMENU_MINBUTTONS = 8;
MSA_DROPDOWNMENU_MAXBUTTONS = 8;
MSA_DROPDOWNMENU_MAXLEVELS = 2;
Expand Down Expand Up @@ -204,12 +207,7 @@ local function CreateDropDownList(name, parent)
DropDownList:SetFrameStrata("DIALOG")
DropDownList:EnableMouse(true)

local frame1
if oldVersion and oldVersion > 8 then -- WoW 9.0 compatibility
frame1 = _G[name.."Backdrop"] or CreateFrame("Frame", name.."Backdrop", DropDownList, "BackdropTemplate")
else
frame1 = CreateFrame("Frame", name.."Backdrop", DropDownList, "BackdropTemplate")
end
local frame1 = _G[name.."Backdrop"] or CreateFrame("Frame", name.."Backdrop", DropDownList, "BackdropTemplate")
frame1:SetAllPoints()
frame1:SetBackdrop({
bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background-Dark",
Expand All @@ -225,12 +223,7 @@ local function CreateDropDownList(name, parent)
},
})

local frame2
if oldVersion and oldVersion > 8 then -- WoW 9.0 compatibility
frame2 = _G[name.."MenuBackdrop"] or CreateFrame("Frame", name.."MenuBackdrop", DropDownList, "BackdropTemplate")
else
frame2 = CreateFrame("Frame", name.."MenuBackdrop", DropDownList, "BackdropTemplate")
end
local frame2 = _G[name.."MenuBackdrop"] or CreateFrame("Frame", name.."MenuBackdrop", DropDownList, "BackdropTemplate")
frame2:SetAllPoints()
frame2:SetBackdrop({
bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
Expand Down Expand Up @@ -1439,7 +1432,7 @@ function MSA_ToggleDropDownMenu(level, value, dropDownFrame, anchorName, xOffset
end

if ToggleDropDownMenu then
hooksecurefunc("ToggleDropDownMenu", function(level, value, dropDownFrame, anchorName, xOffset, yOffset, menuList, button, autoHideDelay)
hooksecurefunc("ToggleDropDownMenu", function(level, value, dropDownFrame, anchorName, xOffset, yOffset, menuList, button, autoHideDelay, overrideDisplayMode)
local listFrameMSA = _G["MSA_DropDownList1"];
if ( listFrameMSA:IsShown() ) then
listFrameMSA:Hide();
Expand Down Expand Up @@ -1588,7 +1581,11 @@ function MSA_DropDownMenuButton_OpenColorPicker(self, button)
button = self;
end
MSA_DROPDOWNMENU_MENU_VALUE = button.value;
MSA_OpenColorPicker(button);
if WOW_PROJECT_ID ~= WOW_PROJECT_WRATH_CLASSIC then
ColorPickerFrame:SetupColorPickerAndShow(button);
else
MSA_OpenColorPicker(button);
end
end

function MSA_DropDownMenu_DisableButton(level, id)
Expand Down Expand Up @@ -1650,17 +1647,19 @@ function MSA_DropDownMenu_GetValue(id)
end
end

function MSA_OpenColorPicker(info)
ColorPickerFrame.func = info.swatchFunc;
ColorPickerFrame.hasOpacity = info.hasOpacity;
ColorPickerFrame.opacityFunc = info.opacityFunc;
ColorPickerFrame.opacity = info.opacity;
ColorPickerFrame.previousValues = {r = info.r, g = info.g, b = info.b, opacity = info.opacity};
ColorPickerFrame.cancelFunc = info.cancelFunc;
ColorPickerFrame.extraInfo = info.extraInfo;
-- This must come last, since it triggers a call to ColorPickerFrame.func()
ColorPickerFrame:SetColorRGB(info.r, info.g, info.b);
ShowUIPanel(ColorPickerFrame);
if WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC then
function MSA_OpenColorPicker(info)
ColorPickerFrame.func = info.swatchFunc;
ColorPickerFrame.hasOpacity = info.hasOpacity;
ColorPickerFrame.opacityFunc = info.opacityFunc;
ColorPickerFrame.opacity = info.opacity;
ColorPickerFrame.previousValues = {r = info.r, g = info.g, b = info.b, opacity = info.opacity};
ColorPickerFrame.cancelFunc = info.cancelFunc;
ColorPickerFrame.extraInfo = info.extraInfo;
-- This must come last, since it triggers a call to ColorPickerFrame.func()
ColorPickerFrame:SetColorRGB(info.r, info.g, info.b);
ShowUIPanel(ColorPickerFrame);
end
end

------------------------------------------------------------------------------------------------------------------------
Expand Down

0 comments on commit cd62b28

Please sign in to comment.