UIHANDLER OnEvent

Fires when dispatching an event.
 (self, event, ...)
== Arguments ==
; self : - The registered widget.
; event : - Name of the event.
; ... : Variable arguments - The event payload, if any.
== Details ==
* Requires ()
== Examples ==
Handling several events using if, elseif, else, end:
local frame = CreateFrame("Frame")
frame:SetScript("OnEvent", function(__, event, arg1, arg2, arg3, arg4)
	if event == "PLAYER_LOGIN" then
		print("Logging on")
	elseif event == "PLAYER_REGEN_DISABLED" then
		print("Entering combat")
	elseif event == "PLAYER_REGEN_ENABLED" then
		print("Leaving combat")
	elseif event == "UNIT_SPELLCAST_SENT" and arg1 == "player" and arg4 == 1459 then
		print("Casting arcane intellect")
	end
end)
frame:RegisterEvent("PLAYER_LOGIN")
frame:RegisterEvent("PLAYER_REGEN_DISABLED")
frame:RegisterEvent("PLAYER_REGEN_ENABLED")
frame:RegisterEvent("UNIT_SPELLCAST_SENT")
Handling several events using a lookup table:
local frame = CreateFrame("Frame")
function frame:PLAYER_LOGIN()
	print("Logging on")
end
function frame:PLAYER_REGEN_DISABLED()
	print("Entering combat")
end
function frame:PLAYER_REGEN_ENABLED()
	print("Leaving combat")
end
function frame:UNIT_SPELLCAST_SENT(unitID, __, __, spellID)
	if (unitID == "player" and spellID == 1459) then
		print("Casting arcane intellect")
 end
end
frame:SetScript("OnEvent", function(self, event, ...)
	self[event](self, ...)
end)
frame:RegisterEvent("PLAYER_LOGIN")
frame:RegisterEvent("PLAYER_REGEN_DISABLED")
frame:RegisterEvent("PLAYER_REGEN_ENABLED")
frame:RegisterEvent("UNIT_SPELLCAST_SENT")