Wowpedia

We have moved to Warcraft Wiki. Click here for information and the new URL.

READ MORE

Wowpedia
mNo edit summary
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 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>