Mercurial > wow > itemauditor
diff Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua @ 0:169f5211fc7f
First public revision.
At this point ItemAuditor watches mail for auctions sold or purchased, watches for buy/sell (money and 1 item type change) and conversions/tradeskills. Milling isn't working yet because there is too much time between the first event and the last event.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Thu, 20 May 2010 19:22:19 -0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua Thu May 20 19:22:19 2010 -0700 @@ -0,0 +1,104 @@ +local AceGUI = LibStub("AceGUI-3.0") + +-- WoW APIs +local _G = _G +local CreateFrame, UIParent = CreateFrame, UIParent + +-------------------------- +-- Button -- +-------------------------- +do + local Type = "Button" + local Version = 12 + + local function OnAcquire(self) + -- restore default values + self:SetHeight(24) + self:SetWidth(200) + end + + local function OnRelease(self) + self.frame:ClearAllPoints() + self.frame:Hide() + self:SetDisabled(false) + end + + local function Button_OnClick(this, ...) + this.obj:Fire("OnClick", ...) + AceGUI:ClearFocus() + end + + local function Button_OnEnter(this) + this.obj:Fire("OnEnter") + end + + local function Button_OnLeave(this) + this.obj:Fire("OnLeave") + end + + local function SetText(self, text) + self.text:SetText(text or "") + end + + local function SetDisabled(self, disabled) + self.disabled = disabled + if disabled then + self.frame:Disable() + else + self.frame:Enable() + end + end + + local function Constructor() + local num = AceGUI:GetNextWidgetNum(Type) + local name = "AceGUI30Button"..num + local frame = CreateFrame("Button",name,UIParent,"UIPanelButtonTemplate2") + local self = {} + self.num = num + self.type = Type + self.frame = frame + + local left = _G[name .. "Left"] + local right = _G[name .. "Right"] + local middle = _G[name .. "Middle"] + + left:SetPoint("TOP", frame, "TOP", 0, 0) + left:SetPoint("BOTTOM", frame, "BOTTOM", 0, 0) + + right:SetPoint("TOP", frame, "TOP", 0, 0) + right:SetPoint("BOTTOM", frame, "BOTTOM", 0, 0) + + middle:SetPoint("TOP", frame, "TOP", 0, 0) + middle:SetPoint("BOTTOM", frame, "BOTTOM", 0, 0) + + local text = frame:GetFontString() + self.text = text + text:ClearAllPoints() + text:SetPoint("TOPLEFT",frame,"TOPLEFT", 15, -1) + text:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT", -15, 1) + text:SetJustifyV("MIDDLE") + + frame:SetScript("OnClick",Button_OnClick) + frame:SetScript("OnEnter",Button_OnEnter) + frame:SetScript("OnLeave",Button_OnLeave) + + self.SetText = SetText + self.SetDisabled = SetDisabled + + frame:EnableMouse(true) + + frame:SetHeight(24) + frame:SetWidth(200) + + self.OnRelease = OnRelease + self.OnAcquire = OnAcquire + + self.frame = frame + frame.obj = self + + AceGUI:RegisterAsWidget(self) + return self + end + + AceGUI:RegisterWidgetType(Type,Constructor,Version) +end