Download
(33Kb)
Download
Updated: 05-25-17 01:14 AM
Compatibility:
Tomb of Sargeras (7.2.0)
Updated:05-25-17 01:14 AM
Created:11-24-13 01:19 PM
Downloads:10,246
Favorites:15
MD5:

NoTaint UIDropDownMenu  Popular! (More than 5000 hits)

Version: v7.2.0.24015-r3
by: another, arith

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:

  • constants (typed with all CAPS): "LIB_" added at the start
  • functions: "Lib_" added at the start


How to use it (for addon developer)
  • Add UIDropDownMenu.xml to your toc.
  • If your addon doesn't embed LibStub, you will need it.
  • Like ordinal code for UIDropDownMenu with "Lib_" instead.

Constants
  • LIB_UIDROPDOWNMENU_MINBUTTONS
  • LIB_UIDROPDOWNMENU_MAXBUTTONS
  • LIB_UIDROPDOWNMENU_MAXLEVELS
  • LIB_UIDROPDOWNMENU_BUTTON_HEIGHT
  • LIB_UIDROPDOWNMENU_BORDER_HEIGHT
  • LIB_UIDROPDOWNMENU_OPEN_MENU
  • LIB_UIDROPDOWNMENU_INIT_MENU
  • LIB_UIDROPDOWNMENU_MENU_LEVEL
  • LIB_UIDROPDOWNMENU_MENU_VALUE
  • LIB_UIDROPDOWNMENU_SHOW_TIME
  • LIB_UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT
  • LIB_OPEN_DROPDOWNMENUS

Functions
  • Lib_EasyMenu
  • Lib_EasyMenu_Initialize
  • Lib_UIDropDownMenuDelegate_OnAttributeChanged
  • Lib_UIDropDownMenu_InitializeHelper
  • Lib_UIDropDownMenu_Initialize
  • Lib_UIDropDownMenu_SetInitializeFunction
  • Lib_UIDropDownMenu_RefreshDropDownSize
  • Lib_UIDropDownMenu_OnUpdate
  • Lib_UIDropDownMenu_StartCounting
  • Lib_UIDropDownMenu_StopCounting
  • Lib_UIDropDownMenu_CreateInfo
  • Lib_UIDropDownMenu_CreateFrames
  • Lib_UIDropDownMenu_AddSeparator
  • Lib_UIDropDownMenu_AddButton
  • Lib_UIDropDownMenu_AddSeparator
  • Lib_UIDropDownMenu_GetMaxButtonWidth
  • Lib_UIDropDownMenu_GetButtonWidth
  • Lib_UIDropDownMenu_Refresh
  • Lib_UIDropDownMenu_RefreshAll
  • Lib_UIDropDownMenu_SetIconImage
  • Lib_UIDropDownMenu_SetSelectedName
  • Lib_UIDropDownMenu_SetSelectedValue
  • Lib_UIDropDownMenu_SetSelectedID
  • Lib_UIDropDownMenu_GetSelectedName
  • Lib_UIDropDownMenu_GetSelectedID
  • Lib_UIDropDownMenu_GetSelectedValue
  • Lib_UIDropDownMenuButton_OnClick
  • Lib_HideDropDownMenu
  • Lib_ToggleDropDownMenu
  • Lib_CloseDropDownMenus
  • Lib_UIDropDownMenu_OnHide
  • Lib_UIDropDownMenu_SetWidth
  • Lib_UIDropDownMenu_SetButtonWidth
  • Lib_UIDropDownMenu_SetText
  • Lib_UIDropDownMenu_GetText
  • Lib_UIDropDownMenu_ClearAll
  • Lib_UIDropDownMenu_JustifyText
  • Lib_UIDropDownMenu_SetAnchor
  • Lib_UIDropDownMenu_GetCurrentDropDown
  • Lib_UIDropDownMenuButton_GetChecked
  • Lib_UIDropDownMenuButton_GetName
  • Lib_UIDropDownMenuButton_OpenColorPicker
  • Lib_UIDropDownMenu_DisableButton
  • Lib_UIDropDownMenu_EnableButton
  • Lib_UIDropDownMenu_SetButtonText
  • Lib_UIDropDownMenu_SetButtonNotClickable
  • Lib_UIDropDownMenu_SetButtonClickable
  • Lib_UIDropDownMenu_DisableDropDown
  • Lib_UIDropDownMenu_EnableDropDown
  • Lib_UIDropDownMenu_IsEnabled
  • Lib_UIDropDownMenu_GetValue

Source Repository

If you would like to access the source repository or would like to set external link to your addon project, please use below URL:

svn://svn.wowinterface.com/NoTaint_UIDropDownMenu_Update-1134/trunk

v7.2.0.24015-r3 (2017/05/25)
----------------------------
- Reverted LIB_UIDROPDOWNMENU_MAXBUTTONS back to 8
- Renamed ToC file name
- Added OptionalDeps: LibStub to ToC

v7.2.0.24015-r2 (2017/05/19)
----------------------------
- added version number to EasyMenu
- increased LIB_UIDROPDOWNMENU_MAXBUTTONS to 24
- renamed packaged folder name to !NoTaint_UIDropDownMenu
- No impact to addons which embedded this lib
- For users who installed this lib separately, please remove the old "NoTaint_UIDropDownMenu" folder

v7.2.0.24015 (2017/05/12)
-------------------------
- added UIDropDownMenu.xml;
- removed customized codes in creating buttons;
- removed customized codes in Lib_UIDropDownMenu_AddButton()
- added LibStub to set library's version

v7.2.0.23801-r3 (2017/04/27)
----------------------------
- fixed the loading order in ToC if this get installed separately.

v7.2.0.23801-r2 (2017/04/17)
----------------------------
- ToC update to support proper loading if user install this library separately; this is for WoW 7.2 release.

v7.2.0.23801 (2017/03/22)
--------------------------
- fixed the issue when dropdown menu has more than 1 level

v7.2.0.23789 (2017/03/22)
--------------------------
- lib update to sync with WoW 7.2.0.23789
- TOC update to support WoW 7.2.0

v7.1.0.22908.r7 (2016/12/26)
--------------------------
- fixes with listframe width

v7.1.0.22908.r6 (2016/12/26)
--------------------------
- some minor enhancement in logical operation:
Lib_UIDropDownMenu_AddButton - index's value; width and maxWidth's values

v7.1.0.22908 (2016/10/27)
--------------------------
- Toc update to support WoW 7.1.0
- Codes synch with 7.1.0.22908:
- Added function Lib_UIDropDownMenu_AddSeparator(info, level)

v1.2
----
Updated (thanks to Blazeflack). To use Lib_UIDropDownMenu_AddSeparator left text value empty like

Code:
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 },
}
1.1
---
Fixed first two menu's strata.
Optional Files (1)
File Name
Version
Size
Author
Date
Type
7.2.0.23801
13kB
03-22-17 03:23 AM
Patch


Post A Reply Comment Options
Unread 11-25-13, 10:34 AM  
another
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 11
File comments: 187
Uploads: 12
Originally Posted by Resike
I have an issues, for some reason my opened menus shows under my frames, makes them impossible to click.
I think if your addon less than DBM you can PM link to changed sources (to skip at least renaming part) and I'll look what is wrong. Are you using easymenu stuff or making menu yourself?

Eidt: Sounds like menu STRATA less than frame's strata. And if
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");
called properly strata of your menu should be FULLSCREEN_DIALOG (highest)
Last edited by another : 11-25-13 at 10:38 AM.
Report comment to moderator  
Reply With Quote
Unread 11-25-13, 10:17 AM  
Resike
A Pyroguard Emberseer
AddOn Author - Click to view AddOns

Forum posts: 1290
File comments: 246
Uploads: 12
I have an issues, for some reason my opened menus shows under my frames, makes them impossible to click.
But despite of that, it's seems to working.
Last edited by Resike : 11-25-13 at 10:31 AM.
Report comment to moderator  
Reply With Quote
Unread 11-25-13, 05:36 AM  
another
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 11
File comments: 187
Uploads: 12
Originally Posted by Resike
If this will work, i'll love you forever.

Edit: Still get taints.
Check all menu functions and constants renamed (even one left will screw everything). It fixed for me taints with TinyExtraBars and menus and there is no taints for me almost 1 year.

Well, another reason can be cascade taint between addons, when by using frame after frame taint spreads (some libraries using menus maybe etc).
Last edited by another : 11-25-13 at 05:53 AM.
Report comment to moderator  
Reply With Quote
Unread 11-24-13, 05:03 PM  
Resike
A Pyroguard Emberseer
AddOn Author - Click to view AddOns

Forum posts: 1290
File comments: 246
Uploads: 12
If this will work, i'll love you forever.

Edit: Still get taints.
Last edited by Resike : 11-24-13 at 05:45 PM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: