Mercurial > wow > hotcorners
comparison Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua @ 5:c31ee4251181
Libs Update
| author | tercio |
|---|---|
| date | Tue, 25 Nov 2014 21:15:10 -0200 |
| parents | fc346da3afd9 |
| children | 371e14cd2feb |
comparison
equal
deleted
inserted
replaced
| 4:453c68ff5d72 | 5:c31ee4251181 |
|---|---|
| 1 --[[ | 1 --[[ |
| 2 Name: LibSharedMedia-3.0 | 2 Name: LibSharedMedia-3.0 |
| 3 Revision: $Revision: 69 $ | 3 Revision: $Revision: 89 $ |
| 4 Author: Elkano (elkano@gmx.de) | 4 Author: Elkano (elkano@gmx.de) |
| 5 Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com) | 5 Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com) |
| 6 Website: http://www.wowace.com/projects/libsharedmedia-3-0/ | 6 Website: http://www.wowace.com/projects/libsharedmedia-3-0/ |
| 7 Description: Shared handling of media data (fonts, sounds, textures, ...) between addons. | 7 Description: Shared handling of media data (fonts, sounds, textures, ...) between addons. |
| 8 Dependencies: LibStub, CallbackHandler-1.0 | 8 Dependencies: LibStub, CallbackHandler-1.0 |
| 9 License: LGPL v2.1 | 9 License: LGPL v2.1 |
| 10 ]] | 10 ]] |
| 11 | 11 |
| 12 local MAJOR, MINOR = "LibSharedMedia-3.0", 4030402 -- increase manualy on changes | 12 local MAJOR, MINOR = "LibSharedMedia-3.0", 6000201 -- 6.0.2 v1 / increase manually on changes |
| 13 local lib = LibStub:NewLibrary(MAJOR, MINOR) | 13 local lib = LibStub:NewLibrary(MAJOR, MINOR) |
| 14 | 14 |
| 15 if not lib then return end | 15 if not lib then return end |
| 16 | 16 |
| 17 local _G = getfenv(0) | 17 local _G = getfenv(0) |
| 58 | 58 |
| 59 -- populate lib with default Blizzard data | 59 -- populate lib with default Blizzard data |
| 60 -- BACKGROUND | 60 -- BACKGROUND |
| 61 if not lib.MediaTable.background then lib.MediaTable.background = {} end | 61 if not lib.MediaTable.background then lib.MediaTable.background = {} end |
| 62 lib.MediaTable.background["None"] = [[]] | 62 lib.MediaTable.background["None"] = [[]] |
| 63 lib.MediaTable.background["Blizzard Collections Background"] = [[Interface\Collections\CollectionsBackgroundTile]] | |
| 63 lib.MediaTable.background["Blizzard Dialog Background"] = [[Interface\DialogFrame\UI-DialogBox-Background]] | 64 lib.MediaTable.background["Blizzard Dialog Background"] = [[Interface\DialogFrame\UI-DialogBox-Background]] |
| 64 lib.MediaTable.background["Blizzard Dialog Background Dark"] = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]] | 65 lib.MediaTable.background["Blizzard Dialog Background Dark"] = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]] |
| 65 lib.MediaTable.background["Blizzard Dialog Background Gold"] = [[Interface\DialogFrame\UI-DialogBox-Gold-Background]] | 66 lib.MediaTable.background["Blizzard Dialog Background Gold"] = [[Interface\DialogFrame\UI-DialogBox-Gold-Background]] |
| 67 lib.MediaTable.background["Blizzard Garrison Background"] = [[Interface\Garrison\GarrisonUIBackground]] | |
| 68 lib.MediaTable.background["Blizzard Garrison Background 2"] = [[Interface\Garrison\GarrisonUIBackground2]] | |
| 69 lib.MediaTable.background["Blizzard Garrison Background 3"] = [[Interface\Garrison\GarrisonMissionUIInfoBoxBackgroundTile]] | |
| 66 lib.MediaTable.background["Blizzard Low Health"] = [[Interface\FullScreenTextures\LowHealth]] | 70 lib.MediaTable.background["Blizzard Low Health"] = [[Interface\FullScreenTextures\LowHealth]] |
| 67 lib.MediaTable.background["Blizzard Marble"] = [[Interface\FrameGeneral\UI-Background-Marble]] | 71 lib.MediaTable.background["Blizzard Marble"] = [[Interface\FrameGeneral\UI-Background-Marble]] |
| 68 lib.MediaTable.background["Blizzard Out of Control"] = [[Interface\FullScreenTextures\OutOfControl]] | 72 lib.MediaTable.background["Blizzard Out of Control"] = [[Interface\FullScreenTextures\OutOfControl]] |
| 69 lib.MediaTable.background["Blizzard Parchment"] = [[Interface\AchievementFrame\UI-Achievement-Parchment-Horizontal]] | 73 lib.MediaTable.background["Blizzard Parchment"] = [[Interface\AchievementFrame\UI-Achievement-Parchment-Horizontal]] |
| 70 lib.MediaTable.background["Blizzard Parchment 2"] = [[Interface\AchievementFrame\UI-GuildAchievement-Parchment-Horizontal]] | 74 lib.MediaTable.background["Blizzard Parchment 2"] = [[Interface\AchievementFrame\UI-GuildAchievement-Parchment-Horizontal]] |
| 86 lib.DefaultMedia.border = "None" | 90 lib.DefaultMedia.border = "None" |
| 87 | 91 |
| 88 -- FONT | 92 -- FONT |
| 89 if not lib.MediaTable.font then lib.MediaTable.font = {} end | 93 if not lib.MediaTable.font then lib.MediaTable.font = {} end |
| 90 local SML_MT_font = lib.MediaTable.font | 94 local SML_MT_font = lib.MediaTable.font |
| 95 --[[ | |
| 96 All font files are currently in all clients, the following table depicts which font supports which charset as of 5.0.4 | |
| 97 Fonts were checked using langcover.pl from DejaVu fonts (http://sourceforge.net/projects/dejavu/) and FontForge (http://fontforge.org/) | |
| 98 latin means check for: de, en, es, fr, it, pt | |
| 99 | |
| 100 file name latin koKR ruRU zhCN zhTW | |
| 101 2002.ttf 2002 X X X - - | |
| 102 2002B.ttf 2002 Bold X X X - - | |
| 103 ARHei.ttf AR CrystalzcuheiGBK Demibold X - X X X | |
| 104 ARIALN.TTF Arial Narrow X - X - - | |
| 105 ARKai_C.ttf AR ZhongkaiGBK Medium (Combat) X - X X X | |
| 106 ARKai_T.ttf AR ZhongkaiGBK Medium X - X X X | |
| 107 bHEI00M.ttf AR Heiti2 Medium B5 - - - - X | |
| 108 bHEI01B.ttf AR Heiti2 Bold B5 - - - - X | |
| 109 bKAI00M.ttf AR Kaiti Medium B5 - - - - X | |
| 110 bLEI00D.ttf AR Leisu Demi B5 - - - - X | |
| 111 FRIZQT__.TTF Friz Quadrata TT X - - - - | |
| 112 FRIZQT___CYR.TTF FrizQuadrataCTT x - X - - | |
| 113 K_Damage.TTF YDIWingsM - X X - - | |
| 114 K_Pagetext.TTF MoK X X X - - | |
| 115 MORPHEUS.TTF Morpheus X - - - - | |
| 116 MORPHEUS_CYR.TTF Morpheus X - X - - | |
| 117 NIM_____.ttf Nimrod MT X - X - - | |
| 118 SKURRI.TTF Skurri X - - - - | |
| 119 SKURRI_CYR.TTF Skurri X - X - - | |
| 120 | |
| 121 WARNING: Although FRIZQT___CYR is available on western clients, it doesn't support special European characters e.g. é, ï, ö | |
| 122 Due to this, we cannot use it as a replacement for FRIZQT__.TTF | |
| 123 ]] | |
| 124 | |
| 91 if locale == "koKR" then | 125 if locale == "koKR" then |
| 92 LOCALE_MASK = lib.LOCALE_BIT_koKR | 126 LOCALE_MASK = lib.LOCALE_BIT_koKR |
| 93 -- | 127 -- |
| 94 SML_MT_font["굵은 글꼴"] = [[Fonts\2002B.TTF]] | 128 SML_MT_font["굵은 글꼴"] = [[Fonts\2002B.TTF]] |
| 95 SML_MT_font["기본 글꼴"] = [[Fonts\2002.TTF]] | 129 SML_MT_font["기본 글꼴"] = [[Fonts\2002.TTF]] |
| 118 lib.DefaultMedia["font"] = "預設" -- someone from zhTW please adjust if needed | 152 lib.DefaultMedia["font"] = "預設" -- someone from zhTW please adjust if needed |
| 119 | 153 |
| 120 elseif locale == "ruRU" then | 154 elseif locale == "ruRU" then |
| 121 LOCALE_MASK = lib.LOCALE_BIT_ruRU | 155 LOCALE_MASK = lib.LOCALE_BIT_ruRU |
| 122 -- | 156 -- |
| 123 SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]] | 157 SML_MT_font["2002"] = [[Fonts\2002.TTF]] |
| 124 SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT__.TTF]] | 158 SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]] |
| 125 SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS.TTF]] | 159 SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]] |
| 126 SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]] | 160 SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]] |
| 127 SML_MT_font["Skurri"] = [[Fonts\SKURRI.TTF]] | 161 SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]] |
| 162 SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]] | |
| 163 SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT___CYR.TTF]] | |
| 164 SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]] | |
| 165 SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]] | |
| 166 SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]] | |
| 167 SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]] | |
| 128 -- | 168 -- |
| 129 lib.DefaultMedia.font = "Friz Quadrata TT" | 169 lib.DefaultMedia.font = "Friz Quadrata TT" |
| 130 -- | 170 -- |
| 131 else | 171 else |
| 132 LOCALE_MASK = lib.LOCALE_BIT_western | 172 LOCALE_MASK = lib.LOCALE_BIT_western |
| 133 locale_is_western = true | 173 locale_is_western = true |
| 134 -- | 174 -- |
| 135 SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]] | 175 SML_MT_font["2002"] = [[Fonts\2002.TTF]] |
| 136 SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT__.TTF]] | 176 SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]] |
| 137 SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS.TTF]] | 177 SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]] |
| 138 SML_MT_font["Skurri"] = [[Fonts\SKURRI.TTF]] | 178 SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]] |
| 179 SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]] | |
| 180 SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]] | |
| 181 SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT__.TTF]] | |
| 182 SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]] | |
| 183 SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]] | |
| 184 SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]] | |
| 185 SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]] | |
| 139 -- | 186 -- |
| 140 lib.DefaultMedia.font = "Friz Quadrata TT" | 187 lib.DefaultMedia.font = "Friz Quadrata TT" |
| 141 -- | 188 -- |
| 142 end | 189 end |
| 143 | 190 |
| 144 -- STATUSBAR | 191 -- STATUSBAR |
| 145 if not lib.MediaTable.statusbar then lib.MediaTable.statusbar = {} end | 192 if not lib.MediaTable.statusbar then lib.MediaTable.statusbar = {} end |
| 146 lib.MediaTable.statusbar["Blizzard"] = [[Interface\TargetingFrame\UI-StatusBar]] | 193 lib.MediaTable.statusbar["Blizzard"] = [[Interface\TargetingFrame\UI-StatusBar]] |
| 147 lib.MediaTable.statusbar["Blizzard Character Skills Bar"] = [[Interface\PaperDollInfoFrame\UI-Character-Skills-Bar]] | 194 lib.MediaTable.statusbar["Blizzard Character Skills Bar"] = [[Interface\PaperDollInfoFrame\UI-Character-Skills-Bar]] |
| 195 lib.MediaTable.statusbar["Blizzard Raid Bar"] = [[Interface\RaidFrame\Raid-Bar-Hp-Fill]] | |
| 148 lib.DefaultMedia.statusbar = "Blizzard" | 196 lib.DefaultMedia.statusbar = "Blizzard" |
| 149 | 197 |
| 150 -- SOUND | 198 -- SOUND |
| 151 if not lib.MediaTable.sound then lib.MediaTable.sound = {} end | 199 if not lib.MediaTable.sound then lib.MediaTable.sound = {} end |
| 152 lib.MediaTable.sound["None"] = [[Interface\Quiet.ogg]] -- Relies on the fact that PlaySound[File] doesn't error on non-existing input. | 200 lib.MediaTable.sound["None"] = [[Interface\Quiet.ogg]] -- Relies on the fact that PlaySound[File] doesn't error on non-existing input. |
| 172 end | 220 end |
| 173 if type(key) ~= "string" then | 221 if type(key) ~= "string" then |
| 174 error(MAJOR..":Register(mediatype, key, data, langmask) - key must be string, got "..type(key)) | 222 error(MAJOR..":Register(mediatype, key, data, langmask) - key must be string, got "..type(key)) |
| 175 end | 223 end |
| 176 mediatype = mediatype:lower() | 224 mediatype = mediatype:lower() |
| 177 if mediatype == lib.MediaType.FONT and ((langmask and band(langmask, LOCALE_MASK) == 0) or not (langmask or locale_is_western)) then return false end | 225 if mediatype == lib.MediaType.FONT and ((langmask and band(langmask, LOCALE_MASK) == 0) or not (langmask or locale_is_western)) then return false end |
| 178 if not mediaTable[mediatype] then mediaTable[mediatype] = {} end | 226 if not mediaTable[mediatype] then mediaTable[mediatype] = {} end |
| 179 local mtable = mediaTable[mediatype] | 227 local mtable = mediaTable[mediatype] |
| 180 if mtable[key] then return false end | 228 if mtable[key] then return false end |
| 181 | 229 |
| 182 mtable[key] = data | 230 mtable[key] = data |
