1 --[[-----------------------------------------------------------------------------
4 -------------------------------------------------------------------------------]]
5 local Type, Version = "Button", 22
6 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
7 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
14 local PlaySound, CreateFrame, UIParent = PlaySound, CreateFrame, UIParent
18 local _, _, _, interface = GetBuildInfo()
19 wowMoP = (interface >= 50000)
22 --[[-----------------------------------------------------------------------------
24 -------------------------------------------------------------------------------]]
25 local function Button_OnClick(frame, ...)
27 PlaySound("igMainMenuOption")
28 frame.obj:Fire("OnClick", ...)
31 local function Control_OnEnter(frame)
32 frame.obj:Fire("OnEnter")
35 local function Control_OnLeave(frame)
36 frame.obj:Fire("OnLeave")
39 --[[-----------------------------------------------------------------------------
41 -------------------------------------------------------------------------------]]
43 ["OnAcquire"] = function(self)
44 -- restore default values
47 self:SetDisabled(false)
51 -- ["OnRelease"] = nil,
53 ["SetText"] = function(self, text)
54 self.text:SetText(text)
57 ["SetDisabled"] = function(self, disabled)
58 self.disabled = disabled
67 --[[-----------------------------------------------------------------------------
69 -------------------------------------------------------------------------------]]
70 local function Constructor()
71 local name = "AceGUI30Button" .. AceGUI:GetNextWidgetNum(Type)
72 local frame = CreateFrame("Button", name, UIParent, wowMoP and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
75 frame:EnableMouse(true)
76 frame:SetScript("OnClick", Button_OnClick)
77 frame:SetScript("OnEnter", Control_OnEnter)
78 frame:SetScript("OnLeave", Control_OnLeave)
80 local text = frame:GetFontString()
82 text:SetPoint("TOPLEFT", 15, -1)
83 text:SetPoint("BOTTOMRIGHT", -15, 1)
84 text:SetJustifyV("MIDDLE")
91 for method, func in pairs(methods) do
95 return AceGUI:RegisterAsWidget(widget)
98 AceGUI:RegisterWidgetType(Type, Constructor, Version)