-
-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
faa3c21
commit cd62b28
Showing
1 changed file
with
27 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
|
@@ -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", | ||
|
@@ -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", | ||
|
@@ -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(); | ||
|
@@ -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) | ||
|
@@ -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 | ||
|
||
------------------------------------------------------------------------------------------------------------------------ | ||
|