https://github.com/hizuroswowaddons/libdropdownmenu
https://github.com/hizuroswowaddons/libdropdownmenu
addon lua wow wow-addon wow-addon-lib wow-lib
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/hizuroswowaddons/libdropdownmenu
- Owner: HizurosWoWAddOns
- License: gpl-3.0
- Created: 2022-06-03T19:02:42.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2026-01-20T08:31:54.000Z (6 months ago)
- Last Synced: 2026-01-20T18:13:46.799Z (6 months ago)
- Topics: addon, lua, wow, wow-addon, wow-addon-lib, wow-lib
- Language: Lua
- Homepage:
- Size: 208 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LibDropDownMenu (WoW AddOn Library)




[](https://www.patreon.com/bePatron?u=12558524)
[](https://paypal.me/hizuro)

## Description
This is a converted version of Blizzards UIDropDownMenu from WoW Retail into a library accessable by LibStub. I update it from time to time to current retail version.
**XML Errors in Retail**\
*Since Blizzards new xml error handling it is a problem to use xml templates in libraries. I've converted the templates into lua functions.*
### Little extra with version r24
Since version r24 this library has a little extra i've missed in original. I like to use easymenu but the original has no option to add a separator by menuList table.
```lua
local menuList = {
{ text="Some text", isTitle = true },
{ separator = true }, -- new in r24
{ text="More text", func=function() end}
}
```
@Blizzard feel free to add it to the original 🤓
## The XML templates are converted into lua functions
```
UIDropDownMenuButtonTemplate into .Create_DropDownMenuButton([,[,]]>
UIDropDownListTemplate into .Create_DropDownMenuList([,[,]]>
UIDropDownMenuTemplate into .Create_DropDownMenu([,[,]]>
```
Currently the optsTable can contain only one usable entry. { id= }
## Example
```lua
local lib = LibStub("LibDropDownMenu");
local menuFrame = lib.Create_DropDownMenu("MyAddOn_DropDownMenu",UIParent); -- instead of template UIDropDownMenuTemplate
local menuList = {
{ text="TestTitle", isTitle=true },
{ text="TestFunction", isNotRadio=true, notCheckable=false }
};
lib.EasyMenu(menuList,menuFrame,"cursor",0,0,"MENU");
```
## In .pkgmeta file
```yaml
externals:
libs/LibDropDownMenu:
url: https://github.com/HizurosWoWAddOns/LibDropDownMenu
tag: latest
```
## My other projects
* [On Curseforge](https://www.curseforge.com/members/hizuro_de/projects)
* [On Github](https://github.com/HizurosWoWAddOns?tab=repositories)
## Disclaimer
> World of Warcraft© and Blizzard Entertainment© are all trademarks or registered trademarks of Blizzard Entertainment in the United States and/or other countries. These terms and all related materials, logos, and images are copyright © Blizzard Entertainment.