- This function is implemented in
.:AddButton FrameXML/UIDropDownMenu.lua
- This function is implemented in
Adds a menu item to the currently open dropdown menu.
UIDropDownMenu_AddButton(info, level)
Arguments
- info
- Table - a table describing the menu item to add. See the table below for recognized keys.
- level
- Optional number - nesting level to which the menu item should be added. If 1, the menu item will be added to the outer-most menu level; 2 will add it to the first open sub-menu, 3 to the second open sub-menu, etc.
The info table
Bolded keys are required.
| Key | Value type | Description |
|---|---|---|
| text | String | Button text for this option. |
| value | Any | A value tag for this option. Inherits text key if this is undefined. |
| checked | Boolean, Function | If true, this button is checked (tick icon displayed next to it) |
| func | Function | Function called when this button is clicked. The signature is (self, arg1, arg2, checked) |
| isTitle | Boolean | True if this is a title (cannot be clicked, special formatting). |
| disabled | Boolean | If true, this button is disabled (cannot be clicked, special formatting) |
| arg1, arg2 | Any | Arguments to the custom function assigned in func. |
| hasArrow | Boolean | If true, this button has an arrow and opens a nested menu. |
| icon | String | A texture path. The icon is scaled down and displayed to the right of the text. |
| iconOnly | Boolean | If true, only the icon is shown. |
| iconXOffset | Number | Number of pixels to shift the button's icon to the left or right (positive numbers shift right, negative numbers shift left). |
| iconTooltipTitle | String | Title of the tooltip shown on icon mouseover |
| iconTooltipText | String | Text of the tooltip shown on icon mouseover |
| iconTooltipBackdropStyle | Table | Optional Backdrop style of the tooltip shown on icon mouseover |
| mouseOverIcon | Texture | An override icon when a button is moused over |
| tCoord<side> | Number | SetTexCoord(tCoordLeft, tCoordRight, tCoordTop, tCoordBottom) for the icon. ALL four must be defined for this to work. |
| tSizeX / tSizeY | Number | Sets the icon width / height. SetWidth(tSizeX), SetHeight(tSizeY) |
| iconInfo.tFitDropDownSizeX | Boolean | Adjusts the dropdowns automatic width by minus 5 (internally used for UIDropDownMenu_AddSeparator to fix the icon adding too much width) |
| isNotRadio | Boolean | If true, use a check mark for the tick icon instead of a circular dot. |
| hasColorSwatch | Boolean | If true, this button has an attached color selector. |
| r, g, b | Numbers [0.0, 1.0] | Initial color value for the color selector. |
| colorCode | String | "|cffrrggbb" sequence that is prepended to info.text only if the button is enabled. |
| swatchFunc | Function | Function called when the color is changed. |
| hasOpacity | Boolean | If true, opacity can be customized in addition to color. |
| opacity | Number [0.0, 1.0] | Initial opacity value (0 = transparent). |
| opacityFunc | Function | Function called when opacity is changed. |
| cancelFunc | Function | Function called when color/opacity alteration is cancelled. |
| registerForRightClick | Boolean | Register dropdown buttons for right clicks |
| notClickable | Boolean | If true, this button cannot be clicked, but changes the Disabled Font to match the standard white font (GameFontHighlightSmallLeft) - Does not respect fontObject. |
| noClickSound | Boolean | Set to 1 to suppress the sound when clicking the button. The sound only plays if .func is set. |
| notCheckable | Boolean | If true, this button cannot be checked (selected) - this also moves the button to the left, since there's no space stored for the tick-icon |
| keepShownOnClick | Boolean | If true, the menu isn't hidden when this button is clicked. |
| tooltipTitle | String | Tooltip title text. The tooltip appears when the player hovers over the button. |
| tooltipText | String | Tooltip content text. |
| tooltipOnButton | Boolean | Show the tooltip attached to the button instead of as a Newbie tooltip. |
| tooltipWhileDisabled | Boolean | Show the tooltip, even when the button is disabled. |
| tooltipWarning | String | Warning-style text of the tooltip shown on mouseover |
| tooltipInstruction | String | Instruction-style text of the tooltip shown on mouseover |
| tooltipBackdropStyle | Table | Optional Backdrop style of the tooltip shown on mouseover |
| justifyH | String | Horizontal text justification: "CENTER" for "CENTER", any other value or nil for "LEFT". |
| fontObject | Font | Font object used to render the button's text. |
| owner | Frame | Dropdown frame that "owns" the current dropdown list. |
| padding | Number | Number of pixels to pad the text on the right side. |
| topPadding | Number | Extra spacing between buttons |
| leftPadding | Number | Number of pixels to pad the button on the left side |
| midWidth | Number | Minimum width for this option's line |
| menuList | Table | Table used to store nested menu descriptions for the EasyMenu functionality. |
| customCheckIconAtlas | Boolean | Needs explanation. |
| classicChecks | Boolean | Classic WoW only - needs explanation. |
| customFrame | Frame | Allows this button to be a completely custom frame. Custom frame should inherit from UIDropDownCustomMenuEntryTemplate and override appropriate methods |
Caveats
- Button tooltip doesn't work, if it doesn't have tooltipTitle filled.