Skip to content
everloot

Lore archive · Warcraft Wiki, 2023 dump

API EasyMenu

Last wiki revision 2018-11-26

Populate a context menu with options described in a provided table. EasyMenu(menuList, menuFrame, anchor, x, y, displayMode, autoHideDelay)

  • menuList : Table - an array of tables describing the entries in the menu to be created. The descriptions may use any key-value tables used in a UIDropDownMenu info table; as a bare minimum, each option should specify the "text" key.
  • menuFrame : Frame - a Frame object that will be used to store some information about the menu, must have a name, and should inherit from UIDropDownMenuTemplate; see the Details section.
  • anchor : String/Region - Specify what to anchor the menu relative to: either "cursor", a region name, or a region (frame) reference.
  • x : Number - x offset from the anchor.
  • y : Number - y offset from the anchor.
  • displayMode : String - "MENU" enables a tooltip-styled context menu, any other value the dropdown style.
  • autoHideDelay : Number - Automatically hide the menu after this many seconds.
  • The menu becomes visible as soon as you call the function and goes away after you click a menu item unless keepShownOnClick in menuList was set to 1.
  • will be called on the argument, which will modify its layout. For this reason, avoid using your own widgets that do not inherit from UIDropDownMenuTemplate as the argument.
  • Fine-grained control over the positioning of the menu is possible by setting the menuFrame.point and menuFrame.relativePoint values to specific anchor points to use when anchoring the frame to a non-cursor region.

The following example creates a context menu based on a table description: local menu = { { text = "Select an Option", isTitle = true}, { text = "Option 1", func = function print("You've chosen option 1"); end }, { text = "Option 2", func = function print("You've chosen option 2"); end }, { text = "More Options", hasArrow = true, menuList = { { text = "Option 3", func = function print("You've chosen option 3"); end } } } } -- Note that this frame must be named for the dropdowns to work. local menuFrame = CreateFrame("Frame", "ExampleMenuFrame", UIParent, "UIDropDownMenuTemplate") -- Make the menu appear at the cursor: EasyMenu(menu, menuFrame, "cursor", 0, 0, "MENU"); -- Or make the menu appear at the frame: menuFrame:SetPoint("Center", UIParent, "Center") EasyMenu(menu, menuFrame, menuFrame, 0, 0, "MENU");

  • UI Object UIDropDownMenu
  • Using UIDropDownMenu

Source

https://warcraft.wiki.gg/wiki/API_EasyMenu · retrieved 2023-11-13 · CC BY-SA 4.0

Converted from wikitext with templates, tables and images removed, so some sentences may be missing values.

This archive predates WoW: Forever. For collected gameplay facts see the Forever database. Search the archive.