--function STS_ResetSV() -- reset anything except ignorelist |
--function STS_InitSV() |
--function STS_SetLanguage(setlang) |
--local function STS_DelLanguage(setlang) |
--function STS_List(...) |
--function STS_Find(key, list) |
--function STS_AddIgnore(ign_name, ign_reason) |
--function STS_DelIgnore(ign_name) |
--function STS_Add(key, list) |
--function STS_Remove(key, list) |
--function STS_ColoredNameLink(...) |
--local function STS_Update(oldv) --TODO: were changes made to the SV? |
--function STS_Statistic(...) |
--function STS_Settings(...) |
--function STS_GetNumIgnore() |
if select(4,GetAddOnInfo("StopTradeSpam_Options")) == 1 then DisableAddOn("StopTradeSpam_Options") end |
local version = 0.1 |
local lang = "enUS" |
--[[ |
local pname = { |
["STSOPanel"] = "StopTradeSpam", |
["STSOPanel_white"] = "Whitelist", |
["STSOPanel_black"] = "Blacklist", |
["STSOPanel_ignore"] = "Trade-Ignorelist", |
}--]] |
local options = { |
["enUS"] = true, |
["STSOPanel"] = { |
["enUS"] = "StopTradeSpam", |
["checkbutton"] = { |
["enabletign"] = { |
["left"] = 20, |
["top"] = -30, |
["def"] = true, |
["enUS"] = "Enable adding spammers to t-ignorelist. (NYI)", |
}, |
["CHAT_MSG_CHANNEL_1"] = { |
["left"] = 20, |
["top"] = -50, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '1'", |
}, |
["CHAT_MSG_CHANNEL_2"] = { |
["left"] = 20, |
["top"] = -70, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '2'", |
}, |
["CHAT_MSG_CHANNEL_3"] = { |
["left"] = 20, |
["top"] = -90, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '3'", |
}, |
["CHAT_MSG_CHANNEL_4"] = { |
["left"] = 20, |
["top"] = -110, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '4'", |
}, |
["CHAT_MSG_CHANNEL_5"] = { |
["left"] = 20, |
["top"] = -130, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '5'", |
}, |
["CHAT_MSG_CHANNEL_6"] = { |
["left"] = 20, |
["top"] = -150, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '6'", |
}, |
["CHAT_MSG_CHANNEL_7"] = { |
["left"] = 20, |
["top"] = -170, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '7'", |
}, |
["CHAT_MSG_CHANNEL_8"] = { |
["left"] = 20, |
["top"] = -190, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '8'", |
}, |
["CHAT_MSG_CHANNEL_9"] = { |
["left"] = 20, |
["top"] = -210, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '9'", |
}, |
["CHAT_MSG_CHANNEL_10"] = { |
["left"] = 20, |
["top"] = -230, |
["def"] = true, |
["enUS"] = "Enable ignoring players in Channel '10'", |
}, |
["complainchat"] = { |
["left"] = 20, |
["top"] = -250, |
["def"] = true, |
["enUS"] = "Enable automatic repoting spam to gamemasters", |
}, |
["blockgold"] = { |
["left"] = 20, |
["top"] = -270, |
["def"] = true, |
["enUS"] = "Filter obvious gold-seller messages, and report them automatically. (no ignore here)", |
}, |
}, |
}, |
} |
if options[GetLocale()] then lang = GetLocale() end |
function STSO_GetTableKey(frame) |
local upperkey = strmatch(frame:GetName(),"^%w-_(.-)_%w-$") |
local lowerkey = strmatch(frame:GetName(),"_(%w-)$") |
if strlen(lowerkey) <= 2 then |
lowerkey = tonumber(lowerkey) |
end |
return lowerkey,upperkey |
end |
function STSO_Get(childf) |
local lowerkey,upperkey = STSO_GetTableKey(childf) |
local value |
if not upperkey then |
value = STS_Settings("GET",lowerkey) |
else |
value = STS_Settings("GET",upperkey,lowerkey) |
end |
return value |
end |
function STSO_Set(childf,value) |
local lowerkey,upperkey = STSO_GetTableKey(childf) |
if not upperkey then |
STS_Settings("SET",lowerkey,value) |
elseif strsub(upperkey,1,6) ~= "static" then |
STS_Settings("SET",upperkey,lowerkey,value) |
end |
end |
function STSO_Load(self) |
if not strfind(self:GetName(),"_") then |
self.name = options[self:GetName()][lang] |
self.okay = STSO_Okay |
self.cancel = STSO_Cancel |
self.default = STSO_Default |
-- if self:GetName() ~= "STSOPanel" then |
-- self.parent = pname["STSOPanel"] |
-- end |
local newcb |
local newtext = "" |
local newfs |
--TODO: Dynamically build frame |
for cbname,cbstat in pairs(options[self:GetName()]["checkbutton"]) do |
newcb = CreateFrame("CheckButton", "$parent_"..cbname, self, "ChatConfigCheckButtonTemplate") |
newcb:SetPoint("TOPLEFT", self:GetName(), "TOPLEFT", cbstat["left"], cbstat["top"]) |
newcb.OnLoad = STSO_Load(newcb) |
newtext = "$parent_static_"..cbname |
newfs = self:CreateFontString(newtext,"OVERLAY","STSO_static_text") |
newfs:SetText(cbstat[lang]) |
newfs:SetPoint("TOPLEFT", self, "TOPLEFT", cbstat["left"]+25, cbstat["top"]-5); |
end |
|
InterfaceOptions_AddCategory(self) |
elseif self.GetChecked then |
self:SetChecked(STSO_Get(self) == true) |
--elseif TODO! |
end |
end |
function STSO_Show(self) |
print(self:GetName()) |
end |
function STSO_Okay(self) |
local kids = { self:GetChildren() }; |
for _, child in ipairs(kids) do |
if child.GetChecked then |
STSO_Set(child,child:GetChecked() == 1 or false) |
-- else --TODO: other types of widgets (editboxes?) |
end |
end |
end |
function STSO_Cancel(self) |
local kids = { self:GetChildren() }; |
for _, child in ipairs(kids) do |
STSO_Load(child) |
end |
end |
function STSO_Default(self) |
--TODO: More widgets |
for cbname,cbstat in pairs(options[self:GetName()]["checkbutton"]) do |
getglobal(self:GetName().."_"..cbname):SetChecked(cbstat["def"]) |
end |
-- print("Defaults aren't implemented yet.") |
end |
|
function STSO_CheckButton_OnClick(self) |
|
end |
--[[ |
local panel = CreateFrame("Frame", "STSO_Panel", UIParent) |
panel.name = "StopTradeSpam" |
panel.okay = STSO_Okay |
panel.cancel = STSO_Cancel |
panel.default = STSO_Default |
InterfaceOptions_AddCategory(panel); |
|
panel = CreateFrame("Frame", "STSO_Panel_white", STSO_Panel) |
panel.parent = "StopTradeSpam" |
panel.name = "Whitelist" |
panel.okay = STSO_Okay |
panel.cancel = STSO_Cancel |
panel.default = STSO_Default |
InterfaceOptions_AddCategory(panel); |
|
panel = CreateFrame("Frame", "STSO_Panel_black", STSO_Panel) |
panel.parent = "StopTradeSpam" |
panel.name = "Blacklist" |
panel.okay = STSO_Okay |
panel.cancel = STSO_Cancel |
panel.default = STSO_Default |
InterfaceOptions_AddCategory(panel); |
|
panel = CreateFrame("Frame", "STSO_Panel_ignore", STSO_Panel) |
panel.parent = "StopTradeSpam" |
panel.name = "Trade-Ignorelist" |
panel.okay = STSO_Okay |
panel.cancel = STSO_Cancel |
panel.default = STSO_Default |
InterfaceOptions_AddCategory(panel); |
--]] |
--[[ |
function STSO_ButtonClick() |
DEFAULT_CHAT_FRAME:AddMessage(STSO_EditBox:GetText()) |
STSO_EditBox:SetText("") |
end |
|
function STSO_Close() |
STS_Options:Hide() |
end |
|
-- DEFAULT_CHAT_FRAME:AddMessage(...) |
|
-- Event Handler |
--]] |