Gaming
 

API EasyMenu

From WoWWiki

Main Menu


"I" iconThis function is not a real API. It is defined by FrameXML in FrameXML/EasyMenu.lua.

Easily create context menus on the fly with clickable items.

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

Contents

Arguments

menuList 
Table - see Details for key/value descriptions.
menuFrame 
Frame - the UI frame to populate.
anchor 
String - Just like in the GameTooltip this is the anchor point.
Number - x offset.
Number - y offset
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.

Details

menuList 
This needs to be a table in the following format.
{
    {
        text = "Menu Item 1", -- string. This is the text to put on this menu item.
        func = function() DoStuff() end, -- function. This is the function that will fire when you click on this menu item.
    },
    {
        text = "Menu Item 2",
        func = function() DoOtherStuff() end,
    },
    -- ...
}
See "List of button attributes" in the FrameXML file UIDropDownMenu.lua for the full list of available table elements.

Notes

  • 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.

Examples

local menu_frame = CreateFrame("Frame", "ExampleMenuFrame", UIParent, "UIDropDownMenuTemplate")

local function onOption1()
  -- do stuff
end
local function onOption2()
  -- do stuff
end

local menuList = {
  { text = "Option 1", func = onOption1 },
  { text = "Option 2", func = onOption2 }
}

menu_frame:SetPoint("Center", UIParent, "Center") -- setup position of menu. Not needed if 'cursor' is used as anchor in EasyMenu
EasyMenu(menuList, menuFrame, "ExampleMenuFrame", 0 , 0, "MENU")

Above example creates "MENU" type poupup menu. To crate standard menu:

local menu_frame = CreateFrame("Frame", "ExampleMenuFrame", UIParent)
...
EasyMenu(menuList, menuFrame, "ExampleMenuFrame", 0 , 0)

See Also