local defaults = {
profile = {
- indicatorFont = "Arial Narrow",
- showIcons = true,
enabled = true,
indicators = {
['**'] = {
return;
end
+ InterfaceOptionsFrame_OpenToCategory(OmaRF.optionsFrames.Profile);
InterfaceOptionsFrame_OpenToCategory(OmaRF.optionsFrames.Indicators);
end
-local media = LibStub:GetLibrary("LibSharedMedia-3.0");
local f = OmaRF.frames;
local positions = OmaRF.positions;
local pad = 2;
if not f[frameName] then return end
local config = OmaRF.db.profile.indicators;
- local font = media and media:Fetch('font', config.indicatorFont) or STANDARD_TEXT_FONT;
for pos, ind in pairs(f[frameName]) do
- ind.text:SetFont(font, config[pos]["textSize"]);
+ ind.text:SetFont(STANDARD_TEXT_FONT, config[pos]["textSize"]);
ind.text:SetTextColor(unpack(config[pos]["textColor"]));
ind.icon:SetWidth(config[pos]["iconSize"]);
ind.icon:SetHeight(config[pos]["iconSize"]);
<Include file="libs\CallbackHandler-1.0\CallbackHandler-1.0.xml" />
<Include file="libs\AceAddon-3.0\AceAddon-3.0.xml" />
<Include file="libs\AceDB-3.0\AceDB-3.0.xml" />
-<Include file="libs\LibSharedMedia-3.0\lib.xml"/>
</Ui>
+++ /dev/null
---[[
-Name: LibSharedMedia-3.0
-Revision: $Revision: 91 $
-Author: Elkano (elkano@gmx.de)
-Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com)
-Website: http://www.wowace.com/projects/libsharedmedia-3-0/
-Description: Shared handling of media data (fonts, sounds, textures, ...) between addons.
-Dependencies: LibStub, CallbackHandler-1.0
-License: LGPL v2.1
-]]
-
-local MAJOR, MINOR = "LibSharedMedia-3.0", 6010002 -- 6.1.0 v2 / increase manually on changes
-local lib = LibStub:NewLibrary(MAJOR, MINOR)
-
-if not lib then return end
-
-local _G = getfenv(0)
-
-local pairs = _G.pairs
-local type = _G.type
-
-local band = _G.bit.band
-
-local table_insert = _G.table.insert
-local table_sort = _G.table.sort
-
-local locale = GetLocale()
-local locale_is_western
-local LOCALE_MASK = 0
-lib.LOCALE_BIT_koKR = 1
-lib.LOCALE_BIT_ruRU = 2
-lib.LOCALE_BIT_zhCN = 4
-lib.LOCALE_BIT_zhTW = 8
-lib.LOCALE_BIT_western = 128
-
-local CallbackHandler = LibStub:GetLibrary("CallbackHandler-1.0")
-
-lib.callbacks = lib.callbacks or CallbackHandler:New(lib)
-
-lib.DefaultMedia = lib.DefaultMedia or {}
-lib.MediaList = lib.MediaList or {}
-lib.MediaTable = lib.MediaTable or {}
-lib.MediaType = lib.MediaType or {}
-lib.OverrideMedia = lib.OverrideMedia or {}
-
-local defaultMedia = lib.DefaultMedia
-local mediaList = lib.MediaList
-local mediaTable = lib.MediaTable
-local overrideMedia = lib.OverrideMedia
-
-
--- create mediatype constants
-lib.MediaType.BACKGROUND = "background" -- background textures
-lib.MediaType.BORDER = "border" -- border textures
-lib.MediaType.FONT = "font" -- fonts
-lib.MediaType.STATUSBAR = "statusbar" -- statusbar textures
-lib.MediaType.SOUND = "sound" -- sound files
-
--- populate lib with default Blizzard data
--- BACKGROUND
-if not lib.MediaTable.background then lib.MediaTable.background = {} end
-lib.MediaTable.background["None"] = [[]]
-lib.MediaTable.background["Blizzard Collections Background"] = [[Interface\Collections\CollectionsBackgroundTile]]
-lib.MediaTable.background["Blizzard Dialog Background"] = [[Interface\DialogFrame\UI-DialogBox-Background]]
-lib.MediaTable.background["Blizzard Dialog Background Dark"] = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]]
-lib.MediaTable.background["Blizzard Dialog Background Gold"] = [[Interface\DialogFrame\UI-DialogBox-Gold-Background]]
-lib.MediaTable.background["Blizzard Garrison Background"] = [[Interface\Garrison\GarrisonUIBackground]]
-lib.MediaTable.background["Blizzard Garrison Background 2"] = [[Interface\Garrison\GarrisonUIBackground2]]
-lib.MediaTable.background["Blizzard Garrison Background 3"] = [[Interface\Garrison\GarrisonMissionUIInfoBoxBackgroundTile]]
-lib.MediaTable.background["Blizzard Low Health"] = [[Interface\FullScreenTextures\LowHealth]]
-lib.MediaTable.background["Blizzard Marble"] = [[Interface\FrameGeneral\UI-Background-Marble]]
-lib.MediaTable.background["Blizzard Out of Control"] = [[Interface\FullScreenTextures\OutOfControl]]
-lib.MediaTable.background["Blizzard Parchment"] = [[Interface\AchievementFrame\UI-Achievement-Parchment-Horizontal]]
-lib.MediaTable.background["Blizzard Parchment 2"] = [[Interface\AchievementFrame\UI-GuildAchievement-Parchment-Horizontal]]
-lib.MediaTable.background["Blizzard Rock"] = [[Interface\FrameGeneral\UI-Background-Rock]]
-lib.MediaTable.background["Blizzard Tabard Background"] = [[Interface\TabardFrame\TabardFrameBackground]]
-lib.MediaTable.background["Blizzard Tooltip"] = [[Interface\Tooltips\UI-Tooltip-Background]]
-lib.MediaTable.background["Solid"] = [[Interface\Buttons\WHITE8X8]]
-lib.DefaultMedia.background = "None"
-
--- BORDER
-if not lib.MediaTable.border then lib.MediaTable.border = {} end
-lib.MediaTable.border["None"] = [[]]
-lib.MediaTable.border["Blizzard Achievement Wood"] = [[Interface\AchievementFrame\UI-Achievement-WoodBorder]]
-lib.MediaTable.border["Blizzard Chat Bubble"] = [[Interface\Tooltips\ChatBubble-Backdrop]]
-lib.MediaTable.border["Blizzard Dialog"] = [[Interface\DialogFrame\UI-DialogBox-Border]]
-lib.MediaTable.border["Blizzard Dialog Gold"] = [[Interface\DialogFrame\UI-DialogBox-Gold-Border]]
-lib.MediaTable.border["Blizzard Party"] = [[Interface\CHARACTERFRAME\UI-Party-Border]]
-lib.MediaTable.border["Blizzard Tooltip"] = [[Interface\Tooltips\UI-Tooltip-Border]]
-lib.DefaultMedia.border = "None"
-
--- FONT
-if not lib.MediaTable.font then lib.MediaTable.font = {} end
-local SML_MT_font = lib.MediaTable.font
---[[
-All font files are currently in all clients, the following table depicts which font supports which charset as of 5.0.4
-Fonts were checked using langcover.pl from DejaVu fonts (http://sourceforge.net/projects/dejavu/) and FontForge (http://fontforge.org/)
-latin means check for: de, en, es, fr, it, pt
-
-file name latin koKR ruRU zhCN zhTW
-2002.ttf 2002 X X X - -
-2002B.ttf 2002 Bold X X X - -
-ARHei.ttf AR CrystalzcuheiGBK Demibold X - X X X
-ARIALN.TTF Arial Narrow X - X - -
-ARKai_C.ttf AR ZhongkaiGBK Medium (Combat) X - X X X
-ARKai_T.ttf AR ZhongkaiGBK Medium X - X X X
-bHEI00M.ttf AR Heiti2 Medium B5 - - - - X
-bHEI01B.ttf AR Heiti2 Bold B5 - - - - X
-bKAI00M.ttf AR Kaiti Medium B5 - - - - X
-bLEI00D.ttf AR Leisu Demi B5 - - - - X
-FRIZQT__.TTF Friz Quadrata TT X - - - -
-FRIZQT___CYR.TTF FrizQuadrataCTT x - X - -
-K_Damage.TTF YDIWingsM - X X - -
-K_Pagetext.TTF MoK X X X - -
-MORPHEUS.TTF Morpheus X - - - -
-MORPHEUS_CYR.TTF Morpheus X - X - -
-NIM_____.ttf Nimrod MT X - X - -
-SKURRI.TTF Skurri X - - - -
-SKURRI_CYR.TTF Skurri X - X - -
-
-WARNING: Although FRIZQT___CYR is available on western clients, it doesn't support special European characters e.g. é, ï, ö
-Due to this, we cannot use it as a replacement for FRIZQT__.TTF
-]]
-
-if locale == "koKR" then
- LOCALE_MASK = lib.LOCALE_BIT_koKR
---
- SML_MT_font["굵은 글꼴"] = [[Fonts\2002B.TTF]]
- SML_MT_font["기본 글꼴"] = [[Fonts\2002.TTF]]
- SML_MT_font["데미지 글꼴"] = [[Fonts\K_Damage.TTF]]
- SML_MT_font["퀘스트 글꼴"] = [[Fonts\K_Pagetext.TTF]]
---
- lib.DefaultMedia["font"] = "기본 글꼴" -- someone from koKR please adjust if needed
---
-elseif locale == "zhCN" then
- LOCALE_MASK = lib.LOCALE_BIT_zhCN
---
- SML_MT_font["伤害数字"] = [[Fonts\ARKai_C.ttf]]
- SML_MT_font["默认"] = [[Fonts\ARKai_T.ttf]]
- SML_MT_font["聊天"] = [[Fonts\ARHei.ttf]]
---
- lib.DefaultMedia["font"] = "默认" -- someone from zhCN please adjust if needed
---
-elseif locale == "zhTW" then
- LOCALE_MASK = lib.LOCALE_BIT_zhTW
---
- SML_MT_font["提示訊息"] = [[Fonts\bHEI00M.ttf]]
- SML_MT_font["聊天"] = [[Fonts\bHEI01B.ttf]]
- SML_MT_font["傷害數字"] = [[Fonts\bKAI00M.ttf]]
- SML_MT_font["預設"] = [[Fonts\bLEI00D.ttf]]
---
- lib.DefaultMedia["font"] = "預設" -- someone from zhTW please adjust if needed
-
-elseif locale == "ruRU" then
- LOCALE_MASK = lib.LOCALE_BIT_ruRU
---
- SML_MT_font["2002"] = [[Fonts\2002.TTF]]
- SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]]
- SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]]
- SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]]
- SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT___CYR.TTF]]
- SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]]
- SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]]
- SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]]
- SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]]
---
- lib.DefaultMedia.font = "Friz Quadrata TT"
---
-else
- LOCALE_MASK = lib.LOCALE_BIT_western
- locale_is_western = true
---
- SML_MT_font["2002"] = [[Fonts\2002.TTF]]
- SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]]
- SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]]
- SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]]
- SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT__.TTF]]
- SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]]
- SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]]
- SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]]
- SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]]
---
- lib.DefaultMedia.font = "Friz Quadrata TT"
---
-end
-
--- STATUSBAR
-if not lib.MediaTable.statusbar then lib.MediaTable.statusbar = {} end
-lib.MediaTable.statusbar["Blizzard"] = [[Interface\TargetingFrame\UI-StatusBar]]
-lib.MediaTable.statusbar["Blizzard Character Skills Bar"] = [[Interface\PaperDollInfoFrame\UI-Character-Skills-Bar]]
-lib.MediaTable.statusbar["Blizzard Raid Bar"] = [[Interface\RaidFrame\Raid-Bar-Hp-Fill]]
-lib.DefaultMedia.statusbar = "Blizzard"
-
--- SOUND
-if not lib.MediaTable.sound then lib.MediaTable.sound = {} end
-lib.MediaTable.sound["None"] = [[Interface\Quiet.ogg]] -- Relies on the fact that PlaySound[File] doesn't error on non-existing input.
-lib.DefaultMedia.sound = "None"
-
-local function rebuildMediaList(mediatype)
- local mtable = mediaTable[mediatype]
- if not mtable then return end
- if not mediaList[mediatype] then mediaList[mediatype] = {} end
- local mlist = mediaList[mediatype]
- -- list can only get larger, so simply overwrite it
- local i = 0
- for k in pairs(mtable) do
- i = i + 1
- mlist[i] = k
- end
- table_sort(mlist)
-end
-
-function lib:Register(mediatype, key, data, langmask)
- if type(mediatype) ~= "string" then
- error(MAJOR..":Register(mediatype, key, data, langmask) - mediatype must be string, got "..type(mediatype))
- end
- if type(key) ~= "string" then
- error(MAJOR..":Register(mediatype, key, data, langmask) - key must be string, got "..type(key))
- end
- mediatype = mediatype:lower()
- if mediatype == lib.MediaType.FONT and ((langmask and band(langmask, LOCALE_MASK) == 0) or not (langmask or locale_is_western)) then return false end
- if mediatype == lib.MediaType.SOUND and type(data) == "string" then
- local path = data:lower()
- -- Only ogg and mp3 are valid sounds.
- if not path:find(".ogg", nil, true) and not path:find(".mp3", nil, true) then
- return false
- end
- end
- if not mediaTable[mediatype] then mediaTable[mediatype] = {} end
- local mtable = mediaTable[mediatype]
- if mtable[key] then return false end
-
- mtable[key] = data
- rebuildMediaList(mediatype)
- self.callbacks:Fire("LibSharedMedia_Registered", mediatype, key)
- return true
-end
-
-function lib:Fetch(mediatype, key, noDefault)
- local mtt = mediaTable[mediatype]
- local overridekey = overrideMedia[mediatype]
- local result = mtt and ((overridekey and mtt[overridekey] or mtt[key]) or (not noDefault and defaultMedia[mediatype] and mtt[defaultMedia[mediatype]])) or nil
- return result ~= "" and result or nil
-end
-
-function lib:IsValid(mediatype, key)
- return mediaTable[mediatype] and (not key or mediaTable[mediatype][key]) and true or false
-end
-
-function lib:HashTable(mediatype)
- return mediaTable[mediatype]
-end
-
-function lib:List(mediatype)
- if not mediaTable[mediatype] then
- return nil
- end
- if not mediaList[mediatype] then
- rebuildMediaList(mediatype)
- end
- return mediaList[mediatype]
-end
-
-function lib:GetGlobal(mediatype)
- return overrideMedia[mediatype]
-end
-
-function lib:SetGlobal(mediatype, key)
- if not mediaTable[mediatype] then
- return false
- end
- overrideMedia[mediatype] = (key and mediaTable[mediatype][key]) and key or nil
- self.callbacks:Fire("LibSharedMedia_SetGlobal", mediatype, overrideMedia[mediatype])
- return true
-end
-
-function lib:GetDefault(mediatype)
- return defaultMedia[mediatype]
-end
-
-function lib:SetDefault(mediatype, key)
- if mediaTable[mediatype] and mediaTable[mediatype][key] and not defaultMedia[mediatype] then
- defaultMedia[mediatype] = key
- return true
- else
- return false
- end
-end
+++ /dev/null
-<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
-..\FrameXML\UI.xsd">
- <Script file="LibSharedMedia-3.0.lua" />
-</Ui>
type = "toggle",
name = "Enable",
},
- indicatorFont = {
- type = "select",
- dialogControl = "LSM30_Font",
- name = "Indicator font",
- values = AceGUIWidgetLSMlists.font,
- },
}
};
<Include file="libs\AceConsole-3.0\AceConsole-3.0.xml" />
<Include file="libs\AceDB-3.0\AceDB-3.0.xml" />
<Include file="libs\AceDBOptions-3.0\AceDBOptions-3.0.xml" />
-<Include file="libs\LibSharedMedia-3.0\lib.xml"/>
-<Include file="libs\AceGUI-3.0-SharedMediaWidgets\widget.xml"/>
</Ui>
+++ /dev/null
--- Widget is based on the AceGUIWidget-DropDown.lua supplied with AceGUI-3.0
--- Widget created by Yssaril
-
-local AceGUI = LibStub("AceGUI-3.0")
-local Media = LibStub("LibSharedMedia-3.0")
-
-local AGSMW = LibStub("AceGUISharedMediaWidgets-1.0")
-
-do
- local widgetType = "LSM30_Background"
- local widgetVersion = 11
-
- local contentFrameCache = {}
- local function ReturnSelf(self)
- self:ClearAllPoints()
- self:Hide()
- self.check:Hide()
- table.insert(contentFrameCache, self)
- end
-
- local function ContentOnClick(this, button)
- local self = this.obj
- self:Fire("OnValueChanged", this.text:GetText())
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function ContentOnEnter(this, button)
- local self = this.obj
- local text = this.text:GetText()
- local background = self.list[text] ~= text and self.list[text] or Media:Fetch('background',text)
- self.dropdown.bgTex:SetTexture(background)
- end
-
- local function GetContentLine()
- local frame
- if next(contentFrameCache) then
- frame = table.remove(contentFrameCache)
- else
- frame = CreateFrame("Button", nil, UIParent)
- --frame:SetWidth(200)
- frame:SetHeight(18)
- frame:SetHighlightTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]], "ADD")
- frame:SetScript("OnClick", ContentOnClick)
- frame:SetScript("OnEnter", ContentOnEnter)
-
- local check = frame:CreateTexture("OVERLAY")
- check:SetWidth(16)
- check:SetHeight(16)
- check:SetPoint("LEFT",frame,"LEFT",1,-1)
- check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check")
- check:Hide()
- frame.check = check
-
- local text = frame:CreateFontString(nil,"OVERLAY","GameFontWhite")
- local font, size = text:GetFont()
- text:SetFont(font,size,"OUTLINE")
-
- text:SetPoint("TOPLEFT", check, "TOPRIGHT", 1, 0)
- text:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 0)
- text:SetJustifyH("LEFT")
- text:SetText("Test Test Test Test Test Test Test")
- frame.text = text
-
- frame.ReturnSelf = ReturnSelf
- end
- frame:Show()
- return frame
- end
-
- local function OnAcquire(self)
- self:SetHeight(44)
- self:SetWidth(200)
- end
-
- local function OnRelease(self)
- self:SetText("")
- self:SetLabel("")
- self:SetDisabled(false)
-
- self.value = nil
- self.list = nil
- self.open = nil
- self.hasClose = nil
-
- self.frame:ClearAllPoints()
- self.frame:Hide()
- end
-
- local function SetValue(self, value) -- Set the value to an item in the List.
- if self.list then
- self:SetText(value or "")
- end
- self.value = value
- end
-
- local function GetValue(self)
- return self.value
- end
-
- local function SetList(self, list) -- Set the list of values for the dropdown (key => value pairs)
- self.list = list or Media:HashTable("background")
- end
-
-
- local function SetText(self, text) -- Set the text displayed in the box.
- self.frame.text:SetText(text or "")
- local background = self.list[text] ~= text and self.list[text] or Media:Fetch('background',text)
-
- self.frame.displayButton:SetBackdrop({bgFile = background,
- edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
- edgeSize = 16,
- insets = { left = 4, right = 4, top = 4, bottom = 4 }})
- end
-
- local function SetLabel(self, text) -- Set the text for the label.
- self.frame.label:SetText(text or "")
- end
-
- local function AddItem(self, key, value) -- Add an item to the list.
- self.list = self.list or {}
- self.list[key] = value
- end
- local SetItemValue = AddItem -- Set the value of a item in the list. <<same as adding a new item>>
-
- local function SetMultiselect(self, flag) end -- Toggle multi-selecting. <<Dummy function to stay inline with the dropdown API>>
- local function GetMultiselect() return false end-- Query the multi-select flag. <<Dummy function to stay inline with the dropdown API>>
- local function SetItemDisabled(self, key) end-- Disable one item in the list. <<Dummy function to stay inline with the dropdown API>>
-
- local function SetDisabled(self, disabled) -- Disable the widget.
- self.disabled = disabled
- if disabled then
- self.frame:Disable()
- self.frame.displayButton:SetBackdropColor(.2,.2,.2,1)
- else
- self.frame:Enable()
- self.frame.displayButton:SetBackdropColor(1,1,1,1)
- end
- end
-
- local function textSort(a,b)
- return string.upper(a) < string.upper(b)
- end
-
- local sortedlist = {}
- local function ToggleDrop(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- AceGUI:ClearFocus()
- else
- AceGUI:SetFocus(self)
- self.dropdown = AGSMW:GetDropDownFrame()
- local width = self.frame:GetWidth()
- self.dropdown:SetPoint("TOPLEFT", self.frame, "BOTTOMLEFT")
- self.dropdown:SetPoint("TOPRIGHT", self.frame, "BOTTOMRIGHT", width < 160 and (160 - width) or 0, 0)
- for k, v in pairs(self.list) do
- sortedlist[#sortedlist+1] = k
- end
- table.sort(sortedlist, textSort)
- for i, k in ipairs(sortedlist) do
- local f = GetContentLine()
- f.text:SetText(k)
- --print(k)
- if k == self.value then
- f.check:Show()
- end
- f.obj = self
- f.dropdown = self.dropdown
- self.dropdown:AddFrame(f)
- end
- wipe(sortedlist)
- end
- end
-
- local function ClearFocus(self)
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function OnHide(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function Drop_OnEnter(this)
- this.obj:Fire("OnEnter")
- end
-
- local function Drop_OnLeave(this)
- this.obj:Fire("OnLeave")
- end
-
- local function Constructor()
- local frame = AGSMW:GetBaseFrameWithWindow()
- local self = {}
-
- self.type = widgetType
- self.frame = frame
- frame.obj = self
- frame.dropButton.obj = self
- frame.dropButton:SetScript("OnEnter", Drop_OnEnter)
- frame.dropButton:SetScript("OnLeave", Drop_OnLeave)
- frame.dropButton:SetScript("OnClick",ToggleDrop)
- frame:SetScript("OnHide", OnHide)
-
- self.alignoffset = 31
-
- self.OnRelease = OnRelease
- self.OnAcquire = OnAcquire
- self.ClearFocus = ClearFocus
- self.SetText = SetText
- self.SetValue = SetValue
- self.GetValue = GetValue
- self.SetList = SetList
- self.SetLabel = SetLabel
- self.SetDisabled = SetDisabled
- self.AddItem = AddItem
- self.SetMultiselect = SetMultiselect
- self.GetMultiselect = GetMultiselect
- self.SetItemValue = SetItemValue
- self.SetItemDisabled = SetItemDisabled
- self.ToggleDrop = ToggleDrop
-
- AceGUI:RegisterAsWidget(self)
- return self
- end
-
- AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion)
-
-end
+++ /dev/null
--- Widget is based on the AceGUIWidget-DropDown.lua supplied with AceGUI-3.0
--- Widget created by Yssaril
-
-local AceGUI = LibStub("AceGUI-3.0")
-local Media = LibStub("LibSharedMedia-3.0")
-
-local AGSMW = LibStub("AceGUISharedMediaWidgets-1.0")
-
-do
- local widgetType = "LSM30_Border"
- local widgetVersion = 11
-
- local contentFrameCache = {}
- local function ReturnSelf(self)
- self:ClearAllPoints()
- self:Hide()
- self.check:Hide()
- table.insert(contentFrameCache, self)
- end
-
- local function ContentOnClick(this, button)
- local self = this.obj
- self:Fire("OnValueChanged", this.text:GetText())
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function ContentOnEnter(this, button)
- local self = this.obj
- local text = this.text:GetText()
- local border = self.list[text] ~= text and self.list[text] or Media:Fetch('border',text)
- this.dropdown:SetBackdrop({edgeFile = border,
- bgFile=[[Interface\DialogFrame\UI-DialogBox-Background-Dark]],
- tile = true, tileSize = 16, edgeSize = 16,
- insets = { left = 4, right = 4, top = 4, bottom = 4 }})
- end
-
- local function GetContentLine()
- local frame
- if next(contentFrameCache) then
- frame = table.remove(contentFrameCache)
- else
- frame = CreateFrame("Button", nil, UIParent)
- --frame:SetWidth(200)
- frame:SetHeight(18)
- frame:SetHighlightTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]], "ADD")
- frame:SetScript("OnClick", ContentOnClick)
- frame:SetScript("OnEnter", ContentOnEnter)
- local check = frame:CreateTexture("OVERLAY")
- check:SetWidth(16)
- check:SetHeight(16)
- check:SetPoint("LEFT",frame,"LEFT",1,-1)
- check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check")
- check:Hide()
- frame.check = check
- local text = frame:CreateFontString(nil,"OVERLAY","GameFontWhite")
- text:SetPoint("TOPLEFT", check, "TOPRIGHT", 1, 0)
- text:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 0)
- text:SetJustifyH("LEFT")
- text:SetText("Test Test Test Test Test Test Test")
- frame.text = text
- frame.ReturnSelf = ReturnSelf
- end
- frame:Show()
- return frame
- end
-
- local function OnAcquire(self)
- self:SetHeight(44)
- self:SetWidth(200)
- end
-
- local function OnRelease(self)
- self:SetText("")
- self:SetLabel("")
- self:SetDisabled(false)
-
- self.value = nil
- self.list = nil
- self.open = nil
- self.hasClose = nil
-
- self.frame:ClearAllPoints()
- self.frame:Hide()
- end
-
- local function SetValue(self, value) -- Set the value to an item in the List.
- if self.list then
- self:SetText(value or "")
- end
- self.value = value
- end
-
- local function GetValue(self)
- return self.value
- end
-
- local function SetList(self, list) -- Set the list of values for the dropdown (key => value pairs)
- self.list = list or Media:HashTable("border")
- end
-
-
- local function SetText(self, text) -- Set the text displayed in the box.
- self.frame.text:SetText(text or "")
- local border = self.list[text] ~= text and self.list[text] or Media:Fetch('border',text)
-
- self.frame.displayButton:SetBackdrop({edgeFile = border,
- bgFile=[[Interface\DialogFrame\UI-DialogBox-Background-Dark]],
- tile = true, tileSize = 16, edgeSize = 16,
- insets = { left = 4, right = 4, top = 4, bottom = 4 }})
- end
-
- local function SetLabel(self, text) -- Set the text for the label.
- self.frame.label:SetText(text or "")
- end
-
- local function AddItem(self, key, value) -- Add an item to the list.
- self.list = self.list or {}
- self.list[key] = value
- end
- local SetItemValue = AddItem -- Set the value of a item in the list. <<same as adding a new item>>
-
- local function SetMultiselect(self, flag) end -- Toggle multi-selecting. <<Dummy function to stay inline with the dropdown API>>
- local function GetMultiselect() return false end-- Query the multi-select flag. <<Dummy function to stay inline with the dropdown API>>
- local function SetItemDisabled(self, key) end-- Disable one item in the list. <<Dummy function to stay inline with the dropdown API>>
-
- local function SetDisabled(self, disabled) -- Disable the widget.
- self.disabled = disabled
- if disabled then
- self.frame:Disable()
- else
- self.frame:Enable()
- end
- end
-
- local function textSort(a,b)
- return string.upper(a) < string.upper(b)
- end
-
- local sortedlist = {}
- local function ToggleDrop(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- AceGUI:ClearFocus()
- else
- AceGUI:SetFocus(self)
- self.dropdown = AGSMW:GetDropDownFrame()
- local width = self.frame:GetWidth()
- self.dropdown:SetPoint("TOPLEFT", self.frame, "BOTTOMLEFT")
- self.dropdown:SetPoint("TOPRIGHT", self.frame, "BOTTOMRIGHT", width < 160 and (160 - width) or 0, 0)
- for k, v in pairs(self.list) do
- sortedlist[#sortedlist+1] = k
- end
- table.sort(sortedlist, textSort)
- for i, k in ipairs(sortedlist) do
- local f = GetContentLine()
- f.text:SetText(k)
- --print(k)
- if k == self.value then
- f.check:Show()
- end
- f.obj = self
- f.dropdown = self.dropdown
- self.dropdown:AddFrame(f)
- end
- wipe(sortedlist)
- end
- end
-
- local function ClearFocus(self)
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function OnHide(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function Drop_OnEnter(this)
- this.obj:Fire("OnEnter")
- end
-
- local function Drop_OnLeave(this)
- this.obj:Fire("OnLeave")
- end
-
- local function Constructor()
- local frame = AGSMW:GetBaseFrameWithWindow()
- local self = {}
-
- self.type = widgetType
- self.frame = frame
- frame.obj = self
- frame.dropButton.obj = self
- frame.dropButton:SetScript("OnEnter", Drop_OnEnter)
- frame.dropButton:SetScript("OnLeave", Drop_OnLeave)
- frame.dropButton:SetScript("OnClick",ToggleDrop)
- frame:SetScript("OnHide", OnHide)
-
- self.alignoffset = 31
-
- self.OnRelease = OnRelease
- self.OnAcquire = OnAcquire
- self.ClearFocus = ClearFocus
- self.SetText = SetText
- self.SetValue = SetValue
- self.GetValue = GetValue
- self.SetList = SetList
- self.SetLabel = SetLabel
- self.SetDisabled = SetDisabled
- self.AddItem = AddItem
- self.SetMultiselect = SetMultiselect
- self.GetMultiselect = GetMultiselect
- self.SetItemValue = SetItemValue
- self.SetItemDisabled = SetItemDisabled
- self.ToggleDrop = ToggleDrop
-
- AceGUI:RegisterAsWidget(self)
- return self
- end
-
- AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion)
-
-end
+++ /dev/null
--- Widget is based on the AceGUIWidget-DropDown.lua supplied with AceGUI-3.0
--- Widget created by Yssaril
-
-local AceGUI = LibStub("AceGUI-3.0")
-local Media = LibStub("LibSharedMedia-3.0")
-
-local AGSMW = LibStub("AceGUISharedMediaWidgets-1.0")
-
-do
- local widgetType = "LSM30_Font"
- local widgetVersion = 11
-
- local contentFrameCache = {}
- local function ReturnSelf(self)
- self:ClearAllPoints()
- self:Hide()
- self.check:Hide()
- table.insert(contentFrameCache, self)
- end
-
- local function ContentOnClick(this, button)
- local self = this.obj
- self:Fire("OnValueChanged", this.text:GetText())
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function GetContentLine()
- local frame
- if next(contentFrameCache) then
- frame = table.remove(contentFrameCache)
- else
- frame = CreateFrame("Button", nil, UIParent)
- --frame:SetWidth(200)
- frame:SetHeight(18)
- frame:SetHighlightTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]], "ADD")
- frame:SetScript("OnClick", ContentOnClick)
- local check = frame:CreateTexture("OVERLAY")
- check:SetWidth(16)
- check:SetHeight(16)
- check:SetPoint("LEFT",frame,"LEFT",1,-1)
- check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check")
- check:Hide()
- frame.check = check
- local text = frame:CreateFontString(nil,"OVERLAY","GameFontWhite")
- text:SetPoint("TOPLEFT", check, "TOPRIGHT", 1, 0)
- text:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 0)
- text:SetJustifyH("LEFT")
- text:SetText("Test Test Test Test Test Test Test")
- frame.text = text
- frame.ReturnSelf = ReturnSelf
- end
- frame:Show()
- return frame
- end
-
- local function OnAcquire(self)
- self:SetHeight(44)
- self:SetWidth(200)
- end
-
- local function OnRelease(self)
- self:SetText("")
- self:SetLabel("")
- self:SetDisabled(false)
-
- self.value = nil
- self.list = nil
- self.open = nil
- self.hasClose = nil
-
- self.frame:ClearAllPoints()
- self.frame:Hide()
- end
-
- local function SetValue(self, value) -- Set the value to an item in the List.
- if self.list then
- self:SetText(value or "")
- end
- self.value = value
- end
-
- local function GetValue(self)
- return self.value
- end
-
- local function SetList(self, list) -- Set the list of values for the dropdown (key => value pairs)
- self.list = list or Media:HashTable("font")
- end
-
- local function SetText(self, text) -- Set the text displayed in the box.
- self.frame.text:SetText(text or "")
- local font = self.list[text] ~= text and self.list[text] or Media:Fetch('font',text)
- local _, size, outline= self.frame.text:GetFont()
- self.frame.text:SetFont(font,size,outline)
- end
-
- local function SetLabel(self, text) -- Set the text for the label.
- self.frame.label:SetText(text or "")
- end
-
- local function AddItem(self, key, value) -- Add an item to the list.
- self.list = self.list or {}
- self.list[key] = value
- end
- local SetItemValue = AddItem -- Set the value of a item in the list. <<same as adding a new item>>
-
- local function SetMultiselect(self, flag) end -- Toggle multi-selecting. <<Dummy function to stay inline with the dropdown API>>
- local function GetMultiselect() return false end-- Query the multi-select flag. <<Dummy function to stay inline with the dropdown API>>
- local function SetItemDisabled(self, key) end-- Disable one item in the list. <<Dummy function to stay inline with the dropdown API>>
-
- local function SetDisabled(self, disabled) -- Disable the widget.
- self.disabled = disabled
- if disabled then
- self.frame:Disable()
- else
- self.frame:Enable()
- end
- end
-
- local function textSort(a,b)
- return string.upper(a) < string.upper(b)
- end
-
- local sortedlist = {}
- local function ToggleDrop(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- AceGUI:ClearFocus()
- else
- AceGUI:SetFocus(self)
- self.dropdown = AGSMW:GetDropDownFrame()
- local width = self.frame:GetWidth()
- self.dropdown:SetPoint("TOPLEFT", self.frame, "BOTTOMLEFT")
- self.dropdown:SetPoint("TOPRIGHT", self.frame, "BOTTOMRIGHT", width < 160 and (160 - width) or 0, 0)
- for k, v in pairs(self.list) do
- sortedlist[#sortedlist+1] = k
- end
- table.sort(sortedlist, textSort)
- for i, k in ipairs(sortedlist) do
- local f = GetContentLine()
- local _, size, outline= f.text:GetFont()
- local font = self.list[k] ~= k and self.list[k] or Media:Fetch('font',k)
- f.text:SetFont(font,size,outline)
- f.text:SetText(k)
- if k == self.value then
- f.check:Show()
- end
- f.obj = self
- self.dropdown:AddFrame(f)
- end
- wipe(sortedlist)
- end
- end
-
- local function ClearFocus(self)
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function OnHide(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function Drop_OnEnter(this)
- this.obj:Fire("OnEnter")
- end
-
- local function Drop_OnLeave(this)
- this.obj:Fire("OnLeave")
- end
-
- local function Constructor()
- local frame = AGSMW:GetBaseFrame()
- local self = {}
-
- self.type = widgetType
- self.frame = frame
- frame.obj = self
- frame.dropButton.obj = self
- frame.dropButton:SetScript("OnEnter", Drop_OnEnter)
- frame.dropButton:SetScript("OnLeave", Drop_OnLeave)
- frame.dropButton:SetScript("OnClick",ToggleDrop)
- frame:SetScript("OnHide", OnHide)
-
- self.alignoffset = 31
-
- self.OnRelease = OnRelease
- self.OnAcquire = OnAcquire
- self.ClearFocus = ClearFocus
- self.SetText = SetText
- self.SetValue = SetValue
- self.GetValue = GetValue
- self.SetList = SetList
- self.SetLabel = SetLabel
- self.SetDisabled = SetDisabled
- self.AddItem = AddItem
- self.SetMultiselect = SetMultiselect
- self.GetMultiselect = GetMultiselect
- self.SetItemValue = SetItemValue
- self.SetItemDisabled = SetItemDisabled
- self.ToggleDrop = ToggleDrop
-
- AceGUI:RegisterAsWidget(self)
- return self
- end
-
- AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion)
-
-end
+++ /dev/null
--- Widget is based on the AceGUIWidget-DropDown.lua supplied with AceGUI-3.0
--- Widget created by Yssaril
-
-local AceGUI = LibStub("AceGUI-3.0")
-local Media = LibStub("LibSharedMedia-3.0")
-
-local AGSMW = LibStub("AceGUISharedMediaWidgets-1.0")
-
-do
- local widgetType = "LSM30_Sound"
- local widgetVersion = 11
-
- local contentFrameCache = {}
- local function ReturnSelf(self)
- self:ClearAllPoints()
- self:Hide()
- self.check:Hide()
- table.insert(contentFrameCache, self)
- end
-
- local function ContentOnClick(this, button)
- local self = this.obj
- self:Fire("OnValueChanged", this.text:GetText())
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function ContentSpeakerOnClick(this, button)
- local self = this.frame.obj
- local sound = this.frame.text:GetText()
- PlaySoundFile(self.list[sound] ~= sound and self.list[sound] or Media:Fetch('sound',sound), "Master")
- end
-
- local function GetContentLine()
- local frame
- if next(contentFrameCache) then
- frame = table.remove(contentFrameCache)
- else
- frame = CreateFrame("Button", nil, UIParent)
- --frame:SetWidth(200)
- frame:SetHeight(18)
- frame:SetHighlightTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]], "ADD")
- frame:SetScript("OnClick", ContentOnClick)
- local check = frame:CreateTexture("OVERLAY")
- check:SetWidth(16)
- check:SetHeight(16)
- check:SetPoint("LEFT",frame,"LEFT",1,-1)
- check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check")
- check:Hide()
- frame.check = check
-
- local soundbutton = CreateFrame("Button", nil, frame)
- soundbutton:SetWidth(16)
- soundbutton:SetHeight(16)
- soundbutton:SetPoint("RIGHT",frame,"RIGHT",-1,0)
- soundbutton.frame = frame
- soundbutton:SetScript("OnClick", ContentSpeakerOnClick)
- frame.soundbutton = soundbutton
-
- local speaker = soundbutton:CreateTexture(nil, "BACKGROUND")
- speaker:SetTexture("Interface\\Common\\VoiceChat-Speaker")
- speaker:SetAllPoints(soundbutton)
- frame.speaker = speaker
- local speakeron = soundbutton:CreateTexture(nil, "HIGHLIGHT")
- speakeron:SetTexture("Interface\\Common\\VoiceChat-On")
- speakeron:SetAllPoints(soundbutton)
- frame.speakeron = speakeron
-
- local text = frame:CreateFontString(nil,"OVERLAY","GameFontWhite")
- text:SetPoint("TOPLEFT", check, "TOPRIGHT", 1, 0)
- text:SetPoint("BOTTOMRIGHT", soundbutton, "BOTTOMLEFT", -2, 0)
- text:SetJustifyH("LEFT")
- text:SetText("Test Test Test Test Test Test Test")
- frame.text = text
- frame.ReturnSelf = ReturnSelf
- end
- frame:Show()
- return frame
- end
-
- local function OnAcquire(self)
- self:SetHeight(44)
- self:SetWidth(200)
- end
-
- local function OnRelease(self)
- self:SetText("")
- self:SetLabel("")
- self:SetDisabled(false)
-
- self.value = nil
- self.list = nil
- self.open = nil
- self.hasClose = nil
-
- self.frame:ClearAllPoints()
- self.frame:Hide()
- end
-
- local function SetValue(self, value) -- Set the value to an item in the List.
- if self.list then
- self:SetText(value or "")
- end
- self.value = value
- end
-
- local function GetValue(self)
- return self.value
- end
-
- local function SetList(self, list) -- Set the list of values for the dropdown (key => value pairs)
- self.list = list or Media:HashTable("sound")
- end
-
- local function SetText(self, text) -- Set the text displayed in the box.
- self.frame.text:SetText(text or "")
- end
-
- local function SetLabel(self, text) -- Set the text for the label.
- self.frame.label:SetText(text or "")
- end
-
- local function AddItem(self, key, value) -- Add an item to the list.
- self.list = self.list or {}
- self.list[key] = value
- end
- local SetItemValue = AddItem -- Set the value of a item in the list. <<same as adding a new item>>
-
- local function SetMultiselect(self, flag) end -- Toggle multi-selecting. <<Dummy function to stay inline with the dropdown API>>
- local function GetMultiselect() return false end-- Query the multi-select flag. <<Dummy function to stay inline with the dropdown API>>
- local function SetItemDisabled(self, key) end-- Disable one item in the list. <<Dummy function to stay inline with the dropdown API>>
-
- local function SetDisabled(self, disabled) -- Disable the widget.
- self.disabled = disabled
- if disabled then
- self.frame:Disable()
- self.speaker:SetDesaturated(true)
- self.speakeron:SetDesaturated(true)
- else
- self.frame:Enable()
- self.speaker:SetDesaturated(false)
- self.speakeron:SetDesaturated(false)
- end
- end
-
- local function textSort(a,b)
- return string.upper(a) < string.upper(b)
- end
-
- local sortedlist = {}
- local function ToggleDrop(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- AceGUI:ClearFocus()
- else
- AceGUI:SetFocus(self)
- self.dropdown = AGSMW:GetDropDownFrame()
- local width = self.frame:GetWidth()
- self.dropdown:SetPoint("TOPLEFT", self.frame, "BOTTOMLEFT")
- self.dropdown:SetPoint("TOPRIGHT", self.frame, "BOTTOMRIGHT", width < 160 and (160 - width) or 0, 0)
- for k, v in pairs(self.list) do
- sortedlist[#sortedlist+1] = k
- end
- table.sort(sortedlist, textSort)
- for i, k in ipairs(sortedlist) do
- local f = GetContentLine()
- f.text:SetText(k)
- if k == self.value then
- f.check:Show()
- end
- f.obj = self
- self.dropdown:AddFrame(f)
- end
- wipe(sortedlist)
- end
- end
-
- local function ClearFocus(self)
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function OnHide(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function Drop_OnEnter(this)
- this.obj:Fire("OnEnter")
- end
-
- local function Drop_OnLeave(this)
- this.obj:Fire("OnLeave")
- end
-
- local function WidgetPlaySound(this)
- local self = this.obj
- local sound = self.frame.text:GetText()
- PlaySoundFile(self.list[sound] ~= sound and self.list[sound] or Media:Fetch('sound',sound), "Master")
- end
-
- local function Constructor()
- local frame = AGSMW:GetBaseFrame()
- local self = {}
-
- self.type = widgetType
- self.frame = frame
- frame.obj = self
- frame.dropButton.obj = self
- frame.dropButton:SetScript("OnEnter", Drop_OnEnter)
- frame.dropButton:SetScript("OnLeave", Drop_OnLeave)
- frame.dropButton:SetScript("OnClick",ToggleDrop)
- frame:SetScript("OnHide", OnHide)
-
-
- local soundbutton = CreateFrame("Button", nil, frame)
- soundbutton:SetWidth(16)
- soundbutton:SetHeight(16)
- soundbutton:SetPoint("LEFT",frame.DLeft,"LEFT",26,1)
- soundbutton:SetScript("OnClick", WidgetPlaySound)
- soundbutton.obj = self
- self.soundbutton = soundbutton
- frame.text:SetPoint("LEFT",soundbutton,"RIGHT",2,0)
-
-
- local speaker = soundbutton:CreateTexture(nil, "BACKGROUND")
- speaker:SetTexture("Interface\\Common\\VoiceChat-Speaker")
- speaker:SetAllPoints(soundbutton)
- self.speaker = speaker
- local speakeron = soundbutton:CreateTexture(nil, "HIGHLIGHT")
- speakeron:SetTexture("Interface\\Common\\VoiceChat-On")
- speakeron:SetAllPoints(soundbutton)
- self.speakeron = speakeron
-
- self.alignoffset = 31
-
- self.OnRelease = OnRelease
- self.OnAcquire = OnAcquire
- self.ClearFocus = ClearFocus
- self.SetText = SetText
- self.SetValue = SetValue
- self.GetValue = GetValue
- self.SetList = SetList
- self.SetLabel = SetLabel
- self.SetDisabled = SetDisabled
- self.AddItem = AddItem
- self.SetMultiselect = SetMultiselect
- self.GetMultiselect = GetMultiselect
- self.SetItemValue = SetItemValue
- self.SetItemDisabled = SetItemDisabled
- self.ToggleDrop = ToggleDrop
-
- AceGUI:RegisterAsWidget(self)
- return self
- end
-
- AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion)
-
-end
+++ /dev/null
--- Widget is based on the AceGUIWidget-DropDown.lua supplied with AceGUI-3.0
--- Widget created by Yssaril
-
-local AceGUI = LibStub("AceGUI-3.0")
-local Media = LibStub("LibSharedMedia-3.0")
-
-local AGSMW = LibStub("AceGUISharedMediaWidgets-1.0")
-
-do
- local widgetType = "LSM30_Statusbar"
- local widgetVersion = 11
-
- local contentFrameCache = {}
- local function ReturnSelf(self)
- self:ClearAllPoints()
- self:Hide()
- self.check:Hide()
- table.insert(contentFrameCache, self)
- end
-
- local function ContentOnClick(this, button)
- local self = this.obj
- self:Fire("OnValueChanged", this.text:GetText())
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function GetContentLine()
- local frame
- if next(contentFrameCache) then
- frame = table.remove(contentFrameCache)
- else
- frame = CreateFrame("Button", nil, UIParent)
- --frame:SetWidth(200)
- frame:SetHeight(18)
- frame:SetHighlightTexture([[Interface\QuestFrame\UI-QuestTitleHighlight]], "ADD")
- frame:SetScript("OnClick", ContentOnClick)
- local check = frame:CreateTexture("OVERLAY")
- check:SetWidth(16)
- check:SetHeight(16)
- check:SetPoint("LEFT",frame,"LEFT",1,-1)
- check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check")
- check:Hide()
- frame.check = check
- local bar = frame:CreateTexture("ARTWORK")
- bar:SetHeight(16)
- bar:SetPoint("LEFT",check,"RIGHT",1,0)
- bar:SetPoint("RIGHT",frame,"RIGHT",-1,0)
- frame.bar = bar
- local text = frame:CreateFontString(nil,"OVERLAY","GameFontWhite")
-
- local font, size = text:GetFont()
- text:SetFont(font,size,"OUTLINE")
-
- text:SetPoint("TOPLEFT", check, "TOPRIGHT", 3, 0)
- text:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 0)
- text:SetJustifyH("LEFT")
- text:SetText("Test Test Test Test Test Test Test")
- frame.text = text
- frame.ReturnSelf = ReturnSelf
- end
- frame:Show()
- return frame
- end
-
- local function OnAcquire(self)
- self:SetHeight(44)
- self:SetWidth(200)
- end
-
- local function OnRelease(self)
- self:SetText("")
- self:SetLabel("")
- self:SetDisabled(false)
-
- self.value = nil
- self.list = nil
- self.open = nil
- self.hasClose = nil
-
- self.frame:ClearAllPoints()
- self.frame:Hide()
- end
-
- local function SetValue(self, value) -- Set the value to an item in the List.
- if self.list then
- self:SetText(value or "")
- end
- self.value = value
- end
-
- local function GetValue(self)
- return self.value
- end
-
- local function SetList(self, list) -- Set the list of values for the dropdown (key => value pairs)
- self.list = list or Media:HashTable("statusbar")
- end
-
-
- local function SetText(self, text) -- Set the text displayed in the box.
- self.frame.text:SetText(text or "")
- local statusbar = self.list[text] ~= text and self.list[text] or Media:Fetch('statusbar',text)
- self.bar:SetTexture(statusbar)
- end
-
- local function SetLabel(self, text) -- Set the text for the label.
- self.frame.label:SetText(text or "")
- end
-
- local function AddItem(self, key, value) -- Add an item to the list.
- self.list = self.list or {}
- self.list[key] = value
- end
- local SetItemValue = AddItem -- Set the value of a item in the list. <<same as adding a new item>>
-
- local function SetMultiselect(self, flag) end -- Toggle multi-selecting. <<Dummy function to stay inline with the dropdown API>>
- local function GetMultiselect() return false end-- Query the multi-select flag. <<Dummy function to stay inline with the dropdown API>>
- local function SetItemDisabled(self, key) end-- Disable one item in the list. <<Dummy function to stay inline with the dropdown API>>
-
- local function SetDisabled(self, disabled) -- Disable the widget.
- self.disabled = disabled
- if disabled then
- self.frame:Disable()
- else
- self.frame:Enable()
- end
- end
-
- local function textSort(a,b)
- return string.upper(a) < string.upper(b)
- end
-
- local sortedlist = {}
- local function ToggleDrop(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- AceGUI:ClearFocus()
- else
- AceGUI:SetFocus(self)
- self.dropdown = AGSMW:GetDropDownFrame()
- local width = self.frame:GetWidth()
- self.dropdown:SetPoint("TOPLEFT", self.frame, "BOTTOMLEFT")
- self.dropdown:SetPoint("TOPRIGHT", self.frame, "BOTTOMRIGHT", width < 160 and (160 - width) or 0, 0)
- for k, v in pairs(self.list) do
- sortedlist[#sortedlist+1] = k
- end
- table.sort(sortedlist, textSort)
- for i, k in ipairs(sortedlist) do
- local f = GetContentLine()
- f.text:SetText(k)
- --print(k)
- if k == self.value then
- f.check:Show()
- end
-
- local statusbar = self.list[k] ~= k and self.list[k] or Media:Fetch('statusbar',k)
- f.bar:SetTexture(statusbar)
- f.obj = self
- f.dropdown = self.dropdown
- self.dropdown:AddFrame(f)
- end
- wipe(sortedlist)
- end
- end
-
- local function ClearFocus(self)
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function OnHide(this)
- local self = this.obj
- if self.dropdown then
- self.dropdown = AGSMW:ReturnDropDownFrame(self.dropdown)
- end
- end
-
- local function Drop_OnEnter(this)
- this.obj:Fire("OnEnter")
- end
-
- local function Drop_OnLeave(this)
- this.obj:Fire("OnLeave")
- end
-
- local function Constructor()
- local frame = AGSMW:GetBaseFrame()
- local self = {}
-
- self.type = widgetType
- self.frame = frame
- frame.obj = self
- frame.dropButton.obj = self
- frame.dropButton:SetScript("OnEnter", Drop_OnEnter)
- frame.dropButton:SetScript("OnLeave", Drop_OnLeave)
- frame.dropButton:SetScript("OnClick",ToggleDrop)
- frame:SetScript("OnHide", OnHide)
-
- local bar = frame:CreateTexture(nil, "OVERLAY")
- bar:SetPoint("TOPLEFT", frame,"TOPLEFT",6,-25)
- bar:SetPoint("BOTTOMRIGHT", frame,"BOTTOMRIGHT", -21, 5)
- bar:SetAlpha(0.5)
- self.bar = bar
-
- self.alignoffset = 31
-
- self.OnRelease = OnRelease
- self.OnAcquire = OnAcquire
- self.ClearFocus = ClearFocus
- self.SetText = SetText
- self.SetValue = SetValue
- self.GetValue = GetValue
- self.SetList = SetList
- self.SetLabel = SetLabel
- self.SetDisabled = SetDisabled
- self.AddItem = AddItem
- self.SetMultiselect = SetMultiselect
- self.GetMultiselect = GetMultiselect
- self.SetItemValue = SetItemValue
- self.SetItemDisabled = SetItemDisabled
- self.ToggleDrop = ToggleDrop
-
- AceGUI:RegisterAsWidget(self)
- return self
- end
-
- AceGUI:RegisterWidgetType(widgetType, Constructor, widgetVersion)
-
-end
+++ /dev/null
--- Widget created by Yssaril
---[===[@debug@
-local DataVersion = 9001 -- dev version always overwrites everything else :)
---@end-debug@]===]
---@non-debug@
-local DataVersion = 56
---@end-non-debug@
-local AGSMW = LibStub:NewLibrary("AceGUISharedMediaWidgets-1.0", DataVersion)
-
-if not AGSMW then
- return -- already loaded and no upgrade necessary
-end
-
-local AceGUI = LibStub("AceGUI-3.0")
-local Media = LibStub("LibSharedMedia-3.0")
-
-AGSMW = AGSMW or {}
-
-AceGUIWidgetLSMlists = {
- ['font'] = Media:HashTable("font"),
- ['sound'] = Media:HashTable("sound"),
- ['statusbar'] = Media:HashTable("statusbar"),
- ['border'] = Media:HashTable("border"),
- ['background'] = Media:HashTable("background"),
-}
-
-do
- local function disable(frame)
- frame.label:SetTextColor(.5,.5,.5)
- frame.text:SetTextColor(.5,.5,.5)
- frame.dropButton:Disable()
- if frame.displayButtonFont then
- frame.displayButtonFont:SetTextColor(.5,.5,.5)
- frame.displayButton:Disable()
- end
- end
-
- local function enable(frame)
- frame.label:SetTextColor(1,.82,0)
- frame.text:SetTextColor(1,1,1)
- frame.dropButton:Enable()
- if frame.displayButtonFont then
- frame.displayButtonFont:SetTextColor(1,1,1)
- frame.displayButton:Enable()
- end
- end
-
- local displayButtonBackdrop = {
- edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
- tile = true, tileSize = 16, edgeSize = 16,
- insets = { left = 4, right = 4, top = 4, bottom = 4 },
- }
-
- -- create or retrieve BaseFrame
- function AGSMW:GetBaseFrame()
- local frame = CreateFrame("Frame", nil, UIParent)
- frame:SetHeight(44)
- frame:SetWidth(200)
-
- local label = frame:CreateFontString(nil,"OVERLAY","GameFontNormalSmall")
- label:SetPoint("TOPLEFT",frame,"TOPLEFT",0,0)
- label:SetPoint("TOPRIGHT",frame,"TOPRIGHT",0,0)
- label:SetJustifyH("LEFT")
- label:SetHeight(18)
- label:SetText("")
- frame.label = label
-
- local DLeft = frame:CreateTexture(nil, "ARTWORK")
- DLeft:SetWidth(25)
- DLeft:SetHeight(64)
- DLeft:SetPoint("BOTTOMLEFT", frame, "BOTTOMLEFT", -17, -21)
- DLeft:SetTexture([[Interface\Glues\CharacterCreate\CharacterCreate-LabelFrame]])
- DLeft:SetTexCoord(0, 0.1953125, 0, 1)
- frame.DLeft = DLeft
-
- local DRight = frame:CreateTexture(nil, "ARTWORK")
- DRight:SetWidth(25)
- DRight:SetHeight(64)
- DRight:SetPoint("TOP", DLeft, "TOP")
- DRight:SetPoint("RIGHT", frame, "RIGHT", 17, 0)
- DRight:SetTexture([[Interface\Glues\CharacterCreate\CharacterCreate-LabelFrame]])
- DRight:SetTexCoord(0.8046875, 1, 0, 1)
- frame.DRight = DRight
-
- local DMiddle = frame:CreateTexture(nil, "ARTWORK")
- DMiddle:SetHeight(64)
- DMiddle:SetPoint("TOP", DLeft, "TOP")
- DMiddle:SetPoint("LEFT", DLeft, "RIGHT")
- DMiddle:SetPoint("RIGHT", DRight, "LEFT")
- DMiddle:SetTexture([[Interface\Glues\CharacterCreate\CharacterCreate-LabelFrame]])
- DMiddle:SetTexCoord(0.1953125, 0.8046875, 0, 1)
- frame.DMiddle = DMiddle
-
- local text = frame:CreateFontString(nil,"OVERLAY","GameFontHighlightSmall")
- text:SetPoint("RIGHT",DRight,"RIGHT",-43,1)
- text:SetPoint("LEFT",DLeft,"LEFT",26,1)
- text:SetJustifyH("RIGHT")
- text:SetHeight(18)
- text:SetText("")
- frame.text = text
-
- local dropButton = CreateFrame("Button", nil, frame)
- dropButton:SetWidth(24)
- dropButton:SetHeight(24)
- dropButton:SetPoint("TOPRIGHT", DRight, "TOPRIGHT", -16, -18)
- dropButton:SetNormalTexture([[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Up]])
- dropButton:SetPushedTexture([[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Down]])
- dropButton:SetDisabledTexture([[Interface\ChatFrame\UI-ChatIcon-ScrollDown-Disabled]])
- dropButton:SetHighlightTexture([[Interface\Buttons\UI-Common-MouseHilight]], "ADD")
- frame.dropButton = dropButton
-
- frame.Disable = disable
- frame.Enable = enable
- return frame
- end
-
- function AGSMW:GetBaseFrameWithWindow()
- local frame = self:GetBaseFrame()
-
- local displayButton = CreateFrame("Button", nil, frame)
- displayButton:SetHeight(42)
- displayButton:SetWidth(42)
- displayButton:SetPoint("TOPLEFT", frame, "TOPLEFT", 1, -2)
- displayButton:SetBackdrop(displayButtonBackdrop)
- displayButton:SetBackdropBorderColor(.5, .5, .5)
- frame.displayButton = displayButton
-
- frame.label:SetPoint("TOPLEFT",displayButton,"TOPRIGHT",1,2)
-
- frame.DLeft:SetPoint("BOTTOMLEFT", displayButton, "BOTTOMRIGHT", -17, -20)
-
- return frame
- end
-
-end
-
-do
-
- local sliderBackdrop = {
- ["bgFile"] = [[Interface\Buttons\UI-SliderBar-Background]],
- ["edgeFile"] = [[Interface\Buttons\UI-SliderBar-Border]],
- ["tile"] = true,
- ["edgeSize"] = 8,
- ["tileSize"] = 8,
- ["insets"] = {
- ["left"] = 3,
- ["right"] = 3,
- ["top"] = 3,
- ["bottom"] = 3,
- },
- }
- local frameBackdrop = {
- bgFile=[[Interface\DialogFrame\UI-DialogBox-Background-Dark]],
- edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]],
- tile = true, tileSize = 32, edgeSize = 32,
- insets = { left = 11, right = 12, top = 12, bottom = 9 },
- }
-
- local function OnMouseWheel(self, dir)
- self.slider:SetValue(self.slider:GetValue()+(15*dir*-1))
- end
-
- local function AddFrame(self, frame)
- frame:SetParent(self.contentframe)
- frame:SetFrameStrata(self:GetFrameStrata())
- frame:SetFrameLevel(self:GetFrameLevel() + 100)
-
- if next(self.contentRepo) then
- frame:SetPoint("TOPLEFT", self.contentRepo[#self.contentRepo], "BOTTOMLEFT", 0, 0)
- frame:SetPoint("RIGHT", self.contentframe, "RIGHT", 0, 0)
- self.contentframe:SetHeight(self.contentframe:GetHeight() + frame:GetHeight())
- self.contentRepo[#self.contentRepo+1] = frame
- else
- self.contentframe:SetHeight(frame:GetHeight())
- frame:SetPoint("TOPLEFT", self.contentframe, "TOPLEFT", 0, 0)
- frame:SetPoint("RIGHT", self.contentframe, "RIGHT", 0, 0)
- self.contentRepo[1] = frame
- end
-
- if self.contentframe:GetHeight() > UIParent:GetHeight()*2/5 - 20 then
- self.scrollframe:SetPoint("BOTTOMRIGHT", self, "BOTTOMRIGHT", -28, 12)
- self:SetHeight(UIParent:GetHeight()*2/5)
- self.slider:Show()
- self:SetScript("OnMouseWheel", OnMouseWheel)
- self.scrollframe:UpdateScrollChildRect()
- self.slider:SetMinMaxValues(0, self.contentframe:GetHeight()-self.scrollframe:GetHeight())
- else
- self.scrollframe:SetPoint("BOTTOMRIGHT", self, "BOTTOMRIGHT", -14, 12)
- self:SetHeight(self.contentframe:GetHeight()+25)
- self.slider:Hide()
- self:SetScript("OnMouseWheel", nil)
- self.scrollframe:UpdateScrollChildRect()
- self.slider:SetMinMaxValues(0, 0)
- end
- self.contentframe:SetWidth(self.scrollframe:GetWidth())
- end
-
- local function ClearFrames(self)
- for i, frame in ipairs(self.contentRepo) do
- frame:ReturnSelf()
- self.contentRepo[i] = nil
- end
- end
-
- local function slider_OnValueChanged(self, value)
- self.frame.scrollframe:SetVerticalScroll(value)
- end
-
- local DropDownCache = {}
- function AGSMW:GetDropDownFrame()
- local frame
- if next(DropDownCache) then
- frame = table.remove(DropDownCache)
- else
- frame = CreateFrame("Frame", nil, UIParent)
- frame:SetClampedToScreen(true)
- frame:SetWidth(188)
- frame:SetBackdrop(frameBackdrop)
- frame:SetFrameStrata("TOOLTIP")
- frame:EnableMouseWheel(true)
-
- local contentframe = CreateFrame("Frame", nil, frame)
- contentframe:SetWidth(160)
- contentframe:SetHeight(0)
- frame.contentframe = contentframe
-
- local scrollframe = CreateFrame("ScrollFrame", nil, frame)
- scrollframe:SetWidth(160)
- scrollframe:SetPoint("TOPLEFT", frame, "TOPLEFT", 14, -13)
- scrollframe:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -14, 12)
- scrollframe:SetScrollChild(contentframe)
- frame.scrollframe = scrollframe
-
- contentframe:SetPoint("TOPLEFT", scrollframe)
- contentframe:SetPoint("TOPRIGHT", scrollframe)
-
- local bgTex = frame:CreateTexture(nil, "ARTWORK")
- bgTex:SetAllPoints(scrollframe)
- frame.bgTex = bgTex
-
- frame.AddFrame = AddFrame
- frame.ClearFrames = ClearFrames
- frame.contentRepo = {} -- store all our frames in here so we can get rid of them later
-
- local slider = CreateFrame("Slider", nil, scrollframe)
- slider:SetOrientation("VERTICAL")
- slider:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -14, -10)
- slider:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -14, 10)
- slider:SetBackdrop(sliderBackdrop)
- slider:SetThumbTexture([[Interface\Buttons\UI-SliderBar-Button-Vertical]])
- slider:SetMinMaxValues(0, 1)
- --slider:SetValueStep(1)
- slider:SetWidth(12)
- slider.frame = frame
- slider:SetScript("OnValueChanged", slider_OnValueChanged)
- frame.slider = slider
- end
- frame:SetHeight(UIParent:GetHeight()*2/5)
- frame.slider:SetValue(0)
- frame:Show()
- return frame
- end
-
- function AGSMW:ReturnDropDownFrame(frame)
- ClearFrames(frame)
- frame:ClearAllPoints()
- frame:Hide()
- frame:SetBackdrop(frameBackdrop)
- frame.bgTex:SetTexture(nil)
- table.insert(DropDownCache, frame)
- return nil
- end
-end
+++ /dev/null
-<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
-..\FrameXML\UI.xsd">
- <Script file="prototypes.lua" />
- <Script file="FontWidget.lua" />
- <Script file="SoundWidget.lua" />
- <Script file="StatusbarWidget.lua" />
- <Script file="BorderWidget.lua" />
- <Script file="BackgroundWidget.lua" />
-</Ui>
+++ /dev/null
---[[
-Name: LibSharedMedia-3.0
-Revision: $Revision: 91 $
-Author: Elkano (elkano@gmx.de)
-Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com)
-Website: http://www.wowace.com/projects/libsharedmedia-3-0/
-Description: Shared handling of media data (fonts, sounds, textures, ...) between addons.
-Dependencies: LibStub, CallbackHandler-1.0
-License: LGPL v2.1
-]]
-
-local MAJOR, MINOR = "LibSharedMedia-3.0", 6010002 -- 6.1.0 v2 / increase manually on changes
-local lib = LibStub:NewLibrary(MAJOR, MINOR)
-
-if not lib then return end
-
-local _G = getfenv(0)
-
-local pairs = _G.pairs
-local type = _G.type
-
-local band = _G.bit.band
-
-local table_insert = _G.table.insert
-local table_sort = _G.table.sort
-
-local locale = GetLocale()
-local locale_is_western
-local LOCALE_MASK = 0
-lib.LOCALE_BIT_koKR = 1
-lib.LOCALE_BIT_ruRU = 2
-lib.LOCALE_BIT_zhCN = 4
-lib.LOCALE_BIT_zhTW = 8
-lib.LOCALE_BIT_western = 128
-
-local CallbackHandler = LibStub:GetLibrary("CallbackHandler-1.0")
-
-lib.callbacks = lib.callbacks or CallbackHandler:New(lib)
-
-lib.DefaultMedia = lib.DefaultMedia or {}
-lib.MediaList = lib.MediaList or {}
-lib.MediaTable = lib.MediaTable or {}
-lib.MediaType = lib.MediaType or {}
-lib.OverrideMedia = lib.OverrideMedia or {}
-
-local defaultMedia = lib.DefaultMedia
-local mediaList = lib.MediaList
-local mediaTable = lib.MediaTable
-local overrideMedia = lib.OverrideMedia
-
-
--- create mediatype constants
-lib.MediaType.BACKGROUND = "background" -- background textures
-lib.MediaType.BORDER = "border" -- border textures
-lib.MediaType.FONT = "font" -- fonts
-lib.MediaType.STATUSBAR = "statusbar" -- statusbar textures
-lib.MediaType.SOUND = "sound" -- sound files
-
--- populate lib with default Blizzard data
--- BACKGROUND
-if not lib.MediaTable.background then lib.MediaTable.background = {} end
-lib.MediaTable.background["None"] = [[]]
-lib.MediaTable.background["Blizzard Collections Background"] = [[Interface\Collections\CollectionsBackgroundTile]]
-lib.MediaTable.background["Blizzard Dialog Background"] = [[Interface\DialogFrame\UI-DialogBox-Background]]
-lib.MediaTable.background["Blizzard Dialog Background Dark"] = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]]
-lib.MediaTable.background["Blizzard Dialog Background Gold"] = [[Interface\DialogFrame\UI-DialogBox-Gold-Background]]
-lib.MediaTable.background["Blizzard Garrison Background"] = [[Interface\Garrison\GarrisonUIBackground]]
-lib.MediaTable.background["Blizzard Garrison Background 2"] = [[Interface\Garrison\GarrisonUIBackground2]]
-lib.MediaTable.background["Blizzard Garrison Background 3"] = [[Interface\Garrison\GarrisonMissionUIInfoBoxBackgroundTile]]
-lib.MediaTable.background["Blizzard Low Health"] = [[Interface\FullScreenTextures\LowHealth]]
-lib.MediaTable.background["Blizzard Marble"] = [[Interface\FrameGeneral\UI-Background-Marble]]
-lib.MediaTable.background["Blizzard Out of Control"] = [[Interface\FullScreenTextures\OutOfControl]]
-lib.MediaTable.background["Blizzard Parchment"] = [[Interface\AchievementFrame\UI-Achievement-Parchment-Horizontal]]
-lib.MediaTable.background["Blizzard Parchment 2"] = [[Interface\AchievementFrame\UI-GuildAchievement-Parchment-Horizontal]]
-lib.MediaTable.background["Blizzard Rock"] = [[Interface\FrameGeneral\UI-Background-Rock]]
-lib.MediaTable.background["Blizzard Tabard Background"] = [[Interface\TabardFrame\TabardFrameBackground]]
-lib.MediaTable.background["Blizzard Tooltip"] = [[Interface\Tooltips\UI-Tooltip-Background]]
-lib.MediaTable.background["Solid"] = [[Interface\Buttons\WHITE8X8]]
-lib.DefaultMedia.background = "None"
-
--- BORDER
-if not lib.MediaTable.border then lib.MediaTable.border = {} end
-lib.MediaTable.border["None"] = [[]]
-lib.MediaTable.border["Blizzard Achievement Wood"] = [[Interface\AchievementFrame\UI-Achievement-WoodBorder]]
-lib.MediaTable.border["Blizzard Chat Bubble"] = [[Interface\Tooltips\ChatBubble-Backdrop]]
-lib.MediaTable.border["Blizzard Dialog"] = [[Interface\DialogFrame\UI-DialogBox-Border]]
-lib.MediaTable.border["Blizzard Dialog Gold"] = [[Interface\DialogFrame\UI-DialogBox-Gold-Border]]
-lib.MediaTable.border["Blizzard Party"] = [[Interface\CHARACTERFRAME\UI-Party-Border]]
-lib.MediaTable.border["Blizzard Tooltip"] = [[Interface\Tooltips\UI-Tooltip-Border]]
-lib.DefaultMedia.border = "None"
-
--- FONT
-if not lib.MediaTable.font then lib.MediaTable.font = {} end
-local SML_MT_font = lib.MediaTable.font
---[[
-All font files are currently in all clients, the following table depicts which font supports which charset as of 5.0.4
-Fonts were checked using langcover.pl from DejaVu fonts (http://sourceforge.net/projects/dejavu/) and FontForge (http://fontforge.org/)
-latin means check for: de, en, es, fr, it, pt
-
-file name latin koKR ruRU zhCN zhTW
-2002.ttf 2002 X X X - -
-2002B.ttf 2002 Bold X X X - -
-ARHei.ttf AR CrystalzcuheiGBK Demibold X - X X X
-ARIALN.TTF Arial Narrow X - X - -
-ARKai_C.ttf AR ZhongkaiGBK Medium (Combat) X - X X X
-ARKai_T.ttf AR ZhongkaiGBK Medium X - X X X
-bHEI00M.ttf AR Heiti2 Medium B5 - - - - X
-bHEI01B.ttf AR Heiti2 Bold B5 - - - - X
-bKAI00M.ttf AR Kaiti Medium B5 - - - - X
-bLEI00D.ttf AR Leisu Demi B5 - - - - X
-FRIZQT__.TTF Friz Quadrata TT X - - - -
-FRIZQT___CYR.TTF FrizQuadrataCTT x - X - -
-K_Damage.TTF YDIWingsM - X X - -
-K_Pagetext.TTF MoK X X X - -
-MORPHEUS.TTF Morpheus X - - - -
-MORPHEUS_CYR.TTF Morpheus X - X - -
-NIM_____.ttf Nimrod MT X - X - -
-SKURRI.TTF Skurri X - - - -
-SKURRI_CYR.TTF Skurri X - X - -
-
-WARNING: Although FRIZQT___CYR is available on western clients, it doesn't support special European characters e.g. é, ï, ö
-Due to this, we cannot use it as a replacement for FRIZQT__.TTF
-]]
-
-if locale == "koKR" then
- LOCALE_MASK = lib.LOCALE_BIT_koKR
---
- SML_MT_font["굵은 글꼴"] = [[Fonts\2002B.TTF]]
- SML_MT_font["기본 글꼴"] = [[Fonts\2002.TTF]]
- SML_MT_font["데미지 글꼴"] = [[Fonts\K_Damage.TTF]]
- SML_MT_font["퀘스트 글꼴"] = [[Fonts\K_Pagetext.TTF]]
---
- lib.DefaultMedia["font"] = "기본 글꼴" -- someone from koKR please adjust if needed
---
-elseif locale == "zhCN" then
- LOCALE_MASK = lib.LOCALE_BIT_zhCN
---
- SML_MT_font["伤害数字"] = [[Fonts\ARKai_C.ttf]]
- SML_MT_font["默认"] = [[Fonts\ARKai_T.ttf]]
- SML_MT_font["聊天"] = [[Fonts\ARHei.ttf]]
---
- lib.DefaultMedia["font"] = "默认" -- someone from zhCN please adjust if needed
---
-elseif locale == "zhTW" then
- LOCALE_MASK = lib.LOCALE_BIT_zhTW
---
- SML_MT_font["提示訊息"] = [[Fonts\bHEI00M.ttf]]
- SML_MT_font["聊天"] = [[Fonts\bHEI01B.ttf]]
- SML_MT_font["傷害數字"] = [[Fonts\bKAI00M.ttf]]
- SML_MT_font["預設"] = [[Fonts\bLEI00D.ttf]]
---
- lib.DefaultMedia["font"] = "預設" -- someone from zhTW please adjust if needed
-
-elseif locale == "ruRU" then
- LOCALE_MASK = lib.LOCALE_BIT_ruRU
---
- SML_MT_font["2002"] = [[Fonts\2002.TTF]]
- SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]]
- SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]]
- SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]]
- SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT___CYR.TTF]]
- SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]]
- SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]]
- SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]]
- SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]]
---
- lib.DefaultMedia.font = "Friz Quadrata TT"
---
-else
- LOCALE_MASK = lib.LOCALE_BIT_western
- locale_is_western = true
---
- SML_MT_font["2002"] = [[Fonts\2002.TTF]]
- SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]]
- SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]]
- SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]]
- SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]]
- SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT__.TTF]]
- SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]]
- SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]]
- SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]]
- SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]]
---
- lib.DefaultMedia.font = "Friz Quadrata TT"
---
-end
-
--- STATUSBAR
-if not lib.MediaTable.statusbar then lib.MediaTable.statusbar = {} end
-lib.MediaTable.statusbar["Blizzard"] = [[Interface\TargetingFrame\UI-StatusBar]]
-lib.MediaTable.statusbar["Blizzard Character Skills Bar"] = [[Interface\PaperDollInfoFrame\UI-Character-Skills-Bar]]
-lib.MediaTable.statusbar["Blizzard Raid Bar"] = [[Interface\RaidFrame\Raid-Bar-Hp-Fill]]
-lib.DefaultMedia.statusbar = "Blizzard"
-
--- SOUND
-if not lib.MediaTable.sound then lib.MediaTable.sound = {} end
-lib.MediaTable.sound["None"] = [[Interface\Quiet.ogg]] -- Relies on the fact that PlaySound[File] doesn't error on non-existing input.
-lib.DefaultMedia.sound = "None"
-
-local function rebuildMediaList(mediatype)
- local mtable = mediaTable[mediatype]
- if not mtable then return end
- if not mediaList[mediatype] then mediaList[mediatype] = {} end
- local mlist = mediaList[mediatype]
- -- list can only get larger, so simply overwrite it
- local i = 0
- for k in pairs(mtable) do
- i = i + 1
- mlist[i] = k
- end
- table_sort(mlist)
-end
-
-function lib:Register(mediatype, key, data, langmask)
- if type(mediatype) ~= "string" then
- error(MAJOR..":Register(mediatype, key, data, langmask) - mediatype must be string, got "..type(mediatype))
- end
- if type(key) ~= "string" then
- error(MAJOR..":Register(mediatype, key, data, langmask) - key must be string, got "..type(key))
- end
- mediatype = mediatype:lower()
- if mediatype == lib.MediaType.FONT and ((langmask and band(langmask, LOCALE_MASK) == 0) or not (langmask or locale_is_western)) then return false end
- if mediatype == lib.MediaType.SOUND and type(data) == "string" then
- local path = data:lower()
- -- Only ogg and mp3 are valid sounds.
- if not path:find(".ogg", nil, true) and not path:find(".mp3", nil, true) then
- return false
- end
- end
- if not mediaTable[mediatype] then mediaTable[mediatype] = {} end
- local mtable = mediaTable[mediatype]
- if mtable[key] then return false end
-
- mtable[key] = data
- rebuildMediaList(mediatype)
- self.callbacks:Fire("LibSharedMedia_Registered", mediatype, key)
- return true
-end
-
-function lib:Fetch(mediatype, key, noDefault)
- local mtt = mediaTable[mediatype]
- local overridekey = overrideMedia[mediatype]
- local result = mtt and ((overridekey and mtt[overridekey] or mtt[key]) or (not noDefault and defaultMedia[mediatype] and mtt[defaultMedia[mediatype]])) or nil
- return result ~= "" and result or nil
-end
-
-function lib:IsValid(mediatype, key)
- return mediaTable[mediatype] and (not key or mediaTable[mediatype][key]) and true or false
-end
-
-function lib:HashTable(mediatype)
- return mediaTable[mediatype]
-end
-
-function lib:List(mediatype)
- if not mediaTable[mediatype] then
- return nil
- end
- if not mediaList[mediatype] then
- rebuildMediaList(mediatype)
- end
- return mediaList[mediatype]
-end
-
-function lib:GetGlobal(mediatype)
- return overrideMedia[mediatype]
-end
-
-function lib:SetGlobal(mediatype, key)
- if not mediaTable[mediatype] then
- return false
- end
- overrideMedia[mediatype] = (key and mediaTable[mediatype][key]) and key or nil
- self.callbacks:Fire("LibSharedMedia_SetGlobal", mediatype, overrideMedia[mediatype])
- return true
-end
-
-function lib:GetDefault(mediatype)
- return defaultMedia[mediatype]
-end
-
-function lib:SetDefault(mediatype, key)
- if mediaTable[mediatype] and mediaTable[mediatype][key] and not defaultMedia[mediatype] then
- defaultMedia[mediatype] = key
- return true
- else
- return false
- end
-end
+++ /dev/null
-<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
-..\FrameXML\UI.xsd">
- <Script file="LibSharedMedia-3.0.lua" />
-</Ui>