API EasyMenu

104,672pages on
this wiki
Add New Page
Talk0 Share
WoW API < EasyMenu
Icon-information-22x22This function is implemented by FrameXML in [DEPRECATED FrameXML/EasyMenu.lua].

Populate a context menu with options described in a provided table.

EasyMenu(menuList, menuFrame, anchor, x, y, displayMode, autoHideDelay)


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.
Frame - a Frame object that will be used to store some information about the menu.
String/Region - Specify what to anchor the menu relative to: either "cursor", a region name, or a region (frame) reference.
Number - x offset from the anchor.
Number - y offset from the anchor.
String - "MENU" enables a tooltip-styled context menu, any other value the dropdown style.
Number - Automatically hide the menu after this many seconds.

Details Edit

  • 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.
  • 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 }
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");


  • You must give the frame a name (argument 2 to CreateFrame()) for menus to work.

See Also Edit

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random Wiki