view AceGUIWidget-Spacer.lua @ 151:42dd3076baaf

Initial attempt at tracking bonus rolls and non-loot items. Add more loot-catching patterns, and generalize them a little more. Bonus rolls are tracked by default, non-loot stuff is not. Bonus rolls don't seem to be working, but non-loot definitely is. (It may be that the patterns for bonus rolls are not actually used by the game client, or rather, that the game client does not issue those events for bonus rolls which are not your own. I have yet to win a bonus roll since implementing the code, but one person in LFR claimed to win a bonus item which simply wasn't visible to me at all. More data needed.)
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Fri, 09 Jan 2015 19:14:56 -0500
parents 822b6ca3ef89
children
line wrap: on
line source
--[[-----------------------------------------------------------------------------
Spacer Widget

Spacer API

:SetImage(path,...)
   same as Label:SetImage

:SetImageSize(w,h)
   same as Label:SetImageSize

Because the whole point is to take up space, the most-used functions will
probably be the sizing routines from the base widget API.

-farmbuyer
-------------------------------------------------------------------------------]]
local Type, Version = "Spacer", 2
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

-- Lua APIs

-- WoW APIs
local CreateFrame = CreateFrame


--[[-----------------------------------------------------------------------------
Support functions
-------------------------------------------------------------------------------]]


--[[-----------------------------------------------------------------------------
Scripts
-------------------------------------------------------------------------------]]


--[[-----------------------------------------------------------------------------
Methods
-------------------------------------------------------------------------------]]
local methods = {
	["OnAcquire"] = function (self)
		self:SetHeight(110)
		self:SetWidth(110)
		self:SetImage(nil)
		self.frame:EnableMouse(true)  -- needed?
	end,

	--["OnRelease"] = function (self) end,

	["SetImage"] = function (self, path, ...)
		local space = self.space

		space:SetTexture (path or "Interface\\GLUES\\COMMON\\Glue-Tooltip-Background")
		local n = select('#', ...)
		if n == 4 or n == 8 then
			space:SetTexCoord(...)
		end
	end,

	["SetImageSize"] = function (self, width, height)
		self.frame:SetWidth(width)
		self.frame:SetHeight(height)
	end,
}


--[[-----------------------------------------------------------------------------
Constructor
-------------------------------------------------------------------------------]]
local function Constructor()
	local frame = CreateFrame("Frame",nil,UIParent)

	local space = frame:CreateTexture(nil,"BACKGROUND")
	space:SetAllPoints(frame)
	space:SetTexture("Interface\\GLUES\\COMMON\\Glue-Tooltip-Background")
	space:SetBlendMode("ADD")

	local widget = {
		space   = space,
		frame   = frame,
		type    = Type
	}
	for method, func in pairs(methods) do
		widget[method] = func
	end

	return AceGUI:RegisterAsWidget(widget)
end

AceGUI:RegisterWidgetType(Type,Constructor,Version)