/
## Interface: 20400 |
## Title: Lib: SharedMedia-3.0 |
## Notes: Shared handling of media data (fonts, sounds, textures, ...) between addons. |
## Version: 3.0 |
## Author: Elkano |
## X-Category: Library |
## LoadOnDemand: 1 |
LibStub\LibStub.lua |
CallbackHandler-1.0\CallbackHandler-1.0.lua |
lib.xml |
## Interface: 50001 |
## LoadOnDemand: 1 |
## X-Curse-Packaged-Version: 7 |
## X-Curse-Project-Name: LibSharedMedia-3.0 |
## X-Curse-Project-ID: libsharedmedia-3-0 |
## X-Curse-Repository-ID: wow/libsharedmedia-3-0/mainline |
## Title: Lib: SharedMedia-3.0 |
## Notes: Shared handling of media data (fonts, sounds, textures, ...) between addons. |
## Author: Elkano |
## Version: 3.0-71 |
## X-Website: http://www.wowace.com/projects/libsharedmedia-3-0/ |
## X-Category: Library |
## X-Revision: 71 |
## X-Date: 2012-08-30T11:03:10Z |
LibStub\LibStub.lua |
CallbackHandler-1.0\CallbackHandler-1.0.lua |
LibSharedMedia-3.0\lib.xml |
-- $Id: LibStub.lua 76 2007-09-03 01:50:17Z mikk $ |
-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info |
-- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke |
-- LibStub is hereby placed in the Public Domain |
-- Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke |
local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS! |
local LibStub = _G[LIBSTUB_MAJOR] |
-- Check to see is this version of the stub is obsolete |
if not LibStub or LibStub.minor < LIBSTUB_MINOR then |
LibStub = LibStub or {libs = {}, minors = {} } |
_G[LIBSTUB_MAJOR] = LibStub |
LibStub.minor = LIBSTUB_MINOR |
-- LibStub:NewLibrary(major, minor) |
-- major (string) - the major version of the library |
-- minor (string or number ) - the minor version of the library |
-- |
-- returns nil if a newer or same version of the lib is already present |
-- returns empty library object or old library object if upgrade is needed |
function LibStub:NewLibrary(major, minor) |
assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)") |
minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.") |
return self.libs[major], oldminor |
end |
-- LibStub:GetLibrary(major, [silent]) |
-- major (string) - the major version of the library |
-- silent (boolean) - if true, library is optional, silently return nil if its not found |
-- |
-- throws an error if the library can not be found (except silent is set) |
-- returns the library object if found |
function LibStub:GetLibrary(major, silent) |
if not self.libs[major] and not silent then |
error(("Cannot find a library instance of %q."):format(tostring(major)), 2) |
return self.libs[major], self.minors[major] |
end |
function LibStub:IterateLibraries() return pairs(self.libs) end |
-- LibStub:IterateLibraries() |
-- |
-- Returns an iterator for the currently registered libraries |
function LibStub:IterateLibraries() |
return pairs(self.libs) |
end |
setmetatable(LibStub, { __call = LibStub.GetLibrary }) |
end |
<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"> |
<Include file="LibSharedMedia-3.0\lib.xml" /> |
</Ui> |
<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"> |
<Include file="LibSharedMedia-3.0\lib.xml" /> |
</Ui> |
--[[ |
--[[ |
Name: LibSharedMedia-3.0 |
Revision: $Revision: 62 $ |
Revision: $Revision: 69 $ |
Author: Elkano (elkano@gmx.de) |
Inspired By: SurfaceLib by Haste/Otravi (troeks@gmail.com) |
Website: http://www.wowace.com/projects/libsharedmedia-3-0/ |
License: LGPL v2.1 |
]] |
local MAJOR, MINOR = "LibSharedMedia-3.0", 100001 -- increase manualy on changes |
local MAJOR, MINOR = "LibSharedMedia-3.0", 4030402 -- increase manualy on changes |
local lib = LibStub:NewLibrary(MAJOR, MINOR) |
if not lib then return end |
-- 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 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 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"] = [[Interface\None]] |
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 |
elseif locale == "zhCN" then |
LOCALE_MASK = lib.LOCALE_BIT_zhCN |
-- |
SML_MT_font["伤害æ°å"] = [[Fonts\ZYKai_C.ttf]] |
SML_MT_font["é»è®¤"] = [[Fonts\ZYKai_T.ttf]] |
SML_MT_font["è天"] = [[Fonts\ZYHei.ttf]] |
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 |
-- |
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 |
return result ~= "" and result or nil |
end |
function lib:IsValid(mediatype, key) |
-- LIBRARIES |
local smed = LibStub("LibSharedMedia-3.0") |
local lbf = LibStub("LibButtonFacade", true) -- optional |
local lbf = LibStub("Masque", true) -- optional |
-- GLOBAL -> LOCAL |
local _G = getfenv(0) |
if TitanUtils_AddonAdjust then |
TitanUtils_AddonAdjust("MainMenuBar", true) |
TitanUtils_AddonAdjust("MultiBarRight", true) |
TitanUtils_AddonAdjust("BonusActionBarFrame", true) |
TitanUtils_AddonAdjust("VehicleMenuBar", true) |
if BonusActionBarFrame then TitanUtils_AddonAdjust("BonusActionBarFrame", true) end |
if VehicleMenuBar then TitanUtils_AddonAdjust("VehicleMenuBar", true) end |
end |
-- LOCAL VARS |
local buttons = { |
"ActionButton%d", "BonusActionButton%d", "ShapeshiftButton%d", "PetActionButton%d", "PossessButton%d", |
"MultiBarBottomLeftButton%d", "MultiBarBottomRightButton%d", "MultiBarLeftButton%d", "MultiBarRightButton%d", |
"CharacterBag%dSlot", "VehicleMenuBarActionButton%d", |
"CharacterBag%dSlot", "VehicleMenuBarActionButton%d", "StanceButton%d", |
} |
local mainexpshown, repshown |
-- LOCAL FUNCS |
local nothing = function() end |
local function FullAdjust(frame, p, rt, rp, x, y) |
if not frame then return end |
local a,b,c,d,e = frame:GetPoint() |
frame:ClearAllPoints() |
oSetPoint(frame, p or a, rt or b, rp or c, x or d, y or e) |
MainMenuBarArtFrame:SetPoint("TOPLEFT", MainMenuBar, "TOPLEFT", 0, adj) |
MainMenuBarArtFrame:SetPoint("BOTTOMRIGHT", MainMenuBar, "BOTTOMRIGHT", 0, adj) |
BonusActionButton1:SetPoint("TOPLEFT", BonusActionBarFrame, "BOTTOMLEFT", 5, 3 + adj + 36) |
BonusActionButton2:ClearAllPoints() |
BonusActionButton2:SetPoint("TOPLEFT", BonusActionButton1, "TOPRIGHT", 6, 0) |
if BonusActionButton1 then |
BonusActionButton1:SetPoint("TOPLEFT", BonusActionBarFrame, "BOTTOMLEFT", 5, 3 + adj + 36) |
BonusActionButton2:ClearAllPoints() |
BonusActionButton2:SetPoint("TOPLEFT", BonusActionButton1, "TOPRIGHT", 6, 0) |
end |
end |
local function UpdateLook() |
if InCombatLockdown() then return end |
local s = db.scale |
local a = db.alpha or 1 |
MainMenuBar:SetScale(s) MultiBarRight:SetScale(s) VehicleMenuBar:SetScale(s) |
MainMenuBar:SetAlpha(a) MultiBarBottomRight:SetAlpha(a) MultiBarRight:SetAlpha(a) VehicleMenuBar:SetAlpha(a) |
MainMenuBar:SetScale(s) MultiBarRight:SetScale(s) |
MainMenuBar:SetAlpha(a) MultiBarBottomRight:SetAlpha(a) MultiBarRight:SetAlpha(a) |
if VehicleMenuBar then VehicleMenuBar:SetScale(s) VehicleMenuBar:SetAlpha(a) end |
local t = smed:Fetch("statusbar", db.texture) |
MainMenuExpBar:GetStatusBarTexture():SetHorizTile(false) |
"ReputationXPBarTexture0", "ReputationXPBarTexture1", "ReputationXPBarTexture2", "ReputationXPBarTexture3", |
"MainMenuBarTexture0", "MainMenuBarTexture1", "MainMenuBarTexture2", "MainMenuBarTexture3", |
"MainMenuBarLeftEndCap", "MainMenuBarRightEndCap", |
"ShapeshiftBarLeft", "ShapeshiftBarRight", "ShapeshiftBarMiddle", |
"StanceBarLeft", "StanceBarRight", "StanceBarMiddle", |
"MainMenuMaxLevelBar0", "MainMenuMaxLevelBar1", "MainMenuMaxLevelBar2", "MainMenuMaxLevelBar3", |
"BonusActionBarFrameTexture1", "BonusActionBarFrameTexture2", |
"SlidingActionBarTexture0", "SlidingActionBarTexture1", |
if _G[value] then |
_G[value]:SetAlpha(0) |
_G[value]:Hide() |
else |
print(value, "does not exist") |
end |
end |
stuffToHide = nil |
_G["ActionButton"..i]:SetAlpha(0) |
end |
end |
hooksecurefunc("ShowBonusActionBar", HideMainAction) |
hooksecurefunc("HideBonusActionBar", function() |
for i = 1, 12, 1 do |
_G["ActionButton"..i]:SetAlpha(1) |
end |
end) |
if BonusActionBarFrame:IsShown() then HideMainAction() end |
if _G.ShowBonusActionBar then |
hooksecurefunc("ShowBonusActionBar", HideMainAction) |
hooksecurefunc("HideBonusActionBar", function() |
for i = 1, 12, 1 do |
_G["ActionButton"..i]:SetAlpha(1) |
end |
end) |
if BonusActionBarFrame:IsShown() then HideMainAction() end |
end |
-- skin the buttons |
local r, g, b, a = db.r, db.g, db.b, (db.a or 1) |
SetPoints(fbg, "TOPLEFT", button, "TOPLEFT", -3, 3, "BOTTOMRIGHT", button, "BOTTOMRIGHT", 3, -3) |
lbfgroup:AddButton(button, button) |
end |
lbf:RegisterSkinCallback("StellarBars", function(_, SkinID, Gloss, Backdrop, Group, Button, Colors) |
--[[ lbf:RegisterSkinCallback("StellarBars", function(_, SkinID, Gloss, Backdrop, Group, Button, Colors) |
if SkinID == "StellarBars" and Colors and Colors.Backdrop then |
db.r, db.g, db.b, db.a = unpack(Colors.Backdrop) |
end |
db.skin = SkinID |
end) |
end) ]]-- |
else -- default skinning |
SkinButton = function(button) |
local name = button:GetName() |
for i = 0, 12, 1 do |
local butt = _G[format(value, i)] |
if butt then |
if value == "ActionButton%d" |
--or value == "BonusActionButton%d" |
then -- keeps empty buttons shown |
if value == "ActionButton%d" then -- keeps empty buttons shown |
butt.showgrid = 10 |
butt:SetAttribute("showgrid", 10) |
butt:Show() |
end |
-- experience bar |
hooksecurefunc("MainMenuExpBar_Update", function() |
hooksecurefunc(_G.ExpBar_Update and "ExpBar_Update" or "MainMenuExpBar_Update", function() |
if MainMenuExpBar.TextString:IsShown() then |
appendpercent(MainMenuExpBar, MainMenuExpBar.TextString) |
end |
local function SetUserPlaced() return true end |
MainMenuBar.SetUserPlaced = SetUserPlaced |
MultiBarRight.SetUserPlaced = SetUserPlaced |
VehicleMenuBar.SetUserPlaced = SetUserPlaced |
if VehicleMenuBar then VehicleMenuBar.SetUserPlaced = SetUserPlaced end |
end |
FullAdjust(MainMenuExpBar, "TOP", MainMenuBarArtFrame, "BOTTOM") |
FullAdjust(BonusActionBarFrame, "TOPLEFT", MainMenuBarArtFrame, "BOTTOMLEFT", 40, 0) |
-- hack vehicle bar so that it is positioned relative to MainMenuBar |
VehicleMenuBar:SetPoint("BOTTOMLEFT", MainMenuBar, "BOTTOMLEFT", 27, 0) |
VehicleMenuBar:SetPoint("BOTTOMRIGHT", MainMenuBar, "BOTTOMRIGHT", -27, 0) |
local vskin, vskinpitch = "", "" |
local function adjvehicleskin(this) |
if not this then return end |
local p, rt, rp, x, y = this:GetPoint() |
if strfind(p or "blah", "LEFT") and this:GetParent() == rt then |
oSetPoint(this, p, rt, rp, x + (970 - VehicleMenuBar:GetWidth()), y) |
if VehicleMenuBar then |
VehicleMenuBar:SetPoint("BOTTOMLEFT", MainMenuBar, "BOTTOMLEFT", 27, 0) |
VehicleMenuBar:SetPoint("BOTTOMRIGHT", MainMenuBar, "BOTTOMRIGHT", -27, 0) |
local vskin, vskinpitch = "", "" |
local function adjvehicleskin(this) |
if not this then return end |
local p, rt, rp, x, y = this:GetPoint() |
if strfind(p or "blah", "LEFT") and this:GetParent() == rt then |
oSetPoint(this, p, rt, rp, x + (970 - VehicleMenuBar:GetWidth()), y) |
end |
end |
end |
local function UpdateVehicleSkins(skinName, pitchVisible) |
if vskin == skinName and vskinpitch == pitchVisible then return end |
vskin, vskinpitch = skinName, pitchVisible |
for i = 1, 4, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameBACKGROUND"..i]) |
local function UpdateVehicleSkins(skinName, pitchVisible) |
if vskin == skinName and vskinpitch == pitchVisible then return end |
vskin, vskinpitch = skinName, pitchVisible |
for i = 1, 4, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameBACKGROUND"..i]) |
end |
for i = 1, 8, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameBORDER"..i]) |
end |
for i = 1, 11, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameARTWORK"..i]) |
end |
for i = 1, 5, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameOVERLAY"..i]) |
end |
adjvehicleskin(VehicleMenuBarHealthBar) |
end |
for i = 1, 8, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameBORDER"..i]) |
end |
for i = 1, 11, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameARTWORK"..i]) |
end |
for i = 1, 5, 1 do |
adjvehicleskin(_G["VehicleMenuBarArtFrameOVERLAY"..i]) |
end |
adjvehicleskin(VehicleMenuBarHealthBar) |
VehicleMenuBar:HookScript("OnHide", function(this) |
vskin, vskinpitch = nil, nil |
end) |
hooksecurefunc("VehicleMenuBar_SetSkin", UpdateVehicleSkins) |
UpdateVehicleSkins() |
end |
VehicleMenuBar:HookScript("OnHide", function(this) |
vskin, vskinpitch = nil, nil |
end) |
hooksecurefunc("VehicleMenuBar_SetSkin", UpdateVehicleSkins) |
UpdateVehicleSkins() |
self:RegisterEvent("PLAYER_ENTERING_WORLD") |
self.PLAYER_REGEN_ENABLED = UpdatePositions |
if db.selfcast then -- adds right-click self-casting |
MainMenuBarArtFrame:SetAttribute("unit2", "player") |
BonusActionBarFrame:SetAttribute("unit2", "player") |
if BonusActionBarFrame then BonusActionBarFrame:SetAttribute("unit2", "player") end |
MultiBarBottomLeft:SetAttribute("unit2", "player") |
MultiBarBottomRight:SetAttribute("unit2", "player") |
MultiBarLeft:SetAttribute("unit2", "player") |
UpdateLook() |
UpdatePositions() |
if BonusActionBarFrame:IsShown() then |
if BonusActionBarFrame and BonusActionBarFrame:IsShown() then |
SetupBonusActionBar() |
end |
self.ADDON_LOADED = nil |
## Interface: 40300 |
## Interface: 50001 |
## Title: StellarBars |
## Notes: Adds a new look and some options to the default action bars. |
## Author: TotalPackage |
## Version: 4.3.001 |
## Version: 5.0.001 |
## SavedVariables: StellarBarsDB |
## SavedVariablesPerCharacter: StellarBarsCharDB |