vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
AceGUIFontString = AceGUIElement:new()

function AceGUIFontString:Setup()
        -- Determine if it's an actual FontString or if it's encapsulated
        -- GetFrameType method not available until 1.9 so relying on a different method until then
        -- if(self.GetFrameType and self:GetFrameType() == "Frame") then
        if(not self.SetText) then
                -- Store the real FontString for later use
                self._text = getglobal(self:GetName().."Text")
               if(not self._text) then
                        error("Invalid Frame used with AceGUIFontString",3)
                end

                -- Set up a metatable to take care of wrapping the methods for the frame
                local index = getmetatable(self).__index
                local text = self._text
                if(type(index) == "function") then
                        setmetatable(self,{__index = function(t,k)
                        if(text[k]) then
                                t[k] = function(a,b,c,d) return text[k](text,a,b,c,d) end
                        end
                        return t[k] or index(t,k)
                        end})
                else
                        setmetatable(self,{__index = function(t,k)
                               if(text[k]) then
                                t[k] = function(a,b,c,d) return text[k](text,a,b,c,d) end
                        end
                        return t[k] or index[k]
                        end})
                end
        end
end

function AceGUIFontString:Configure()

        local def = self._def
        -- GetFont method not available until 1.9.  I will assume the font is set for testing
        --[[if(not self:GetFont()) then
                self:SetFont(def.Font or "Fonts\\FRIZQT__.TTF",def.FontHeight or 12,unpack(def.flags or {}))
        end]]
        def.Color = def.Color or {r = 1,g = 0.82,b = 0}
        self:SetTextColor(def.Color.r,def.Color.g,def.Color.b,def.Color.a)
        -- SetNonSpaceWrap Method not available until 1.9
        -- self:SetNonSpaceWrap(def.NonSpaceWrap)
        if(def.VertexColor) then
                self:SetVertexColor(def.VertexColor.r,def.VertexColor.g,def.VertexColor.b,def.VertexColor.a)
        end
        if(def.AlphaGradient) then
                self:SetAlphaGradient(def.AlphaGradient.start,def.AlphaGradient.length)
        end
        if(def.justifyH) then
                self:SetJustifyH(def.justifyH)
        end
        if(def.justifyV) then
                self:SetJustifyV(def.justfyV)
        end


end

function AceGUIFontString:GetValue()
        return self:GetText()
end

function AceGUIFontString:SetValue(val)
        return self:SetText(val)
end