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