diff Libs/AceGUI-3.0/widgets/AceGUIWidget-BlizOptionsGroup.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-BlizOptionsGroup.lua	Thu May 20 19:22:19 2010 -0700
@@ -0,0 +1,153 @@
+local AceGUI = LibStub("AceGUI-3.0")
+
+
+-------------
+-- Widgets --
+-------------
+--[[
+	Widgets must provide the following functions
+		Acquire() - Called when the object is aquired, should set everything to a default hidden state
+		Release() - Called when the object is Released, should remove any anchors and hide the Widget
+		
+	And the following members
+		frame - the frame or derivitive object that will be treated as the widget for size and anchoring purposes
+		type - the type of the object, same as the name given to :RegisterWidget()
+		
+	Widgets contain a table called userdata, this is a safe place to store data associated with the wigdet
+	It will be cleared automatically when a widget is released
+	Placing values directly into a widget object should be avoided
+	
+	If the Widget can act as a container for other Widgets the following
+		content - frame or derivitive that children will be anchored to
+		
+	The Widget can supply the following Optional Members
+
+
+]]
+
+----------------------------------
+-- Blizzard Options Group	    --
+----------------------------------
+--[[
+	Group Designed to be added to the bliz interface options panel
+]]
+
+-- WoW APIs
+local CreateFrame = CreateFrame
+
+do
+	local Type = "BlizOptionsGroup"
+	local Version = 10
+	
+	local function OnAcquire(self)
+
+	end
+	
+	local function OnRelease(self)
+		self.frame:ClearAllPoints()
+		self.frame:Hide()
+		self:SetName()
+	end
+	
+	local function okay(this)
+		this.obj:Fire("okay")
+	end
+	
+	local function cancel(this)
+		this.obj:Fire("cancel")
+	end
+	
+	local function defaults(this)
+		this.obj:Fire("defaults")
+	end
+	
+	local function SetName(self, name, parent)
+		self.frame.name = name
+		self.frame.parent = parent
+	end
+	
+	local function OnShow(this)
+		this.obj:Fire("OnShow")
+	end
+	
+	local function OnHide(this)
+		this.obj:Fire("OnHide")
+	end
+		
+	local function OnWidthSet(self, width)
+		local content = self.content
+		local contentwidth = width - 63
+		if contentwidth < 0 then
+			contentwidth = 0
+		end
+		content:SetWidth(contentwidth)
+		content.width = contentwidth
+	end
+	
+	
+	local function OnHeightSet(self, height)
+		local content = self.content
+		local contentheight = height - 26
+		if contentheight < 0 then
+			contentheight = 0
+		end
+		content:SetHeight(contentheight)
+		content.height = contentheight
+	end
+	
+	local function SetTitle(self, title)
+		local content = self.content
+		content:ClearAllPoints()
+		if not title or title == "" then
+			content:SetPoint("TOPLEFT",self.frame,"TOPLEFT",10,-10)
+			self.label:SetText("")
+		else
+			content:SetPoint("TOPLEFT",self.frame,"TOPLEFT",10,-40)
+			self.label:SetText(title)
+		end
+		content:SetPoint("BOTTOMRIGHT",self.frame,"BOTTOMRIGHT",-10,10)
+	end
+	
+	local function Constructor()
+		local frame = CreateFrame("Frame")
+		local self = {}
+		self.type = Type
+
+		self.OnRelease = OnRelease
+		self.OnAcquire = OnAcquire
+		self.frame = frame
+		self.SetName = SetName
+		
+		self.OnWidthSet = OnWidthSet
+		self.OnHeightSet = OnHeightSet
+		self.SetTitle = SetTitle
+		
+		frame.obj = self
+		frame.okay = okay
+		frame.cancel = cancel
+		frame.defaults = defaults
+		
+		frame:Hide()
+		frame:SetScript("OnHide",OnHide)
+		frame:SetScript("OnShow",OnShow)
+		
+		local label = frame:CreateFontString(nil,"OVERLAY","GameFontNormalLarge")
+		self.label = label
+		label:SetPoint("TOPLEFT", frame, "TOPLEFT", 10, -15)
+		label:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", 10, -45)
+		label:SetJustifyH("LEFT")
+		label:SetJustifyV("TOP")
+		
+		--Container Support
+		local content = CreateFrame("Frame",nil,frame)
+		self.content = content
+		content.obj = self
+		content:SetPoint("TOPLEFT",frame,"TOPLEFT",15,-10)
+		content:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT",-10,10)
+		
+		AceGUI:RegisterAsContainer(self)
+		return self
+	end
+	
+	AceGUI:RegisterWidgetType(Type,Constructor,Version)
+end