LibUIDropDownMenu

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.

What is it

Library is standard code from Blizzard's files EasyMenu.lua, UIDropDownMenu.lua, UIDropDownMenu.xml and UIDropDownMenuTemplates.xml with frames, tables, variables and functions renamed to:

  • constants : "L_" added at the start
  • functions: "L_" added at the start

How to use it (for addon developer)

  • Embed LibUIDropDownMenu to your addon, you can specify to the subfolder of LibUIDropDownMenu if you feel this keep the your addon's folder structure lighter.
  • Add LibUIDropDownMenu.xml to your toc or your embeds.xml / libs.xml.
  • Make sure your toc file has the following settings:
## OptionalDeps: LibStub, LibUIDropDownMenu
  • If your addon doesn't embed LibStub, you will need it.
  • Like ordinal code for UIDropDownMenu with "L_" instead.

Constants

  • L_UIDROPDOWNMENU_MINBUTTONS
  • L_UIDROPDOWNMENU_MAXBUTTONS
  • L_UIDROPDOWNMENU_MAXLEVELS
  • L_UIDROPDOWNMENU_BUTTON_HEIGHT
  • L_UIDROPDOWNMENU_BORDER_HEIGHT
  • L_UIDROPDOWNMENU_OPEN_MENU
  • L_UIDROPDOWNMENU_INIT_MENU
  • L_UIDROPDOWNMENU_MENU_LEVEL
  • L_UIDROPDOWNMENU_MENU_VALUE
  • L_UIDROPDOWNMENU_SHOW_TIME
  • L_UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT
  • L_OPEN_DROPDOWNMENUS

Button Name

As you (the developers) might be aware that at some point you might need to manipulate the dropdowns by accessing the button names. For example, you have multiple levels of menus and you would like to hide or show some level's menu button. In that case, you need to make sure you also revise the button name used in your original codes when you are migrating to use LibUIDropDownMenu.

  • "L_DropDownList"..i

Functions

EasyMenu

  • L_EasyMenu
  • L_EasyMenu_Initialize

UIDropDown

  • L_UIDropDownMenuDelegate_OnAttributeChanged
  • L_UIDropDownMenu_InitializeHelper
  • L_UIDropDownMenu_Initialize
  • L_UIDropDownMenu_SetInitializeFunction
  • L_UIDropDownMenu_RefreshDropDownSize
  • L_UIDropDownMenu_OnUpdate
  • L_UIDropDownMenu_StartCounting
  • L_UIDropDownMenu_StopCounting
  • L_UIDropDownMenu_CreateInfo
  • L_UIDropDownMenu_CreateFrames
  • L_UIDropDownMenu_AddSeparator
  • L_UIDropDownMenu_AddButton
  • L_UIDropDownMenu_AddSeparator
  • L_UIDropDownMenu_GetMaxButtonWidth
  • L_UIDropDownMenu_GetButtonWidth
  • L_UIDropDownMenu_Refresh
  • L_UIDropDownMenu_RefreshAll
  • L_UIDropDownMenu_SetIconImage
  • L_UIDropDownMenu_SetSelectedName
  • L_UIDropDownMenu_SetSelectedValue
  • L_UIDropDownMenu_SetSelectedID
  • L_UIDropDownMenu_GetSelectedName
  • L_UIDropDownMenu_GetSelectedID
  • L_UIDropDownMenu_GetSelectedValue
  • L_UIDropDownMenuButton_OnClick
  • L_HideDropDownMenu
  • L_ToggleDropDownMenu
  • L_CloseDropDownMenus
  • L_UIDropDownMenu_OnHide
  • L_UIDropDownMenu_SetWidth
  • L_UIDropDownMenu_SetButtonWidth
  • L_UIDropDownMenu_SetText
  • L_UIDropDownMenu_GetText
  • L_UIDropDownMenu_ClearAll
  • L_UIDropDownMenu_JustifyText
  • L_UIDropDownMenu_SetAnchor
  • L_UIDropDownMenu_GetCurrentDropDown
  • L_UIDropDownMenuButton_GetChecked
  • L_UIDropDownMenuButton_GetName
  • L_UIDropDownMenuButton_OpenColorPicker
  • L_UIDropDownMenu_DisableButton
  • L_UIDropDownMenu_EnableButton
  • L_UIDropDownMenu_SetButtonText
  • L_UIDropDownMenu_SetButtonNotClickable
  • L_UIDropDownMenu_SetButtonClickable
  • L_UIDropDownMenu_DisableDropDown
  • L_UIDropDownMenu_EnableDropDown
  • L_UIDropDownMenu_IsEnabled
  • L_UIDropDownMenu_GetValue

FAQ

Please go to FAQ Pages for more details.


Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes

About This Project

Categories

Members

Recent Files