Neogia40913@legacy41560791 (talk | contribs) mNo edit summary |
Direddyre14624@legacy41535565 (talk | contribs) No edit summary |
||
(7 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{widgethandler}} |
||
− | == Description == |
||
+ | 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. |
||
− | |||
− | The OnClick handler is called when a UI element is clicked with the mouse. |
||
== Arguments == |
== 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== |
||
− | arg1 - returned as a string representing the button that was clicked. |
||
+ | local taunts = {"I'm a button.", "Quit clicking me.", "That's enough.", "Stop it!", "I'm leaving!"}; |
||
− | Can be any of the following: |
||
+ | local widget = CreateFrame("Button", "TauntingButton", UIParent, "UIPanelButtonTemplate"); |
||
− | *LeftButton |
||
+ | widget:SetWidth(200); widget:SetHeight(24); widget:SetPoint("CENTER"); |
||
− | *RightButton |
||
+ | widget:RegisterForClicks("AnyUp"); |
||
− | *MiddleButton |
||
+ | widget:SetScript("OnClick", function (self, button, down) |
||
− | *Button4 |
||
+ | self:SetID((self:GetID() or 1) + 1); |
||
− | *Button5 |
||
+ | if taunts[self:GetID()] then |
||
− | According to how the UI element is setup with [[API_Button_RegisterForClicks]] |
||
+ | self:SetText(taunts[self:GetID()]); |
||
+ | else |
||
+ | self:Hide(); |
||
+ | end |
||
+ | end); |
||
+ | The named arguments are also available in XML handlers: |
||
− | [[Category:World of Warcraft API]] |
||
+ | <Button name="foo" ...> |
||
+ | ... |
||
+ | <Scripts> |
||
+ | ... |
||
+ | <OnClick>self:SetText("You clicked with " .. button);</OnClick> |
||
+ | </Scripts> |
||
+ | </Button> |
Revision as of 00:42, 13 October 2008
The API is no longer being updated here until further notice. |
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>