Mercurial > wow > mailopener
view Libs/AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua @ 1:6f17035de058
MO will now request a server refresh when mail opening has finished, ignoring the timer.
(Collected Module) Fixed the time spent to only be displayed if it is being tracked.
The inventory full sound will properly be played again when your bags change.
| author | Zerotorescue |
|---|---|
| date | Sun, 05 Sep 2010 17:02:19 +0200 |
| parents | 823e33465b6e |
| children |
line wrap: on
line source
--[[----------------------------------------------------------------------------- BlizOptionsGroup Container Simple container widget for the integration of AceGUI into the Blizzard Interface Options -------------------------------------------------------------------------------]] local Type, Version = "BlizOptionsGroup", 20 local AceGUI = LibStub and LibStub("AceGUI-3.0", true) if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end -- Lua APIs local pairs = pairs -- WoW APIs local CreateFrame = CreateFrame --[[----------------------------------------------------------------------------- Scripts -------------------------------------------------------------------------------]] local function OnShow(frame) frame.obj:Fire("OnShow") end local function OnHide(frame) frame.obj:Fire("OnHide") end --[[----------------------------------------------------------------------------- Support functions -------------------------------------------------------------------------------]] local function okay(frame) frame.obj:Fire("okay") end local function cancel(frame) frame.obj:Fire("cancel") end local function defaults(frame) frame.obj:Fire("defaults") end --[[----------------------------------------------------------------------------- Methods -------------------------------------------------------------------------------]] local methods = { ["OnAcquire"] = function(self) self:SetName() self:SetTitle() end, -- ["OnRelease"] = nil, ["OnWidthSet"] = function(self, width) local content = self.content local contentwidth = width - 63 if contentwidth < 0 then contentwidth = 0 end content:SetWidth(contentwidth) content.width = contentwidth end, ["OnHeightSet"] = function(self, height) local content = self.content local contentheight = height - 26 if contentheight < 0 then contentheight = 0 end content:SetHeight(contentheight) content.height = contentheight end, ["SetName"] = function(self, name, parent) self.frame.name = name self.frame.parent = parent end, ["SetTitle"] = function(self, title) local content = self.content content:ClearAllPoints() if not title or title == "" then content:SetPoint("TOPLEFT", 10, -10) self.label:SetText("") else content:SetPoint("TOPLEFT", 10, -40) self.label:SetText(title) end content:SetPoint("BOTTOMRIGHT", -10, 10) end } --[[----------------------------------------------------------------------------- Constructor -------------------------------------------------------------------------------]] local function Constructor() local frame = CreateFrame("Frame") frame:Hide() -- support functions for the Blizzard Interface Options frame.okay = okay frame.cancel = cancel frame.defaults = defaults frame:SetScript("OnHide", OnHide) frame:SetScript("OnShow", OnShow) local label = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalLarge") label:SetPoint("TOPLEFT", 10, -15) label:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", 10, -45) label:SetJustifyH("LEFT") label:SetJustifyV("TOP") --Container Support local content = CreateFrame("Frame", nil, frame) content:SetPoint("TOPLEFT", 10, -10) content:SetPoint("BOTTOMRIGHT", -10, 10) local widget = { label = label, frame = frame, content = content, type = Type } for method, func in pairs(methods) do widget[method] = func end return AceGUI:RegisterAsContainer(widget) end AceGUI:RegisterWidgetType(Type, Constructor, Version)
