WoW:UIHANDLER OnClick: Difference between revisions
Jump to navigation
Jump to search
(returned ~= passed) |
m (Move page script moved page UIHANDLER OnClick to UIHANDLER OnClick without leaving a redirect) |
||
(4 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{widgethandler}} | {{widgethandler}} | ||
The '''OnClick''' handler is called when a UI widget that supports clicking (i.e. is derived from a Button) is clicked. Region derivatives like Frame only implement OnMouseDown / OnMouseUp handlers. | |||
== | == Arguments == | ||
;self : widget being clicked | |||
;button : [mouse] button used to click the widget. Due to widget:Click(button, down), button argument may be anything, although the following five values are common for normal mouse clicks: "LeftButton", "RightButton", "MiddleButton", "Button4", "Button5". | |||
;down : Boolean - 1 (true) if the trigger button is currently being held down, nil (false) otherwise. | |||
==Example== | |||
local taunts = {"I'm a button.", "Quit clicking me.", "That's enough.", "Stop it!", "I'm leaving!"}; | |||
local widget = CreateFrame("Button", "TauntingButton", UIParent, "UIPanelButtonTemplate"); | |||
widget:SetWidth(200); widget:SetHeight(24); widget:SetPoint("CENTER"); | |||
widget:RegisterForClicks("AnyUp"); | |||
widget:SetScript("OnClick", function (self, button, down) | |||
self:SetID((self:GetID() or 1) + 1); | |||
if taunts[self:GetID()] then | |||
self:SetText(taunts[self:GetID()]); | |||
else | |||
self:Hide(); | |||
end | |||
end); | |||
The named arguments are also available in XML handlers: | |||
<Button name="foo" ...> | |||
... | |||
<Scripts> | |||
... | |||
<OnClick>self:SetText("You clicked with " .. button);</OnClick> | |||
</Scripts> | |||
</Button> |
Latest revision as of 04:49, 15 August 2023
The OnClick handler is called when a UI widget that supports clicking (i.e. is derived from a Button) is clicked. Region derivatives like Frame only implement OnMouseDown / OnMouseUp handlers.
Arguments[edit]
- self
- widget being clicked
- button
- [mouse] button used to click the widget. Due to widget:Click(button, down), button argument may be anything, although the following five values are common for normal mouse clicks: "LeftButton", "RightButton", "MiddleButton", "Button4", "Button5".
- down
- Boolean - 1 (true) if the trigger button is currently being held down, nil (false) otherwise.
Example[edit]
local taunts = {"I'm a button.", "Quit clicking me.", "That's enough.", "Stop it!", "I'm leaving!"}; local widget = CreateFrame("Button", "TauntingButton", UIParent, "UIPanelButtonTemplate"); widget:SetWidth(200); widget:SetHeight(24); widget:SetPoint("CENTER"); widget:RegisterForClicks("AnyUp"); widget:SetScript("OnClick", function (self, button, down) self:SetID((self:GetID() or 1) + 1); if taunts[self:GetID()] then self:SetText(taunts[self:GetID()]); else self:Hide(); end end);
The named arguments are also available in XML handlers:
<Button name="foo" ...> ... <Scripts> ... <OnClick>self:SetText("You clicked with " .. button);</OnClick> </Scripts> </Button>