WoWInterface SVN oUF_Smee2

[/] [trunk/] [oUF_Smee2_Config/] [Libs/] [AceGUI-3.0-SharedMediaWidgets/] [SharedFunctions.lua] - Rev 4

Compare with Previous | Blame | View Log

-- Widget is based on the AceGUIWidget-DropDown.lua supplied with AceGUI-3.0
-- Widget created by Yssaril
LoadAddOn("LibSharedMedia-3.0")
local AceGUI = LibStub("AceGUI-3.0")
local Media = LibStub("LibSharedMedia-3.0")

AceGUISharedMediaWidgets = {}
do
        AceGUIWidgetLSMlists = {
                ['font'] = Media:HashTable("font"),
                ['sound'] = Media:HashTable("sound"),
                ['statusbar'] = Media:HashTable("statusbar"),
                ['border'] = Media:HashTable("border"),
                ['background'] = Media:HashTable("background"),
        }

        local min, max, floor = math.min, math.max, math.floor
        
        local function fixlevels(parent,...)
                local i = 1
                local child = select(i, ...)
                while child do
                        child:SetFrameLevel(parent:GetFrameLevel()+1)
                        fixlevels(child, child:GetChildren())
                        i = i + 1
                        child = select(i, ...)
                end
        end

        local function OnItemValueChanged(this, event, checked)
                local self = this.userdata.obj
                if self.multiselect then
                        self:Fire("OnValueChanged", this.userdata.value, checked)
                else
                        if checked then
                                self:SetValue(this.userdata.value)
                                self:Fire("OnValueChanged", this.userdata.value)
                        else
                                this:SetValue(true)
                        end             
                        self.pullout:Close()
                end
        end
        
        local function SetValue(self, value)
                if value then
                        self:SetText(value or "")
                end
                self.value = value
        end
        
        AceGUISharedMediaWidgets.fixlevels = fixlevels
        AceGUISharedMediaWidgets.OnItemValueChanged = OnItemValueChanged
        AceGUISharedMediaWidgets.SetValue = SetValue
end

Compare with Previous | Blame