178 lines
4.8 KiB
Lua
178 lines
4.8 KiB
Lua
--[[
|
|
Enchantrix Addon for World of Warcraft(tm).
|
|
Version: 5.9.4961 (WhackyWallaby)
|
|
Revision: $Id: EnxConfig.lua 3576 2008-10-10 03:07:13Z aesir $
|
|
URL: http://enchantrix.org/
|
|
|
|
Configuration functions.
|
|
|
|
License:
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program(see GPL.txt); if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
Note:
|
|
This AddOn's source code is specifically designed to work with
|
|
World of Warcraft's interpreted AddOn system.
|
|
You have an implicit license to use this AddOn with these facilities
|
|
since that is its designated purpose as per:
|
|
http://www.fsf.org/licensing/licenses/gpl-faq.html#InterpreterIncompat
|
|
]]
|
|
Enchantrix_RegisterRevision("$URL: http://svn.norganna.org/auctioneer/branches/5.9/Enchantrix/EnxConfig.lua $", "$Rev: 3576 $")
|
|
|
|
-- Global functions
|
|
local addonLoaded -- Enchantrix.Config.AddonLoaded()
|
|
local setFrame -- Enchantrix.Config.SetFrame()
|
|
local getFrameNames -- Enchantrix.Config.GetFrameNames()
|
|
local getFrameIndex -- Enchantrix.Config.GetFrameIndex()
|
|
local setLocale -- Enchantrix.Config.SetLocale()
|
|
local getLocale -- Enchantrix.Config.GetLocale()
|
|
|
|
-- Local functions
|
|
local isValidLocale
|
|
|
|
|
|
function addonLoaded()
|
|
end
|
|
|
|
|
|
-- The following three functions were added by MentalPower to implement the /enx print-in command
|
|
function getFrameNames(index)
|
|
|
|
local frames = {}
|
|
local frameName
|
|
|
|
for i = 1, NUM_CHAT_WINDOWS do
|
|
-- name, fontSize, r, g, b, a, shown, locked, docked = GetChatWindowInfo(i)
|
|
local name = GetChatWindowInfo(i)
|
|
|
|
if ( name == "" ) then
|
|
if (i == 1) then
|
|
name = _ENCH('TextGeneral')
|
|
elseif (i == 2) then
|
|
name = _ENCH('TextCombat')
|
|
end
|
|
end
|
|
frames[name] = i
|
|
|
|
if i == index then
|
|
frameName = name
|
|
end
|
|
end
|
|
|
|
return frames, frameName or ""
|
|
end
|
|
|
|
function getFrameIndex()
|
|
return Enchantrix.Settings.GetSetting('printframe')
|
|
end
|
|
|
|
function setFrame(frame, chatprint)
|
|
|
|
local frameNumber
|
|
local frameVal
|
|
frameVal = tonumber(frame)
|
|
|
|
-- If no arguments are passed, then set it to the default frame.
|
|
if not (frame) then
|
|
frameNumber = 1;
|
|
|
|
-- If the frame argument is a number then set our chatframe to that number.
|
|
elseif ((frameVal) ~= nil) then
|
|
frameNumber = frameVal;
|
|
|
|
-- If the frame argument is a string, find out if there's a chatframe with that name, and set our chatframe to that index. If not set it to the default frame.
|
|
elseif (type(frame) == "string") then
|
|
allFrames = Enchantrix.Config.GetFrameNames();
|
|
|
|
if (allFrames[frame]) then
|
|
frameNumber = allFrames[frame];
|
|
|
|
else
|
|
frameNumber = 1;
|
|
end
|
|
|
|
-- If the argument is something else, set our chatframe to it's default value.
|
|
else
|
|
frameNumber = 1;
|
|
end
|
|
|
|
local _, frameName
|
|
|
|
if (chatprint == true) then
|
|
_, frameName = Enchantrix.Config.GetFrameNames(frameNumber);
|
|
|
|
if (Enchantrix.Config.GetFrameIndex() ~= frameNumber) then
|
|
Enchantrix.Util.ChatPrint(_ENCH('FrmtPrintin'):format(frameName));
|
|
end
|
|
end
|
|
|
|
Enchantrix.Settings.SetSetting("printframe", frameNumber);
|
|
|
|
if (chatprint == true) then
|
|
Enchantrix.Util.ChatPrint(_ENCH('FrmtPrintin'):format(frameName));
|
|
end
|
|
end
|
|
|
|
function isValidLocale(param)
|
|
return (EnchantrixLocalizations and EnchantrixLocalizations[param])
|
|
end
|
|
|
|
function setLocale(param, chatprint)
|
|
param = Enchantrix.Locale.DelocalizeFilterVal(param)
|
|
|
|
if (param == 'default') or (param == 'off') then
|
|
Babylonian.SetOrder('')
|
|
validLocale = true
|
|
elseif (isValidLocale(param)) then
|
|
Babylonian.SetOrder(param)
|
|
validLocale = true
|
|
else
|
|
validLocale = false
|
|
end
|
|
|
|
if chatprint then
|
|
if validLocale then
|
|
Enchantrix.Util.ChatPrint(_ENCH('FrmtActSet'):format(_ENCH('CmdLocale'), param))
|
|
else
|
|
Enchantrix.Util.ChatPrint(_ENCH("FrmtActUnknownLocale"):format(param))
|
|
local locales = " "
|
|
for locale, data in pairs(EnchantrixLocalizations) do
|
|
locales = locales .. " '" .. locale .. "' "
|
|
end
|
|
Enchantrix.Util.ChatPrint(locales)
|
|
end
|
|
end
|
|
|
|
Enchantrix.State.Locale_Changed = true
|
|
end
|
|
|
|
function getLocale()
|
|
local locale = Enchantrix.Settings.GetSetting('locale')
|
|
if locale ~= 'default' then
|
|
return locale
|
|
end
|
|
return GetLocale()
|
|
end
|
|
|
|
Enchantrix.Config = {
|
|
Revision = "$Revision: 3576 $",
|
|
AddonLoaded = addonLoaded,
|
|
|
|
GetFrameNames = getFrameNames,
|
|
GetFrameIndex = getFrameIndex,
|
|
SetFrame = setFrame,
|
|
|
|
SetLocale = setLocale,
|
|
GetLocale = getLocale,
|
|
}
|