view AceGUIWidget-Spacer.lua @ 146:543fcf15add7

Handle new itemstring format for item variants. Heroic, warforged, etc, are now additional fields in the itemstring rather than separate item IDs as in the last few expansions. This fixes the tooltip displays for such items; there's nothing yet in place for determining the exact variations (need to finish the list of bonus codes). Some minor efficiency tweaks.
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Tue, 30 Dec 2014 17:52:30 -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)