From 0727ccb26bdfe3cd2ac2fdd7fbd9774e490a8070 Mon Sep 17 00:00:00 2001 From: Steven Jackson Date: Thu, 24 Jul 2014 23:47:43 -0500 Subject: [PATCH] updates --- Interface/AddOns/SVUI/SVUI.lua.orig | 302 +++++++++++++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 Interface/AddOns/SVUI/SVUI.lua.orig diff --git a/Interface/AddOns/SVUI/SVUI.lua.orig b/Interface/AddOns/SVUI/SVUI.lua.orig new file mode 100644 index 0000000..15393ec --- /dev/null +++ b/Interface/AddOns/SVUI/SVUI.lua.orig @@ -0,0 +1,302 @@ +--[[ +############################################################################## +_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_ # + ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__ # + __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____ # + ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____ # + ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____ # + _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____ # + __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ # + _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_# + ___\///////////___________\///___________\/////////_____\///////////_# +############################################################################## +S U P E R - V I L L A I N - U I By: Munglunch # +############################################################################## ]]-- +--[[ GLOBALS ]]-- +local _G = _G; +local unpack = _G.unpack; +local select = _G.select; +local pairs = _G.pairs; +local type = _G.type; +local rawset = _G.rawset; +local rawget = _G.rawget; +local tinsert = _G.tinsert; +local tremove = _G.tremove; +local tostring = _G.tostring; +local error = _G.error; +local getmetatable = _G.getmetatable; +local setmetatable = _G.setmetatable; +local string = _G.string; +local math = _G.math; +local table = _G.table; +--[[ STRING METHODS ]]-- +local upper = string.upper; +local format, find, match, gsub = string.format, string.find, string.match, string.gsub; +--[[ MATH METHODS ]]-- +local floor = math.floor +--[[ TABLE METHODS ]]-- +local tsort, tconcat = table.sort, table.concat; +--[[ +########################################################## +CONSTANTS +########################################################## +]]-- +SVUI_LIB, SVUI_LOCALE = {}, {} +BINDING_HEADER_SVUI = GetAddOnMetadata(..., "Title"); +SLASH_RELOADUI1="/rl" +SLASH_RELOADUI2="/reloadui" +SlashCmdList.RELOADUI=ReloadUI +--[[ +########################################################## +LOCAL VARIABLES +########################################################## +]]-- +local callbacks = {}; +local numCallbacks = 0; +--[[ +########################################################## +MUNGLUNCH's FASTER ASSERT FUNCTION +########################################################## +]]-- +function enforce(condition, ...) + if not condition then + if next({...}) then + local fn = function (...) return(string.format(...)) end + local s,r = pcall(fn, ...) + if s then + error("Error!: " .. r, 2) + end + end + error("Error!", 2) + end +end +local assert = enforce; +--[[ +########################################################## +OBJECT CONSTRUCTOR GLOBAL +########################################################## +]]-- +local rootstring = function(self) return self.name end + +function SVUI_LIB:SetObject(globalName) + local r = {} + r.name = globalName + local mt = {} + local old = getmetatable(r) + if old then + for k, v in pairs(old) do mt[k] = v end + end + mt.__tostring = rootstring + setmetatable(r, mt) + return r +end +--[[ +########################################################## +LOCALIZATION GLOBAL +########################################################## +]]-- +local failsafe = function() assert(false) end + +local metaread = { + __index = function(self, key) + rawset(self, key, key) + return key + end +} + +local activeLocale + +local defaultwrite = setmetatable({}, { + __newindex = function(self, key, value) + if not rawget(activeLocale, key) then + rawset(activeLocale, key, value == true and key or value) + end + end, + __index = failsafe +}) + +local metawrite = setmetatable({}, { + __newindex = function(self, key, value) + rawset(activeLocale, key, value == true and key or value) + end, + __index = failsafe +}) + +function SVUI_LOCALE:SetLocalStrings(locale, isDefault) + local gameLocale = GetLocale() + if gameLocale == "enGB" then gameLocale = "enUS" end + + if not SVUI_LOCALE["LANG"] then + SVUI_LOCALE["LANG"] = setmetatable({}, metaread) + end + + activeLocale = SVUI_LOCALE["LANG"] + + if isDefault then + return defaultwrite + elseif(locale == GAME_LOCALE or locale == gameLocale) then + return metawrite + end +end + +function SVUI_LOCALE:SetObject() + return SVUI_LOCALE["LANG"] +end +--[[ +########################################################## +LOCAL FUNCTIONS +########################################################## +]]-- +local function formatValueString(text) + if "string" == type(text) then + text = gsub(text,"\n","\\n") + if match(gsub(text,"[^'\"]",""),'^"+$') then + return "'"..text.."'"; + else + return '"'..gsub(text,'"','\\"')..'"'; + end; + else + return tostring(text); + end +end; +local function formatKeyString(text) + if "string"==type(text) and match(text,"^[_%a][_%a%d]*$") then + return text; + else + return "["..formatValueString(text).."]"; + end +end; +local function RegisterCallback(self, m, h) + assert(type(m) == "string" or type(m) == "function", "Bad argument #1 to :RegisterCallback (string or function expected)") + if type(m) == "string" then + assert(type(h) == "table", "Bad argument #2 to :RegisterCallback (table expected)") + assert(type(h[m]) == "function", "Bad argument #1 to :RegisterCallback (m \"" .. m .. "\" not found)") + m = h[m] + end + callbacks[m] = h or true + numCallbacks = numCallbacks + 1 +end; +local function UnregisterCallback(self, m, h) + assert(type(m) == "string" or type(m) == "function", "Bad argument #1 to :UnregisterCallback (string or function expected)") + if type(m) == "string" then + assert(type(h) == "table", "Bad argument #2 to :UnregisterCallback (table expected)") + assert(type(h[m]) == "function", "Bad argument #1 to :UnregisterCallback (m \"" .. m .. "\" not found)") + m = h[m] + end + callbacks[m] = nil + numCallbacks = numCallbacks + 1 +end; +local function DispatchCallbacks() + if (numCallbacks < 1) then return end; + for m, h in pairs(callbacks) do + local ok, err = pcall(m, h ~= true and h or nil) + if not ok then + print("ERROR:", err) + end + end +end; +--[[ +########################################################## +BUILD CLASS COLOR GLOBAL +########################################################## +]]-- +SVUI_CLASS_COLORS = {}; +do + local classes = {}; + local supercolors = { + ["HUNTER"] = { r = 0.454, g = 0.698, b = 0 }, + ["WARLOCK"] = { r = 0.286, g = 0, b = 0.788 }, + ["PRIEST"] = { r = 0.976, g = 1, b = 0.839 }, + ["PALADIN"] = { r = 0.956, g = 0.207, b = 0.733 }, + ["MAGE"] = { r = 0, g = 0.796, b = 1 }, + ["ROGUE"] = { r = 1, g = 0.894, b = 0.117 }, + ["DRUID"] = { r = 1, g = 0.513, b = 0 }, + ["SHAMAN"] = { r = 0, g = 0.38, b = 1 }, + ["WARRIOR"] = { r = 0.698, g = 0.36, b = 0.152 }, + ["DEATHKNIGHT"] = { r = 0.847, g = 0.117, b = 0.074 }, + ["MONK"] = { r = 0.015, g = 0.886, b = 0.38 }, + }; + for class in pairs(RAID_CLASS_COLORS) do + tinsert(classes, class) + end + tsort(classes) + setmetatable(SVUI_CLASS_COLORS,{ + __index = function(t, k) + if k == "RegisterCallback" then return RegisterCallback end + if k == "UnregisterCallback" then return UnregisterCallback end + if k == "DispatchCallbacks" then return DispatchCallbacks end + end + }); + for i, class in ipairs(classes) do + local color = supercolors[class] + local r, g, b = color.r, color.g, color.b + local hex = format("ff%02x%02x%02x", r * 255, g * 255, b * 255) + if not SVUI_CLASS_COLORS[class] or not SVUI_CLASS_COLORS[class].r or not SVUI_CLASS_COLORS[class].g or not SVUI_CLASS_COLORS[class].b then + SVUI_CLASS_COLORS[class] = { + r = r, + g = g, + b = b, + colorStr = hex, + } + end + end + classes = nil +end; +--[[ +########################################################## +APPENDED GLOBAL FUNCTIONS +########################################################## +]]-- +function math.parsefloat(value,decimal) + if decimal and decimal > 0 then + local calc1 = 10 ^ decimal; + local calc2 = (value * calc1) + 0.5; + return floor(calc2) / calc1 + end; + return floor(value + 0.5) +end + +function table.dump(targetTable) + local dumpTable = {}; + local dumpCheck = {}; + for key,value in ipairs(targetTable) do + tinsert(dumpTable, formatValueString(value)); + dumpCheck[key] = true; + end; + for key,value in pairs(targetTable) do + if not dumpCheck[key] then + tinsert(dumpTable, "\n "..formatKeyString(key).." = "..formatValueString(value)); + end + end; + local output = tconcat(dumpTable, ", "); + return "{ "..output.." }"; +end + +function table.copy(targetTable,deepCopy,mergeTable) + mergeTable = mergeTable or {}; + if targetTable==nil then return nil end; + if mergeTable[targetTable] then return mergeTable[targetTable] end; + local replacementTable = {} + for key,value in pairs(targetTable)do + if deepCopy and type(value) == "table" then + replacementTable[key] = table.copy(value, deepCopy, mergeTable) + else + replacementTable[key] = value + end + end; + setmetatable(replacementTable, table.copy(getmetatable(targetTable), deepCopy, mergeTable)) + mergeTable[targetTable] = replacementTable; + return replacementTable +end + +function string.trim(this) + return this:find'^%s*$' and '' or this:match'^%s*(.*%S)' +end + +function string.color(this,color) + return "|cff"..color..this.."|r"; +end + +function string.link(this,prefix,text,color) + return "|H"..prefix..":"..tostring(text).."|h"..tostring(this):color(color or"ffffff").."|h"; +end \ No newline at end of file -- 1.7.9.5