Go to Page... |
Compatibility: | Tomb of Sargeras (7.2.0) |
Updated: | 05-25-17 01:14 AM |
Created: | 11-24-13 01:19 PM |
Downloads: | 10,287 |
Favorites: | 15 |
MD5: |
About
Standard UIDropDownMenu global functions using protected frames and causing taints when used by third-party addons. But it is possible to avoid taints by using same functionality with that library.
Library checked more than year inside of TinyExtraBars without any taints from menus.
What is it
Library is standard code from Blizzard's files EasyMenu.lua, UIDropDownMenu.lua and UIDropDownMenuTemplates.xml with frames, tables, variables and functions renamed to:
local tabsSubmenu = { { text = "Add new tab", func = AddNewTab, notCheckable = true, keepShownOnClick = false }, { notCheckable = true, notClickable = true }, { text = "Remove active tab", func = ConfirmRemoveTab, notCheckable = true, keepShownOnClick = false }, }
File Name |
Version |
Size |
Author |
Date |
Type |
7.2.0.23801 |
13kB |
03-22-17 03:23 AM |
Patch |
Comment Options |
05-15-17, 12:26 AM | |||
|
As for the errors you encountered, please load only UIDropDownMenu.xml to your ToC.
Last edited by arith : 05-17-17 at 12:19 AM.
|
||
|
arith |
View Public Profile |
Send a private message to arith |
Find More Posts by arith |
Add arith to Your Buddy List |
05-14-17, 11:54 PM | ||
|
Arith, I posted a few errors here since I can't find where I can make tickets http://www.wowinterface.com/forums/s...5387&page=2#23 |
|
|
Ketho |
View Public Profile |
Send a private message to Ketho |
Find More Posts by Ketho |
Add Ketho to Your Buddy List |
arith |
View Public Profile |
Send a private message to arith |
Find More Posts by arith |
Add arith to Your Buddy List |
arith |
View Public Profile |
Send a private message to arith |
Find More Posts by arith |
Add arith to Your Buddy List |
05-12-17, 04:00 AM | ||
|
|
|
|
arith |
View Public Profile |
Send a private message to arith |
Find More Posts by arith |
Add arith to Your Buddy List |
05-11-17, 04:37 AM | |
|
Any chance to add some versioning for the lib like this:
Lua Code:
So an older lib version won't override the functions of the newer ones?
Last edited by Resike : 05-11-17 at 04:37 AM.
|
|
Resike |
View Public Profile |
Send a private message to Resike |
Find More Posts by Resike |
Add Resike to Your Buddy List |
01-15-17, 10:16 AM | ||
|
|
|
|
another |
View Public Profile |
Send a private message to another |
Find More Posts by another |
Add another to Your Buddy List |
12-10-16, 09:02 PM | |
A Deviate Faerie Dragon
Forum posts: 12
File comments: 18
Uploads: 0
|
I updated this library with code changes made to the default UIDropDownMenu code.
A commit with the changes can be seen here: http://git.tukui.org/Elv/elvui/commi...98534d31c3a9dc |
|
Blazeflack |
View Public Profile |
Send a private message to Blazeflack |
Find More Posts by Blazeflack |
Add Blazeflack to Your Buddy List |
03-21-15, 01:41 PM | |
|
This will be very selfish and lazy, but any chance you could do the same thing with the UnitPopup.lua? :P
Also an update would be good, since some stuff changed in the dropdown handlers too. |
|
Resike |
View Public Profile |
Send a private message to Resike |
Find More Posts by Resike |
Add Resike to Your Buddy List |
11-29-13, 02:20 PM | |||
|
Code:
for i = 1, LIB_UIDROPDOWNMENU_MAXLEVELS do local listFrameName = "Lib_DropDownList"..i; local f = CreateFrame("Button", listFrameName, nil, "Lib_UIDropDownListTemplate"); Code:
function Lib_UIDropDownMenu_CreateFrames(level, index) while ( level > LIB_UIDROPDOWNMENU_MAXLEVELS ) do LIB_UIDROPDOWNMENU_MAXLEVELS = LIB_UIDROPDOWNMENU_MAXLEVELS + 1; local newList = CreateFrame("Button", "Lib_DropDownList"..LIB_UIDROPDOWNMENU_MAXLEVELS, nil, "Lib_UIDropDownListTemplate"); newList:SetFrameStrata("FULLSCREEN_DIALOG"); Code:
f:SetFrameStrata("FULLSCREEN_DIALOG"); |
||
|
another |
View Public Profile |
Send a private message to another |
Find More Posts by another |
Add another to Your Buddy List |
11-29-13, 07:41 AM | ||
|
Last edited by Resike : 11-29-13 at 07:41 AM.
|
|
|
Resike |
View Public Profile |
Send a private message to Resike |
Find More Posts by Resike |
Add Resike to Your Buddy List |
11-25-13, 05:56 PM | |||
|
There is 3 known manuals on DropDownMenu:
WowAce from Xinhuan http://forums.wowace.com/showthread.php?t=15763 WowWiki http://www.wowwiki.com/Using_UIDropDownMenu wowpedia http://wowpedia.org/Using_UIDropDownMenu
Last edited by another : 11-25-13 at 06:26 PM.
|
||
|
another |
View Public Profile |
Send a private message to another |
Find More Posts by another |
Add another to Your Buddy List |
11-25-13, 03:09 PM | |||
|
Lua Code:
And thats newList:SetFrameStrata("FULLSCREEN_DIALOG") only gets triggered for multi level dropdowns or not? Edit: Lua Code:
Addig this line seems to be good for single level dropdowns, however any chance to dinamically set the strata based on the parent level + 1 strata sublevel or something? Aka the dropdown menu wont overlap higher strata level frames, like tooltips.
Last edited by Resike : 11-25-13 at 03:27 PM.
|
||
|
Resike |
View Public Profile |
Send a private message to Resike |
Find More Posts by Resike |
Add Resike to Your Buddy List |
11-25-13, 02:48 PM | ||
|
Code:
<Button name="UIDropDownListTemplate" hidden="true" frameStrata="DIALOG" enableMouse="true" virtual="true"> Code:
<Button name="Lib_UIDropDownListTemplate" hidden="true" frameStrata="DIALOG" enableMouse="true" virtual="true"> Code:
function Lib_ToggleDropDownMenu(level, value, dropDownFrame, anchorName, xOffset, yOffset, menuList, button, autoHideDelay) if ( not level ) then level = 1; end Lib_UIDropDownMenuDelegate:SetAttribute("createframes-level", level); Lib_UIDropDownMenuDelegate:SetAttribute("createframes-index", 0); Lib_UIDropDownMenuDelegate:SetAttribute("createframes", true); Code:
function Lib_UIDropDownMenuDelegate_OnAttributeChanged (self, attribute, value) if ( attribute == "createframes" and value == true ) then Lib_UIDropDownMenu_CreateFrames(self:GetAttribute("createframes-level"), self:GetAttribute("createframes-index")); Code:
function Lib_UIDropDownMenu_CreateFrames(level, index) while ( level > LIB_UIDROPDOWNMENU_MAXLEVELS ) do LIB_UIDROPDOWNMENU_MAXLEVELS = LIB_UIDROPDOWNMENU_MAXLEVELS + 1; local newList = CreateFrame("Button", "Lib_DropDownList"..LIB_UIDROPDOWNMENU_MAXLEVELS, nil, "Lib_UIDropDownListTemplate"); newList:SetFrameStrata("FULLSCREEN_DIALOG"); |
|
|
another |
View Public Profile |
Send a private message to another |
Find More Posts by another |
Add another to Your Buddy List |
11-25-13, 11:56 AM | |||
|
No easymenus, i build it myself. Lua Code:
If i set frameStrata = "HIGH", then its visible, if higher then not. Only wondering because its working fine with the default templates with above "HIGH" strata too. This is how it's looks like: Edit: Using this solves the problem: Lua Code:
Last edited by Resike : 11-25-13 at 12:12 PM.
|
||
|
Resike |
View Public Profile |
Send a private message to Resike |
Find More Posts by Resike |
Add Resike to Your Buddy List |