/trunk
------------------------------------------------------------------------ |
r30568 | prandur | 2007-03-19 22:48:32 -0400 (Mon, 19 Mar 2007) | 1 line |
Changed paths: |
M /trunk/FuBar_RecapFu/RecapFu.lua |
FuBar_RecapFu: update for Hawksy Recap 3.61 |
------------------------------------------------------------------------ |
local L = AceLibrary("AceLocale-2.2"):new("RecapFu") |
L:RegisterTranslations("enUS", function() return { |
["Disabled"] = true, |
["Left-click to toggle Recap window"] = true, |
["Pause/Resume Monitoring"] = true, |
["Pause"] = true, |
["Toggle what is displayed on the panel"] = true, |
["Show/Hide the DPS label"] = true, |
["Display"] = true, |
["Label"] = true, |
["State"] = true, |
["View Type"] = true, |
["DPS"] = true, |
["Your DPS"] = true, |
["DPSin"] = true, |
["Total DPS In"] = true, |
["DPSout"] = true, |
["Total DPS Out"] = true, |
["Received"] = true, |
["Your damage received"] = true, |
["Dealt"] = true, |
["Your damage dealt"] = true, |
["Healing"] = true, |
["Your healing"] = true, |
["Overhealing"] = true, |
["Your over-healing percentage"] = true, |
["Max"] = true, |
["Your max hit"] = true, |
} end) |
RecapFu = AceLibrary("AceAddon-2.0"):new("AceConsole-2.0", "AceDB-2.0", "AceDebug-2.0", "FuBarPlugin-2.0") |
local L = AceLibrary("AceLocale-2.2"):new("RecapFu") |
local tablet = AceLibrary("Tablet-2.0") |
local crayon = AceLibrary("Crayon-2.0") |
local TYPES = { |
a = {var = "DPS", text = L["Your DPS"]}, |
b = {var = "DMG_IN", text = L["Your damage received"]}, |
c = {var = "DMG_OUT", text = L["Your damage dealt"]}, |
d = {var = "HEALING", text = L["Your healing"]}, |
e = {var = "OVERHEAL", text = L["Your over-healing percentage"]}, |
f = {var = "MAXHIT", text = L["Your max hit"]}, |
g = {var = "DPS_IN", text = L["Total DPS In"]}, |
h = {var = "DPS_OUT", text = L["Total DPS Out"]}, |
} |
local recapFu_index = 1 |
local options = { |
type = 'group', |
args = { |
pause = { |
type = 'toggle', |
order = 100, |
name = L["Pause"], |
desc = L["Pause/Resume Monitoring"], |
get = function() |
return recap.Opt.Paused.value |
end, |
set = function() |
Recap_OnClick("Pause") |
end, |
}, |
display = { |
type = 'group', |
order = 102, |
name = L["Display"], |
desc = L["Toggle what is displayed on the panel"], |
args = { |
label = { |
type = 'toggle', |
order = 100, |
name = L["Label"], |
desc = L["Show/Hide the DPS label"], |
get = function() |
return RecapFu.db.profile.showlabel |
end, |
set = function() |
RecapFu.db.profile.showlabel = not RecapFu.db.profile.showlabel |
RecapFu:UpdateText() |
end, |
}, |
dps = { |
type = 'toggle', |
order = 110, |
name = L["DPS"], |
desc = L["Your DPS"], |
get = function() |
return RecapFu.db.profile.DPS |
end, |
set = function() |
RecapFu.db.profile.DPS = not RecapFu.db.profile.DPS |
RecapFu:UpdateText() |
end, |
}, |
dmgin = { |
type = 'toggle', |
order = 120, |
name = L["Received"], |
desc = L["Your damage received"], |
get = function() |
return RecapFu.db.profile.DMG_IN |
end, |
set = function() |
RecapFu.db.profile.DMG_IN = not RecapFu.db.profile.DMG_IN |
RecapFu:UpdateText() |
end, |
}, |
dmgout = { |
type = 'toggle', |
order = 130, |
name = L["Dealt"], |
desc = L["Your damage dealt"], |
get = function() |
return RecapFu.db.profile.DMG_OUT |
end, |
set = function() |
RecapFu.db.profile.DMG_OUT = not RecapFu.db.profile.DMG_OUT |
RecapFu:UpdateText() |
end, |
}, |
healing = { |
type = 'toggle', |
order = 140, |
name = L["Healing"], |
desc = L["Your healing"], |
get = function() |
return RecapFu.db.profile.HEALING |
end, |
set = function() |
RecapFu.db.profile.HEALING = not RecapFu.db.profile.HEALING |
RecapFu:UpdateText() |
end, |
}, |
overheal = { |
type = 'toggle', |
order = 150, |
name = L["Overhealing"], |
desc = L["Your over-healing percentage"], |
get = function() |
return RecapFu.db.profile.OVERHEAL |
end, |
set = function() |
RecapFu.db.profile.OVERHEAL = not RecapFu.db.profile.OVERHEAL |
RecapFu:UpdateText() |
end, |
}, |
maxhit = { |
type = 'toggle', |
order = 160, |
name = L["Max"], |
desc = L["Your max hit"], |
get = function() |
return RecapFu.db.profile.MAXHIT |
end, |
set = function() |
RecapFu.db.profile.MAXHIT = not RecapFu.db.profile.MAXHIT |
RecapFu:UpdateText() |
end, |
}, |
dpsin = { |
type = 'toggle', |
order = 170, |
name = L["DPSin"], |
desc = L["Total DPS In"], |
get = function() |
return RecapFu.db.profile.DPS_IN |
end, |
set = function() |
RecapFu.db.profile.DPS_IN = not RecapFu.db.profile.DPS_IN |
RecapFu:UpdateText() |
end, |
}, |
dpsout = { |
type = 'toggle', |
order = 180, |
name = L["DPSout"], |
desc = L["Total DPS Out"], |
get = function() |
return RecapFu.db.profile.DPS_OUT |
end, |
set = function() |
RecapFu.db.profile.DPS_OUT = not RecapFu.db.profile.DPS_OUT |
RecapFu:UpdateText() |
end, |
}, |
} |
}, |
} |
} |
RecapFu.version = "2.0." .. string.sub("$Revision: 30568 $", 12, -3) |
RecapFu.date = string.sub("$Date: 2007-03-19 22:48:32 -0400 (Mon, 19 Mar 2007) $", 8, 17) |
RecapFu.hasIcon = "Interface\\AddOns\\Recap\\Recap-Status" |
RecapFu.hasNoColor = true |
RecapFu.independentProfile = true |
RecapFu.OnMenuRequest = options |
RecapFu:RegisterChatCommand({"/recapfu", "/fubar_recapfu"}, options) |
RecapFu:RegisterDB("RecapFuDB") |
RecapFu:RegisterDefaults('profile', { |
showlabel = true, |
DPS = true, |
}) |
function RecapFu:OnEnable() |
self.text = {} |
end |
function RecapFu:OnDisable() |
self.text = nil |
end |
function RecapFu:OnClick() |
RecapFrame_Toggle() |
end |
function RecapFu:UpdateData() |
self:Debug("Update Data") |
if recap.Opt then |
if recap.Opt.State then |
self.state = recap.Opt.State.value or "n/a" |
else |
self.state = "n/a" |
end |
if recap.Opt.View and recap_temp.LastAll then |
self.viewtype = recap_temp.LastAll[recap.Opt.View.value] or "n/a" |
else |
self.viewtype = "n/a" |
end |
else |
self.state = "n/a" |
self.viewtype = "n/a" |
end |
local Player |
if (recapFu_index < recap_temp.ListSize) and (recap_temp.List[recapFu_index].Name == recap_temp.Player) then |
Player = recap_temp.List[recapFu_index] |
else |
local i |
for i=1,(recap_temp.ListSize-1) do |
if recap_temp.List[i].Name==recap_temp.Player then |
recapFu_index = i |
Player = recap_temp.List[i] |
break |
end |
end |
end |
if Player == nil then |
self.dmgin = 0 |
self.dmgout = 0 |
self.maxhit = 0 |
self.healing = 0 |
self.overheal = 0 |
self.dpsin = 0 |
self.dpsout = 0 |
else |
self.dmgin = Player.DmgIn |
self.dmgout = Player.DmgOut |
self.maxhit = Player.MaxHit |
self.healing = Player.Heal |
self.overheal = Player.Over |
end |
if not self.yourdps then |
self.yourdps = RecapMinYourDPS_Text:GetText() |
end |
if not self.dpsin then |
self.dpsin = RecapMinDPSIn_Text:GetText() |
end |
if not self.dpsout then |
self.dpsout = RecapMinDPSOut_Text:GetText() |
end |
self.text.DPS = crayon:White(self.yourdps) |
self.text.DPS_IN = crayon:Red(self.dpsin) |
self.text.DPS_OUT = crayon:Green(self.dpsout) |
self.text.DMG_IN = crayon:Red(self.dmgin) |
self.text.DMG_OUT = crayon:Green(self.dmgout) |
self.text.HEALING = crayon:Colorize("00ffff", self.healing) |
self.text.OVERHEAL = crayon:Colorize("00ffff", self.overheal.."%") |
self.text.MAXHIT = crayon:Orange(self.maxhit) |
end |
function RecapFu:UpdateText() |
self:Debug("Update Text") |
-- format the colored status bubble |
if (self:IsIconShown()) then |
if self.state=="Idle" then |
self.iconFrame:SetVertexColor(.5,.5,.5) |
elseif self.state=="Active" then |
self.iconFrame:SetVertexColor(0,1,0) |
elseif self.state=="Stopped" then |
self.iconFrame:SetVertexColor(1,0,0) |
end |
end |
local t = {} |
if self.db.profile.showlabel then |
table.insert(t, L["DPS"]..": ") |
end |
for i,e in self:pairsByKeys(TYPES) do |
if self.db.profile[e.var] then |
table.insert(t, self.text[e.var]) |
end |
end |
self:SetText(table.concat(t, " ")) |
end |
function RecapFu:OnTooltipUpdate() |
self:Debug("Update Tooltip") |
local cat = tablet:AddCategory( |
'columns', 2, |
'child_textR', 1, |
'child_textG', 1, |
'child_textB', 0, |
'child_text2R', 1, |
'child_text2G', 1, |
'child_text2B', 1 |
) |
cat:AddLine('text', L["State"], 'text2', self.state) |
cat:AddLine('text', L["View Type"], 'text2', self.viewtype) |
local cat = tablet:AddCategory( |
'columns', 2, |
'child_textR', 1, |
'child_textG', 1, |
'child_textB', 0 |
) |
for i,e in self:pairsByKeys(TYPES) do |
cat:AddLine('text', e.text, 'text2', self.text[e.var]) |
end |
tablet:SetHint(L["Left-click to toggle Recap window"]) |
end |
function RecapFu:pairsByKeys (t, f) |
--taken from an example in the Programming in Lua book |
local a = {} |
for n in pairs(t) do |
table.insert(a, n) |
end |
table.sort(a, f) |
local i = 0 -- iterator variable |
local iter = function () -- iterator function |
i = i + 1 |
if a[i] == nil then |
return nil |
else |
return a[i], t[a[i]] |
end |
end |
return iter |
end |
-- Simulate Titan Panel plugin |
-- Necessary or updates to dps data on the plugin may not occur until after combat ends |
function TitanPanelRecap_Update(state,yourdps,dpsin,dpsout) |
RecapFu.state = state |
RecapFu.yourdps = yourdps |
RecapFu.dpsin = dpsin |
RecapFu.dpsout = dpsout |
RecapFu:Update() |
end |
## Interface: 20003 |
## Title: FuBar - |cffffffffRecap|r|cff00ff00Fu|r |
## Notes: FuBar plugin for Recap |
## Author: Prandur |
## X-Credits: Gello (for Recap), Darravis (enhancement ideas) |
## Version: 2.0 |
## X-Category: Combat |
## X-WoWIPortal: prandur |
## Dependencies: FuBar, Recap |
## OptionalDeps: Ace2, FuBarPlugin-2.0, TabletLib, DewdropLib, CrayonLib |
## X-Embeds: Ace2, CompostLib, FuBarPlugin-2.0, TabletLib, DewdropLib, CrayonLib |
## SavedVariables: RecapFuDB |
## LoadOnDemand: 1 |
# Libraries |
libs\AceLibrary\AceLibrary.lua |
libs\AceOO-2.0\AceOO-2.0.lua |
libs\AceAddon-2.0\AceAddon-2.0.lua |
libs\AceLocale-2.2\AceLocale-2.2.lua |
libs\AceConsole-2.0\AceConsole-2.0.lua |
libs\AceDB-2.0\AceDB-2.0.lua |
libs\AceDebug-2.0\AceDebug-2.0.lua |
libs\Dewdrop-2.0\Dewdrop-2.0.lua |
libs\Tablet-2.0\Tablet-2.0.lua |
libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua |
libs\Crayon-2.0\Crayon-2.0.lua |
# Core addon |
RecapFu_Locale_enUS.lua |
RecapFu.lua |
<?xml version="1.0"?> |
<log> |
<logentry |
revision="25921"> |
<author>kergoth</author> |
<date>2007-01-23T21:50:43.516580Z</date> |
<paths> |
<path |
action="M">/trunk/Acolyte/Modules/NightFall.lua</path> |
<path |
action="M">/trunk/Chronometer/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFu.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README.txt</path> |
<path |
action="M">/trunk/Cancellation/Localization.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Shaman.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Readme.txt</path> |
<path |
action="M">/trunk/FreeRefills/Core.lua</path> |
<path |
action="M">/trunk/Bidder/Localization/enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceDebug-2.0/AceDebug-2.0.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellData.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/paladin.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/BulkMail/BulkMail-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/EnhancedColourPicker/EnhancedColourPicker.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/Race/BabbleLib-Race.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Rogue.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Angler/AnglerFastSwitch.lua</path> |
<path |
action="M">/trunk/Cosplay/Cosplay.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-esES.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist.bat</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetHealth.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.esES.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_Roll.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.enUS.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/Cellular/frame.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.xml</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/log.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/custom.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.lua</path> |
<path |
action="M">/trunk/Baddiel/Baddiel.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/Bindings.xml</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-enUS.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar_Panel.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarlock.lua</path> |
<path |
action="M">/trunk/ClassColors/ClassColors.lua</path> |
<path |
action="M">/trunk/DKPmonInit/PHP/README</path> |
<path |
action="M">/trunk/Decursive/Decursive.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/esES.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Browse.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFrame-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceLocals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/ReadMe.txt</path> |
<path |
action="M">/trunk/AceFry/AceFry.xml</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/FuBarPlugin-2.0/FuBarPlugin-2.0.lua</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer.lua</path> |
<path |
action="M">/trunk/Assister/modules/Invite.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Druid.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-frFR.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-enUS.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/DruidMana.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICheckButton-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIBase-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_NetStatsFu/NetStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Detox/locals_koKR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerModule.lua</path> |
<path |
action="M">/trunk/AutoBar/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/ClearFont/ClearFont.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColaLight/Core.lua</path> |
<path |
action="M">/trunk/CC_ToolTip/CC_ToolTip.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_PetitionFu/petition.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.xml</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-frFR.lua</path> |
<path |
action="M">/trunk/AHFavorites/README.txt</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Detox/locals_zhTW.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBid.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importmod.lua</path> |
<path |
action="M">/trunk/FryListDKP/Hooks.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.xml</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerHunter.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/FuBar_MCPFu.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/frFR.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Zone-2.1/Babble-Zone-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/SpellTree/BabbleLib-SpellTree.lua</path> |
<path |
action="M">/trunk/CooldownCount/CooldownCount.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/Decursive/localization.kr.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/README.txt</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.lua</path> |
<path |
action="M">/trunk/BigWigs_KLHTMTarget/BigWigs_KLHTMTarget.lua</path> |
<path |
action="M">/trunk/ConsoleMage/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICustomClass-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/BuffScanning.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Mage.lua</path> |
<path |
action="M">/trunk/ArkInventory/Bindings.xml</path> |
<path |
action="M">/trunk/DKPmon/Custom/registry.lua</path> |
<path |
action="M">/trunk/!SurfaceControl/gpl.txt</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-enUS.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlockSoulLink.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFu.lua</path> |
<path |
action="M">/trunk/Combine/locals.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BagSlots/BagSlots.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Casts.lua</path> |
<path |
action="M">/trunk/ClosetGnome/ClosetGnome.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/Cartographer_Stats.lua</path> |
<path |
action="M">/trunk/DKPmonInit/main.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.xml</path> |
<path |
action="M">/trunk/Cartographer/Modules/GuildPositions.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/LICENSE.txt</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisor.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals.lua</path> |
<path |
action="M">/trunk/Decursive/localization.tw.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.xml</path> |
<path |
action="M">/trunk/CBRipoff/core/frame.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPaladin.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonController.lua</path> |
<path |
action="M">/trunk/CC_Note/Bindings.xml</path> |
<path |
action="M">/trunk/BuffProtectorGnome/gpl.txt</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.lua</path> |
<path |
action="M">/trunk/ColaMachine/Core.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/FuBar_DebuggerFu.lua</path> |
<path |
action="M">/trunk/Assister/modules/options.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/README.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_Bar.lua</path> |
<path |
action="M">/trunk/ArcHUD2/FuBarPlugin.lua</path> |
<path |
action="M">/trunk/Capping/localization-frFR.lua</path> |
<path |
action="M">/trunk/DrDamage/DrDamage.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Repairs.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.sh</path> |
<path |
action="M">/trunk/BigWigs_TabletBars/TabletBars.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerKill.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/readme.txt</path> |
<path |
action="M">/trunk/Ace/AceAddon.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.0/AceHook-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Zone-2.0/Babble-Zone-2.0.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/readme.txt</path> |
<path |
action="M">/trunk/DKPmon/ImpExpModules/registry.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_frFR.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Editbox.xml</path> |
<path |
action="M">/trunk/Decursive/Dcr_Raid.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/ReadMe.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-deDE.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/readme.txt</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/BiGOpt/subgroups.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/DebugFu.lua</path> |
<path |
action="M">/trunk/BigWigs_Debugger/Debugger.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/install.bat</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Type.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/Cartographer_Treasure.lua</path> |
<path |
action="M">/trunk/BanzaiAlert/BanzaiAlert.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/deDE.lua</path> |
<path |
action="M">/trunk/CryptoLib/Crypto-1.0/Crypto-1.0.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Clicks.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/addon.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_AutoFill.lua</path> |
<path |
action="M">/trunk/ClearFont/Fonts/Calibri_v1/Info.txt</path> |
<path |
action="M">/trunk/ClosetGnome/readme.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_BarGroup.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Sort.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.lua</path> |
<path |
action="M">/trunk/ErrorMonster/license.txt</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.lua</path> |
<path |
action="M">/trunk/AuctionSort/AuctionSort.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.0/AceLocale-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/syncing.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/deDE.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFuLocals.lua</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisorLocale.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.xml</path> |
<path |
action="M">/trunk/Bidder_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/Antagonist/Locals/enGB.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.lua</path> |
<path |
action="M">/trunk/CommChannel/README</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/DakSmak.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/LICENSE.txt</path> |
<path |
action="M">/trunk/CooldownCount/Locale.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Class-2.1/Babble-Class-2.1.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.xml</path> |
<path |
action="M">/trunk/Caterer/Caterer.lua</path> |
<path |
action="M">/trunk/AoFHeal/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFactory-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/README.txt</path> |
<path |
action="M">/trunk/CommChannel/Lib/CommChannel.lua</path> |
<path |
action="M">/trunk/BlackSheeps/ReadMe.txt</path> |
<path |
action="M">/trunk/Detox/locals_zhCN.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.xml</path> |
<path |
action="M">/trunk/AutoBar/Core.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusMana.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Cooldowns.lua</path> |
<path |
action="M">/trunk/AutoAcceptInvite/CHANGELOG.txt</path> |
<path |
action="M">/trunk/AutoBar/Style.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIContainer.lua</path> |
<path |
action="M">/trunk/ChatLog/Bindings.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInviteLocals.lua</path> |
<path |
action="M">/trunk/Ace/Ace.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Core.xml</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer-Locale.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.koKR.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/Core.lua</path> |
<path |
action="M">/trunk/BiGOpt/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.kr.lua</path> |
<path |
action="M">/trunk/DKPmonInit/importdata.lua</path> |
<path |
action="M">/trunk/Ace/AceState.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUILocals.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/ReadMe.txt</path> |
<path |
action="M">/trunk/EavesDrop/localization-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/ReadMe.txt</path> |
<path |
action="M">/trunk/Fizzle/Core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/gpl.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-koKR.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Repair.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFu.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.lua</path> |
<path |
action="M">/trunk/Capping/localization-deDE.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Group.lua</path> |
<path |
action="M">/trunk/Decursive/localization.cn.lua</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.lua</path> |
<path |
action="M">/trunk/EavesDrop/options.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/README.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFu.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBarConstants.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/AEmotes_Kelly.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/BigWigs_LoathebTactical.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.tw.lua</path> |
<path |
action="M">/trunk/FryBid/FryBid.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/AEmotes_JonyC.lua</path> |
<path |
action="M">/trunk/Decursive/lisez-moi.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Gatherer/ClosetGnome_Gatherer.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_deDE.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollect.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/FlexBar2/ButtonTheme.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/Bindings.xml</path> |
<path |
action="M">/trunk/Decursive/localization.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerMage.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/about.txt</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-koKR.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/pointsdb.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ADCommission.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectUtil.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Menu.lua</path> |
<path |
action="M">/trunk/EmbedLib/EmbedLib.lua</path> |
<path |
action="M">/trunk/FuBar_CRDelayFu/CRDelayFu.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Minipet.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Warlock.lua</path> |
<path |
action="M">/trunk/Angler/AnglerSetChanger.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloDefaults.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/MirrorTimer.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Menu.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Mana.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_deDE.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Search.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Spell-2.1/Babble-Spell-2.1.lua</path> |
<path |
action="M">/trunk/Acolyte/ChatCmd.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals_deDE.lua</path> |
<path |
action="M">/trunk/Ace2/readme.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Core.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/README.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BossBlock/Core.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/SEEA-2.0-Events-Only.lua</path> |
<path |
action="M">/trunk/DKPmon/Comm/comm.lua</path> |
<path |
action="M">/trunk/Ace2/version history.txt</path> |
<path |
action="M">/trunk/FlexBar2/ButtonEventHandler.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerFade.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarButton.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIRegion-2.0.lua</path> |
<path |
action="M">/trunk/BigWigs_RazuviousAssistant/BigWigs_RazuviousAssistant.lua</path> |
<path |
action="M">/trunk/ArenaMaster/localization.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/readme.txt</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/Range.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/designdocument.txt</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/localizations.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Warlock.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-koKR.lua</path> |
<path |
action="M">/trunk/Acceptance/Core.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Glue.lua</path> |
<path |
action="M">/trunk/Acolyte/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MiniPerfsFu/MiniPerfsFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Loner.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialCats.lua</path> |
<path |
action="M">/trunk/Detox/Bindings.xml</path> |
<path |
action="M">/trunk/BulkMail/BulkMail.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/priest.lua</path> |
<path |
action="M">/trunk/Ace/AceChatCmd.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/esES.lua</path> |
<path |
action="M">/trunk/FuBar_GCInFu/GCInFu.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ring-prototypes.txt</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/DebuggerFuLocals.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/TestSuite.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Comms.lua</path> |
<path |
action="M">/trunk/EtchASketch/nodist/makeworker.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/readme.txt</path> |
<path |
action="M">/trunk/BulkMail/BulkMailUtil.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2TargetScanner.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Vendor.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EtchASketch/ed_worker.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/cbripoff.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Paladin.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Stand.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/ModulePrototype.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhCN.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-frFR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetMana.lua</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistory.lua</path> |
<path |
action="M">/trunk/Decursive/Decursive.xml</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.cn.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/localization.enUS.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.xml</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2.lua</path> |
<path |
action="M">/trunk/BulkMail/README</path> |
<path |
action="M">/trunk/Automaton/modules/Unshapeshift.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFu.lua</path> |
<path |
action="M">/trunk/Decursive/loc_lists.txt</path> |
<path |
action="M">/trunk/!SurfaceControl/SurfaceControl.lua</path> |
<path |
action="M">/trunk/BuffProtectorGnome/BuffProtectorGnome.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.zhcn.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_frFR.lua</path> |
<path |
action="M">/trunk/DKPmon/utils.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/wowtester.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Paladin.lua</path> |
<path |
action="M">/trunk/Catalyst/Catalyst.lua</path> |
<path |
action="M">/trunk/ChannelClean/Locale.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Class-2.0/Babble-Class-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/localization.enUS.lua</path> |
<path |
action="M">/trunk/Combatotron/Combatotron.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist.lua</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-enUS.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.lua</path> |
<path |
action="M">/trunk/ChatSounds/ChatSounds.lua</path> |
<path |
action="M">/trunk/ArkInventory/ReadMe.txt</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.zhcn.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontInstance-2.0.lua</path> |
<path |
action="M">/trunk/Assister/modules/Resurect.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShiftLocals.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassShaman.lua</path> |
<path |
action="M">/trunk/DowJones/README</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.xml</path> |
<path |
action="M">/trunk/Fizzle/Inspect.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/credits.txt</path> |
<path |
action="M">/trunk/DeuceLog/DeuceLog.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/koKR.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.xml</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-enUS.lua</path> |
<path |
action="M">/trunk/Capping/WSG.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.xml</path> |
<path |
action="M">/trunk/Cartographer_Trainers/credits.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerShaman.lua</path> |
<path |
action="M">/trunk/Cartographer_Opening/addon.lua</path> |
<path |
action="M">/trunk/Cartographer_Import/Import.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Buffs.lua</path> |
<path |
action="M">/trunk/Assister/modules/MoveTooltip.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/License Info/legal_tb.txt</path> |
<path |
action="M">/trunk/Deformat/Deformat-2.0/Deformat-2.0.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_xxXX.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/readme.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Druid.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Tracking.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/LICENSE.txt</path> |
<path |
action="M">/trunk/BanzaiAlert/license.txt</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Bookmarks.lua</path> |
<path |
action="M">/trunk/FuBar_KeyQ/Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKPPoints.lua</path> |
<path |
action="M">/trunk/Decursive/DCR_init.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Mage.lua</path> |
<path |
action="M">/trunk/Ace/AceModule.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FinderReminder/locale.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFu.lua</path> |
<path |
action="M">/trunk/Ace2/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AEmotes/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_CustomMenuFu/CustomMenuFu.lua</path> |
<path |
action="M">/trunk/Capping/AB.lua</path> |
<path |
action="M">/trunk/AoFDKP/dkp.bat</path> |
<path |
action="M">/trunk/AutoBar/Bindings.xml</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.xml</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_PoisonFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Rez.lua</path> |
<path |
action="M">/trunk/Deformat/LICENSE.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetHealth.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/AoFDKP/updatedkp.exe.config</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.lua</path> |
<path |
action="M">/trunk/CVarScanner/AllWords.lua</path> |
<path |
action="M">/trunk/BigWigs_RespawnTimers/BigWigs_RespawnTimers.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerRogue.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/README.txt</path> |
<path |
action="M">/trunk/Automaton/modules/Release.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-SpellTree-2.0/Babble-SpellTree-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/ItemSets.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importdata.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/deDE.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBidLocals.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_Events.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ModuleCore.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Localization.lua</path> |
<path |
action="M">/trunk/Cartographer/Bindings.xml</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUILayeredRegion-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Spell-2.0/Babble-Spell-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.xml</path> |
<path |
action="M">/trunk/Decursive/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon/main.lua</path> |
<path |
action="M">/trunk/Ace2/AceComm-2.0/AceComm-2.0.lua</path> |
<path |
action="M">/trunk/Detox/locals_frFR.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleStats.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/Assister/modules/Summon.lua</path> |
<path |
action="M">/trunk/DKPmon/README.txt</path> |
<path |
action="M">/trunk/Decursive/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_Bartender2Fu/Bartender2Fu.lua</path> |
<path |
action="M">/trunk/Cartographer/Scripts/pack.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_Wipe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_ItemDBFu/FuBar_ItemDBFu.lua</path> |
<path |
action="M">/trunk/FlexBar2/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/esES.lua</path> |
<path |
action="M">/trunk/Capping/Capping.lua</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Druid.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Anchors.lua</path> |
<path |
action="M">/trunk/FryListDKP/Points.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFu.lua</path> |
<path |
action="M">/trunk/BuffMe/buffs.lua</path> |
<path |
action="M">/trunk/Capping/localization.lua</path> |
<path |
action="M">/trunk/FuBar_AnkhTimerFu/AnkhTimerFu.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Core.lua</path> |
<path |
action="M">/trunk/Angler/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BananaBar2/SecureActionQueue-2.0.lua</path> |
<path |
action="M">/trunk/CompostLib/Compost-2.0/Compost-2.0.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.xml</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.xml</path> |
<path |
action="M">/trunk/ClosetGnome_BigWigs/ClosetGnome_BigWigs.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Druid.lua</path> |
<path |
action="M">/trunk/BattleChat/BattleChat.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.options.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellAbilities.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFu.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/mage.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITexture-2.0.lua</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/License.txt</path> |
<path |
action="M">/trunk/Bidder/gpl.txt</path> |
<path |
action="M">/trunk/Cartographer_Trainers/addon.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/FramesClass.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.1/AceHook-2.1.lua</path> |
<path |
action="M">/trunk/DKPmon/Localization/enUS.lua</path> |
<path |
action="M">/trunk/EarPlug/Earplug.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Bindings.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/frFR.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/MCPFuLocals.lua</path> |
<path |
action="M">/trunk/Ace/AceHook.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/gpl.txt</path> |
<path |
action="M">/trunk/AltClickToAddItem/AltClickToAddItem.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_zhCN.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_zhCN.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/zhCN.lua</path> |
<path |
action="M">/trunk/Ace/AceData.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/addon.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFu.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/README.txt</path> |
<path |
action="M">/trunk/Decursive/Dcr_opt.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.xml</path> |
<path |
action="M">/trunk/FuBar_HeyFu/Core.lua</path> |
<path |
action="M">/trunk/Decursive/WhatsNew.txt</path> |
<path |
action="M">/trunk/FuBar_NavigatorFu/NavigatorFu.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFu.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.zhcn.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/PerspectiveSans/Info.txt</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.xml</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.xml</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/README.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-koKR.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_ItemGUI.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.enUS.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Utils.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Racial.lua</path> |
<path |
action="M">/trunk/Cellular/core.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.lua</path> |
<path |
action="M">/trunk/ClearFont/How to use the font packs.txt</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast.lua</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetCasting.lua</path> |
<path |
action="M">/trunk/FreezeFrameLib/Lib/FreezeFrameLib.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Boss-2.1/Babble-Boss-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunterPetHappy.lua</path> |
<path |
action="M">/trunk/Ace2/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/Info.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/logviewer.lua</path> |
<path |
action="M">/trunk/Detox/locals_deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFu.lua</path> |
<path |
action="M">/trunk/BigWigs_ThaddiusArrows/sounds/AboutSounds.txt</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistoryLocals.lua</path> |
<path |
action="M">/trunk/BestInShow/README</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.xml</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuXPLocals.lua</path> |
<path |
action="M">/trunk/Fizzle/RepairCost.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.lua</path> |
<path |
action="M">/trunk/Ace2/AceModuleCore-2.0/AceModuleCore-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceEvent.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins.lua</path> |
<path |
action="M">/trunk/FuBar_MiniClockFu/MiniClockFu.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/README.txt</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed-enUS.lua</path> |
<path |
action="M">/trunk/EnchantList/EnchantList.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-esES.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-esES.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.lua</path> |
<path |
action="M">/trunk/AEmotes/AEMOTES.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/FuBar_AssistFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Hunter.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.xml</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/Fence/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/gpl-v2.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFu.lua</path> |
<path |
action="M">/trunk/Ace/AceDB.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuBar_FuXPFu.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/README.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarSophia/Info.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/BarsClass.lua</path> |
<path |
action="M">/trunk/ChatHighlighter/ChatHighlighter.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.xml</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarrior.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/deDE.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Priest.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/textline.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AUF_Docs.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaSD/Info.txt</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Boss-2.0/Babble-Boss-2.0.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusHealth.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_utils.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/Cartographer_Noteshare.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.lua</path> |
<path |
action="M">/trunk/AutoAttack/Core.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/CharacterInfoStorage.lua</path> |
<path |
action="M">/trunk/FinderReminder/FinderReminder.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-zhCN.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/BigWigs_HealbotAssist.lua</path> |
<path |
action="M">/trunk/Ace2/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/Cartographer_Hotspot/Cartographer_Hotspot.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Filter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Locals.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.bat</path> |
<path |
action="M">/trunk/Cartographer_Icons_GathererPack/pack.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerCast.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/ClosetGnome_OhNoes.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SoulKeeper.lua</path> |
<path |
action="M">/trunk/Cosplay/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_DPS/changelog.txt</path> |
<path |
action="M">/trunk/ArenaMaster/Core.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/Ruleset.lua</path> |
<path |
action="M">/trunk/DKPmon/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_HeartFu/HeartFu.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-frFR.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/BuffTemplate.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.lua</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.lua</path> |
<path |
action="M">/trunk/DKPmon/Awarding/awardframe.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/VersionInfo.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.koKR.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaGrande/Info.txt</path> |
<path |
action="M">/trunk/AEmotes_JonyC/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu-readme.txt</path> |
<path |
action="M">/trunk/DKPmon/gpl.txt</path> |
<path |
action="M">/trunk/AutoAcceptInvite/AutoAcceptInvite.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/Druidcom/DruidcomDruidTemplate.xml</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhCN.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Race-2.1/Babble-Race-2.1.lua</path> |
<path |
action="M">/trunk/Cancellation/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFu.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/Compost.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarUtils.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Casting.lua</path> |
<path |
action="M">/trunk/Decursive/Bindings.xml</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShift.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_MCTimers.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Health.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2RulesLocals.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_Experienced.lua</path> |
<path |
action="M">/trunk/EavesDrop/localization-koKR.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/MinionSummoner.lua</path> |
<path |
action="M">/trunk/Capping/Arenas.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFu.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.xml</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Gui.lua</path> |
<path |
action="M">/trunk/ArcHUD2/statrings.txt</path> |
<path |
action="M">/trunk/DorjeHealingBars/DorjeHealingBars.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.xml</path> |
<path |
action="M">/trunk/Ace/AceLocals.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/CommonAuras.lua</path> |
<path |
action="M">/trunk/Ace/README.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Defaults.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatTimeFu/FuBar_CombatTimeFu.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/exportmod.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/AEmotes_DrWho.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimerModules.lua</path> |
<path |
action="M">/trunk/FuBar_ItemBonusesFu/ItemBonusesFu_Locale_koKR.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarItemList.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Angler/Angler.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Race-2.0/Babble-Race-2.0.lua</path> |
<path |
action="M">/trunk/ColaLight/GPL.txt</path> |
<path |
action="M">/trunk/Capping/AV.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/Readme.txt</path> |
<path |
action="M">/trunk/BugSack/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Core.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-frFR.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-deDE.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/gpl.txt</path> |
<path |
action="M">/trunk/DogChow/DogChow.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.xml</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/README.txt</path> |
<path |
action="M">/trunk/ChatJustify/ChatJustify.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/ReadMe.txt</path> |
<path |
action="M">/trunk/CVarScanner/WikiFormatter.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons_MetaMapPack/pack.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.xml</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_esES.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-esES.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Queue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_esES.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-deDE.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/esES.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassMage.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_ExperiencedLocals.lua</path> |
<path |
action="M">/trunk/Cartographer/Libs/UTF8/utf8.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_RollLocals.lua</path> |
<path |
action="M">/trunk/Combine/Combine.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Detox/locals_enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatantsFu/Core.lua</path> |
<path |
action="M">/trunk/Dock-1.0/Dock-1.0/Dock-1.0.lua</path> |
<path |
action="M">/trunk/AbacusLib/Abacus-2.0/Abacus-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Rogue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/readme.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-esES.lua</path> |
<path |
action="M">/trunk/Combatants/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurninGlobals.lua</path> |
<path |
action="M">/trunk/DreamBuff/DreamBuff.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README-BAT-FILES.txt</path> |
<path |
action="M">/trunk/Decursive/localization.es.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-esES.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.zhCN.lua</path> |
<path |
action="M">/trunk/Cartographer/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.esES.lua</path> |
<path |
action="M">/trunk/BabbleLib/Class/BabbleLib-Class.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Priest.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_ErrorMonsterFu/ErrorMonsterFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Plates.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFu.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu.lua</path> |
<path |
action="M">/trunk/CandyBar/CandyBar-2.0/CandyBar-2.0.lua</path> |
<path |
action="M">/trunk/ColaMachine/LICENSE.txt</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.xml</path> |
<path |
action="M">/trunk/ChatThrottleLib/README.txt</path> |
<path |
action="M">/trunk/Decursive/localization.fr.lua</path> |
<path |
action="M">/trunk/Caterer/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerSkill.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/LICENSE.txt</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Options/options.lua</path> |
<path |
action="M">/trunk/Bidder/Comm/comm.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Tooltip.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFu.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.lua</path> |
<path |
action="M">/trunk/Bidder/utils.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-frFR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerEasyLure.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/Bindings.xml</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.lua</path> |
<path |
action="M">/trunk/BuffMe/core.lua</path> |
<path |
action="M">/trunk/Angler/AnglerTracker.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/druid.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/Bidder/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/Bidder/DKPstub.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-deDE.lua</path> |
<path |
action="M">/trunk/BiGOpt/main.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Mage.lua</path> |
<path |
action="M">/trunk/Decursive/localization.de.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_BidWatch.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_AQTimers.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFu.lua</path> |
<path |
action="M">/trunk/ColaMachine/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon_CSV/exportmod.lua</path> |
<path |
action="M">/trunk/Babble-2.2/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/LICENSE.txt</path> |
<path |
action="M">/trunk/DKPmon_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/koKR.lua</path> |
<path |
action="M">/trunk/BigWigs_ZombieFood/ZombieFood.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.xml</path> |
<path |
action="M">/trunk/DKPmonInit/README.txt</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/ToolTip.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Localization.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenuTuFu/Core.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/README.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Warrior.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhTW.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFu.lua</path> |
<path |
action="M">/trunk/EtchASketch/flashframe.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/LICENSE.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/abg.xml</path> |
<path |
action="M">/trunk/Ace2/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/AbacusLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_ItemListFu/FuBar_ItemListFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/LICENSE.txt</path> |
<path |
action="M">/trunk/CBRipoff/core/casting.lua</path> |
<path |
action="M">/trunk/DogChow/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Aperture/Aperture.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/EBBTest.lua</path> |
<path |
action="M">/trunk/Bidder/Options/options.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/StopTheSpam.lua</path> |
<path |
action="M">/trunk/Decursive/Downloads.txt</path> |
<path |
action="M">/trunk/Angler/Bindings.xml</path> |
<path |
action="M">/trunk/ArkInventory/DefaultCategories.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/RitualofSummoning.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.xml</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_deDE.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Button.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFuLocals.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/indent.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/credits.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_AceWardrobeFu/core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/GossipData.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerDruid.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Priest.lua</path> |
<path |
action="M">/trunk/Assister/modules/Whisper.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-frFR.lua</path> |
<path |
action="M">/trunk/ClearFont2_FontPack_1/core.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.lua</path> |
<path |
action="M">/trunk/DKPmon/Custom/fixeddkp.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Sell.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.enUS.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Shaman.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.xml</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.lua</path> |
<path |
action="M">/trunk/BestInShow/BestInShow.lua</path> |
<path |
action="M">/trunk/Bidder/main.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-esES.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Globals.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NameToggleFu/Core.lua</path> |
<path |
action="M">/trunk/Barf/Barf.lua</path> |
<path |
action="M">/trunk/ColaLight/LICENSE.txt</path> |
<path |
action="M">/trunk/AutoBar/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-SpellTree-2.1/Babble-SpellTree-2.1.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/addon.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_koKR.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarPhilos/Info.txt</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_deDE.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.fr.lua</path> |
<path |
action="M">/trunk/BanzaiLib/license.txt</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_HistoryGUI.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/addon.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.xml</path> |
<path |
action="M">/trunk/ArcHUD2/RingTemplate.lua</path> |
<path |
action="M">/trunk/Assister/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/fubar-plugin.lua</path> |
<path |
action="M">/trunk/Baggins/bindings.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Gossip.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.xml</path> |
<path |
action="M">/trunk/CC_Core/CC_Core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/LootBOP.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.lua</path> |
<path |
action="M">/trunk/EtchASketch/worker.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_BWLTimers.lua</path> |
<path |
action="M">/trunk/CrayonLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_DepositBoxFu/DepositBoxFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFu.lua</path> |
<path |
action="M">/trunk/Engravings/EngravingsPresets.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/NinjutFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_Zone.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_GreedBeacon/FuBar_GreedBeacon.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.de.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemist.lua</path> |
<path |
action="M">/trunk/CVarScanner/README.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlock.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.xml</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.xml</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-enUS.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/localization.lua</path> |
<path |
action="M">/trunk/FuBar_PetFu/PetFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_MonitorConstants.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhCN.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhCN.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDownMenu.lua</path> |
<path |
action="M">/trunk/CrayonLib/Crayon-2.0/Crayon-2.0.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Auction.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist-Options.lua</path> |
<path |
action="M">/trunk/AEmotes/AEmotes.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals.lua</path> |
<path |
action="M">/trunk/Acolyte/Layout.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFu.lua</path> |
<path |
action="M">/trunk/FuBar/LICENSE.txt</path> |
<path |
action="M">/trunk/FixMe/FixMe.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/StoneCreator.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Core.lua</path> |
<path |
action="M">/trunk/ClosetGnome/TODO.txt</path> |
<path |
action="M">/trunk/ClearFont/ClearFontAddons.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.2/AceLocale-2.2.lua</path> |
<path |
action="M">/trunk/BabbleLib/Spell/BabbleLib-Spell.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/Deformat/BabbleLib-Deformat.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/Diplomat/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BananaBar2Fu/FuBar_BananaBar2Fu.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Dismount.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ChannelClean/ChannelClean.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/custom.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Bits/Bits-1.0/Bits-1.0.lua</path> |
<path |
action="M">/trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Summon.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-deDE.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots.lua</path> |
<path |
action="M">/trunk/AceCast/AceCast.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloOptions.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/browserframe.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/ClosetGnome_Switcher.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/EnergyTick.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/LICENSE.txt</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.koKR.lua</path> |
<path |
action="M">/trunk/!BugGrabber/gpl.txt</path> |
<path |
action="M">/trunk/DKPmon/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/Bindings.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Extensions/InstanceInfo.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDropStats.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/!GetMoney_api/GetMoney_api.lua</path> |
<path |
action="M">/trunk/EyeCandy/EyeCandy.lua</path> |
<path |
action="M">/trunk/EnchantList/localization.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPaladin.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/AutoBar/AutoBarProfile.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-enUS.lua</path> |
<path |
action="M">/trunk/BuffMe/locale.enUS.lua</path> |
<path |
action="M">/trunk/AutoBar/ChangeList.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-enUS.lua</path> |
<path |
action="M">/trunk/BabbleLib/Zone/BabbleLib-Zone.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-deDE.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.xml</path> |
<path |
action="M">/trunk/AceGUI/README.txt</path> |
<path |
action="M">/trunk/Decursive/QuoiDeNeuf.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetMana.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonInterface.lua</path> |
<path |
action="M">/trunk/ClearFont/Changelog.txt</path> |
<path |
action="M">/trunk/BestInShow/BestInShowLocals.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.lua</path> |
<path |
action="M">/trunk/FryListDKP/BidQuery.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Wuss.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Warrior.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2CastMenu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SpellCaster.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.frFR.lua</path> |
<path |
action="M">/trunk/AlfCast/AlfCast.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.lua</path> |
<path |
action="M">/trunk/FinderReminder/SpellButtonClass.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/PredefinedMenus.lua</path> |
<path |
action="M">/trunk/Ace2/AceTab-2.0/AceTab-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-deDE.lua</path> |
<path |
action="M">/trunk/Combine/Combine.xml</path> |
<path |
action="M">/trunk/CC_Core/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_ModMenu/README.txt</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importdata.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Core.lua</path> |
<path |
action="M">/trunk/Ace/Ace.lua</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2-enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Roster/raid.lua</path> |
<path |
action="M">/trunk/DeuceCommander/DeuceCommander.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUISlider-2.0.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialGlobals.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Wipe.lua</path> |
<path |
action="M">/trunk/CompostLib/Lib/CompostLib.lua</path> |
<path |
action="M">/trunk/ClosetGnome/license.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Mount/ClosetGnome_Mount.lua</path> |
<path |
action="M">/trunk/Ace/AceCommands.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist_wau.bat</path> |
<path |
action="M">/trunk/BananaBar2/Bindings.xml</path> |
<path |
action="M">/trunk/CVarScanner/CVarScanner.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerAura.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_enUS.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Rules.lua</path> |
<path |
action="M">/trunk/BugSack/BugSack-esES.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2.lua</path> |
<path |
action="M">/trunk/DKPmon/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Banker/Banker.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/README.txt</path> |
<path |
action="M">/trunk/Comercio/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFuLocals.lua</path> |
<path |
action="M">/trunk/DontBugMe/DontBugMe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Franc/Info.txt</path> |
<path |
action="M">/trunk/ChatLog/Locale-frFR.lua</path> |
<path |
action="M">/trunk/DowJones/DowJones.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.lua</path> |
<path |
action="M">/trunk/FuBar_MailFu/Core.lua</path> |
<path |
action="M">/trunk/ConsoleMage/ConsoleMage.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.xml</path> |
<path |
action="M">/trunk/EavesDrop/install.txt</path> |
<path |
action="M">/trunk/DKPmonInit/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/AEmotesFU.lua</path> |
<path |
action="M">/trunk/Aggromemnon/core.lua</path> |
<path |
action="M">/trunk/Cartographer/Cartographer.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITemplates-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.xml</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.xml</path> |
<path |
action="M">/trunk/AutoBar/AutoBar.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.xml</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/network.txt</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Sell.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIButton-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_enUS.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterial.lua</path> |
<path |
action="M">/trunk/Cyclone/core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importmod.lua</path> |
<path |
action="M">/trunk/Ace2/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/LICENSE.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.xml</path> |
<path |
action="M">/trunk/Acolyte/Modules/MountSummoner.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/zhTW.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontString-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassDruid.lua</path> |
<path |
action="M">/trunk/Detox/Detox.lua</path> |
<path |
action="M">/trunk/FuBar_DuraTek/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Capping/options.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/DowJones/getItemDKP.pl</path> |
<path |
action="M">/trunk/AEmotes/ReadMe.txt</path> |
<path |
action="M">/trunk/Bidder/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/README.txt</path> |
<path |
action="M">/trunk/Bidder/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/Bartender3_AutoBindings/Bartender3_AutoBindings.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInvite.lua</path> |
<path |
action="M">/trunk/BattleChat_Buffs/BattleChat_Buffs.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2AssistButton.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/ComboPoints.lua</path> |
<path |
action="M">/trunk/BabbleLib/Boss/BabbleLib-Boss.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices_Table.lua</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.lua</path> |
<path |
action="M">/trunk/DowJones/getPlayerDKP.pl</path> |
<path |
action="M">/trunk/DKPmon/Looting/looting.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/changelog.txt</path> |
<path |
action="M">/trunk/Baggins/libs/Sieve-0.1/Sieve-0.1.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-deDE.lua</path> |
<path |
action="M">/trunk/DeclineDuel/DeclineDuel.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/mirror.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Kopie von Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP-enUS.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemistLocals.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/localisation.en.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Calibri_v0.9/Info.txt</path> |
<path |
action="M">/trunk/Engravings/Engravings.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_KungFu/README.txt</path> |
<path |
action="M">/trunk/EgoCast/EgoCast.lua</path> |
<path |
action="M">/trunk/DewdropLib/LICENSE.txt</path> |
</paths> |
<msg>.Line ending fixups: trunk/</msg> |
</logentry> |
</log> |
--[[ |
Name: FuBarPlugin-2.0 |
Revision: $Rev: 29795 $ |
Author: Cameron Kenneth Knight (ckknight@gmail.com) |
Website: http://wiki.wowace.com/index.php/FuBarPlugin-2.0 |
Documentation: http://wiki.wowace.com/index.php/FuBarPlugin-2.0 |
SVN: svn://svn.wowace.com/root/branches/FuBar/FuBarPlugin-2.0/FuBarPlugin-2.0/ |
Description: Plugin for FuBar. |
Dependencies: AceLibrary, AceOO-2.0, AceEvent-2.0, Tablet-2.0, Dewdrop-2.0 |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "FuBarPlugin-2.0" |
local MINIMAPCONTAINER_MAJOR_VERSION = "FuBarPlugin-MinimapContainer-2.0" |
local MINOR_VERSION = "$Revision: 29795 $" |
-- This ensures the code is only executed if the libary doesn't already exist, or is a newer version |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0.") end |
local AceEvent = AceLibrary:HasInstance("AceEvent-2.0") and AceLibrary("AceEvent-2.0") |
local Tablet = AceLibrary:HasInstance("Tablet-2.0") and AceLibrary("Tablet-2.0") |
local Dewdrop = AceLibrary:HasInstance("Dewdrop-2.0") and AceLibrary("Dewdrop-2.0") |
local epsilon = 1e-5 |
local _G = getfenv(0) |
local SHOW_ICON = "Show icon" |
local SHOW_ICON_DESC = "Show the plugins icon on the panel." |
local SHOW_TEXT = "Show text" |
local SHOW_TEXT_DESC = "Show the plugins text on the panel." |
local SHOW_COLORED_TEXT = "Show colored text" |
local SHOW_COLORED_TEXT_DESC = "Allow the plugin to color its text." |
local DETACH_TOOLTIP = "Detach tooltip" |
local DETACH_TOOLTIP_DESC = "Detach the tooltip from the panel." |
local LOCK_TOOLTIP = "Lock tooltip" |
local LOCK_TOOLTIP_DESC = "Lock the tooltips position. When the tooltip is locked, you must use Alt to access it with your mouse." |
local POSITION = "Position" |
local POSITION_DESC = "Position the plugin on the panel." |
local POSITION_LEFT = "Left" |
local POSITION_RIGHT = "Right" |
local POSITION_CENTER = "Center" |
local ATTACH_TO_MINIMAP = "Attach to minimap" |
local ATTACH_TO_MINIMAP_DESC = "Attach the plugin to the minimap instead of the panel." |
local HIDE_FUBAR_PLUGIN = "Hide plugin" |
local HIDE_FUBAR_PLUGIN_CMD = "Hidden" |
local HIDE_FUBAR_PLUGIN_DESC = "Hide the plugin from the panel or minimap, leaving the addon running." |
local OTHER = "Other" |
local CLOSE = "Close" |
local CLOSE_DESC = "Close the menu." |
if GetLocale() == "koKR" then |
SHOW_ICON = "ìì´ì½ íì" |
SHOW_ICON_DESC = "í¨ëì íë¬ê·¸ì¸ ìì´ì½ì íìí©ëë¤." |
SHOW_TEXT = "í ì¤í¸ íì" |
SHOW_TEXT_DESC = "íëì íë¬ê·¸ì¸ í ì¤í¸ë¥¼ íìí©ëë¤." |
SHOW_COLORED_TEXT = "ììíë í ì¤í¸ íì" |
SHOW_COLORED_TEXT_DESC = "íë¬ê·¸ì¸ì í ì¤í¸ ììì íì©í©ëë¤." |
DETACH_TOOLTIP = "í´í ë¶ë¦¬" |
DETACH_TOOLTIP_DESC = "í¨ëìì í´íì ë¶ë¦¬ í©ëë¤." |
LOCK_TOOLTIP = "í´í ê³ ì " |
LOCK_TOOLTIP_DESC = "í´í ìì¹ë¥¼ ê³ ì í©ëë¤." |
POSITION = "ìì¹" |
POSITION_DESC = "í¨ëìì íë¬ê·¸ì¸ì ìì¹ë¥¼ ì¤ì í©ëë¤." |
POSITION_LEFT = "ì¼ìª½" |
POSITION_RIGHT = "ì¤ë¥¸ìª½" |
POSITION_CENTER = "ê°ì´ë°" |
ATTACH_TO_MINIMAP = "미ë맵ì íì" |
ATTACH_TO_MINIMAP_DESC = "íë¬ê·¸ì¸ì í¨ë ëì 미ë맵ì íìí©ëë¤." |
HIDE_FUBAR_PLUGIN = "FuBar íë¬ê·¸ì¸ ì¨ê¸°ê¸°" |
HIDE_FUBAR_PLUGIN_CMD = "ì¨ê²¨ì§" |
HIDE_FUBAR_PLUGIN_DESC = "í¨ëìì íë¬ê·¸ì¸ì ì¨ê¹ëë¤." |
OTHER = "기í" |
CLOSE = "ë«ê¸°" |
CLOSE_DESC = "ë©ë´ ë«ê¸°." |
elseif GetLocale() == "deDE" then |
SHOW_ICON = "Zeige Icon" |
SHOW_ICON_DESC = "Zeige das Plugin-Icon auf der Leiste." |
SHOW_TEXT = "Zeige Text" |
SHOW_TEXT_DESC = "Zeige den Plugin-Text auf der Leiste." |
SHOW_COLORED_TEXT = "Zeige gef\195\164rbten Text" |
SHOW_COLORED_TEXT_DESC = "Dem Plugin erlauben sein Text zu f\195\164rben." |
DETACH_TOOLTIP = "Tooltip l\195\182sen" |
DETACH_TOOLTIP_DESC = "Tooltip von der Leiste l\195\182sen." |
LOCK_TOOLTIP = "Tooltip sperren" |
LOCK_TOOLTIP_DESC = "Tooltip an der Position sperren." |
POSITION = "Position" |
POSITION_DESC = "Positioniert das Plugin auf der Leiste." |
POSITION_LEFT = "Links" |
POSITION_RIGHT = "Rechts" |
POSITION_CENTER = "Mitte" |
ATTACH_TO_MINIMAP = "An der Minimap anbringen" |
ATTACH_TO_MINIMAP_DESC = "Bringt das Plugin an der Minimap anstelle der Leiste an." |
HIDE_FUBAR_PLUGIN = "Versteckt das FuBar Plugin" |
HIDE_FUBAR_PLUGIN_CMD = "Verstecken" |
HIDE_FUBAR_PLUGIN_DESC = "Versteckt das Plugin von der Leiste." |
CLOSE = "Schlie\195\159en" |
CLOSE_DESC = "Men\195\188 schlie\195\159en." |
elseif GetLocale() == "frFR" then |
SHOW_ICON = "Afficher l'ic\195\180ne" |
SHOW_ICON_DESC = "Afficher l'ic\195\180ne du plugin sur le panneau." |
SHOW_TEXT = "Afficher le texte" |
SHOW_TEXT_DESC = "Afficher le texte du plugin sur le panneau." |
SHOW_COLORED_TEXT = "Afficher la couleur du texte" |
SHOW_COLORED_TEXT_DESC = "Permet au plugin de colorer le texte." |
DETACH_TOOLTIP = "D\195\169tacher le tooltip" |
DETACH_TOOLTIP_DESC = "Permet de d\195\169tacher le tooltip du panneau." |
LOCK_TOOLTIP = "Bloquer le tooltip" |
LOCK_TOOLTIP_DESC = "Permet de bloquer le tooltip \195\160 sa position actuelle. Une fois le tooltip bloqu\195\169, vous devez utiliser la touche Alt pour le d\195\169placer avec votre souris." |
POSITION = "Position" |
POSITION_DESC = "Permet de changer la position du plugin dans le panneau." |
POSITION_LEFT = "Gauche" |
POSITION_RIGHT = "Droite" |
POSITION_CENTER = "Centre" |
ATTACH_TO_MINIMAP = "Attacher \195\160 la minicarte" |
ATTACH_TO_MINIMAP_DESC = "Attache l'ic\195\180ne du plugin \195\160 la minicarte." |
HIDE_FUBAR_PLUGIN = "Masquer le plugin" |
HIDE_FUBAR_PLUGIN_CMD = "Masqu\195\169" |
HIDE_FUBAR_PLUGIN_DESC = "Permet de masquer compl\195\168tement le plugin du panneau, mais laisse l'addon fonctionner." |
OTHER = "Autre" |
CLOSE = "Fermer" |
CLOSE_DESC = "Ferme le menu." |
elseif GetLocale() == "zhCN" then |
SHOW_ICON = "æ¾ç¤ºå¾æ " |
SHOW_ICON_DESC = "å¨é¢æ¿ä¸æ¾ç¤ºæ件å¾æ ." |
SHOW_TEXT = "æ¾ç¤ºæå" |
SHOW_TEXT_DESC = "å¨é¢æ¿ä¸æ¾ç¤ºæåæ é¢." |
SHOW_COLORED_TEXT = "æ¾ç¤ºå½©è²æå" |
SHOW_COLORED_TEXT_DESC = "å 许æ件æ¾ç¤ºå½©è²æå." |
DETACH_TOOLTIP = "ç¬ç«æ示信æ¯" |
DETACH_TOOLTIP_DESC = "ä»é¢æ¿ä¸ç¬ç«æ示信æ¯." |
LOCK_TOOLTIP = "éå®æ示信æ¯" |
LOCK_TOOLTIP_DESC = "éå®æ示信æ¯ä½ç½®." |
POSITION = "ä½ç½®" |
POSITION_DESC = "æ件å¨é¢æ¿ä¸çä½ç½®." |
POSITION_LEFT = "å± å·¦" |
POSITION_RIGHT = "å± å³" |
POSITION_CENTER = "å± ä¸" |
ATTACH_TO_MINIMAP = "ä¾éå¨å°å°å¾" |
ATTACH_TO_MINIMAP_DESC = "æ件å¾æ ä¾éå¨å°å°å¾èä¸æ¾ç¤ºå¨é¢æ¿ä¸." |
HIDE_FUBAR_PLUGIN = "éèFuBaræ件" |
HIDE_FUBAR_PLUGIN_CMD = "Hidden" |
HIDE_FUBAR_PLUGIN_DESC = "å¨é¢æ¿ä¸éè该æ件." |
elseif GetLocale() == "zhTW" then |
SHOW_ICON = "顯示å示" |
SHOW_ICON_DESC = "å¨é¢æ¿ä¸é¡¯ç¤ºæ件å示ã" |
SHOW_TEXT = "顯示æå" |
SHOW_TEXT_DESC = "å¨é¢æ¿ä¸é¡¯ç¤ºæåæ¨é¡ã" |
SHOW_COLORED_TEXT = "顯示彩è²æå" |
SHOW_COLORED_TEXT_DESC = "å 許æ件顯示彩è²æåã" |
DETACH_TOOLTIP = "ç¨ç«æ示è¨æ¯" |
DETACH_TOOLTIP_DESC = "å¾é¢æ¿ä¸ç¨ç«æ示è¨æ¯ã" |
LOCK_TOOLTIP = "éå®æ示è¨æ¯" |
LOCK_TOOLTIP_DESC = "éå®æ示è¨æ¯ä½ç½®ã" |
POSITION = "ä½ç½®" |
POSITION_DESC = "æ件å¨é¢æ¿ä¸çä½ç½®ã" |
POSITION_LEFT = "é å·¦" |
POSITION_RIGHT = "é å³" |
POSITION_CENTER = "ç½®ä¸" |
ATTACH_TO_MINIMAP = "ä¾éå¨å°å°å" |
ATTACH_TO_MINIMAP_DESC = "æ件åæ¨ä¾éå¨å°å°åèä¸é¡¯ç¤ºå¨é¢æ¿ä¸ã" |
HIDE_FUBAR_PLUGIN = "é±èFuBaræ件" |
HIDE_FUBAR_PLUGIN_CMD = "Hidden" |
HIDE_FUBAR_PLUGIN_DESC = "å¨é¢æ¿ä¸é±è該æ件." |
elseif GetLocale() == "esES" then |
SHOW_ICON = "Mostrar icono" |
SHOW_ICON_DESC = "Muestra el icono del plugin en el panel" |
SHOW_TEXT = "Mostrar texto" |
SHOW_TEXT_DESC = "Muestra el texto del plugin en el panel" |
SHOW_COLORED_TEXT = "Mostrar el texto en color" |
SHOW_COLORED_TEXT_DESC = "Permite al plugin colorear su texto" |
DETACH_TOOLTIP = "Separar tooltip" |
DETACH_TOOLTIP_DESC = "Separa el tooltip del panel" |
LOCK_TOOLTIP = "Bloquear tooltip" |
LOCK_TOOLTIP_DESC = "Bloquea la posici\195\179n de los tooltips. Cuando el tooltip est\195\161 bloqueado debes usar Alt para acceder a \195\169l con el rat\195\179n" |
POSITION = "Posici\195\179n" |
POSITION_DESC = "Posici\195\179n del plugin en el panel" |
POSITION_LEFT = "Izquierda" |
POSITION_RIGHT = "Derecha" |
POSITION_CENTER = "Centro" |
ATTACH_TO_MINIMAP = "Adjuntar al minimapa" |
ATTACH_TO_MINIMAP_DESC = "Adjunta el plugin al minimapa en vez de al panel." |
HIDE_FUBAR_PLUGIN = "Ocultar plugin" |
HIDE_FUBAR_PLUGIN_CMD = "Oculto" |
HIDE_FUBAR_PLUGIN_DESC = "Oculta el plugin del panel o minimapa, dejando el accesorio funcionando." |
OTHER = "Otros" |
CLOSE = "Cerrar" |
CLOSE_DESC = "Cierra el men\195\186." |
end |
local AceOO = AceLibrary("AceOO-2.0") |
local FuBarPlugin = AceOO.Mixin { |
"GetTitle", |
"GetName", |
"GetCategory", |
"SetFontSize", |
"GetFrame", |
"Show", |
"Hide", |
"GetPanel", |
"IsTextColored", |
"ToggleTextColored", |
"IsMinimapAttached", |
"ToggleMinimapAttached", |
"Update", |
"UpdateDisplay", |
"UpdateData", |
"UpdateText", |
"UpdateTooltip", |
"SetIcon", |
"GetIcon", |
"CheckWidth", |
"SetText", |
"GetText", |
"IsIconShown", |
"ToggleIconShown", |
"ShowIcon", |
"HideIcon", |
"IsTextShown", |
"ToggleTextShown", |
"ShowText", |
"HideText", |
"IsTooltipDetached", |
"ToggleTooltipDetached", |
"DetachTooltip", |
"ReattachTooltip", |
"GetDefaultPosition", |
"SetPanel", |
"IsLoadOnDemand", |
"IsDisabled", |
"CreateBasicPluginFrame", |
"CreatePluginChildFrame", |
"OpenMenu", |
"AddImpliedMenuOptions", |
} |
local good = nil |
local function CheckFuBar() |
if not good then |
good = FuBar and tonumber(FuBar.version:sub(1, 3)) and tonumber(FuBar.version:sub(1, 3)) >= 2 and true |
end |
return good |
end |
function FuBarPlugin:GetTitle() |
local name = self.title or self.name |
if not name then |
FuBarPlugin:error("You must provide self.title or self.name") |
end |
local title = select(3, name:find("FuBar %- (.-)%s*$")) |
if not title then |
title = name |
end |
return title:gsub("|c%x%x%x%x%x%x%x%x", ""):gsub("|r", "") |
end |
function FuBarPlugin:GetName() |
return self.name |
end |
function FuBarPlugin:GetCategory() |
return self.category or OTHER |
end |
function FuBarPlugin:GetFrame() |
return self.frame |
end |
function FuBarPlugin:GetPanel() |
return self.panel |
end |
function FuBarPlugin:IsTextColored() |
return not self.db or not self.db.profile or not self.db.profile.uncolored |
end |
function FuBarPlugin:ToggleTextColored() |
if not self.db then |
FuBarPlugin:error("Cannot change text color if self.db is not available. (" .. self:GetTitle() .. ")") |
end |
self.db.profile.uncolored = not self.db.profile.uncolored or nil |
self:UpdateText() |
end |
function FuBarPlugin:ToggleMinimapAttached() |
if CheckFuBar() and not self.cannotAttachToMinimap then |
local value = self:IsMinimapAttached() |
if value then |
if self.panel then |
self.panel:RemovePlugin(self) |
end |
FuBar:GetPanel(1):AddPlugin(self, nil, self.defaultPosition) |
else |
if self.panel then |
self.panel:RemovePlugin(self) |
end |
AceLibrary(MINIMAPCONTAINER_MAJOR_VERSION):AddPlugin(self) |
end |
end |
Dewdrop:Close() |
end |
function FuBarPlugin:IsMinimapAttached() |
if not CheckFuBar() then |
return true |
end |
return self.panel == AceLibrary(MINIMAPCONTAINER_MAJOR_VERSION) |
end |
function FuBarPlugin:Update() |
self:UpdateData() |
self:UpdateText() |
self:UpdateTooltip() |
end |
function FuBarPlugin:UpdateDisplay() |
self:UpdateText() |
self:UpdateTooltip() |
end |
function FuBarPlugin:UpdateData() |
if type(self.OnDataUpdate) == "function" then |
if not self:IsDisabled() then |
self:OnDataUpdate() |
end |
end |
end |
function FuBarPlugin:UpdateText() |
if type(self.OnTextUpdate) == "function" then |
if not self:IsDisabled() then |
self:OnTextUpdate() |
end |
elseif self:IsTextShown() then |
self:SetText(self:GetTitle()) |
end |
end |
function FuBarPlugin:RegisterTablet() |
if not Tablet:IsRegistered(self.frame) then |
if self.db and self.db.profile and not self.db.profile.detachedTooltip then |
self.db.profile.detachedTooltip = {} |
end |
Tablet:Register(self.frame, |
'children', function() |
Tablet:SetTitle(self:GetTitle()) |
if type(self.OnTooltipUpdate) == "function" then |
if not self:IsDisabled() then |
self:OnTooltipUpdate() |
end |
end |
end, |
'clickable', self.clickableTooltip, |
'data', CheckFuBar() and FuBar.db.profile.tooltip or self.db and self.db.profile.detachedTooltip or {}, |
'detachedData', self.db and self.db.profile.detachedTooltip or {}, |
'point', function(frame) |
if frame:GetTop() > GetScreenHeight() / 2 then |
local x = frame:GetCenter() |
if x < GetScreenWidth() / 3 then |
return "TOPLEFT", "BOTTOMLEFT" |
elseif x < GetScreenWidth() * 2 / 3 then |
return "TOP", "BOTTOM" |
else |
return "TOPRIGHT", "BOTTOMRIGHT" |
end |
else |
local x = frame:GetCenter() |
if x < GetScreenWidth() / 3 then |
return "BOTTOMLEFT", "TOPLEFT" |
elseif x < GetScreenWidth() * 2 / 3 then |
return "BOTTOM", "TOP" |
else |
return "BOTTOMRIGHT", "TOPRIGHT" |
end |
end |
end, |
'menu', self.OnMenuRequest and function(level, value, valueN_1, valueN_2, valueN_3, valueN_4) |
if level == 1 then |
local name = tostring(self) |
if not name:find('^table:') then |
name = name:gsub("|c%x%x%x%x%x%x%x%x(.-)|r", "%1") |
Dewdrop:AddLine( |
'text', name, |
'isTitle', true |
) |
end |
end |
if type(self.OnMenuRequest) == "function" then |
self:OnMenuRequest(level, value, true, valueN_1, valueN_2, valueN_3, valueN_4) |
elseif type(self.OnMenuRequest) == "table" then |
Dewdrop:FeedAceOptionsTable(self.OnMenuRequest) |
end |
end, |
'hideWhenEmpty', self.tooltipHiddenWhenEmpty |
) |
local func = self.frame:GetScript("OnEnter") |
local function newFunc(...) |
func(...) |
if FuBar and FuBar.IsHidingTooltipsInCombat and FuBar:IsHidingTooltipsInCombat() and InCombatLockdown() then |
local frame = this.self.frame |
if Tablet:IsAttached(frame) then |
Tablet:Close(frame) |
end |
end |
end |
self.frame:SetScript("OnEnter", newFunc) |
end |
end |
function FuBarPlugin:UpdateTooltip() |
FuBarPlugin.RegisterTablet(self) |
if self:IsMinimapAttached() and not self:IsTooltipDetached() and self.minimapFrame then |
Tablet:Refresh(self.minimapFrame) |
else |
Tablet:Refresh(self.frame) |
end |
end |
function FuBarPlugin:OnProfileEnable() |
self:Update() |
end |
function FuBarPlugin:Show(panelId) |
if self.frame:IsShown() or (self.minimapFrame and self.minimapFrame:IsShown()) then |
return |
end |
if panelId ~= false then |
if self.db then |
self.db.profile.hidden = nil |
end |
end |
if self.IsActive and not self:IsActive() then |
self.panelIdTmp = panelId |
self:ToggleActive() |
self.panelIdTmp = nil |
if self.db then |
self.db.profile.disabled = nil |
end |
elseif not self.db or not self.db.profile.hidden then |
if panelId == 0 or not CheckFuBar() then |
AceLibrary(MINIMAPCONTAINER_MAJOR_VERSION):AddPlugin(self) |
else |
FuBar:ShowPlugin(self, panelId or self.panelIdTmp) |
end |
if not self.userDefinedFrame then |
if not self:IsTextShown() then |
self.textFrame:SetText("") |
self.textFrame:SetWidth(epsilon) |
self.textFrame:Hide() |
end |
if not self:IsIconShown() then |
self.iconFrame:SetWidth(epsilon) |
self.iconFrame:Hide() |
end |
end |
if AceOO.inherits(self, "AceAddon-2.0") then |
local AceAddon = AceLibrary("AceAddon-2.0") |
if AceAddon.addonsEnabled and not AceAddon.addonsEnabled[self] then |
return |
end |
end |
self:Update() |
end |
end |
function FuBarPlugin:Hide(check) |
if not self.frame:IsShown() and (not self.minimapFrame or not self.minimapFrame:IsShown()) then |
return |
end |
if self.hideWithoutStandby and self.db and check ~= false then |
self.db.profile.hidden = true |
end |
if not self.hideWithoutStandby then |
if self.db and not self.overrideTooltip and not self.cannotDetachTooltip and self:IsTooltipDetached() and self.db.profile.detachedTooltip and self.db.profile.detachedTooltip.detached then |
self:ReattachTooltip() |
self.db.profile.detachedTooltip.detached = true |
end |
if self.IsActive and self:IsActive() and self.ToggleActive and (not CheckFuBar() or not FuBar:IsChangingProfile()) then |
self:ToggleActive() |
end |
end |
if self.panel then |
self.panel:RemovePlugin(self) |
end |
self.frame:Hide() |
if self.minimapFrame then |
self.minimapFrame:Hide() |
end |
if Dewdrop:IsOpen(self.frame) or (self.minimapFrame and Dewdrop:IsOpen(self.minimapFrame)) then |
Dewdrop:Close() |
end |
end |
function FuBarPlugin:SetIcon(path) |
if not path then |
return |
end |
FuBarPlugin:argCheck(path, 2, "string", "boolean") |
if not self.hasIcon then |
FuBarPlugin:error("Cannot set icon unless self.hasIcon is set. (" .. self:GetTitle() .. ")") |
end |
if not self.iconFrame then |
return |
end |
if type(path) ~= "string" then |
path = format("Interface\\AddOns\\%s\\icon", FuBarPlugin.folderNames[self] or self.folderName) |
elseif not path:find('^Interface[\\/]') then |
path = format("Interface\\AddOns\\%s\\%s", FuBarPlugin.folderNames[self] or self.folderName, path) |
end |
if path:sub(1, 16) == "Interface\\Icons\\" then |
self.iconFrame:SetTexCoord(0.05, 0.95, 0.05, 0.95) |
else |
self.iconFrame:SetTexCoord(0, 1, 0, 1) |
end |
self.iconFrame:SetTexture(path) |
if self.minimapIcon then |
if path:sub(1, 16) == "Interface\\Icons\\" then |
self.minimapIcon:SetTexCoord(0.05, 0.95, 0.05, 0.95) |
else |
self.minimapIcon:SetTexCoord(0, 1, 0, 1) |
end |
self.minimapIcon:SetTexture(path) |
end |
end |
function FuBarPlugin:GetIcon() |
if self.hasIcon then |
return self.iconFrame:GetTexture() |
end |
end |
function FuBarPlugin:CheckWidth(force) |
FuBarPlugin:argCheck(force, 2, "boolean", "nil") |
if (self.iconFrame and self.iconFrame:IsShown()) or (self.textFrame and self.textFrame:IsShown()) then |
if (self.db and self.db.profile and not self:IsIconShown()) or not self.hasIcon then |
self.iconFrame:SetWidth(epsilon) |
end |
local width |
if not self.hasNoText then |
self.textFrame:SetHeight(0) |
self.textFrame:SetWidth(500) |
width = self.textFrame:GetStringWidth() + 1 |
self.textFrame:SetWidth(width) |
self.textFrame:SetHeight(self.textFrame:GetHeight()) |
end |
if self.hasNoText or not self.textFrame:IsShown() then |
self.frame:SetWidth(self.iconFrame:GetWidth()) |
if self.panel and self.panel:GetPluginSide(self) == "CENTER" then |
self.panel:UpdateCenteredPosition() |
end |
elseif force or not self.textWidth or self.textWidth < width or self.textWidth - 8 > width then |
self.textWidth = width |
self.textFrame:SetWidth(width) |
if self.iconFrame and self.iconFrame:IsShown() then |
self.frame:SetWidth(width + self.iconFrame:GetWidth()) |
else |
self.frame:SetWidth(width) |
end |
if self.panel and self.panel:GetPluginSide(self) == "CENTER" then |
self.panel:UpdateCenteredPosition() |
end |
end |
end |
end |
function FuBarPlugin:SetText(text) |
if not self.textFrame then |
return |
end |
if self.hasNoText then |
FuBarPlugin:error("Cannot set text if self.hasNoText has been set. (" .. self:GetTitle() .. ")") |
end |
FuBarPlugin:argCheck(text, 2, "string", "number") |
if text == "" then |
if self.hasIcon then |
self:ShowIcon() |
else |
text = self:GetTitle() |
end |
end |
if not self:IsTextColored() then |
text = text:gsub("|c%x%x%x%x%x%x%x%x", ""):gsub("|r", "") |
end |
self.textFrame:SetText(text) |
self:CheckWidth() |
end |
function FuBarPlugin:GetText() |
if not self.textFrame then |
FuBarPlugin:error("Cannot get text without a self.textFrame (" .. self:GetTitle() .. ")") |
end |
if not self.hasNoText then |
return self.textFrame:GetText() or "" |
end |
end |
function FuBarPlugin:IsIconShown() |
if not self.hasIcon then |
return false |
elseif self.hasNoText then |
return true |
elseif not self.db then |
return true |
elseif self.db and self.db.profile.showIcon == nil then |
return true |
else |
return (self.db and (self.db.profile.showIcon == 1 or self.db.profile.showIcon == true)) and true or false |
end |
end |
function FuBarPlugin:ToggleIconShown() |
if not self.iconFrame then |
FuBarPlugin:error("Cannot toggle icon without a self.iconFrame (" .. self:GetTitle() .. ")") |
end |
if not self.hasIcon then |
FuBarPlugin:error("Cannot show icon unless self.hasIcon is set. (" .. self:GetTitle() .. ")") |
end |
if self.hasNoText then |
FuBarPlugin:error("Cannot hide icon if self.hasNoText is set. (" .. self:GetTitle() .. ")") |
end |
if not self.textFrame then |
FuBarPlugin:error("Cannot hide icon if self.textFrame is not set. (" .. self:GetTitle() .. ")") |
end |
if not self.iconFrame then |
FuBarPlugin:error("Cannot hide icon if self.iconFrame is not set. (" .. self:GetTitle() .. ")") |
end |
if not self.db then |
FuBarPlugin:error("Cannot hide icon if self.db is not available. (" .. self:GetTitle() .. ")") |
end |
local value = not self:IsIconShown() |
self.db.profile.showIcon = value |
if value then |
if not self:IsTextShown() and self.textFrame:IsShown() and self.textFrame:GetText() == self:GetTitle() then |
self.textFrame:Hide() |
self.textFrame:SetText("") |
end |
self.iconFrame:Show() |
self.iconFrame:SetWidth(self.iconFrame:GetHeight()) |
else |
if not self.textFrame:IsShown() or not self.textFrame:GetText() then |
self.textFrame:Show() |
self.textFrame:SetText(self:GetTitle()) |
end |
self.iconFrame:Hide() |
self.iconFrame:SetWidth(epsilon) |
end |
self:CheckWidth(true) |
return value |
end |
function FuBarPlugin:ShowIcon() |
if not self:IsIconShown() then |
self:ToggleIconShown() |
end |
end |
function FuBarPlugin:HideIcon() |
if self:IsIconShown() then |
self:ToggleIconShown() |
end |
end |
function FuBarPlugin:IsTextShown() |
if self.hasNoText then |
return false |
elseif not self.hasIcon then |
return true |
elseif not self.db then |
return true |
elseif self.db and self.db.profile.showText == nil then |
return true |
else |
return (self.db and (self.db.profile.showText == 1 or self.db.profile.showText == true)) and true or false |
end |
end |
function FuBarPlugin:ToggleTextShown() |
if self.cannotHideText then |
FuBarPlugin:error("Cannot hide text unless self.cannotHideText is unset. (" .. self:GetTitle() .. ")") |
end |
if not self.hasIcon then |
FuBarPlugin:error("Cannot show text unless self.hasIcon is set. (" .. self:GetTitle() .. ")") |
end |
if self.hasNoText then |
FuBarPlugin:error("Cannot hide text if self.hasNoText is set. (" .. self:GetTitle() .. ")") |
end |
if not self.textFrame then |
FuBarPlugin:error("Cannot hide text if self.textFrame is not set. (" .. self:GetTitle() .. ")") |
end |
if not self.iconFrame then |
FuBarPlugin:error("Cannot hide text if self.iconFrame is not set. (" .. self:GetTitle() .. ")") |
end |
if not self.db then |
FuBarPlugin:error("Cannot hide text if self.db is not available. (" .. self:GetTitle() .. ")") |
end |
local value = not self:IsTextShown() |
self.db.profile.showText = value |
if value then |
self.textFrame:Show() |
self:UpdateText() |
else |
self.textFrame:SetText("") |
self.textFrame:SetWidth(epsilon) |
self.textFrame:Hide() |
if not self:IsIconShown() then |
DropDownList1:Hide() |
end |
self:ShowIcon() |
end |
self:CheckWidth(true) |
return value |
end |
function FuBarPlugin:ShowText() |
if not self:IsTextShown() then |
self:ToggleTextShown() |
end |
end |
function FuBarPlugin:HideText() |
if self:IsTextShown() then |
self:ToggleTextShown() |
end |
end |
function FuBarPlugin:IsTooltipDetached() |
FuBarPlugin.RegisterTablet(self) |
return not Tablet:IsAttached(self.frame) |
end |
function FuBarPlugin:ToggleTooltipDetached() |
FuBarPlugin.RegisterTablet(self) |
if self:IsTooltipDetached() then |
Tablet:Attach(self.frame) |
else |
Tablet:Detach(self.frame) |
end |
if Dewdrop then Dewdrop:Close() end |
end |
function FuBarPlugin:DetachTooltip() |
FuBarPlugin.RegisterTablet(self) |
Tablet:Detach(self.frame) |
end |
function FuBarPlugin:ReattachTooltip() |
FuBarPlugin.RegisterTablet(self) |
Tablet:Attach(self.frame) |
end |
function FuBarPlugin:GetDefaultPosition() |
return self.defaultPosition or "LEFT" |
end |
local function IsCorrectPanel(panel) |
if type(panel) ~= "table" then |
return false |
elseif type(panel.AddPlugin) ~= "function" then |
return false |
elseif type(panel.RemovePlugin) ~= "function" then |
return false |
elseif type(panel.GetNumPlugins) ~= "function" then |
return false |
elseif type(panel:GetNumPlugins()) ~= "number" then |
return false |
elseif type(panel.GetPlugin) ~= "function" then |
return false |
elseif type(panel.HasPlugin) ~= "function" then |
return false |
elseif type(panel.GetPluginSide) ~= "function" then |
return false |
end |
return true |
end |
function FuBarPlugin:SetPanel(panel) |
if panel and not IsCorrectPanel(panel) then |
FuBarPlugin:error("Bad argument #2 to `SetPanel'. Panel does not have the correct API.") |
end |
self.panel = panel |
end |
function FuBarPlugin:SetFontSize(size) |
if self.userDefinedFrame then |
FuBarPlugin:error((self.name and self.name .. ": " or "") .. "You must provide a SetFontSize(size) method if you provide your own frame.") |
end |
if self.hasIcon then |
if not self.iconFrame then |
FuBarPlugin:error((self.name and self.name .. ": " or "") .. "No iconFrame found") |
end |
self.iconFrame:SetWidth(size + 3) |
self.iconFrame:SetHeight(size + 3) |
end |
if not self.hasNoText then |
if not self.textFrame then |
FuBarPlugin:error((self.name and self.name .. ": " or "") .. "No textFrame found") |
end |
local font, _, flags = self.textFrame:GetFont() |
self.textFrame:SetFont(font, size, flags) |
end |
self:CheckWidth() |
end |
function FuBarPlugin:IsLoadOnDemand() |
return IsAddOnLoadOnDemand(FuBarPlugin.folderNames[self] or self.folderName) |
end |
function FuBarPlugin:IsDisabled() |
return self.IsActive and not self:IsActive() or false |
end |
function FuBarPlugin:OnInstanceInit(target) |
if not AceEvent then |
self:error(MAJOR_VERSION .. " requires AceEvent-2.0.") |
elseif not Tablet then |
self:error(MAJOR_VERSION .. " requires Tablet-2.0.") |
elseif not Dewdrop then |
self:error(MAJOR_VERSION .. " requires Dewdrop-2.0.") |
end |
self.registry[target] = true |
local folderName = select(3, debugstack(6, 1, 0):find("\\AddOns\\(.*)\\")) |
target.folderName = folderName |
self.folderNames[target] = folderName |
end |
local frame_OnClick, frame_OnDoubleClick, frame_OnMouseDown, frame_OnMouseUp, frame_OnReceiveDrag, frame_OnEnter, frame_OnLeave |
function FuBarPlugin:CreateBasicPluginFrame(name) |
local frame = CreateFrame("Button", name, UIParent) |
frame:SetFrameStrata("HIGH") |
frame:SetFrameLevel(7) |
frame:EnableMouse(true) |
frame:EnableMouseWheel(true) |
frame:SetMovable(true) |
frame:SetWidth(150) |
frame:SetHeight(24) |
frame:SetPoint("CENTER", UIParent, "CENTER") |
frame.self = self |
if not frame_OnEnter then |
function frame_OnEnter() |
if type(this.self.OnEnter) == "function" then |
this.self:OnEnter() |
end |
end |
end |
frame:SetScript("OnEnter", frame_OnEnter) |
if not frame_OnLeave then |
function frame_OnLeave() |
if type(this.self.OnLeave) == "function" then |
this.self:OnLeave() |
end |
end |
end |
frame:SetScript("OnLeave", frame_OnLeave) |
if not frame_OnClick then |
function frame_OnClick() |
if type(this.self.OnClick) == "function" then |
this.self:OnClick(arg1) |
end |
end |
end |
frame:SetScript("OnClick", frame_OnClick) |
if not frame_OnDoubleClick then |
function frame_OnDoubleClick() |
if type(this.self.OnDoubleClick) == "function" then |
this.self:OnDoubleClick(arg1) |
end |
end |
end |
frame:SetScript("OnDoubleClick", frame_OnDoubleClick) |
if not frame_OnMouseDown then |
function frame_OnMouseDown() |
if arg1 == "RightButton" and not IsShiftKeyDown() and not IsControlKeyDown() and not IsAltKeyDown() then |
this.self:OpenMenu() |
return |
else |
HideDropDownMenu(1) |
if type(this.self.OnMouseDown) == "function" then |
this.self:OnMouseDown(arg1) |
end |
end |
end |
end |
frame:SetScript("OnMouseDown", frame_OnMouseDown) |
if not frame_OnMouseUp then |
function frame_OnMouseUp() |
if type(this.self.OnMouseUp) == "function" then |
this.self:OnMouseUp(arg1) |
end |
end |
end |
frame:SetScript("OnMouseUp", frame_OnMouseUp) |
if not frame_OnReceiveDrag then |
function frame_OnReceiveDrag() |
if type(this.self.OnReceiveDrag) == "function" then |
this.self:OnReceiveDrag() |
end |
end |
end |
frame:SetScript("OnReceiveDrag", frame_OnReceiveDrag) |
return frame |
end |
local child_OnEnter, child_OnLeave, child_OnClick, child_OnDoubleClick, child_OnMouseDown, child_OnMouseUp, child_OnReceiveDrag |
function FuBarPlugin:CreatePluginChildFrame(frameType, name, parent) |
if not self.frame then |
FuBarPlugin:error((self.name and self.name .. ": " or "") .. "You must have self.frame declared in order to add child frames") |
end |
FuBarPlugin:argCheck(frameType, 1, "string") |
local child = CreateFrame(frameType, name, parent) |
if parent then |
child:SetFrameLevel(parent:GetFrameLevel() + 2) |
end |
child.self = self |
if not child_OnEnter then |
function child_OnEnter(...) |
if this.self.frame:GetScript("OnEnter") then |
this.self.frame:GetScript("OnEnter")(...) |
end |
end |
end |
child:SetScript("OnEnter", child_OnEnter) |
if not child_OnLeave then |
function child_OnLeave(...) |
if this.self.frame:GetScript("OnLeave") then |
this.self.frame:GetScript("OnLeave")(...) |
end |
end |
end |
child:SetScript("OnLeave", child_OnLeave) |
if child:HasScript("OnClick") then |
if not child_OnClick then |
function child_OnClick(...) |
if this.self.frame:HasScript("OnClick") and this.self.frame:GetScript("OnClick") then |
this.self.frame:GetScript("OnClick")(...) |
end |
end |
end |
child:SetScript("OnClick", child_OnClick) |
end |
if child:HasScript("OnDoubleClick") then |
if not child_OnDoubleClick then |
function child_OnDoubleClick(...) |
if this.self.frame:HasScript("OnDoubleClick") and this.self.frame:GetScript("OnDoubleClick") then |
this.self.frame:GetScript("OnDoubleClick")(...) |
end |
end |
end |
child:SetScript("OnDoubleClick", child_OnDoubleClick) |
end |
if not child_OnMouseDown then |
function child_OnMouseDown(...) |
if this.self.frame:HasScript("OnMouseDown") and this.self.frame:GetScript("OnMouseDown") then |
this.self.frame:GetScript("OnMouseDown")(...) |
end |
end |
end |
child:SetScript("OnMouseDown", child_OnMouseDown) |
if not child_OnMouseUp then |
function child_OnMouseUp(...) |
if this.self.frame:HasScript("OnMouseUp") and this.self.frame:GetScript("OnMouseUp") then |
this.self.frame:GetScript("OnMouseUp")(...) |
end |
end |
end |
child:SetScript("OnMouseUp", child_OnMouseUp) |
if not child_OnReceiveDrag then |
function child_OnReceiveDrag(this) |
if this.self.frame:HasScript("OnReceiveDrag") and this.self.frame:GetScript("OnReceiveDrag") then |
this.self.frame:GetScript("OnReceiveDrag")() |
end |
end |
end |
child:SetScript("OnReceiveDrag", child_OnReceiveDrag) |
return child |
end |
function FuBarPlugin:OpenMenu(frame) |
if not frame then |
frame = self:GetFrame() |
end |
if not frame or not self:GetFrame() or Dewdrop:IsOpen(frame) then |
Dewdrop:Close() |
return |
end |
Tablet:Close() |
if not Dewdrop:IsRegistered(self:GetFrame()) then |
if type(self.OnMenuRequest) == "table" and (not self.OnMenuRequest.handler or self.OnMenuRequest.handler == self) and self.OnMenuRequest.type == "group" then |
Dewdrop:InjectAceOptionsTable(self, self.OnMenuRequest) |
if self.OnMenuRequest.args and CheckFuBar() and not self.independentProfile then |
self.OnMenuRequest.args.profile = nil |
end |
end |
Dewdrop:Register(self:GetFrame(), |
'children', type(self.OnMenuRequest) == "table" and self.OnMenuRequest or function(level, value, valueN_1, valueN_2, valueN_3, valueN_4) |
if level == 1 then |
if not self.hideMenuTitle then |
Dewdrop:AddLine( |
'text', self:GetTitle(), |
'isTitle', true |
) |
end |
if self.OnMenuRequest then |
self:OnMenuRequest(level, value, false, valueN_1, valueN_2, valueN_3, valueN_4) |
end |
if not self.overrideMenu then |
if self.MenuSettings and not self.hideMenuTitle then |
Dewdrop:AddLine() |
end |
self:AddImpliedMenuOptions() |
end |
else |
if not self.overrideMenu and self:AddImpliedMenuOptions() then |
else |
if self.OnMenuRequest then |
self:OnMenuRequest(level, value, false, valueN_1, valueN_2, valueN_3, valueN_4) |
end |
end |
end |
if level == 1 then |
Dewdrop:AddLine( |
'text', CLOSE, |
'tooltipTitle', CLOSE, |
'tooltipText', CLOSE_DESC, |
'func', Dewdrop.Close, |
'arg1', Dewdrop |
) |
end |
end, |
'point', function(frame) |
local x, y = frame:GetCenter() |
local leftRight |
if x < GetScreenWidth() / 2 then |
leftRight = "LEFT" |
else |
leftRight = "RIGHT" |
end |
if y < GetScreenHeight() / 2 then |
return "BOTTOM" .. leftRight, "TOP" .. leftRight |
else |
return "TOP" .. leftRight, "BOTTOM" .. leftRight |
end |
end, |
'dontHook', true |
) |
end |
if frame == self:GetFrame() then |
Dewdrop:Open(self:GetFrame()) |
else |
Dewdrop:Open(frame, self:GetFrame()) |
end |
end |
local impliedMenuOptions |
function FuBarPlugin:AddImpliedMenuOptions(level) |
FuBarPlugin:argCheck(level, 2, "number", "nil") |
if not impliedMenuOptions then |
impliedMenuOptions = {} |
end |
if not impliedMenuOptions[self] then |
impliedMenuOptions[self] = { type = 'group', args = {} } |
Dewdrop:InjectAceOptionsTable(self, impliedMenuOptions[self]) |
if impliedMenuOptions[self].args and CheckFuBar() and not self.independentProfile then |
impliedMenuOptions[self].args.profile = nil |
end |
end |
return Dewdrop:FeedAceOptionsTable(impliedMenuOptions[self], level and level - 1) |
end |
function FuBarPlugin.OnEmbedInitialize(FuBarPlugin, self) |
if not self.frame then |
local name = "FuBarPlugin" .. self:GetTitle() .. "Frame" |
local frame = _G[name] |
if not frame or not _G[name .. "Text"] or not _G[name .. "Icon"] then |
frame = self:CreateBasicPluginFrame(name) |
local icon = frame:CreateTexture(name .. "Icon", "ARTWORK") |
icon:SetWidth(16) |
icon:SetHeight(16) |
icon:SetPoint("LEFT", frame, "LEFT") |
local text = frame:CreateFontString(name .. "Text", "ARTWORK") |
text:SetWidth(134) |
text:SetHeight(24) |
text:SetPoint("LEFT", icon, "RIGHT", 0, 1) |
text:SetFontObject(GameFontNormal) |
end |
self.frame = frame |
self.textFrame = _G[name .. "Text"] |
self.iconFrame = _G[name .. "Icon"] |
else |
self.userDefinedFrame = true |
end |
self.frame.plugin = self |
self.frame:SetParent(UIParent) |
self.frame:SetPoint("RIGHT", UIParent, "LEFT", -5, 0) |
self.frame:Hide() |
if self.hasIcon then |
self:SetIcon(self.hasIcon) |
end |
if CheckFuBar() then |
FuBar:RegisterPlugin(self) |
end |
end |
local CheckShow = function(self, panelId) |
if not self.frame:IsShown() and (not self.minimapFrame or not self.minimapFrame:IsShown()) then |
self:Show(panelId) |
Dewdrop:Refresh(2) |
end |
end |
local recheckPlugins |
function FuBarPlugin.OnEmbedEnable(FuBarPlugin, self) |
if not self.userDefinedFrame then |
if self:IsIconShown() then |
self.iconFrame:Show() |
else |
self.iconFrame:Hide() |
end |
end |
self:CheckWidth(true) |
if not self.hideWithoutStandby or (self.db and not self.db.profile.hidden) then |
if FuBarPlugin.enabledPlugins[self] then |
CheckShow(self, self.panelIdTmp) |
else |
FuBarPlugin:ScheduleEvent(CheckShow, 0, self, self.panelIdTmp) |
end |
end |
FuBarPlugin.enabledPlugins[self] = true |
if not self.overrideTooltip and not self.cannotDetachTooltip and self.db and self.db.profile.detachedTooltip and self.db.profile.detachedTooltip.detached then |
FuBarPlugin:ScheduleEvent(self.DetachTooltip, 0, self) |
end |
if self:IsLoadOnDemand() and CheckFuBar() then |
if not FuBar.db.profile.loadOnDemand then |
FuBar.db.profile.loadOnDemand = {} |
end |
if not FuBar.db.profile.loadOnDemand[FuBarPlugin.folderNames[self] or self.folderName] then |
FuBar.db.profile.loadOnDemand[FuBarPlugin.folderNames[self] or self.folderName] = {} |
end |
FuBar.db.profile.loadOnDemand[FuBarPlugin.folderNames[self] or self.folderName].disabled = nil |
end |
if CheckFuBar() and AceLibrary:HasInstance("AceConsole-2.0") then |
if not recheckPlugins then |
local AceConsole = AceLibrary("AceConsole-2.0") |
local AceOO = AceLibrary("AceOO-2.0") |
function recheckPlugins() |
for k,v in pairs(AceConsole.registry) do |
if type(v) == "table" and v.args and AceOO.inherits(v.handler, FuBarPlugin) and not v.handler.independentProfile then |
v.args.profile = nil |
end |
end |
end |
end |
FuBarPlugin:ScheduleEvent(recheckPlugins, 0) |
end |
end |
function FuBarPlugin.OnEmbedDisable(FuBarPlugin, self) |
self:Hide(false) |
if self:IsLoadOnDemand() and CheckFuBar() then |
if not FuBar.db.profile.loadOnDemand then |
FuBar.db.profile.loadOnDemand = {} |
end |
if not FuBar.db.profile.loadOnDemand[FuBarPlugin.folderNames[self] or self.folderName] then |
FuBar.db.profile.loadOnDemand[FuBarPlugin.folderNames[self] or self.folderName] = {} |
end |
FuBar.db.profile.loadOnDemand[FuBarPlugin.folderNames[self] or self.folderName].disabled = true |
end |
end |
function FuBarPlugin.OnEmbedProfileEnable(FuBarPlugin, self) |
self:Update() |
if self.db and self.db.profile then |
if not self.db.profile.detachedTooltip then |
self.db.profile.detachedTooltip = {} |
end |
if Tablet.registry[self.frame] then |
Tablet:UpdateDetachedData(self.frame, self.db.profile.detachedTooltip) |
else |
FuBarPlugin.RegisterTablet(self) |
end |
local MinimapContainer = AceLibrary(MINIMAPCONTAINER_MAJOR_VERSION) |
if MinimapContainer:HasPlugin(self) then |
AceLibrary(MINIMAPCONTAINER_MAJOR_VERSION):ReadjustLocation(self) |
end |
end |
end |
function FuBarPlugin.GetAceOptionsDataTable(FuBarPlugin, self) |
return { |
icon = { |
type = "toggle", |
name = SHOW_ICON, |
desc = SHOW_ICON_DESC, |
set = "ToggleIconShown", |
get = "IsIconShown", |
hidden = function() |
return not self.hasIcon or self.hasNoText or self:IsDisabled() or self:IsMinimapAttached() or not self.db |
end, |
order = -13.7, |
handler = self, |
}, |
text = { |
type = "toggle", |
name = SHOW_TEXT, |
desc = SHOW_TEXT_DESC, |
set = "ToggleTextShown", |
get = "IsTextShown", |
hidden = function() |
return self.cannotHideText or not self.hasIcon or self.hasNoText or self:IsDisabled() or self:IsMinimapAttached() or not self.db |
end, |
order = -13.6, |
handler = self, |
}, |
colorText = { |
type = "toggle", |
name = SHOW_COLORED_TEXT, |
desc = SHOW_COLORED_TEXT_DESC, |
set = "ToggleTextColored", |
get = "IsTextColored", |
hidden = function() |
return self.userDefinedFrame or self.hasNoText or self.hasNoColor or self:IsDisabled() or self:IsMinimapAttached() or not self.db |
end, |
order = -13.5, |
handler = self, |
}, |
detachTooltip = { |
type = "toggle", |
name = DETACH_TOOLTIP, |
desc = DETACH_TOOLTIP_DESC, |
get = "IsTooltipDetached", |
set = "ToggleTooltipDetached", |
hidden = function() |
return self.overrideTooltip or self.cannotDetachTooltip or self:IsDisabled() |
end, |
order = -13.4, |
handler = self, |
}, |
lockTooltip = { |
type = "toggle", |
name = LOCK_TOOLTIP, |
desc = LOCK_TOOLTIP_DESC, |
get = function() |
return Tablet:IsLocked(self.frame) |
end, |
set = function() |
return Tablet:ToggleLocked(self.frame) |
end, |
disabled = function() |
return not self:IsTooltipDetached() |
end, |
hidden = function() |
return self.overrideTooltip or self.cannotDetachTooltip or self:IsDisabled() |
end, |
order = -13.3, |
handler = self, |
}, |
position = { |
type = "text", |
name = POSITION, |
desc = POSITION_DESC, |
validate = { |
LEFT = POSITION_LEFT, |
CENTER = POSITION_CENTER, |
RIGHT = POSITION_RIGHT |
}, |
get = function() |
return self.panel and self.panel:GetPluginSide(self) |
end, |
set = function(value) |
if self.panel then |
self.panel:SetPluginSide(self, value) |
end |
end, |
hidden = function() |
return self:IsMinimapAttached() or self:IsDisabled() or not self.panel |
end, |
order = -13.2, |
handler = self, |
}, |
minimapAttach = { |
type = "toggle", |
name = ATTACH_TO_MINIMAP, |
desc = ATTACH_TO_MINIMAP_DESC, |
get = "IsMinimapAttached", |
set = "ToggleMinimapAttached", |
hidden = function() |
return (self.cannotAttachToMinimap and not self:IsMinimapAttached()) or not CheckFuBar() or self:IsDisabled() |
end, |
order = -13.1, |
handler = self, |
}, |
hide = { |
type = "toggle", |
cmdName = HIDE_FUBAR_PLUGIN_CMD, |
guiName = HIDE_FUBAR_PLUGIN, |
desc = HIDE_FUBAR_PLUGIN_DESC, |
get = function() |
return not self.frame:IsShown() and (not self.minimapFrame or not self.minimapFrame:IsShown()) |
end, |
set = function() |
if not self.frame:IsShown() and (not self.minimapFrame or not self.minimapFrame:IsShown()) then |
self:Show() |
else |
self:Hide() |
end |
end, |
hidden = function() |
return not self.hideWithoutStandby or self:IsDisabled() |
end, |
order = -13, |
handler = self, |
}, |
} |
end |
local function activate(self, oldLib, oldDeactivate) |
FuBarPlugin = self |
if oldLib then |
self.registry = oldLib.registry |
self.folderNames = oldLib.folderNames |
self.enabledPlugins = oldLib.enabledPlugins |
end |
if not self.registry then |
self.registry = {} |
end |
if not self.folderNames then |
self.folderNames = {} |
end |
if not self.enabledPlugins then |
self.enabledPlugins = {} |
end |
FuBarPlugin.activate(self, oldLib, oldDeactivate) |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
local function external(self, major, instance) |
if major == "AceEvent-2.0" then |
AceEvent = instance |
AceEvent:embed(self) |
elseif major == "Tablet-2.0" then |
Tablet = instance |
elseif major == "Dewdrop-2.0" then |
Dewdrop = instance |
end |
end |
AceLibrary:Register(FuBarPlugin, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) |
local MinimapContainer = {} |
function MinimapContainer:AddPlugin(plugin) |
if CheckFuBar() and FuBar:IsChangingProfile() then |
return |
end |
if plugin.panel ~= nil then |
plugin.panel:RemovePlugin(plugin) |
end |
plugin.panel = self |
if not plugin.minimapFrame then |
local frame = CreateFrame("Button", plugin.frame:GetName() .. "MinimapButton", Minimap) |
plugin.minimapFrame = frame |
AceLibrary(MAJOR_VERSION).RegisterTablet(plugin) |
Tablet:Register(frame, plugin.frame) |
frame.plugin = plugin |
frame:SetWidth(31) |
frame:SetHeight(31) |
frame:SetFrameStrata("BACKGROUND") |
frame:SetFrameLevel(4) |
frame:SetHighlightTexture("Interface\\Minimap\\UI-Minimap-ZoomButton-Highlight") |
local icon = frame:CreateTexture(frame:GetName() .. "Icon", "BACKGROUND") |
plugin.minimapIcon = icon |
local path = plugin:GetIcon() or (plugin.iconFrame and plugin.iconFrame:GetTexture()) or "Interface\\Icons\\INV_Misc_QuestionMark" |
icon:SetTexture(path) |
if path:sub(1, 16) == "Interface\\Icons\\" then |
icon:SetTexCoord(0.05, 0.95, 0.05, 0.95) |
else |
icon:SetTexCoord(0, 1, 0, 1) |
end |
icon:SetWidth(20) |
icon:SetHeight(20) |
icon:SetPoint("TOPLEFT", frame, "TOPLEFT", 7, -5) |
local overlay = frame:CreateTexture(frame:GetName() .. "Overlay","OVERLAY") |
overlay:SetTexture("Interface\\Minimap\\MiniMap-TrackingBorder") |
overlay:SetWidth(53) |
overlay:SetHeight(53) |
overlay:SetPoint("TOPLEFT",frame,"TOPLEFT") |
frame:EnableMouse(true) |
frame:RegisterForClicks("LeftButtonUp") |
frame.plugin = plugin |
frame:SetScript("OnClick", function() |
if type(plugin.OnClick) == "function" then |
if not this.dragged then |
plugin:OnClick(arg1) |
end |
end |
end) |
frame:SetScript("OnDoubleClick", function() |
if type(plugin.OnDoubleClick) == "function" then |
plugin:OnDoubleClick(arg1) |
end |
end) |
frame:SetScript("OnReceiveDrag", function() |
if type(plugin.OnReceiveDrag) == "function" then |
if not this.dragged then |
plugin:OnReceiveDrag() |
end |
end |
end) |
frame:SetScript("OnMouseDown", function() |
this.dragged = false |
if arg1 == "LeftButton" and not IsShiftKeyDown() and not IsControlKeyDown() and not IsAltKeyDown() then |
HideDropDownMenu(1) |
if type(plugin.OnMouseDown) == "function" then |
plugin:OnMouseDown(arg1) |
end |
elseif arg1 == "RightButton" and not IsShiftKeyDown() and not IsControlKeyDown() and not IsAltKeyDown() then |
plugin:OpenMenu(frame) |
else |
HideDropDownMenu(1) |
if type(plugin.OnMouseDown) == "function" then |
plugin:OnMouseDown(arg1) |
end |
end |
if plugin.OnClick or plugin.OnMouseDown or plugin.OnMouseUp or plugin.OnDoubleClick then |
if this.plugin.minimapIcon:GetTexture():sub(1, 16) == "Interface\\Icons\\" then |
plugin.minimapIcon:SetTexCoord(0.14, 0.86, 0.14, 0.86) |
else |
plugin.minimapIcon:SetTexCoord(0.1, 0.9, 0.1, 0.9) |
end |
end |
end) |
frame:SetScript("OnMouseUp", function() |
if not this.dragged and type(plugin.OnMouseUp) == "function" then |
plugin:OnMouseUp(arg1) |
end |
if this.plugin.minimapIcon:GetTexture():sub(1, 16) == "Interface\\Icons\\" then |
plugin.minimapIcon:SetTexCoord(0.05, 0.95, 0.05, 0.95) |
else |
plugin.minimapIcon:SetTexCoord(0, 1, 0, 1) |
end |
end) |
frame:RegisterForDrag("LeftButton") |
frame:SetScript("OnDragStart", self.OnDragStart) |
frame:SetScript("OnDragStop", self.OnDragStop) |
end |
plugin.frame:Hide() |
plugin.minimapFrame:Show() |
self:ReadjustLocation(plugin) |
table.insert(self.plugins, plugin) |
local exists = false |
return true |
end |
function MinimapContainer:RemovePlugin(index) |
if CheckFuBar() and FuBar:IsChangingProfile() then |
return |
end |
if type(index) == "table" then |
index = self:IndexOfPlugin(index) |
if not index then |
return |
end |
end |
local t = self.plugins |
local plugin = t[index] |
assert(plugin.panel == self, "Plugin has improper panel field") |
plugin:SetPanel(nil) |
table.remove(t, index) |
return true |
end |
function MinimapContainer:ReadjustLocation(plugin) |
local frame = plugin.minimapFrame |
if plugin.db and plugin.db.profile.minimapPositionWild then |
frame:SetPoint("CENTER", UIParent, "BOTTOMLEFT", plugin.db.profile.minimapPositionX, plugin.db.profile.minimapPositionY) |
elseif not plugin.db and plugin.minimapPositionWild then |
frame:SetPoint("CENTER", UIParent, "BOTTOMLEFT", plugin.minimapPositionX, plugin.minimapPositionY) |
else |
local position |
if plugin.db then |
position = plugin.db.profile.minimapPosition or plugin.defaultMinimapPosition or math.random(1, 360) |
else |
position = plugin.minimapPosition or plugin.defaultMinimapPosition or math.random(1, 360) |
end |
local angle = math.rad(position or 0) |
local x,y |
local minimapShape = GetMinimapShape and GetMinimapShape() or "ROUND" |
local cos = math.cos(angle) |
local sin = math.sin(angle) |
local round = true |
if minimapShape == "ROUND" then |
-- do nothing |
elseif minimapShape == "SQUARE" then |
round = false |
elseif minimapShape == "CORNER-TOPRIGHT" then |
if cos < 0 or sin < 0 then |
round = false |
end |
elseif minimapShape == "CORNER-TOPLEFT" then |
if cos > 0 or sin < 0 then |
round = false |
end |
elseif minimapShape == "CORNER-BOTTOMRIGHT" then |
if cos < 0 or sin > 0 then |
round = false |
end |
elseif minimapShape == "CORNER-BOTTOMLEFT" then |
if cos > 0 or sin > 0 then |
round = false |
end |
elseif minimapShape == "SIDE-LEFT" then |
if cos > 0 then |
round = false |
end |
elseif minimapShape == "SIDE-RIGHT" then |
if cos < 0 then |
round = false |
end |
elseif minimapShape == "SIDE-TOP" then |
if sin > 0 then |
round = false |
end |
elseif minimapShape == "SIDE-BOTTOM" then |
if sin < 0 then |
round = false |
end |
elseif minimapShape == "TRICORNER-TOPRIGHT" then |
if cos < 0 and sin > 0 then |
round = false |
end |
elseif minimapShape == "TRICORNER-TOPLEFT" then |
if cos > 0 and sin > 0 then |
round = false |
end |
elseif minimapShape == "TRICORNER-BOTTOMRIGHT" then |
if cos < 0 and sin < 0 then |
round = false |
end |
elseif minimapShape == "TRICORNER-BOTTOMLEFT" then |
if cos > 0 and sin < 0 then |
round = false |
end |
end |
if round then |
x = cos * 80 |
y = sin * 80 |
else |
x = 110 * cos |
y = 110 * sin |
x = math.max(-82, math.min(x, 84)) |
y = math.max(-86, math.min(y, 82)) |
end |
frame:SetPoint("CENTER", Minimap, "CENTER", x, y) |
end |
end |
function MinimapContainer:GetPlugin(index) |
return self.plugins[index] |
end |
function MinimapContainer:GetNumPlugins() |
return table.getn(self.plugins) |
end |
function MinimapContainer:IndexOfPlugin(plugin) |
for i,p in ipairs(self.plugins) do |
if p == plugin then |
return i, "MINIMAP" |
end |
end |
end |
function MinimapContainer:HasPlugin(plugin) |
return self:IndexOfPlugin(plugin) ~= nil |
end |
function MinimapContainer:GetPluginSide(plugin) |
local index = self:IndexOfPlugin(plugin) |
assert(index, "Plugin not in panel") |
return "MINIMAP" |
end |
function MinimapContainer.OnDragStart() |
this.dragged = true |
this:LockHighlight() |
this:SetScript("OnUpdate", MinimapContainer.OnUpdate) |
if this.plugin.minimapIcon:GetTexture():sub(1, 16) == "Interface\\Icons\\" then |
this.plugin.minimapIcon:SetTexCoord(0.05, 0.95, 0.05, 0.95) |
else |
this.plugin.minimapIcon:SetTexCoord(0, 1, 0, 1) |
end |
end |
function MinimapContainer.OnDragStop() |
this:SetScript("OnUpdate", nil) |
this:UnlockHighlight() |
end |
function MinimapContainer.OnUpdate() |
if not IsAltKeyDown() then |
local mx, my = Minimap:GetCenter() |
local px, py = GetCursorPosition() |
local scale = UIParent:GetEffectiveScale() |
px, py = px / scale, py / scale |
local position = math.deg(math.atan2(py - my, px - mx)) |
if position <= 0 then |
position = position + 360 |
elseif position > 360 then |
position = position - 360 |
end |
if this.plugin.db then |
this.plugin.db.profile.minimapPosition = position |
this.plugin.db.profile.minimapPositionX = nil |
this.plugin.db.profile.minimapPositionY = nil |
this.plugin.db.profile.minimapPositionWild = nil |
else |
this.plugin.minimapPosition = position |
this.plugin.minimapPositionX = nil |
this.plugin.minimapPositionY = nil |
this.plugin.minimapPositionWild = nil |
end |
else |
local px, py = GetCursorPosition() |
local scale = UIParent:GetEffectiveScale() |
px, py = px / scale, py / scale |
if this.plugin.db then |
this.plugin.db.profile.minimapPositionX = px |
this.plugin.db.profile.minimapPositionY = py |
this.plugin.db.profile.minimapPosition = nil |
this.plugin.db.profile.minimapPositionWild = true |
else |
this.plugin.minimapPositionX = px |
this.plugin.minimapPositionY = py |
this.plugin.minimapPosition = nil |
this.plugin.minimapPositionWild = true |
end |
end |
MinimapContainer:ReadjustLocation(this.plugin) |
end |
local function activate(self, oldLib, oldDeactivate) |
MinimapContainer = self |
if oldLib then |
self.plugins = oldLib.plugins |
end |
if not self.plugins then |
self.plugins = {} |
end |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
AceLibrary:Register(MinimapContainer, MINIMAPCONTAINER_MAJOR_VERSION, MINOR_VERSION, activate) |
--[[ |
Name: AceLibrary |
Revision: $Rev: 29796 $ |
Developed by: The Ace Development Team (http://www.wowace.com/index.php/The_Ace_Development_Team) |
Inspired By: Iriel (iriel@vigilance-committee.org) |
Tekkub (tekkub@gmail.com) |
Revision: $Rev: 29796 $ |
Website: http://www.wowace.com/ |
Documentation: http://www.wowace.com/index.php/AceLibrary |
SVN: http://svn.wowace.com/root/trunk/Ace2/AceLibrary |
Description: Versioning library to handle other library instances, upgrading, |
and proper access. |
It also provides a base for libraries to work off of, providing |
proper error tools. It is handy because all the errors occur in the |
file that called it, not in the library file itself. |
Dependencies: None |
License: LGPL v2.1 |
]] |
local ACELIBRARY_MAJOR = "AceLibrary" |
local ACELIBRARY_MINOR = "$Revision: 29796 $" |
local _G = getfenv(0) |
local previous = _G[ACELIBRARY_MAJOR] |
if previous and not previous:IsNewVersion(ACELIBRARY_MAJOR, ACELIBRARY_MINOR) then return end |
local function safecall(func,...) |
local success, err = pcall(func,...) |
if not success then geterrorhandler()(err:find("%.lua:%d+:") and err or (debugstack():match("\n(.-: )in.-\n") or "") .. err) end |
end |
local WoW22 = false |
if type(GetBuildInfo) == "function" then |
local success, buildinfo = pcall(GetBuildInfo) |
if success and type(buildinfo) == "string" then |
local num = tonumber(buildinfo:match("^(%d+%.%d+)")) |
if num and num >= 2.2 then |
WoW22 = true |
end |
end |
end |
-- @table AceLibrary |
-- @brief System to handle all versioning of libraries. |
local AceLibrary = {} |
local AceLibrary_mt = {} |
setmetatable(AceLibrary, AceLibrary_mt) |
local function error(self, message, ...) |
if type(self) ~= "table" then |
return _G.error(("Bad argument #1 to `error' (table expected, got %s)"):format(type(self)), 2) |
end |
local stack = debugstack() |
if not message then |
local _,_,second = stack:find("\n(.-)\n") |
message = "error raised! " .. second |
else |
local arg = { ... } -- not worried about table creation, as errors don't happen often |
for i = 1, #arg do |
arg[i] = tostring(arg[i]) |
end |
for i = 1, 10 do |
table.insert(arg, "nil") |
end |
message = message:format(unpack(arg)) |
end |
if getmetatable(self) and getmetatable(self).__tostring then |
message = ("%s: %s"):format(tostring(self), message) |
elseif type(rawget(self, 'GetLibraryVersion')) == "function" and AceLibrary:HasInstance(self:GetLibraryVersion()) then |
message = ("%s: %s"):format(self:GetLibraryVersion(), message) |
elseif type(rawget(self, 'class')) == "table" and type(rawget(self.class, 'GetLibraryVersion')) == "function" and AceLibrary:HasInstance(self.class:GetLibraryVersion()) then |
message = ("%s: %s"):format(self.class:GetLibraryVersion(), message) |
end |
local first = stack:gsub("\n.*", "") |
local file = first:gsub(".*\\(.*).lua:%d+: .*", "%1") |
file = file:gsub("([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1") |
local i = 0 |
for s in stack:gmatch("\n([^\n]*)") do |
i = i + 1 |
if not s:find(file .. "%.lua:%d+:") and not s:find("%(tail call%)") then |
file = s:gsub("^.*\\(.*).lua:%d+: .*", "%1") |
file = file:gsub("([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1") |
break |
end |
end |
local j = 0 |
for s in stack:gmatch("\n([^\n]*)") do |
j = j + 1 |
if j > i and not s:find(file .. "%.lua:%d+:") and not s:find("%(tail call%)") then |
return _G.error(message, j+1) |
end |
end |
return _G.error(message, 2) |
end |
local assert |
if not WoW22 then |
function assert(self, condition, message, ...) |
if not condition then |
if not message then |
local stack = debugstack() |
local _,_,second = stack:find("\n(.-)\n") |
message = "assertion failed! " .. second |
end |
return error(self, message, ...) |
end |
return condition |
end |
end |
local function argCheck(self, arg, num, kind, kind2, kind3, kind4, kind5) |
if type(num) ~= "number" then |
return error(self, "Bad argument #3 to `argCheck' (number expected, got %s)", type(num)) |
elseif type(kind) ~= "string" then |
return error(self, "Bad argument #4 to `argCheck' (string expected, got %s)", type(kind)) |
end |
local errored = false |
arg = type(arg) |
if arg ~= kind and arg ~= kind2 and arg ~= kind3 and arg ~= kind4 and arg ~= kind5 then |
local stack = debugstack() |
local _,_,func = stack:find("`argCheck'.-([`<].-['>])") |
if not func then |
_,_,func = stack:find("([`<].-['>])") |
end |
if kind5 then |
return error(self, "Bad argument #%s to %s (%s, %s, %s, %s, or %s expected, got %s)", tonumber(num) or 0/0, func, kind, kind2, kind3, kind4, kind5, arg) |
elseif kind4 then |
return error(self, "Bad argument #%s to %s (%s, %s, %s, or %s expected, got %s)", tonumber(num) or 0/0, func, kind, kind2, kind3, kind4, arg) |
elseif kind3 then |
return error(self, "Bad argument #%s to %s (%s, %s, or %s expected, got %s)", tonumber(num) or 0/0, func, kind, kind2, kind3, arg) |
elseif kind2 then |
return error(self, "Bad argument #%s to %s (%s or %s expected, got %s)", tonumber(num) or 0/0, func, kind, kind2, arg) |
else |
return error(self, "Bad argument #%s to %s (%s expected, got %s)", tonumber(num) or 0/0, func, kind, arg) |
end |
end |
end |
local pcall |
do |
local function check(self, ret, ...) |
if not ret then |
local s = ... |
return error(self, (s:gsub(".-%.lua:%d-: ", ""))) |
else |
return ... |
end |
end |
function pcall(self, func, ...) |
return check(self, _G.pcall(func, ...)) |
end |
end |
local recurse = {} |
local function addToPositions(t, major) |
if not AceLibrary.positions[t] or AceLibrary.positions[t] == major then |
rawset(t, recurse, true) |
AceLibrary.positions[t] = major |
for k,v in pairs(t) do |
if type(v) == "table" and not rawget(v, recurse) then |
addToPositions(v, major) |
end |
if type(k) == "table" and not rawget(k, recurse) then |
addToPositions(k, major) |
end |
end |
local mt = getmetatable(t) |
if mt and not rawget(mt, recurse) then |
addToPositions(mt, major) |
end |
rawset(t, recurse, nil) |
end |
end |
local function svnRevisionToNumber(text) |
if type(text) == "string" then |
if text:find("^%$Revision: (%d+) %$$") then |
return tonumber((text:gsub("^%$Revision: (%d+) %$$", "%1"))) |
elseif text:find("^%$Rev: (%d+) %$$") then |
return tonumber((text:gsub("^%$Rev: (%d+) %$$", "%1"))) |
elseif text:find("^%$LastChangedRevision: (%d+) %$$") then |
return tonumber((text:gsub("^%$LastChangedRevision: (%d+) %$$", "%1"))) |
end |
elseif type(text) == "number" then |
return text |
end |
return nil |
end |
local crawlReplace |
do |
local recurse = {} |
local function func(t, to, from) |
if recurse[t] then |
return |
end |
recurse[t] = true |
local mt = getmetatable(t) |
setmetatable(t, nil) |
rawset(t, to, rawget(t, from)) |
rawset(t, from, nil) |
for k,v in pairs(t) do |
if v == from then |
t[k] = to |
elseif type(v) == "table" then |
if not recurse[v] then |
func(v, to, from) |
end |
end |
if type(k) == "table" then |
if not recurse[k] then |
func(k, to, from) |
end |
end |
end |
setmetatable(t, mt) |
if mt then |
if mt == from then |
setmetatable(t, to) |
elseif not recurse[mt] then |
func(mt, to, from) |
end |
end |
end |
function crawlReplace(t, to, from) |
func(t, to, from) |
for k in pairs(recurse) do |
recurse[k] = nil |
end |
end |
end |
-- @function destroyTable |
-- @brief remove all the contents of a table |
-- @param t table to destroy |
local function destroyTable(t) |
setmetatable(t, nil) |
for k,v in pairs(t) do |
t[k] = nil |
end |
end |
local function isFrame(frame) |
return type(frame) == "table" and type(rawget(frame, 0)) == "userdata" and type(rawget(frame, 'IsFrameType')) == "function" and getmetatable(frame) and type(rawget(getmetatable(frame), '__index')) == "function" |
end |
-- @function copyTable |
-- @brief Create a shallow copy of a table and return it. |
-- @param from The table to copy from |
-- @return A shallow copy of the table |
local function copyTable(from) |
local to = {} |
for k,v in pairs(from) do |
to[k] = v |
end |
setmetatable(to, getmetatable(from)) |
return to |
end |
-- @function deepTransfer |
-- @brief Fully transfer all data, keeping proper previous table |
-- backreferences stable. |
-- @param to The table with which data is to be injected into |
-- @param from The table whose data will be injected into the first |
-- @param saveFields If available, a shallow copy of the basic data is saved |
-- in here. |
-- @param list The account of table references |
-- @param list2 The current status on which tables have been traversed. |
local deepTransfer |
do |
-- @function examine |
-- @brief Take account of all the table references to be shared |
-- between the to and from tables. |
-- @param to The table with which data is to be injected into |
-- @param from The table whose data will be injected into the first |
-- @param list An account of the table references |
local function examine(to, from, list, major) |
list[from] = to |
for k,v in pairs(from) do |
if rawget(to, k) and type(from[k]) == "table" and type(to[k]) == "table" and not list[from[k]] then |
if from[k] == to[k] then |
list[from[k]] = to[k] |
elseif AceLibrary.positions[from[v]] ~= major and AceLibrary.positions[from[v]] then |
list[from[k]] = from[k] |
elseif not list[from[k]] then |
examine(to[k], from[k], list, major) |
end |
end |
end |
return list |
end |
function deepTransfer(to, from, saveFields, major, list, list2) |
setmetatable(to, nil) |
if not list then |
list = {} |
list2 = {} |
examine(to, from, list, major) |
end |
list2[to] = to |
for k,v in pairs(to) do |
if type(rawget(from, k)) ~= "table" or type(v) ~= "table" or isFrame(v) then |
if saveFields then |
saveFields[k] = v |
end |
to[k] = nil |
elseif v ~= _G then |
if saveFields then |
saveFields[k] = copyTable(v) |
end |
end |
end |
for k in pairs(from) do |
if rawget(to, k) and to[k] ~= from[k] and AceLibrary.positions[to[k]] == major and from[k] ~= _G then |
if not list2[to[k]] then |
deepTransfer(to[k], from[k], nil, major, list, list2) |
end |
to[k] = list[to[k]] or list2[to[k]] |
else |
rawset(to, k, from[k]) |
end |
end |
setmetatable(to, getmetatable(from)) |
local mt = getmetatable(to) |
if mt then |
if list[mt] then |
setmetatable(to, list[mt]) |
elseif mt.__index and list[mt.__index] then |
mt.__index = list[mt.__index] |
end |
end |
destroyTable(from) |
end |
end |
-- @method TryToLoadStandalone |
-- @brief Attempt to find and load a standalone version of the requested library |
-- @param major A string representing the major version |
-- @return If library is found, return values from the call to LoadAddOn are returned |
-- If the library has been requested previously, nil is returned. |
local function TryToLoadStandalone(major) |
if not AceLibrary.scannedlibs then AceLibrary.scannedlibs = {} end |
if AceLibrary.scannedlibs[major] then return end |
AceLibrary.scannedlibs[major] = true |
local name, _, _, enabled, loadable = GetAddOnInfo(major) |
if loadable then |
return LoadAddOn(name) |
end |
for i=1,GetNumAddOns() do |
if GetAddOnMetadata(i, "X-AceLibrary-"..major) then |
local name, _, _, enabled, loadable = GetAddOnInfo(i) |
if loadable then |
return LoadAddOn(name) |
end |
end |
end |
end |
-- @method IsNewVersion |
-- @brief Obtain whether the supplied version would be an upgrade to the |
-- current version. This allows for bypass code in library |
-- declaration. |
-- @param major A string representing the major version |
-- @param minor An integer or an svn revision string representing the minor version |
-- @return whether the supplied version would be newer than what is |
-- currently available. |
function AceLibrary:IsNewVersion(major, minor) |
argCheck(self, major, 2, "string") |
TryToLoadStandalone(major) |
if type(minor) == "string" then |
local m = svnRevisionToNumber(minor) |
if m then |
minor = m |
else |
_G.error(("Bad argument #3 to `IsNewVersion'. Must be a number or SVN revision string. %q is not appropriate"):format(minor), 2) |
end |
end |
argCheck(self, minor, 3, "number") |
local data = self.libs[major] |
if not data then |
return true |
end |
return data.minor < minor |
end |
-- @method HasInstance |
-- @brief Returns whether an instance exists. This allows for optional support of a library. |
-- @param major A string representing the major version. |
-- @param minor (optional) An integer or an svn revision string representing the minor version. |
-- @return Whether an instance exists. |
function AceLibrary:HasInstance(major, minor) |
argCheck(self, major, 2, "string") |
if minor ~= false then |
TryToLoadStandalone(major) |
end |
if minor then |
if type(minor) == "string" then |
local m = svnRevisionToNumber(minor) |
if m then |
minor = m |
else |
_G.error(("Bad argument #3 to `HasInstance'. Must be a number or SVN revision string. %q is not appropriate"):format(minor), 2) |
end |
end |
argCheck(self, minor, 3, "number") |
if not self.libs[major] then |
return |
end |
return self.libs[major].minor == minor |
end |
return self.libs[major] and true |
end |
-- @method GetInstance |
-- @brief Returns the library with the given major/minor version. |
-- @param major A string representing the major version. |
-- @param minor (optional) An integer or an svn revision string representing the minor version. |
-- @return The library with the given major/minor version. |
function AceLibrary:GetInstance(major, minor) |
argCheck(self, major, 2, "string") |
TryToLoadStandalone(major) |
local data = self.libs[major] |
if not data then |
_G.error(("Cannot find a library instance of %s."):format(major), 2) |
return |
end |
if minor then |
if type(minor) == "string" then |
local m = svnRevisionToNumber(minor) |
if m then |
minor = m |
else |
_G.error(("Bad argument #3 to `GetInstance'. Must be a number or SVN revision string. %q is not appropriate"):format(minor), 2) |
end |
end |
argCheck(self, minor, 2, "number") |
if data.minor ~= minor then |
_G.error(("Cannot find a library instance of %s, minor version %d."):format(major, minor), 2) |
end |
end |
return data.instance |
end |
-- Syntax sugar. AceLibrary("FooBar-1.0") |
AceLibrary_mt.__call = AceLibrary.GetInstance |
local donothing = function() end |
local AceEvent |
-- @method Register |
-- @brief Registers a new version of a given library. |
-- @param newInstance the library to register |
-- @param major the major version of the library |
-- @param minor the minor version of the library |
-- @param activateFunc (optional) A function to be called when the library is |
-- fully activated. Takes the arguments |
-- (newInstance [, oldInstance, oldDeactivateFunc]). If |
-- oldInstance is given, you should probably call |
-- oldDeactivateFunc(oldInstance). |
-- @param deactivateFunc (optional) A function to be called by a newer library's |
-- activateFunc. |
-- @param externalFunc (optional) A function to be called whenever a new |
-- library is registered. |
function AceLibrary:Register(newInstance, major, minor, activateFunc, deactivateFunc, externalFunc) |
argCheck(self, newInstance, 2, "table") |
argCheck(self, major, 3, "string") |
if major ~= ACELIBRARY_MAJOR then |
for k,v in pairs(_G) do |
if v == newInstance then |
geterrorhandler()((debugstack():match("(.-: )in.-\n") or "") .. ("Cannot register library %q. It is part of the global table in _G[%q]."):format(major, k)) |
end |
end |
end |
if major ~= ACELIBRARY_MAJOR and not major:find("^[%a%-][%a%d%-]*%-%d+%.%d+$") then |
_G.error(string.format("Bad argument #3 to `Register'. Must be in the form of \"Name-1.0\". %q is not appropriate", major), 2) |
end |
if type(minor) == "string" then |
local m = svnRevisionToNumber(minor) |
if m then |
minor = m |
else |
_G.error(("Bad argument #4 to `Register'. Must be a number or SVN revision string. %q is not appropriate"):format(minor), 2) |
end |
end |
argCheck(self, minor, 4, "number") |
if math.floor(minor) ~= minor or minor < 0 then |
error(self, "Bad argument #4 to `Register' (integer >= 0 expected, got %s)", minor) |
end |
argCheck(self, activateFunc, 5, "function", "nil") |
argCheck(self, deactivateFunc, 6, "function", "nil") |
argCheck(self, externalFunc, 7, "function", "nil") |
if not deactivateFunc then |
deactivateFunc = donothing |
end |
local data = self.libs[major] |
if not data then |
-- This is new |
local instance = copyTable(newInstance) |
crawlReplace(instance, instance, newInstance) |
destroyTable(newInstance) |
if AceLibrary == newInstance then |
self = instance |
AceLibrary = instance |
end |
self.libs[major] = { |
instance = instance, |
minor = minor, |
deactivateFunc = deactivateFunc, |
externalFunc = externalFunc, |
} |
rawset(instance, 'GetLibraryVersion', function(self) |
return major, minor |
end) |
if not rawget(instance, 'error') then |
rawset(instance, 'error', error) |
end |
if not WoW22 and not rawget(instance, 'assert') then |
rawset(instance, 'assert', assert) |
end |
if not rawget(instance, 'argCheck') then |
rawset(instance, 'argCheck', argCheck) |
end |
if not rawget(instance, 'pcall') then |
rawset(instance, 'pcall', pcall) |
end |
addToPositions(instance, major) |
if activateFunc then |
safecall(activateFunc, instance, nil, nil) -- no old version, so explicit nil |
--[[ if major ~= ACELIBRARY_MAJOR then |
for k,v in pairs(_G) do |
if v == instance then |
geterrorhandler()((debugstack():match("(.-: )in.-\n") or "") .. ("Cannot register library %q. It is part of the global table in _G[%q]."):format(major, k)) |
end |
end |
end]] |
end |
if externalFunc then |
for k,data in pairs(self.libs) do |
if k ~= major then |
safecall(externalFunc, instance, k, data.instance) |
end |
end |
end |
for k,data in pairs(self.libs) do |
if k ~= major and data.externalFunc then |
safecall(data.externalFunc, data.instance, major, instance) |
end |
end |
if major == "AceEvent-2.0" then |
AceEvent = instance |
end |
if AceEvent then |
AceEvent.TriggerEvent(self, "AceLibrary_Register", major, instance) |
end |
return instance |
end |
local instance = data.instance |
if minor <= data.minor then |
-- This one is already obsolete, raise an error. |
_G.error(("Obsolete library registered. %s is already registered at version %d. You are trying to register version %d. Hint: if not AceLibrary:IsNewVersion(%q, %d) then return end"):format(major, data.minor, minor, major, minor), 2) |
return |
end |
-- This is an update |
local oldInstance = {} |
addToPositions(newInstance, major) |
local isAceLibrary = (AceLibrary == newInstance) |
local old_error, old_assert, old_argCheck, old_pcall |
if isAceLibrary then |
self = instance |
AceLibrary = instance |
old_error = instance.error |
if not WoW22 then |
old_assert = instance.assert |
end |
old_argCheck = instance.argCheck |
old_pcall = instance.pcall |
self.error = error |
if not WoW22 then |
self.assert = assert |
end |
self.argCheck = argCheck |
self.pcall = pcall |
end |
deepTransfer(instance, newInstance, oldInstance, major) |
crawlReplace(instance, instance, newInstance) |
local oldDeactivateFunc = data.deactivateFunc |
data.minor = minor |
data.deactivateFunc = deactivateFunc |
data.externalFunc = externalFunc |
rawset(instance, 'GetLibraryVersion', function(self) |
return major, minor |
end) |
if not rawget(instance, 'error') then |
rawset(instance, 'error', error) |
end |
if not WoW22 and not rawget(instance, 'assert') then |
rawset(instance, 'assert', assert) |
end |
if not rawget(instance, 'argCheck') then |
rawset(instance, 'argCheck', argCheck) |
end |
if not rawget(instance, 'pcall') then |
rawset(instance, 'pcall', pcall) |
end |
if isAceLibrary then |
for _,v in pairs(self.libs) do |
local i = type(v) == "table" and v.instance |
if type(i) == "table" then |
if not rawget(i, 'error') or i.error == old_error then |
rawset(i, 'error', error) |
end |
if not WoW22 and (not rawget(i, 'assert') or i.assert == old_assert) then |
rawset(i, 'assert', assert) |
end |
if not rawget(i, 'argCheck') or i.argCheck == old_argCheck then |
rawset(i, 'argCheck', argCheck) |
end |
if not rawget(i, 'pcall') or i.pcall == old_pcall then |
rawset(i, 'pcall', pcall) |
end |
end |
end |
end |
if activateFunc then |
safecall(activateFunc, instance, oldInstance, oldDeactivateFunc) |
--[[ if major ~= ACELIBRARY_MAJOR then |
for k,v in pairs(_G) do |
if v == instance then |
geterrorhandler()((debugstack():match("(.-: )in.-\n") or "") .. ("Cannot register library %q. It is part of the global table in _G[%q]."):format(major, k)) |
end |
end |
end]] |
else |
safecall(oldDeactivateFunc, oldInstance) |
end |
oldInstance = nil |
if externalFunc then |
for k,data in pairs(self.libs) do |
if k ~= major then |
safecall(externalFunc, instance, k, data.instance) |
end |
end |
end |
return instance |
end |
local iter |
function AceLibrary:IterateLibraries() |
if not iter then |
local function iter(t, k) |
k = next(t, k) |
if not k then |
return nil |
else |
return k, t[k].instance |
end |
end |
end |
return iter, self.libs, nil |
end |
-- @function Activate |
-- @brief The activateFunc for AceLibrary itself. Called when |
-- AceLibrary properly registers. |
-- @param self Reference to AceLibrary |
-- @param oldLib (optional) Reference to an old version of AceLibrary |
-- @param oldDeactivate (optional) Function to deactivate the old lib |
local function activate(self, oldLib, oldDeactivate) |
AceLibrary = self |
if not self.libs then |
self.libs = oldLib and oldLib.libs or {} |
self.scannedlibs = oldLib and oldLib.scannedlibs or {} |
end |
if not self.positions then |
self.positions = oldLib and oldLib.positions or setmetatable({}, { __mode = "k" }) |
end |
-- Expose the library in the global environment |
_G[ACELIBRARY_MAJOR] = self |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
if not previous then |
previous = AceLibrary |
end |
if not previous.libs then |
previous.libs = {} |
end |
AceLibrary.libs = previous.libs |
if not previous.positions then |
previous.positions = setmetatable({}, { __mode = "k" }) |
end |
AceLibrary.positions = previous.positions |
AceLibrary:Register(AceLibrary, ACELIBRARY_MAJOR, ACELIBRARY_MINOR, activate) |
------------------------------------------------------------------------ |
r29795 | ckknight | 2007-03-08 21:01:19 -0500 (Thu, 08 Mar 2007) | 2 lines |
Changed paths: |
M /trunk/FuBarPlugin-2.0/FuBarPlugin-2.0/FuBarPlugin-2.0.lua |
FuBarPlugin-2.0 - fixed :asserts |
------------------------------------------------------------------------ |
r27487 | ckknight | 2007-02-07 17:12:19 -0500 (Wed, 07 Feb 2007) | 1 line |
Changed paths: |
M /trunk/FuBarPlugin-2.0/FuBarPlugin-2.0/FuBarPlugin-2.0.lua |
FuBarPlugin-2.0 - support GetMinimapShape() for SIDE-* and TRICORNER-* as according to http://www.wowwiki.com/GetMinimapShape |
------------------------------------------------------------------------ |
<?xml version="1.0"?> |
<log> |
<logentry |
revision="25921"> |
<author>kergoth</author> |
<date>2007-01-23T21:50:43.516580Z</date> |
<paths> |
<path |
action="M">/trunk/Acolyte/Modules/NightFall.lua</path> |
<path |
action="M">/trunk/Chronometer/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFu.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README.txt</path> |
<path |
action="M">/trunk/Cancellation/Localization.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Shaman.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Readme.txt</path> |
<path |
action="M">/trunk/FreeRefills/Core.lua</path> |
<path |
action="M">/trunk/Bidder/Localization/enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceDebug-2.0/AceDebug-2.0.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellData.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/paladin.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/BulkMail/BulkMail-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/EnhancedColourPicker/EnhancedColourPicker.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/Race/BabbleLib-Race.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Rogue.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Angler/AnglerFastSwitch.lua</path> |
<path |
action="M">/trunk/Cosplay/Cosplay.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-esES.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist.bat</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetHealth.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.esES.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_Roll.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.enUS.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/Cellular/frame.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.xml</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/log.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/custom.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.lua</path> |
<path |
action="M">/trunk/Baddiel/Baddiel.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/Bindings.xml</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-enUS.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar_Panel.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarlock.lua</path> |
<path |
action="M">/trunk/ClassColors/ClassColors.lua</path> |
<path |
action="M">/trunk/DKPmonInit/PHP/README</path> |
<path |
action="M">/trunk/Decursive/Decursive.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/esES.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Browse.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFrame-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceLocals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/ReadMe.txt</path> |
<path |
action="M">/trunk/AceFry/AceFry.xml</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/FuBarPlugin-2.0/FuBarPlugin-2.0.lua</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer.lua</path> |
<path |
action="M">/trunk/Assister/modules/Invite.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Druid.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-frFR.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-enUS.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/DruidMana.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICheckButton-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIBase-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_NetStatsFu/NetStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Detox/locals_koKR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerModule.lua</path> |
<path |
action="M">/trunk/AutoBar/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/ClearFont/ClearFont.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColaLight/Core.lua</path> |
<path |
action="M">/trunk/CC_ToolTip/CC_ToolTip.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_PetitionFu/petition.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.xml</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-frFR.lua</path> |
<path |
action="M">/trunk/AHFavorites/README.txt</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Detox/locals_zhTW.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBid.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importmod.lua</path> |
<path |
action="M">/trunk/FryListDKP/Hooks.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.xml</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerHunter.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/FuBar_MCPFu.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/frFR.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Zone-2.1/Babble-Zone-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/SpellTree/BabbleLib-SpellTree.lua</path> |
<path |
action="M">/trunk/CooldownCount/CooldownCount.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/Decursive/localization.kr.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/README.txt</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.lua</path> |
<path |
action="M">/trunk/BigWigs_KLHTMTarget/BigWigs_KLHTMTarget.lua</path> |
<path |
action="M">/trunk/ConsoleMage/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICustomClass-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/BuffScanning.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Mage.lua</path> |
<path |
action="M">/trunk/ArkInventory/Bindings.xml</path> |
<path |
action="M">/trunk/DKPmon/Custom/registry.lua</path> |
<path |
action="M">/trunk/!SurfaceControl/gpl.txt</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-enUS.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlockSoulLink.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFu.lua</path> |
<path |
action="M">/trunk/Combine/locals.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BagSlots/BagSlots.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Casts.lua</path> |
<path |
action="M">/trunk/ClosetGnome/ClosetGnome.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/Cartographer_Stats.lua</path> |
<path |
action="M">/trunk/DKPmonInit/main.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.xml</path> |
<path |
action="M">/trunk/Cartographer/Modules/GuildPositions.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/LICENSE.txt</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisor.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals.lua</path> |
<path |
action="M">/trunk/Decursive/localization.tw.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.xml</path> |
<path |
action="M">/trunk/CBRipoff/core/frame.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPaladin.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonController.lua</path> |
<path |
action="M">/trunk/CC_Note/Bindings.xml</path> |
<path |
action="M">/trunk/BuffProtectorGnome/gpl.txt</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.lua</path> |
<path |
action="M">/trunk/ColaMachine/Core.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/FuBar_DebuggerFu.lua</path> |
<path |
action="M">/trunk/Assister/modules/options.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/README.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_Bar.lua</path> |
<path |
action="M">/trunk/ArcHUD2/FuBarPlugin.lua</path> |
<path |
action="M">/trunk/Capping/localization-frFR.lua</path> |
<path |
action="M">/trunk/DrDamage/DrDamage.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Repairs.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.sh</path> |
<path |
action="M">/trunk/BigWigs_TabletBars/TabletBars.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerKill.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/readme.txt</path> |
<path |
action="M">/trunk/Ace/AceAddon.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.0/AceHook-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Zone-2.0/Babble-Zone-2.0.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/readme.txt</path> |
<path |
action="M">/trunk/DKPmon/ImpExpModules/registry.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_frFR.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Editbox.xml</path> |
<path |
action="M">/trunk/Decursive/Dcr_Raid.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/ReadMe.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-deDE.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/readme.txt</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/BiGOpt/subgroups.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/DebugFu.lua</path> |
<path |
action="M">/trunk/BigWigs_Debugger/Debugger.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/install.bat</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Type.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/Cartographer_Treasure.lua</path> |
<path |
action="M">/trunk/BanzaiAlert/BanzaiAlert.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/deDE.lua</path> |
<path |
action="M">/trunk/CryptoLib/Crypto-1.0/Crypto-1.0.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Clicks.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/addon.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_AutoFill.lua</path> |
<path |
action="M">/trunk/ClearFont/Fonts/Calibri_v1/Info.txt</path> |
<path |
action="M">/trunk/ClosetGnome/readme.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_BarGroup.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Sort.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.lua</path> |
<path |
action="M">/trunk/ErrorMonster/license.txt</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.lua</path> |
<path |
action="M">/trunk/AuctionSort/AuctionSort.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.0/AceLocale-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/syncing.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/deDE.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFuLocals.lua</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisorLocale.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.xml</path> |
<path |
action="M">/trunk/Bidder_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/Antagonist/Locals/enGB.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.lua</path> |
<path |
action="M">/trunk/CommChannel/README</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/DakSmak.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/LICENSE.txt</path> |
<path |
action="M">/trunk/CooldownCount/Locale.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Class-2.1/Babble-Class-2.1.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.xml</path> |
<path |
action="M">/trunk/Caterer/Caterer.lua</path> |
<path |
action="M">/trunk/AoFHeal/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFactory-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/README.txt</path> |
<path |
action="M">/trunk/CommChannel/Lib/CommChannel.lua</path> |
<path |
action="M">/trunk/BlackSheeps/ReadMe.txt</path> |
<path |
action="M">/trunk/Detox/locals_zhCN.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.xml</path> |
<path |
action="M">/trunk/AutoBar/Core.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusMana.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Cooldowns.lua</path> |
<path |
action="M">/trunk/AutoAcceptInvite/CHANGELOG.txt</path> |
<path |
action="M">/trunk/AutoBar/Style.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIContainer.lua</path> |
<path |
action="M">/trunk/ChatLog/Bindings.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInviteLocals.lua</path> |
<path |
action="M">/trunk/Ace/Ace.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Core.xml</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer-Locale.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.koKR.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/Core.lua</path> |
<path |
action="M">/trunk/BiGOpt/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.kr.lua</path> |
<path |
action="M">/trunk/DKPmonInit/importdata.lua</path> |
<path |
action="M">/trunk/Ace/AceState.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUILocals.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/ReadMe.txt</path> |
<path |
action="M">/trunk/EavesDrop/localization-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/ReadMe.txt</path> |
<path |
action="M">/trunk/Fizzle/Core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/gpl.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-koKR.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Repair.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFu.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.lua</path> |
<path |
action="M">/trunk/Capping/localization-deDE.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Group.lua</path> |
<path |
action="M">/trunk/Decursive/localization.cn.lua</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.lua</path> |
<path |
action="M">/trunk/EavesDrop/options.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/README.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFu.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBarConstants.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/AEmotes_Kelly.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/BigWigs_LoathebTactical.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.tw.lua</path> |
<path |
action="M">/trunk/FryBid/FryBid.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/AEmotes_JonyC.lua</path> |
<path |
action="M">/trunk/Decursive/lisez-moi.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Gatherer/ClosetGnome_Gatherer.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_deDE.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollect.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/FlexBar2/ButtonTheme.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/Bindings.xml</path> |
<path |
action="M">/trunk/Decursive/localization.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerMage.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/about.txt</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-koKR.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/pointsdb.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ADCommission.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectUtil.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Menu.lua</path> |
<path |
action="M">/trunk/EmbedLib/EmbedLib.lua</path> |
<path |
action="M">/trunk/FuBar_CRDelayFu/CRDelayFu.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Minipet.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Warlock.lua</path> |
<path |
action="M">/trunk/Angler/AnglerSetChanger.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloDefaults.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/MirrorTimer.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Menu.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Mana.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_deDE.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Search.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Spell-2.1/Babble-Spell-2.1.lua</path> |
<path |
action="M">/trunk/Acolyte/ChatCmd.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals_deDE.lua</path> |
<path |
action="M">/trunk/Ace2/readme.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Core.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/README.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BossBlock/Core.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/SEEA-2.0-Events-Only.lua</path> |
<path |
action="M">/trunk/DKPmon/Comm/comm.lua</path> |
<path |
action="M">/trunk/Ace2/version history.txt</path> |
<path |
action="M">/trunk/FlexBar2/ButtonEventHandler.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerFade.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarButton.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIRegion-2.0.lua</path> |
<path |
action="M">/trunk/BigWigs_RazuviousAssistant/BigWigs_RazuviousAssistant.lua</path> |
<path |
action="M">/trunk/ArenaMaster/localization.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/readme.txt</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/Range.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/designdocument.txt</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/localizations.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Warlock.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-koKR.lua</path> |
<path |
action="M">/trunk/Acceptance/Core.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Glue.lua</path> |
<path |
action="M">/trunk/Acolyte/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MiniPerfsFu/MiniPerfsFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Loner.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialCats.lua</path> |
<path |
action="M">/trunk/Detox/Bindings.xml</path> |
<path |
action="M">/trunk/BulkMail/BulkMail.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/priest.lua</path> |
<path |
action="M">/trunk/Ace/AceChatCmd.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/esES.lua</path> |
<path |
action="M">/trunk/FuBar_GCInFu/GCInFu.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ring-prototypes.txt</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/DebuggerFuLocals.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/TestSuite.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Comms.lua</path> |
<path |
action="M">/trunk/EtchASketch/nodist/makeworker.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/readme.txt</path> |
<path |
action="M">/trunk/BulkMail/BulkMailUtil.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2TargetScanner.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Vendor.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EtchASketch/ed_worker.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/cbripoff.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Paladin.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Stand.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/ModulePrototype.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhCN.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-frFR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetMana.lua</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistory.lua</path> |
<path |
action="M">/trunk/Decursive/Decursive.xml</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.cn.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/localization.enUS.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.xml</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2.lua</path> |
<path |
action="M">/trunk/BulkMail/README</path> |
<path |
action="M">/trunk/Automaton/modules/Unshapeshift.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFu.lua</path> |
<path |
action="M">/trunk/Decursive/loc_lists.txt</path> |
<path |
action="M">/trunk/!SurfaceControl/SurfaceControl.lua</path> |
<path |
action="M">/trunk/BuffProtectorGnome/BuffProtectorGnome.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.zhcn.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_frFR.lua</path> |
<path |
action="M">/trunk/DKPmon/utils.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/wowtester.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Paladin.lua</path> |
<path |
action="M">/trunk/Catalyst/Catalyst.lua</path> |
<path |
action="M">/trunk/ChannelClean/Locale.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Class-2.0/Babble-Class-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/localization.enUS.lua</path> |
<path |
action="M">/trunk/Combatotron/Combatotron.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist.lua</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-enUS.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.lua</path> |
<path |
action="M">/trunk/ChatSounds/ChatSounds.lua</path> |
<path |
action="M">/trunk/ArkInventory/ReadMe.txt</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.zhcn.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontInstance-2.0.lua</path> |
<path |
action="M">/trunk/Assister/modules/Resurect.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShiftLocals.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassShaman.lua</path> |
<path |
action="M">/trunk/DowJones/README</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.xml</path> |
<path |
action="M">/trunk/Fizzle/Inspect.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/credits.txt</path> |
<path |
action="M">/trunk/DeuceLog/DeuceLog.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/koKR.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.xml</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-enUS.lua</path> |
<path |
action="M">/trunk/Capping/WSG.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.xml</path> |
<path |
action="M">/trunk/Cartographer_Trainers/credits.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerShaman.lua</path> |
<path |
action="M">/trunk/Cartographer_Opening/addon.lua</path> |
<path |
action="M">/trunk/Cartographer_Import/Import.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Buffs.lua</path> |
<path |
action="M">/trunk/Assister/modules/MoveTooltip.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/License Info/legal_tb.txt</path> |
<path |
action="M">/trunk/Deformat/Deformat-2.0/Deformat-2.0.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_xxXX.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/readme.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Druid.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Tracking.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/LICENSE.txt</path> |
<path |
action="M">/trunk/BanzaiAlert/license.txt</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Bookmarks.lua</path> |
<path |
action="M">/trunk/FuBar_KeyQ/Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKPPoints.lua</path> |
<path |
action="M">/trunk/Decursive/DCR_init.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Mage.lua</path> |
<path |
action="M">/trunk/Ace/AceModule.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FinderReminder/locale.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFu.lua</path> |
<path |
action="M">/trunk/Ace2/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AEmotes/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_CustomMenuFu/CustomMenuFu.lua</path> |
<path |
action="M">/trunk/Capping/AB.lua</path> |
<path |
action="M">/trunk/AoFDKP/dkp.bat</path> |
<path |
action="M">/trunk/AutoBar/Bindings.xml</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.xml</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_PoisonFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Rez.lua</path> |
<path |
action="M">/trunk/Deformat/LICENSE.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetHealth.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/AoFDKP/updatedkp.exe.config</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.lua</path> |
<path |
action="M">/trunk/CVarScanner/AllWords.lua</path> |
<path |
action="M">/trunk/BigWigs_RespawnTimers/BigWigs_RespawnTimers.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerRogue.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/README.txt</path> |
<path |
action="M">/trunk/Automaton/modules/Release.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-SpellTree-2.0/Babble-SpellTree-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/ItemSets.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importdata.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/deDE.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBidLocals.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_Events.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ModuleCore.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Localization.lua</path> |
<path |
action="M">/trunk/Cartographer/Bindings.xml</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUILayeredRegion-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Spell-2.0/Babble-Spell-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.xml</path> |
<path |
action="M">/trunk/Decursive/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon/main.lua</path> |
<path |
action="M">/trunk/Ace2/AceComm-2.0/AceComm-2.0.lua</path> |
<path |
action="M">/trunk/Detox/locals_frFR.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleStats.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/Assister/modules/Summon.lua</path> |
<path |
action="M">/trunk/DKPmon/README.txt</path> |
<path |
action="M">/trunk/Decursive/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_Bartender2Fu/Bartender2Fu.lua</path> |
<path |
action="M">/trunk/Cartographer/Scripts/pack.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_Wipe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_ItemDBFu/FuBar_ItemDBFu.lua</path> |
<path |
action="M">/trunk/FlexBar2/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/esES.lua</path> |
<path |
action="M">/trunk/Capping/Capping.lua</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Druid.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Anchors.lua</path> |
<path |
action="M">/trunk/FryListDKP/Points.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFu.lua</path> |
<path |
action="M">/trunk/BuffMe/buffs.lua</path> |
<path |
action="M">/trunk/Capping/localization.lua</path> |
<path |
action="M">/trunk/FuBar_AnkhTimerFu/AnkhTimerFu.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Core.lua</path> |
<path |
action="M">/trunk/Angler/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BananaBar2/SecureActionQueue-2.0.lua</path> |
<path |
action="M">/trunk/CompostLib/Compost-2.0/Compost-2.0.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.xml</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.xml</path> |
<path |
action="M">/trunk/ClosetGnome_BigWigs/ClosetGnome_BigWigs.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Druid.lua</path> |
<path |
action="M">/trunk/BattleChat/BattleChat.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.options.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellAbilities.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFu.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/mage.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITexture-2.0.lua</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/License.txt</path> |
<path |
action="M">/trunk/Bidder/gpl.txt</path> |
<path |
action="M">/trunk/Cartographer_Trainers/addon.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/FramesClass.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.1/AceHook-2.1.lua</path> |
<path |
action="M">/trunk/DKPmon/Localization/enUS.lua</path> |
<path |
action="M">/trunk/EarPlug/Earplug.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Bindings.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/frFR.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/MCPFuLocals.lua</path> |
<path |
action="M">/trunk/Ace/AceHook.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/gpl.txt</path> |
<path |
action="M">/trunk/AltClickToAddItem/AltClickToAddItem.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_zhCN.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_zhCN.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/zhCN.lua</path> |
<path |
action="M">/trunk/Ace/AceData.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/addon.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFu.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/README.txt</path> |
<path |
action="M">/trunk/Decursive/Dcr_opt.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.xml</path> |
<path |
action="M">/trunk/FuBar_HeyFu/Core.lua</path> |
<path |
action="M">/trunk/Decursive/WhatsNew.txt</path> |
<path |
action="M">/trunk/FuBar_NavigatorFu/NavigatorFu.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFu.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.zhcn.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/PerspectiveSans/Info.txt</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.xml</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.xml</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/README.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-koKR.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_ItemGUI.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.enUS.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Utils.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Racial.lua</path> |
<path |
action="M">/trunk/Cellular/core.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.lua</path> |
<path |
action="M">/trunk/ClearFont/How to use the font packs.txt</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast.lua</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetCasting.lua</path> |
<path |
action="M">/trunk/FreezeFrameLib/Lib/FreezeFrameLib.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Boss-2.1/Babble-Boss-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunterPetHappy.lua</path> |
<path |
action="M">/trunk/Ace2/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/Info.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/logviewer.lua</path> |
<path |
action="M">/trunk/Detox/locals_deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFu.lua</path> |
<path |
action="M">/trunk/BigWigs_ThaddiusArrows/sounds/AboutSounds.txt</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistoryLocals.lua</path> |
<path |
action="M">/trunk/BestInShow/README</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.xml</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuXPLocals.lua</path> |
<path |
action="M">/trunk/Fizzle/RepairCost.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.lua</path> |
<path |
action="M">/trunk/Ace2/AceModuleCore-2.0/AceModuleCore-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceEvent.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins.lua</path> |
<path |
action="M">/trunk/FuBar_MiniClockFu/MiniClockFu.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/README.txt</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed-enUS.lua</path> |
<path |
action="M">/trunk/EnchantList/EnchantList.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-esES.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-esES.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.lua</path> |
<path |
action="M">/trunk/AEmotes/AEMOTES.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/FuBar_AssistFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Hunter.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.xml</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/Fence/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/gpl-v2.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFu.lua</path> |
<path |
action="M">/trunk/Ace/AceDB.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuBar_FuXPFu.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/README.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarSophia/Info.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/BarsClass.lua</path> |
<path |
action="M">/trunk/ChatHighlighter/ChatHighlighter.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.xml</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarrior.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/deDE.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Priest.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/textline.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AUF_Docs.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaSD/Info.txt</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Boss-2.0/Babble-Boss-2.0.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusHealth.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_utils.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/Cartographer_Noteshare.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.lua</path> |
<path |
action="M">/trunk/AutoAttack/Core.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/CharacterInfoStorage.lua</path> |
<path |
action="M">/trunk/FinderReminder/FinderReminder.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-zhCN.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/BigWigs_HealbotAssist.lua</path> |
<path |
action="M">/trunk/Ace2/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/Cartographer_Hotspot/Cartographer_Hotspot.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Filter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Locals.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.bat</path> |
<path |
action="M">/trunk/Cartographer_Icons_GathererPack/pack.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerCast.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/ClosetGnome_OhNoes.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SoulKeeper.lua</path> |
<path |
action="M">/trunk/Cosplay/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_DPS/changelog.txt</path> |
<path |
action="M">/trunk/ArenaMaster/Core.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/Ruleset.lua</path> |
<path |
action="M">/trunk/DKPmon/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_HeartFu/HeartFu.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-frFR.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/BuffTemplate.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.lua</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.lua</path> |
<path |
action="M">/trunk/DKPmon/Awarding/awardframe.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/VersionInfo.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.koKR.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaGrande/Info.txt</path> |
<path |
action="M">/trunk/AEmotes_JonyC/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu-readme.txt</path> |
<path |
action="M">/trunk/DKPmon/gpl.txt</path> |
<path |
action="M">/trunk/AutoAcceptInvite/AutoAcceptInvite.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/Druidcom/DruidcomDruidTemplate.xml</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhCN.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Race-2.1/Babble-Race-2.1.lua</path> |
<path |
action="M">/trunk/Cancellation/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFu.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/Compost.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarUtils.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Casting.lua</path> |
<path |
action="M">/trunk/Decursive/Bindings.xml</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShift.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_MCTimers.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Health.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2RulesLocals.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_Experienced.lua</path> |
<path |
action="M">/trunk/EavesDrop/localization-koKR.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/MinionSummoner.lua</path> |
<path |
action="M">/trunk/Capping/Arenas.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFu.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.xml</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Gui.lua</path> |
<path |
action="M">/trunk/ArcHUD2/statrings.txt</path> |
<path |
action="M">/trunk/DorjeHealingBars/DorjeHealingBars.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.xml</path> |
<path |
action="M">/trunk/Ace/AceLocals.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/CommonAuras.lua</path> |
<path |
action="M">/trunk/Ace/README.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Defaults.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatTimeFu/FuBar_CombatTimeFu.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/exportmod.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/AEmotes_DrWho.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimerModules.lua</path> |
<path |
action="M">/trunk/FuBar_ItemBonusesFu/ItemBonusesFu_Locale_koKR.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarItemList.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Angler/Angler.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Race-2.0/Babble-Race-2.0.lua</path> |
<path |
action="M">/trunk/ColaLight/GPL.txt</path> |
<path |
action="M">/trunk/Capping/AV.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/Readme.txt</path> |
<path |
action="M">/trunk/BugSack/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Core.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-frFR.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-deDE.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/gpl.txt</path> |
<path |
action="M">/trunk/DogChow/DogChow.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.xml</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/README.txt</path> |
<path |
action="M">/trunk/ChatJustify/ChatJustify.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/ReadMe.txt</path> |
<path |
action="M">/trunk/CVarScanner/WikiFormatter.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons_MetaMapPack/pack.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.xml</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_esES.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-esES.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Queue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_esES.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-deDE.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/esES.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassMage.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_ExperiencedLocals.lua</path> |
<path |
action="M">/trunk/Cartographer/Libs/UTF8/utf8.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_RollLocals.lua</path> |
<path |
action="M">/trunk/Combine/Combine.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Detox/locals_enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatantsFu/Core.lua</path> |
<path |
action="M">/trunk/Dock-1.0/Dock-1.0/Dock-1.0.lua</path> |
<path |
action="M">/trunk/AbacusLib/Abacus-2.0/Abacus-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Rogue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/readme.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-esES.lua</path> |
<path |
action="M">/trunk/Combatants/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurninGlobals.lua</path> |
<path |
action="M">/trunk/DreamBuff/DreamBuff.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README-BAT-FILES.txt</path> |
<path |
action="M">/trunk/Decursive/localization.es.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-esES.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.zhCN.lua</path> |
<path |
action="M">/trunk/Cartographer/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.esES.lua</path> |
<path |
action="M">/trunk/BabbleLib/Class/BabbleLib-Class.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Priest.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_ErrorMonsterFu/ErrorMonsterFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Plates.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFu.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu.lua</path> |
<path |
action="M">/trunk/CandyBar/CandyBar-2.0/CandyBar-2.0.lua</path> |
<path |
action="M">/trunk/ColaMachine/LICENSE.txt</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.xml</path> |
<path |
action="M">/trunk/ChatThrottleLib/README.txt</path> |
<path |
action="M">/trunk/Decursive/localization.fr.lua</path> |
<path |
action="M">/trunk/Caterer/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerSkill.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/LICENSE.txt</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Options/options.lua</path> |
<path |
action="M">/trunk/Bidder/Comm/comm.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Tooltip.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFu.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.lua</path> |
<path |
action="M">/trunk/Bidder/utils.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-frFR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerEasyLure.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/Bindings.xml</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.lua</path> |
<path |
action="M">/trunk/BuffMe/core.lua</path> |
<path |
action="M">/trunk/Angler/AnglerTracker.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/druid.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/Bidder/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/Bidder/DKPstub.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-deDE.lua</path> |
<path |
action="M">/trunk/BiGOpt/main.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Mage.lua</path> |
<path |
action="M">/trunk/Decursive/localization.de.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_BidWatch.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_AQTimers.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFu.lua</path> |
<path |
action="M">/trunk/ColaMachine/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon_CSV/exportmod.lua</path> |
<path |
action="M">/trunk/Babble-2.2/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/LICENSE.txt</path> |
<path |
action="M">/trunk/DKPmon_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/koKR.lua</path> |
<path |
action="M">/trunk/BigWigs_ZombieFood/ZombieFood.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.xml</path> |
<path |
action="M">/trunk/DKPmonInit/README.txt</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/ToolTip.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Localization.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenuTuFu/Core.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/README.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Warrior.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhTW.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFu.lua</path> |
<path |
action="M">/trunk/EtchASketch/flashframe.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/LICENSE.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/abg.xml</path> |
<path |
action="M">/trunk/Ace2/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/AbacusLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_ItemListFu/FuBar_ItemListFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/LICENSE.txt</path> |
<path |
action="M">/trunk/CBRipoff/core/casting.lua</path> |
<path |
action="M">/trunk/DogChow/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Aperture/Aperture.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/EBBTest.lua</path> |
<path |
action="M">/trunk/Bidder/Options/options.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/StopTheSpam.lua</path> |
<path |
action="M">/trunk/Decursive/Downloads.txt</path> |
<path |
action="M">/trunk/Angler/Bindings.xml</path> |
<path |
action="M">/trunk/ArkInventory/DefaultCategories.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/RitualofSummoning.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.xml</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_deDE.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Button.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFuLocals.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/indent.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/credits.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_AceWardrobeFu/core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/GossipData.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerDruid.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Priest.lua</path> |
<path |
action="M">/trunk/Assister/modules/Whisper.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-frFR.lua</path> |
<path |
action="M">/trunk/ClearFont2_FontPack_1/core.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.lua</path> |
<path |
action="M">/trunk/DKPmon/Custom/fixeddkp.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Sell.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.enUS.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Shaman.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.xml</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.lua</path> |
<path |
action="M">/trunk/BestInShow/BestInShow.lua</path> |
<path |
action="M">/trunk/Bidder/main.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-esES.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Globals.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NameToggleFu/Core.lua</path> |
<path |
action="M">/trunk/Barf/Barf.lua</path> |
<path |
action="M">/trunk/ColaLight/LICENSE.txt</path> |
<path |
action="M">/trunk/AutoBar/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-SpellTree-2.1/Babble-SpellTree-2.1.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/addon.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_koKR.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarPhilos/Info.txt</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_deDE.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.fr.lua</path> |
<path |
action="M">/trunk/BanzaiLib/license.txt</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_HistoryGUI.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/addon.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.xml</path> |
<path |
action="M">/trunk/ArcHUD2/RingTemplate.lua</path> |
<path |
action="M">/trunk/Assister/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/fubar-plugin.lua</path> |
<path |
action="M">/trunk/Baggins/bindings.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Gossip.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.xml</path> |
<path |
action="M">/trunk/CC_Core/CC_Core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/LootBOP.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.lua</path> |
<path |
action="M">/trunk/EtchASketch/worker.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_BWLTimers.lua</path> |
<path |
action="M">/trunk/CrayonLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_DepositBoxFu/DepositBoxFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFu.lua</path> |
<path |
action="M">/trunk/Engravings/EngravingsPresets.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/NinjutFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_Zone.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_GreedBeacon/FuBar_GreedBeacon.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.de.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemist.lua</path> |
<path |
action="M">/trunk/CVarScanner/README.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlock.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.xml</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.xml</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-enUS.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/localization.lua</path> |
<path |
action="M">/trunk/FuBar_PetFu/PetFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_MonitorConstants.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhCN.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhCN.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDownMenu.lua</path> |
<path |
action="M">/trunk/CrayonLib/Crayon-2.0/Crayon-2.0.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Auction.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist-Options.lua</path> |
<path |
action="M">/trunk/AEmotes/AEmotes.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals.lua</path> |
<path |
action="M">/trunk/Acolyte/Layout.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFu.lua</path> |
<path |
action="M">/trunk/FuBar/LICENSE.txt</path> |
<path |
action="M">/trunk/FixMe/FixMe.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/StoneCreator.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Core.lua</path> |
<path |
action="M">/trunk/ClosetGnome/TODO.txt</path> |
<path |
action="M">/trunk/ClearFont/ClearFontAddons.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.2/AceLocale-2.2.lua</path> |
<path |
action="M">/trunk/BabbleLib/Spell/BabbleLib-Spell.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/Deformat/BabbleLib-Deformat.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/Diplomat/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BananaBar2Fu/FuBar_BananaBar2Fu.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Dismount.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ChannelClean/ChannelClean.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/custom.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Bits/Bits-1.0/Bits-1.0.lua</path> |
<path |
action="M">/trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Summon.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-deDE.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots.lua</path> |
<path |
action="M">/trunk/AceCast/AceCast.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloOptions.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/browserframe.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/ClosetGnome_Switcher.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/EnergyTick.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/LICENSE.txt</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.koKR.lua</path> |
<path |
action="M">/trunk/!BugGrabber/gpl.txt</path> |
<path |
action="M">/trunk/DKPmon/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/Bindings.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Extensions/InstanceInfo.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDropStats.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/!GetMoney_api/GetMoney_api.lua</path> |
<path |
action="M">/trunk/EyeCandy/EyeCandy.lua</path> |
<path |
action="M">/trunk/EnchantList/localization.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPaladin.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/AutoBar/AutoBarProfile.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-enUS.lua</path> |
<path |
action="M">/trunk/BuffMe/locale.enUS.lua</path> |
<path |
action="M">/trunk/AutoBar/ChangeList.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-enUS.lua</path> |
<path |
action="M">/trunk/BabbleLib/Zone/BabbleLib-Zone.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-deDE.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.xml</path> |
<path |
action="M">/trunk/AceGUI/README.txt</path> |
<path |
action="M">/trunk/Decursive/QuoiDeNeuf.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetMana.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonInterface.lua</path> |
<path |
action="M">/trunk/ClearFont/Changelog.txt</path> |
<path |
action="M">/trunk/BestInShow/BestInShowLocals.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.lua</path> |
<path |
action="M">/trunk/FryListDKP/BidQuery.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Wuss.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Warrior.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2CastMenu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SpellCaster.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.frFR.lua</path> |
<path |
action="M">/trunk/AlfCast/AlfCast.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.lua</path> |
<path |
action="M">/trunk/FinderReminder/SpellButtonClass.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/PredefinedMenus.lua</path> |
<path |
action="M">/trunk/Ace2/AceTab-2.0/AceTab-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-deDE.lua</path> |
<path |
action="M">/trunk/Combine/Combine.xml</path> |
<path |
action="M">/trunk/CC_Core/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_ModMenu/README.txt</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importdata.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Core.lua</path> |
<path |
action="M">/trunk/Ace/Ace.lua</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2-enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Roster/raid.lua</path> |
<path |
action="M">/trunk/DeuceCommander/DeuceCommander.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUISlider-2.0.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialGlobals.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Wipe.lua</path> |
<path |
action="M">/trunk/CompostLib/Lib/CompostLib.lua</path> |
<path |
action="M">/trunk/ClosetGnome/license.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Mount/ClosetGnome_Mount.lua</path> |
<path |
action="M">/trunk/Ace/AceCommands.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist_wau.bat</path> |
<path |
action="M">/trunk/BananaBar2/Bindings.xml</path> |
<path |
action="M">/trunk/CVarScanner/CVarScanner.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerAura.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_enUS.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Rules.lua</path> |
<path |
action="M">/trunk/BugSack/BugSack-esES.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2.lua</path> |
<path |
action="M">/trunk/DKPmon/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Banker/Banker.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/README.txt</path> |
<path |
action="M">/trunk/Comercio/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFuLocals.lua</path> |
<path |
action="M">/trunk/DontBugMe/DontBugMe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Franc/Info.txt</path> |
<path |
action="M">/trunk/ChatLog/Locale-frFR.lua</path> |
<path |
action="M">/trunk/DowJones/DowJones.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.lua</path> |
<path |
action="M">/trunk/FuBar_MailFu/Core.lua</path> |
<path |
action="M">/trunk/ConsoleMage/ConsoleMage.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.xml</path> |
<path |
action="M">/trunk/EavesDrop/install.txt</path> |
<path |
action="M">/trunk/DKPmonInit/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/AEmotesFU.lua</path> |
<path |
action="M">/trunk/Aggromemnon/core.lua</path> |
<path |
action="M">/trunk/Cartographer/Cartographer.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITemplates-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.xml</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.xml</path> |
<path |
action="M">/trunk/AutoBar/AutoBar.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.xml</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/network.txt</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Sell.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIButton-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_enUS.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterial.lua</path> |
<path |
action="M">/trunk/Cyclone/core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importmod.lua</path> |
<path |
action="M">/trunk/Ace2/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/LICENSE.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.xml</path> |
<path |
action="M">/trunk/Acolyte/Modules/MountSummoner.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/zhTW.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontString-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassDruid.lua</path> |
<path |
action="M">/trunk/Detox/Detox.lua</path> |
<path |
action="M">/trunk/FuBar_DuraTek/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Capping/options.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/DowJones/getItemDKP.pl</path> |
<path |
action="M">/trunk/AEmotes/ReadMe.txt</path> |
<path |
action="M">/trunk/Bidder/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/README.txt</path> |
<path |
action="M">/trunk/Bidder/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/Bartender3_AutoBindings/Bartender3_AutoBindings.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInvite.lua</path> |
<path |
action="M">/trunk/BattleChat_Buffs/BattleChat_Buffs.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2AssistButton.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/ComboPoints.lua</path> |
<path |
action="M">/trunk/BabbleLib/Boss/BabbleLib-Boss.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices_Table.lua</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.lua</path> |
<path |
action="M">/trunk/DowJones/getPlayerDKP.pl</path> |
<path |
action="M">/trunk/DKPmon/Looting/looting.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/changelog.txt</path> |
<path |
action="M">/trunk/Baggins/libs/Sieve-0.1/Sieve-0.1.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-deDE.lua</path> |
<path |
action="M">/trunk/DeclineDuel/DeclineDuel.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/mirror.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Kopie von Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP-enUS.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemistLocals.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/localisation.en.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Calibri_v0.9/Info.txt</path> |
<path |
action="M">/trunk/Engravings/Engravings.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_KungFu/README.txt</path> |
<path |
action="M">/trunk/EgoCast/EgoCast.lua</path> |
<path |
action="M">/trunk/DewdropLib/LICENSE.txt</path> |
</paths> |
<msg>.Line ending fixups: trunk/</msg> |
</logentry> |
</log> |
------------------------------------------------------------------------ |
r29796 | ckknight | 2007-03-08 21:13:09 -0500 (Thu, 08 Mar 2007) | 3 lines |
Changed paths: |
M /trunk/Ace2/AceLibrary/AceLibrary.lua |
.AceLibrary - remove :assert in WoW 2.2 and higher. |
This should be plenty of time to fix any code, if any code is left out there. |
------------------------------------------------------------------------ |
r28965 | ckknight | 2007-02-25 18:17:27 -0500 (Sun, 25 Feb 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceLibrary/AceLibrary.lua |
.AceLibrary - :HasInstance("major", false) will now not try to load the LoD library |
------------------------------------------------------------------------ |
r28028 | kaelten | 2007-02-14 16:19:36 -0500 (Wed, 14 Feb 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceLibrary/AceLibrary.lua |
Ace2 - repoke to hopefully actually fix it. |
------------------------------------------------------------------------ |
r28027 | kaelten | 2007-02-14 16:16:10 -0500 (Wed, 14 Feb 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceLibrary/AceLibrary.lua |
Ace2 - doh poked the wrong damned file |
------------------------------------------------------------------------ |
<?xml version="1.0"?> |
<log> |
<logentry |
revision="25921"> |
<author>kergoth</author> |
<date>2007-01-23T21:50:43.516580Z</date> |
<paths> |
<path |
action="M">/trunk/Acolyte/Modules/NightFall.lua</path> |
<path |
action="M">/trunk/Chronometer/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFu.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README.txt</path> |
<path |
action="M">/trunk/Cancellation/Localization.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Shaman.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Readme.txt</path> |
<path |
action="M">/trunk/FreeRefills/Core.lua</path> |
<path |
action="M">/trunk/Bidder/Localization/enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceDebug-2.0/AceDebug-2.0.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellData.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/paladin.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/BulkMail/BulkMail-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/EnhancedColourPicker/EnhancedColourPicker.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/Race/BabbleLib-Race.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Rogue.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Angler/AnglerFastSwitch.lua</path> |
<path |
action="M">/trunk/Cosplay/Cosplay.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-esES.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist.bat</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetHealth.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.esES.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_Roll.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.enUS.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/Cellular/frame.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.xml</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/log.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/custom.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.lua</path> |
<path |
action="M">/trunk/Baddiel/Baddiel.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/Bindings.xml</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-enUS.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar_Panel.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarlock.lua</path> |
<path |
action="M">/trunk/ClassColors/ClassColors.lua</path> |
<path |
action="M">/trunk/DKPmonInit/PHP/README</path> |
<path |
action="M">/trunk/Decursive/Decursive.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/esES.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Browse.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFrame-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceLocals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/ReadMe.txt</path> |
<path |
action="M">/trunk/AceFry/AceFry.xml</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/FuBarPlugin-2.0/FuBarPlugin-2.0.lua</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer.lua</path> |
<path |
action="M">/trunk/Assister/modules/Invite.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Druid.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-frFR.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-enUS.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/DruidMana.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICheckButton-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIBase-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_NetStatsFu/NetStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Detox/locals_koKR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerModule.lua</path> |
<path |
action="M">/trunk/AutoBar/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/ClearFont/ClearFont.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColaLight/Core.lua</path> |
<path |
action="M">/trunk/CC_ToolTip/CC_ToolTip.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_PetitionFu/petition.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.xml</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-frFR.lua</path> |
<path |
action="M">/trunk/AHFavorites/README.txt</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Detox/locals_zhTW.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBid.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importmod.lua</path> |
<path |
action="M">/trunk/FryListDKP/Hooks.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.xml</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerHunter.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/FuBar_MCPFu.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/frFR.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Zone-2.1/Babble-Zone-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/SpellTree/BabbleLib-SpellTree.lua</path> |
<path |
action="M">/trunk/CooldownCount/CooldownCount.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/Decursive/localization.kr.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/README.txt</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.lua</path> |
<path |
action="M">/trunk/BigWigs_KLHTMTarget/BigWigs_KLHTMTarget.lua</path> |
<path |
action="M">/trunk/ConsoleMage/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICustomClass-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/BuffScanning.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Mage.lua</path> |
<path |
action="M">/trunk/ArkInventory/Bindings.xml</path> |
<path |
action="M">/trunk/DKPmon/Custom/registry.lua</path> |
<path |
action="M">/trunk/!SurfaceControl/gpl.txt</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-enUS.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlockSoulLink.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFu.lua</path> |
<path |
action="M">/trunk/Combine/locals.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BagSlots/BagSlots.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Casts.lua</path> |
<path |
action="M">/trunk/ClosetGnome/ClosetGnome.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/Cartographer_Stats.lua</path> |
<path |
action="M">/trunk/DKPmonInit/main.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.xml</path> |
<path |
action="M">/trunk/Cartographer/Modules/GuildPositions.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/LICENSE.txt</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisor.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals.lua</path> |
<path |
action="M">/trunk/Decursive/localization.tw.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.xml</path> |
<path |
action="M">/trunk/CBRipoff/core/frame.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPaladin.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonController.lua</path> |
<path |
action="M">/trunk/CC_Note/Bindings.xml</path> |
<path |
action="M">/trunk/BuffProtectorGnome/gpl.txt</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.lua</path> |
<path |
action="M">/trunk/ColaMachine/Core.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/FuBar_DebuggerFu.lua</path> |
<path |
action="M">/trunk/Assister/modules/options.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/README.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_Bar.lua</path> |
<path |
action="M">/trunk/ArcHUD2/FuBarPlugin.lua</path> |
<path |
action="M">/trunk/Capping/localization-frFR.lua</path> |
<path |
action="M">/trunk/DrDamage/DrDamage.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Repairs.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.sh</path> |
<path |
action="M">/trunk/BigWigs_TabletBars/TabletBars.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerKill.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/readme.txt</path> |
<path |
action="M">/trunk/Ace/AceAddon.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.0/AceHook-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Zone-2.0/Babble-Zone-2.0.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/readme.txt</path> |
<path |
action="M">/trunk/DKPmon/ImpExpModules/registry.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_frFR.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Editbox.xml</path> |
<path |
action="M">/trunk/Decursive/Dcr_Raid.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/ReadMe.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-deDE.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/readme.txt</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/BiGOpt/subgroups.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/DebugFu.lua</path> |
<path |
action="M">/trunk/BigWigs_Debugger/Debugger.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/install.bat</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Type.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/Cartographer_Treasure.lua</path> |
<path |
action="M">/trunk/BanzaiAlert/BanzaiAlert.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/deDE.lua</path> |
<path |
action="M">/trunk/CryptoLib/Crypto-1.0/Crypto-1.0.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Clicks.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/addon.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_AutoFill.lua</path> |
<path |
action="M">/trunk/ClearFont/Fonts/Calibri_v1/Info.txt</path> |
<path |
action="M">/trunk/ClosetGnome/readme.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_BarGroup.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Sort.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.lua</path> |
<path |
action="M">/trunk/ErrorMonster/license.txt</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.lua</path> |
<path |
action="M">/trunk/AuctionSort/AuctionSort.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.0/AceLocale-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/syncing.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/deDE.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFuLocals.lua</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisorLocale.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.xml</path> |
<path |
action="M">/trunk/Bidder_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/Antagonist/Locals/enGB.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.lua</path> |
<path |
action="M">/trunk/CommChannel/README</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/DakSmak.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/LICENSE.txt</path> |
<path |
action="M">/trunk/CooldownCount/Locale.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Class-2.1/Babble-Class-2.1.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.xml</path> |
<path |
action="M">/trunk/Caterer/Caterer.lua</path> |
<path |
action="M">/trunk/AoFHeal/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFactory-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/README.txt</path> |
<path |
action="M">/trunk/CommChannel/Lib/CommChannel.lua</path> |
<path |
action="M">/trunk/BlackSheeps/ReadMe.txt</path> |
<path |
action="M">/trunk/Detox/locals_zhCN.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.xml</path> |
<path |
action="M">/trunk/AutoBar/Core.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusMana.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Cooldowns.lua</path> |
<path |
action="M">/trunk/AutoAcceptInvite/CHANGELOG.txt</path> |
<path |
action="M">/trunk/AutoBar/Style.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIContainer.lua</path> |
<path |
action="M">/trunk/ChatLog/Bindings.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInviteLocals.lua</path> |
<path |
action="M">/trunk/Ace/Ace.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Core.xml</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer-Locale.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.koKR.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/Core.lua</path> |
<path |
action="M">/trunk/BiGOpt/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.kr.lua</path> |
<path |
action="M">/trunk/DKPmonInit/importdata.lua</path> |
<path |
action="M">/trunk/Ace/AceState.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUILocals.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/ReadMe.txt</path> |
<path |
action="M">/trunk/EavesDrop/localization-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/ReadMe.txt</path> |
<path |
action="M">/trunk/Fizzle/Core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/gpl.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-koKR.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Repair.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFu.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.lua</path> |
<path |
action="M">/trunk/Capping/localization-deDE.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Group.lua</path> |
<path |
action="M">/trunk/Decursive/localization.cn.lua</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.lua</path> |
<path |
action="M">/trunk/EavesDrop/options.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/README.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFu.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBarConstants.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/AEmotes_Kelly.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/BigWigs_LoathebTactical.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.tw.lua</path> |
<path |
action="M">/trunk/FryBid/FryBid.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/AEmotes_JonyC.lua</path> |
<path |
action="M">/trunk/Decursive/lisez-moi.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Gatherer/ClosetGnome_Gatherer.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_deDE.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollect.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/FlexBar2/ButtonTheme.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/Bindings.xml</path> |
<path |
action="M">/trunk/Decursive/localization.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerMage.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/about.txt</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-koKR.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/pointsdb.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ADCommission.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectUtil.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Menu.lua</path> |
<path |
action="M">/trunk/EmbedLib/EmbedLib.lua</path> |
<path |
action="M">/trunk/FuBar_CRDelayFu/CRDelayFu.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Minipet.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Warlock.lua</path> |
<path |
action="M">/trunk/Angler/AnglerSetChanger.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloDefaults.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/MirrorTimer.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Menu.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Mana.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_deDE.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Search.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Spell-2.1/Babble-Spell-2.1.lua</path> |
<path |
action="M">/trunk/Acolyte/ChatCmd.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals_deDE.lua</path> |
<path |
action="M">/trunk/Ace2/readme.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Core.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/README.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BossBlock/Core.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/SEEA-2.0-Events-Only.lua</path> |
<path |
action="M">/trunk/DKPmon/Comm/comm.lua</path> |
<path |
action="M">/trunk/Ace2/version history.txt</path> |
<path |
action="M">/trunk/FlexBar2/ButtonEventHandler.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerFade.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarButton.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIRegion-2.0.lua</path> |
<path |
action="M">/trunk/BigWigs_RazuviousAssistant/BigWigs_RazuviousAssistant.lua</path> |
<path |
action="M">/trunk/ArenaMaster/localization.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/readme.txt</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/Range.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/designdocument.txt</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/localizations.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Warlock.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-koKR.lua</path> |
<path |
action="M">/trunk/Acceptance/Core.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Glue.lua</path> |
<path |
action="M">/trunk/Acolyte/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MiniPerfsFu/MiniPerfsFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Loner.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialCats.lua</path> |
<path |
action="M">/trunk/Detox/Bindings.xml</path> |
<path |
action="M">/trunk/BulkMail/BulkMail.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/priest.lua</path> |
<path |
action="M">/trunk/Ace/AceChatCmd.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/esES.lua</path> |
<path |
action="M">/trunk/FuBar_GCInFu/GCInFu.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ring-prototypes.txt</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/DebuggerFuLocals.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/TestSuite.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Comms.lua</path> |
<path |
action="M">/trunk/EtchASketch/nodist/makeworker.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/readme.txt</path> |
<path |
action="M">/trunk/BulkMail/BulkMailUtil.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2TargetScanner.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Vendor.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EtchASketch/ed_worker.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/cbripoff.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Paladin.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Stand.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/ModulePrototype.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhCN.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-frFR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetMana.lua</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistory.lua</path> |
<path |
action="M">/trunk/Decursive/Decursive.xml</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.cn.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/localization.enUS.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.xml</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2.lua</path> |
<path |
action="M">/trunk/BulkMail/README</path> |
<path |
action="M">/trunk/Automaton/modules/Unshapeshift.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFu.lua</path> |
<path |
action="M">/trunk/Decursive/loc_lists.txt</path> |
<path |
action="M">/trunk/!SurfaceControl/SurfaceControl.lua</path> |
<path |
action="M">/trunk/BuffProtectorGnome/BuffProtectorGnome.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.zhcn.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_frFR.lua</path> |
<path |
action="M">/trunk/DKPmon/utils.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/wowtester.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Paladin.lua</path> |
<path |
action="M">/trunk/Catalyst/Catalyst.lua</path> |
<path |
action="M">/trunk/ChannelClean/Locale.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Class-2.0/Babble-Class-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/localization.enUS.lua</path> |
<path |
action="M">/trunk/Combatotron/Combatotron.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist.lua</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-enUS.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.lua</path> |
<path |
action="M">/trunk/ChatSounds/ChatSounds.lua</path> |
<path |
action="M">/trunk/ArkInventory/ReadMe.txt</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.zhcn.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontInstance-2.0.lua</path> |
<path |
action="M">/trunk/Assister/modules/Resurect.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShiftLocals.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassShaman.lua</path> |
<path |
action="M">/trunk/DowJones/README</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.xml</path> |
<path |
action="M">/trunk/Fizzle/Inspect.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/credits.txt</path> |
<path |
action="M">/trunk/DeuceLog/DeuceLog.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/koKR.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.xml</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-enUS.lua</path> |
<path |
action="M">/trunk/Capping/WSG.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.xml</path> |
<path |
action="M">/trunk/Cartographer_Trainers/credits.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerShaman.lua</path> |
<path |
action="M">/trunk/Cartographer_Opening/addon.lua</path> |
<path |
action="M">/trunk/Cartographer_Import/Import.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Buffs.lua</path> |
<path |
action="M">/trunk/Assister/modules/MoveTooltip.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/License Info/legal_tb.txt</path> |
<path |
action="M">/trunk/Deformat/Deformat-2.0/Deformat-2.0.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_xxXX.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/readme.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Druid.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Tracking.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/LICENSE.txt</path> |
<path |
action="M">/trunk/BanzaiAlert/license.txt</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Bookmarks.lua</path> |
<path |
action="M">/trunk/FuBar_KeyQ/Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKPPoints.lua</path> |
<path |
action="M">/trunk/Decursive/DCR_init.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Mage.lua</path> |
<path |
action="M">/trunk/Ace/AceModule.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FinderReminder/locale.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFu.lua</path> |
<path |
action="M">/trunk/Ace2/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AEmotes/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_CustomMenuFu/CustomMenuFu.lua</path> |
<path |
action="M">/trunk/Capping/AB.lua</path> |
<path |
action="M">/trunk/AoFDKP/dkp.bat</path> |
<path |
action="M">/trunk/AutoBar/Bindings.xml</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.xml</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_PoisonFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Rez.lua</path> |
<path |
action="M">/trunk/Deformat/LICENSE.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetHealth.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/AoFDKP/updatedkp.exe.config</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.lua</path> |
<path |
action="M">/trunk/CVarScanner/AllWords.lua</path> |
<path |
action="M">/trunk/BigWigs_RespawnTimers/BigWigs_RespawnTimers.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerRogue.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/README.txt</path> |
<path |
action="M">/trunk/Automaton/modules/Release.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-SpellTree-2.0/Babble-SpellTree-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/ItemSets.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importdata.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/deDE.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBidLocals.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_Events.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ModuleCore.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Localization.lua</path> |
<path |
action="M">/trunk/Cartographer/Bindings.xml</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUILayeredRegion-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Spell-2.0/Babble-Spell-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.xml</path> |
<path |
action="M">/trunk/Decursive/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon/main.lua</path> |
<path |
action="M">/trunk/Ace2/AceComm-2.0/AceComm-2.0.lua</path> |
<path |
action="M">/trunk/Detox/locals_frFR.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleStats.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/Assister/modules/Summon.lua</path> |
<path |
action="M">/trunk/DKPmon/README.txt</path> |
<path |
action="M">/trunk/Decursive/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_Bartender2Fu/Bartender2Fu.lua</path> |
<path |
action="M">/trunk/Cartographer/Scripts/pack.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_Wipe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_ItemDBFu/FuBar_ItemDBFu.lua</path> |
<path |
action="M">/trunk/FlexBar2/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/esES.lua</path> |
<path |
action="M">/trunk/Capping/Capping.lua</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Druid.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Anchors.lua</path> |
<path |
action="M">/trunk/FryListDKP/Points.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFu.lua</path> |
<path |
action="M">/trunk/BuffMe/buffs.lua</path> |
<path |
action="M">/trunk/Capping/localization.lua</path> |
<path |
action="M">/trunk/FuBar_AnkhTimerFu/AnkhTimerFu.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Core.lua</path> |
<path |
action="M">/trunk/Angler/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BananaBar2/SecureActionQueue-2.0.lua</path> |
<path |
action="M">/trunk/CompostLib/Compost-2.0/Compost-2.0.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.xml</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.xml</path> |
<path |
action="M">/trunk/ClosetGnome_BigWigs/ClosetGnome_BigWigs.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Druid.lua</path> |
<path |
action="M">/trunk/BattleChat/BattleChat.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.options.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellAbilities.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFu.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/mage.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITexture-2.0.lua</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/License.txt</path> |
<path |
action="M">/trunk/Bidder/gpl.txt</path> |
<path |
action="M">/trunk/Cartographer_Trainers/addon.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/FramesClass.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.1/AceHook-2.1.lua</path> |
<path |
action="M">/trunk/DKPmon/Localization/enUS.lua</path> |
<path |
action="M">/trunk/EarPlug/Earplug.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Bindings.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/frFR.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/MCPFuLocals.lua</path> |
<path |
action="M">/trunk/Ace/AceHook.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/gpl.txt</path> |
<path |
action="M">/trunk/AltClickToAddItem/AltClickToAddItem.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_zhCN.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_zhCN.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/zhCN.lua</path> |
<path |
action="M">/trunk/Ace/AceData.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/addon.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFu.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/README.txt</path> |
<path |
action="M">/trunk/Decursive/Dcr_opt.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.xml</path> |
<path |
action="M">/trunk/FuBar_HeyFu/Core.lua</path> |
<path |
action="M">/trunk/Decursive/WhatsNew.txt</path> |
<path |
action="M">/trunk/FuBar_NavigatorFu/NavigatorFu.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFu.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.zhcn.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/PerspectiveSans/Info.txt</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.xml</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.xml</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/README.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-koKR.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_ItemGUI.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.enUS.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Utils.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Racial.lua</path> |
<path |
action="M">/trunk/Cellular/core.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.lua</path> |
<path |
action="M">/trunk/ClearFont/How to use the font packs.txt</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast.lua</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetCasting.lua</path> |
<path |
action="M">/trunk/FreezeFrameLib/Lib/FreezeFrameLib.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Boss-2.1/Babble-Boss-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunterPetHappy.lua</path> |
<path |
action="M">/trunk/Ace2/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/Info.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/logviewer.lua</path> |
<path |
action="M">/trunk/Detox/locals_deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFu.lua</path> |
<path |
action="M">/trunk/BigWigs_ThaddiusArrows/sounds/AboutSounds.txt</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistoryLocals.lua</path> |
<path |
action="M">/trunk/BestInShow/README</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.xml</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuXPLocals.lua</path> |
<path |
action="M">/trunk/Fizzle/RepairCost.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.lua</path> |
<path |
action="M">/trunk/Ace2/AceModuleCore-2.0/AceModuleCore-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceEvent.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins.lua</path> |
<path |
action="M">/trunk/FuBar_MiniClockFu/MiniClockFu.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/README.txt</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed-enUS.lua</path> |
<path |
action="M">/trunk/EnchantList/EnchantList.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-esES.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-esES.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.lua</path> |
<path |
action="M">/trunk/AEmotes/AEMOTES.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/FuBar_AssistFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Hunter.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.xml</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/Fence/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/gpl-v2.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFu.lua</path> |
<path |
action="M">/trunk/Ace/AceDB.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuBar_FuXPFu.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/README.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarSophia/Info.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/BarsClass.lua</path> |
<path |
action="M">/trunk/ChatHighlighter/ChatHighlighter.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.xml</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarrior.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/deDE.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Priest.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/textline.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AUF_Docs.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaSD/Info.txt</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Boss-2.0/Babble-Boss-2.0.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusHealth.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_utils.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/Cartographer_Noteshare.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.lua</path> |
<path |
action="M">/trunk/AutoAttack/Core.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/CharacterInfoStorage.lua</path> |
<path |
action="M">/trunk/FinderReminder/FinderReminder.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-zhCN.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/BigWigs_HealbotAssist.lua</path> |
<path |
action="M">/trunk/Ace2/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/Cartographer_Hotspot/Cartographer_Hotspot.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Filter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Locals.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.bat</path> |
<path |
action="M">/trunk/Cartographer_Icons_GathererPack/pack.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerCast.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/ClosetGnome_OhNoes.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SoulKeeper.lua</path> |
<path |
action="M">/trunk/Cosplay/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_DPS/changelog.txt</path> |
<path |
action="M">/trunk/ArenaMaster/Core.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/Ruleset.lua</path> |
<path |
action="M">/trunk/DKPmon/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_HeartFu/HeartFu.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-frFR.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/BuffTemplate.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.lua</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.lua</path> |
<path |
action="M">/trunk/DKPmon/Awarding/awardframe.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/VersionInfo.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.koKR.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaGrande/Info.txt</path> |
<path |
action="M">/trunk/AEmotes_JonyC/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu-readme.txt</path> |
<path |
action="M">/trunk/DKPmon/gpl.txt</path> |
<path |
action="M">/trunk/AutoAcceptInvite/AutoAcceptInvite.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/Druidcom/DruidcomDruidTemplate.xml</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhCN.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Race-2.1/Babble-Race-2.1.lua</path> |
<path |
action="M">/trunk/Cancellation/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFu.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/Compost.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarUtils.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Casting.lua</path> |
<path |
action="M">/trunk/Decursive/Bindings.xml</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShift.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_MCTimers.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Health.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2RulesLocals.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_Experienced.lua</path> |
<path |
action="M">/trunk/EavesDrop/localization-koKR.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/MinionSummoner.lua</path> |
<path |
action="M">/trunk/Capping/Arenas.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFu.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.xml</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Gui.lua</path> |
<path |
action="M">/trunk/ArcHUD2/statrings.txt</path> |
<path |
action="M">/trunk/DorjeHealingBars/DorjeHealingBars.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.xml</path> |
<path |
action="M">/trunk/Ace/AceLocals.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/CommonAuras.lua</path> |
<path |
action="M">/trunk/Ace/README.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Defaults.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatTimeFu/FuBar_CombatTimeFu.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/exportmod.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/AEmotes_DrWho.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimerModules.lua</path> |
<path |
action="M">/trunk/FuBar_ItemBonusesFu/ItemBonusesFu_Locale_koKR.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarItemList.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Angler/Angler.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Race-2.0/Babble-Race-2.0.lua</path> |
<path |
action="M">/trunk/ColaLight/GPL.txt</path> |
<path |
action="M">/trunk/Capping/AV.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/Readme.txt</path> |
<path |
action="M">/trunk/BugSack/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Core.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-frFR.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-deDE.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/gpl.txt</path> |
<path |
action="M">/trunk/DogChow/DogChow.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.xml</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/README.txt</path> |
<path |
action="M">/trunk/ChatJustify/ChatJustify.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/ReadMe.txt</path> |
<path |
action="M">/trunk/CVarScanner/WikiFormatter.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons_MetaMapPack/pack.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.xml</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_esES.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-esES.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Queue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_esES.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-deDE.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/esES.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassMage.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_ExperiencedLocals.lua</path> |
<path |
action="M">/trunk/Cartographer/Libs/UTF8/utf8.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_RollLocals.lua</path> |
<path |
action="M">/trunk/Combine/Combine.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Detox/locals_enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatantsFu/Core.lua</path> |
<path |
action="M">/trunk/Dock-1.0/Dock-1.0/Dock-1.0.lua</path> |
<path |
action="M">/trunk/AbacusLib/Abacus-2.0/Abacus-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Rogue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/readme.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-esES.lua</path> |
<path |
action="M">/trunk/Combatants/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurninGlobals.lua</path> |
<path |
action="M">/trunk/DreamBuff/DreamBuff.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README-BAT-FILES.txt</path> |
<path |
action="M">/trunk/Decursive/localization.es.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-esES.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.zhCN.lua</path> |
<path |
action="M">/trunk/Cartographer/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.esES.lua</path> |
<path |
action="M">/trunk/BabbleLib/Class/BabbleLib-Class.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Priest.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_ErrorMonsterFu/ErrorMonsterFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Plates.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFu.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu.lua</path> |
<path |
action="M">/trunk/CandyBar/CandyBar-2.0/CandyBar-2.0.lua</path> |
<path |
action="M">/trunk/ColaMachine/LICENSE.txt</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.xml</path> |
<path |
action="M">/trunk/ChatThrottleLib/README.txt</path> |
<path |
action="M">/trunk/Decursive/localization.fr.lua</path> |
<path |
action="M">/trunk/Caterer/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerSkill.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/LICENSE.txt</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Options/options.lua</path> |
<path |
action="M">/trunk/Bidder/Comm/comm.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Tooltip.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFu.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.lua</path> |
<path |
action="M">/trunk/Bidder/utils.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-frFR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerEasyLure.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/Bindings.xml</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.lua</path> |
<path |
action="M">/trunk/BuffMe/core.lua</path> |
<path |
action="M">/trunk/Angler/AnglerTracker.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/druid.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/Bidder/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/Bidder/DKPstub.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-deDE.lua</path> |
<path |
action="M">/trunk/BiGOpt/main.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Mage.lua</path> |
<path |
action="M">/trunk/Decursive/localization.de.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_BidWatch.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_AQTimers.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFu.lua</path> |
<path |
action="M">/trunk/ColaMachine/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon_CSV/exportmod.lua</path> |
<path |
action="M">/trunk/Babble-2.2/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/LICENSE.txt</path> |
<path |
action="M">/trunk/DKPmon_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/koKR.lua</path> |
<path |
action="M">/trunk/BigWigs_ZombieFood/ZombieFood.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.xml</path> |
<path |
action="M">/trunk/DKPmonInit/README.txt</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/ToolTip.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Localization.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenuTuFu/Core.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/README.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Warrior.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhTW.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFu.lua</path> |
<path |
action="M">/trunk/EtchASketch/flashframe.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/LICENSE.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/abg.xml</path> |
<path |
action="M">/trunk/Ace2/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/AbacusLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_ItemListFu/FuBar_ItemListFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/LICENSE.txt</path> |
<path |
action="M">/trunk/CBRipoff/core/casting.lua</path> |
<path |
action="M">/trunk/DogChow/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Aperture/Aperture.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/EBBTest.lua</path> |
<path |
action="M">/trunk/Bidder/Options/options.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/StopTheSpam.lua</path> |
<path |
action="M">/trunk/Decursive/Downloads.txt</path> |
<path |
action="M">/trunk/Angler/Bindings.xml</path> |
<path |
action="M">/trunk/ArkInventory/DefaultCategories.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/RitualofSummoning.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.xml</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_deDE.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Button.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFuLocals.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/indent.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/credits.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_AceWardrobeFu/core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/GossipData.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerDruid.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Priest.lua</path> |
<path |
action="M">/trunk/Assister/modules/Whisper.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-frFR.lua</path> |
<path |
action="M">/trunk/ClearFont2_FontPack_1/core.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.lua</path> |
<path |
action="M">/trunk/DKPmon/Custom/fixeddkp.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Sell.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.enUS.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Shaman.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.xml</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.lua</path> |
<path |
action="M">/trunk/BestInShow/BestInShow.lua</path> |
<path |
action="M">/trunk/Bidder/main.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-esES.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Globals.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NameToggleFu/Core.lua</path> |
<path |
action="M">/trunk/Barf/Barf.lua</path> |
<path |
action="M">/trunk/ColaLight/LICENSE.txt</path> |
<path |
action="M">/trunk/AutoBar/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-SpellTree-2.1/Babble-SpellTree-2.1.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/addon.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_koKR.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarPhilos/Info.txt</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_deDE.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.fr.lua</path> |
<path |
action="M">/trunk/BanzaiLib/license.txt</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_HistoryGUI.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/addon.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.xml</path> |
<path |
action="M">/trunk/ArcHUD2/RingTemplate.lua</path> |
<path |
action="M">/trunk/Assister/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/fubar-plugin.lua</path> |
<path |
action="M">/trunk/Baggins/bindings.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Gossip.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.xml</path> |
<path |
action="M">/trunk/CC_Core/CC_Core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/LootBOP.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.lua</path> |
<path |
action="M">/trunk/EtchASketch/worker.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_BWLTimers.lua</path> |
<path |
action="M">/trunk/CrayonLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_DepositBoxFu/DepositBoxFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFu.lua</path> |
<path |
action="M">/trunk/Engravings/EngravingsPresets.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/NinjutFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_Zone.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_GreedBeacon/FuBar_GreedBeacon.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.de.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemist.lua</path> |
<path |
action="M">/trunk/CVarScanner/README.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlock.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.xml</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.xml</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-enUS.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/localization.lua</path> |
<path |
action="M">/trunk/FuBar_PetFu/PetFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_MonitorConstants.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhCN.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhCN.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDownMenu.lua</path> |
<path |
action="M">/trunk/CrayonLib/Crayon-2.0/Crayon-2.0.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Auction.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist-Options.lua</path> |
<path |
action="M">/trunk/AEmotes/AEmotes.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals.lua</path> |
<path |
action="M">/trunk/Acolyte/Layout.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFu.lua</path> |
<path |
action="M">/trunk/FuBar/LICENSE.txt</path> |
<path |
action="M">/trunk/FixMe/FixMe.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/StoneCreator.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Core.lua</path> |
<path |
action="M">/trunk/ClosetGnome/TODO.txt</path> |
<path |
action="M">/trunk/ClearFont/ClearFontAddons.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.2/AceLocale-2.2.lua</path> |
<path |
action="M">/trunk/BabbleLib/Spell/BabbleLib-Spell.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/Deformat/BabbleLib-Deformat.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/Diplomat/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BananaBar2Fu/FuBar_BananaBar2Fu.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Dismount.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ChannelClean/ChannelClean.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/custom.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Bits/Bits-1.0/Bits-1.0.lua</path> |
<path |
action="M">/trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Summon.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-deDE.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots.lua</path> |
<path |
action="M">/trunk/AceCast/AceCast.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloOptions.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/browserframe.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/ClosetGnome_Switcher.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/EnergyTick.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/LICENSE.txt</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.koKR.lua</path> |
<path |
action="M">/trunk/!BugGrabber/gpl.txt</path> |
<path |
action="M">/trunk/DKPmon/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/Bindings.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Extensions/InstanceInfo.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDropStats.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/!GetMoney_api/GetMoney_api.lua</path> |
<path |
action="M">/trunk/EyeCandy/EyeCandy.lua</path> |
<path |
action="M">/trunk/EnchantList/localization.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPaladin.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/AutoBar/AutoBarProfile.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-enUS.lua</path> |
<path |
action="M">/trunk/BuffMe/locale.enUS.lua</path> |
<path |
action="M">/trunk/AutoBar/ChangeList.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-enUS.lua</path> |
<path |
action="M">/trunk/BabbleLib/Zone/BabbleLib-Zone.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-deDE.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.xml</path> |
<path |
action="M">/trunk/AceGUI/README.txt</path> |
<path |
action="M">/trunk/Decursive/QuoiDeNeuf.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetMana.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonInterface.lua</path> |
<path |
action="M">/trunk/ClearFont/Changelog.txt</path> |
<path |
action="M">/trunk/BestInShow/BestInShowLocals.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.lua</path> |
<path |
action="M">/trunk/FryListDKP/BidQuery.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Wuss.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Warrior.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2CastMenu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SpellCaster.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.frFR.lua</path> |
<path |
action="M">/trunk/AlfCast/AlfCast.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.lua</path> |
<path |
action="M">/trunk/FinderReminder/SpellButtonClass.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/PredefinedMenus.lua</path> |
<path |
action="M">/trunk/Ace2/AceTab-2.0/AceTab-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-deDE.lua</path> |
<path |
action="M">/trunk/Combine/Combine.xml</path> |
<path |
action="M">/trunk/CC_Core/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_ModMenu/README.txt</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importdata.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Core.lua</path> |
<path |
action="M">/trunk/Ace/Ace.lua</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2-enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Roster/raid.lua</path> |
<path |
action="M">/trunk/DeuceCommander/DeuceCommander.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUISlider-2.0.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialGlobals.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Wipe.lua</path> |
<path |
action="M">/trunk/CompostLib/Lib/CompostLib.lua</path> |
<path |
action="M">/trunk/ClosetGnome/license.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Mount/ClosetGnome_Mount.lua</path> |
<path |
action="M">/trunk/Ace/AceCommands.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist_wau.bat</path> |
<path |
action="M">/trunk/BananaBar2/Bindings.xml</path> |
<path |
action="M">/trunk/CVarScanner/CVarScanner.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerAura.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_enUS.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Rules.lua</path> |
<path |
action="M">/trunk/BugSack/BugSack-esES.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2.lua</path> |
<path |
action="M">/trunk/DKPmon/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Banker/Banker.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/README.txt</path> |
<path |
action="M">/trunk/Comercio/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFuLocals.lua</path> |
<path |
action="M">/trunk/DontBugMe/DontBugMe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Franc/Info.txt</path> |
<path |
action="M">/trunk/ChatLog/Locale-frFR.lua</path> |
<path |
action="M">/trunk/DowJones/DowJones.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.lua</path> |
<path |
action="M">/trunk/FuBar_MailFu/Core.lua</path> |
<path |
action="M">/trunk/ConsoleMage/ConsoleMage.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.xml</path> |
<path |
action="M">/trunk/EavesDrop/install.txt</path> |
<path |
action="M">/trunk/DKPmonInit/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/AEmotesFU.lua</path> |
<path |
action="M">/trunk/Aggromemnon/core.lua</path> |
<path |
action="M">/trunk/Cartographer/Cartographer.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITemplates-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.xml</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.xml</path> |
<path |
action="M">/trunk/AutoBar/AutoBar.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.xml</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/network.txt</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Sell.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIButton-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_enUS.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterial.lua</path> |
<path |
action="M">/trunk/Cyclone/core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importmod.lua</path> |
<path |
action="M">/trunk/Ace2/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/LICENSE.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.xml</path> |
<path |
action="M">/trunk/Acolyte/Modules/MountSummoner.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/zhTW.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontString-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassDruid.lua</path> |
<path |
action="M">/trunk/Detox/Detox.lua</path> |
<path |
action="M">/trunk/FuBar_DuraTek/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Capping/options.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/DowJones/getItemDKP.pl</path> |
<path |
action="M">/trunk/AEmotes/ReadMe.txt</path> |
<path |
action="M">/trunk/Bidder/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/README.txt</path> |
<path |
action="M">/trunk/Bidder/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/Bartender3_AutoBindings/Bartender3_AutoBindings.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInvite.lua</path> |
<path |
action="M">/trunk/BattleChat_Buffs/BattleChat_Buffs.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2AssistButton.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/ComboPoints.lua</path> |
<path |
action="M">/trunk/BabbleLib/Boss/BabbleLib-Boss.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices_Table.lua</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.lua</path> |
<path |
action="M">/trunk/DowJones/getPlayerDKP.pl</path> |
<path |
action="M">/trunk/DKPmon/Looting/looting.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/changelog.txt</path> |
<path |
action="M">/trunk/Baggins/libs/Sieve-0.1/Sieve-0.1.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-deDE.lua</path> |
<path |
action="M">/trunk/DeclineDuel/DeclineDuel.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/mirror.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Kopie von Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP-enUS.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemistLocals.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/localisation.en.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Calibri_v0.9/Info.txt</path> |
<path |
action="M">/trunk/Engravings/Engravings.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_KungFu/README.txt</path> |
<path |
action="M">/trunk/EgoCast/EgoCast.lua</path> |
<path |
action="M">/trunk/DewdropLib/LICENSE.txt</path> |
</paths> |
<msg>.Line ending fixups: trunk/</msg> |
</logentry> |
</log> |
--[[ |
Name: AceOO-2.0 |
Revision: $Rev: 25921 $ |
Developed by: The Ace Development Team (http://www.wowace.com/index.php/The_Ace_Development_Team) |
Inspired By: Ace 1.x by Turan (turan@gryphon.com) |
Website: http://www.wowace.com/ |
Documentation: http://www.wowace.com/index.php/AceOO-2.0 |
SVN: http://svn.wowace.com/root/trunk/Ace2/AceOO-2.0 |
Description: Library to provide an object-orientation framework. |
Dependencies: AceLibrary |
License: MIT |
]] |
local MAJOR_VERSION = "AceOO-2.0" |
local MINOR_VERSION = "$Revision: 25921 $" |
-- This ensures the code is only executed if the libary doesn't already exist, or is a newer version |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
local AceOO = { |
error = AceLibrary.error, |
argCheck = AceLibrary.argCheck |
} |
-- @function getuid |
-- @brief Obtain a unique string identifier for the object in question. |
-- @param t The object to obtain the uid for. |
-- @return The uid string. |
local function pad(cap) |
return ("0"):rep(8 - cap:len()) .. cap |
end |
local function getuid(t) |
local mt = getmetatable(t) |
setmetatable(t, nil) |
local str = tostring(t) |
setmetatable(t, mt) |
local cap = str:match("[^:]*: 0x(.*)$") |
if not cap then |
cap = str:match("[^:]*: (.*)$") |
end |
if cap then |
return pad(cap) |
end |
end |
local function getlibrary(o) |
if type(o) == "table" then |
return o |
elseif type(o) == "string" then |
if not AceLibrary:HasInstance(o) then |
AceOO:error("Library %q does not exist.", o) |
end |
return AceLibrary(o) |
end |
end |
local function deeprawget(self, k) |
while true do |
local v = rawget(self, k) |
if v ~= nil then |
return v |
end |
local mt = getmetatable(self) |
if not mt or type(mt.__index) ~= "table" then |
return nil |
end |
self = mt.__index |
end |
end |
-- @function Factory |
-- @brief Construct a factory for the creation of objects. |
-- @param obj The object whose init method will be called on the new factory |
-- object. |
-- @param newobj The object whose init method will be called on the new |
-- objects that the Factory creates, to initialize them. |
-- @param (...) Arguments which will be passed to obj.init() in addition |
-- to the Factory object. |
-- @return The new factory which creates a newobj when its new method is called, |
-- or when it is called directly (__call metamethod). |
local Factory |
do |
local function getlibraries(...) |
if select('#', ...) == 0 then |
return |
end |
return getlibrary((select(1, ...))), getlibraries(select(2, ...)) |
end |
local arg = {} |
local function new(obj, ...) |
local t = {} |
local uid = getuid(t) |
obj:init(t, getlibraries(...)) |
t.uid = uid |
return t |
end |
local function createnew(self, ...) |
local o = self.prototype |
local x = new(o, getlibraries(...)) |
return x |
end |
function Factory(obj, newobj, ...) |
local t = new(obj, ...) |
t.prototype = newobj |
t.new = createnew |
getmetatable(t).__call = t.new |
return t |
end |
end |
local function objtostring(self) |
if self.ToString then |
return self:ToString() |
elseif self.GetLibraryVersion then |
return (self:GetLibraryVersion()) |
elseif self.super then |
local s = "Sub-" .. tostring(self.super) |
local first = true |
if self.interfaces then |
for interface in pairs(self.interfaces) do |
if first then |
s = s .. "(" .. tostring(interface) |
first = false |
else |
s = s .. ", " .. tostring(interface) |
end |
end |
end |
if self.mixins then |
for mixin in pairs(self.mixins) do |
if first then |
s = s .. tostring(mixin) |
first = false |
else |
s = s .. ", " .. tostring(mixin) |
end |
end |
end |
if first then |
if self.uid then |
return s .. ":" .. self.uid |
else |
return s |
end |
else |
return s .. ")" |
end |
else |
return self.uid and 'Subclass:' .. self.uid or 'Subclass' |
end |
end |
-- @table Object |
-- @brief Base of all objects, including Class. |
-- |
-- @method init |
-- @brief Initialize a new object. |
-- @param newobject The object to initialize |
-- @param class The class to make newobject inherit from |
local Object |
do |
Object = {} |
function Object:init(newobject, class) |
local parent = class or self |
if not rawget(newobject, 'uid') then |
newobject.uid = getuid(newobject) |
end |
local mt = { |
__index = parent, |
__tostring = objtostring, |
} |
setmetatable(newobject, mt) |
end |
Object.uid = getuid(Object) |
setmetatable(Object, { __tostring = function() return 'Object' end }) |
end |
local Interface |
local function validateInterface(object, interface) |
if not object.class and object.prototype then |
object = object.prototype |
end |
for k,v in pairs(interface.interface) do |
if tostring(type(object[k])) ~= v then |
return false |
end |
end |
if interface.superinterfaces then |
for superinterface in pairs(interface.superinterfaces) do |
if not validateInterface(object, superinterface) then |
return false |
end |
end |
end |
if type(object.class) == "table" and rawequal(object.class.prototype, object) then |
if not object.class.interfaces then |
rawset(object.class, 'interfaces', {}) |
end |
object.class.interfaces[interface] = true |
elseif type(object.class) == "table" and type(object.class.prototype) == "table" then |
validateInterface(object.class.prototype, interface) |
-- check if class is proper, thus preventing future checks. |
end |
return true |
end |
-- @function inherits |
-- @brief Return whether an Object or Class inherits from a given |
-- parent. |
-- @param object Object or Class to check |
-- @param parent Parent to test inheritance from |
-- @return whether an Object or Class inherits from a given |
-- parent. |
local function inherits(object, parent) |
object = getlibrary(object) |
if type(parent) == "string" then |
if not AceLibrary:HasInstance(parent) then |
return false |
else |
parent = AceLibrary(parent) |
end |
end |
AceOO:argCheck(parent, 2, "table") |
if type(object) ~= "table" then |
return false |
end |
local current |
local class = deeprawget(object, 'class') |
if class then |
current = class |
else |
current = object |
end |
if type(current) ~= "table" then |
return false |
end |
if rawequal(current, parent) then |
return true |
end |
if parent.class then |
while true do |
if rawequal(current, Object) then |
break |
end |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if rawequal(mixin, parent) then |
return true |
end |
end |
end |
if current.interfaces then |
for interface in pairs(current.interfaces) do |
if rawequal(interface, parent) then |
return true |
end |
end |
end |
current = deeprawget(current, 'super') |
if type(current) ~= "table" then |
break |
end |
end |
local isInterface = false |
local curr = parent.class |
while true do |
if rawequal(curr, Object) then |
break |
elseif rawequal(curr, Interface) then |
isInterface = true |
break |
end |
curr = deeprawget(curr, 'super') |
if type(curr) ~= "table" then |
break |
end |
end |
return isInterface and validateInterface(object, parent) |
else |
while true do |
if rawequal(current, parent) then |
return true |
elseif rawequal(current, Object) then |
return false |
end |
current = deeprawget(current, 'super') |
if type(current) ~= "table" then |
return false |
end |
end |
end |
end |
-- @table Class |
-- @brief An object factory which sets up inheritence and supports |
-- 'mixins'. |
-- |
-- @metamethod Class call |
-- @brief Call ClassFactory:new() to create a new class. |
-- |
-- @method Class new |
-- @brief Construct a new object. |
-- @param (...) Arguments to pass to the object init function. |
-- @return The new object. |
-- |
-- @method Class init |
-- @brief Initialize a new class. |
-- @param parent Superclass. |
-- @param (...) Mixins. |
-- |
-- @method Class ToString |
-- @return A string representing the object, in this case 'Class'. |
local initStatus |
local Class |
local Mixin |
local autoEmbed = false |
local function traverseInterfaces(bit, total) |
if bit.superinterfaces then |
for interface in pairs(bit.superinterfaces) do |
if not total[interface] then |
total[interface] = true |
traverseInterfaces(interface, total) |
end |
end |
end |
end |
local class_new |
do |
Class = Factory(Object, setmetatable({}, {__index = Object}), Object) |
Class.super = Object |
local function protostring(t) |
return '<' .. tostring(t.class) .. ' prototype>' |
end |
local function classobjectstring(t) |
if t.ToString then |
return t:ToString() |
elseif t.GetLibraryVersion then |
return (t:GetLibraryVersion()) |
else |
return '<' .. tostring(t.class) .. ' instance>' |
end |
end |
local function classobjectequal(self, other) |
if type(self) == "table" and self.Equals then |
return self:Equals(other) |
elseif type(other) == "table" and other.Equals then |
return other:Equals(self) |
elseif type(self) == "table" and self.CompareTo then |
return self:CompareTo(other) == 0 |
elseif type(other) == "table" and other.CompareTo then |
return other:CompareTo(self) == 0 |
else |
return rawequal(self, other) |
end |
end |
local function classobjectlessthan(self, other) |
if type(self) == "table" and self.IsLessThan then |
return self:IsLessThan(other) |
elseif type(other) == "table" and other.IsLessThanOrEqualTo then |
return not other:IsLessThanOrEqualTo(self) |
elseif type(self) == "table" and self.CompareTo then |
return self:CompareTo(other) < 0 |
elseif type(other) == "table" and other.CompareTo then |
return other:CompareTo(self) > 0 |
elseif type(other) == "table" and other.IsLessThan and other.Equals then |
return other:Equals(self) or other:IsLessThan(self) |
else |
AceOO:error("cannot compare two objects") |
end |
end |
local function classobjectlessthanequal(self, other) |
if type(self) == "table" and self.IsLessThanOrEqualTo then |
return self:IsLessThanOrEqualTo(other) |
elseif type(other) == "table" and other.IsLessThan then |
return not other:IsLessThan(self) |
elseif type(self) == "table" and self.CompareTo then |
return self:CompareTo(other) <= 0 |
elseif type(other) == "table" and other.CompareTo then |
return other:CompareTo(self) >= 0 |
elseif type(self) == "table" and self.IsLessThan and self.Equals then |
return self:Equals(other) or self:IsLessThan(other) |
else |
AceOO:error("cannot compare two incompatible objects") |
end |
end |
local function classobjectadd(self, other) |
if type(self) == "table" and self.Add then |
return self:Add(other) |
else |
AceOO:error("cannot add two incompatible objects") |
end |
end |
local function classobjectsub(self, other) |
if type(self) == "table" and self.Subtract then |
return self:Subtract(other) |
else |
AceOO:error("cannot subtract two incompatible objects") |
end |
end |
local function classobjectunm(self, other) |
if type(self) == "table" and self.UnaryNegation then |
return self:UnaryNegation(other) |
else |
AceOO:error("attempt to negate an incompatible object") |
end |
end |
local function classobjectmul(self, other) |
if type(self) == "table" and self.Multiply then |
return self:Multiply(other) |
else |
AceOO:error("cannot multiply two incompatible objects") |
end |
end |
local function classobjectdiv(self, other) |
if type(self) == "table" and self.Divide then |
return self:Divide(other) |
else |
AceOO:error("cannot divide two incompatible objects") |
end |
end |
local function classobjectpow(self, other) |
if type(self) == "table" and self.Exponent then |
return self:Exponent(other) |
else |
AceOO:error("cannot exponentiate two incompatible objects") |
end |
end |
local function classobjectconcat(self, other) |
if type(self) == "table" and self.Concatenate then |
return self:Concatenate(other) |
else |
AceOO:error("cannot concatenate two incompatible objects") |
end |
end |
function class_new(self, ...) |
if self.virtual then |
AceOO:error("Cannot instantiate a virtual class.") |
end |
local o = self.prototype |
local newobj = {} |
if o.class and o.class.instancemeta then |
setmetatable(newobj, o.class.instancemeta) |
else |
Object:init(newobj, o) |
end |
if self.interfaces and not self.interfacesVerified then |
-- Verify the interfaces |
for interface in pairs(self.interfaces) do |
for field,kind in pairs(interface.interface) do |
if tostring(type(newobj[field])) ~= kind then |
AceOO:error("Class did not satisfy all interfaces. %q is required to be a %s. It is a %s", field, kind, tostring(type(newobj[field]))) |
end |
end |
end |
self.interfacesVerified = true |
end |
local tmp = initStatus |
initStatus = newobj |
newobj:init(...) |
if initStatus then |
initStatus = tmp |
AceOO:error("Initialization not completed, be sure to call the superclass's init method.") |
return |
end |
initStatus = tmp |
return newobj |
end |
local classmeta = { |
__tostring = objtostring, |
__call = function(self, ...) |
return self:new(...) |
end, |
} |
function Class:init(newclass, parent, ...) |
parent = parent or self |
local total |
if parent.class then |
total = { parent, ... } |
parent = self |
else |
total = { ... } |
end |
if not inherits(parent, Class) then |
AceOO:error("Classes must inherit from a proper class") |
end |
if parent.sealed then |
AceOO:error("Cannot inherit from a sealed class") |
end |
for i,v in ipairs(total) do |
if inherits(v, Mixin) and v.class then |
if v.__deprecated then |
AceOO:error(v.__deprecated) |
end |
if not newclass.mixins then |
newclass.mixins = {} |
end |
if newclass.mixins[v] then |
AceOO:error("Cannot explicitly inherit from the same mixin twice") |
end |
newclass.mixins[v] = true |
elseif inherits(v, Interface) and v.class then |
if not newclass.interfaces then |
newclass.interfaces = {} |
end |
if newclass.interfaces[v] then |
AceOO:error("Cannot explicitly inherit from the same interface twice") |
end |
newclass.interfaces[v] = true |
else |
AceOO:error("Classes can only inherit from one or zero classes and any number of mixins or interfaces") |
end |
end |
if parent.interfaces then |
if not newclass.interfaces then |
newclass.interfaces = {} |
end |
for interface in pairs(parent.interfaces) do |
newclass.interfaces[interface] = true |
end |
end |
for k in pairs(total) do |
total[k] = nil |
end |
newclass.super = parent |
newclass.prototype = setmetatable(total, { |
__index = parent.prototype, |
__tostring = protostring, |
}) |
total = nil |
newclass.instancemeta = { |
__index = newclass.prototype, |
__tostring = classobjectstring, |
__eq = classobjectequal, |
__lt = classobjectlessthan, |
__le = classobjectlessthanequal, |
__add = classobjectadd, |
__sub = classobjectsub, |
__unm = classobjectunm, |
__mul = classobjectmul, |
__div = classobjectdiv, |
__pow = classobjectpow, |
__concat = classobjectconcat, |
} |
setmetatable(newclass, classmeta) |
newclass.new = class_new |
if newclass.mixins then |
-- Fold in the mixins |
local err, msg |
for mixin in pairs(newclass.mixins) do |
local ret |
autoEmbed = true |
ret, msg = pcall(mixin.embed, mixin, newclass.prototype) |
autoEmbed = false |
if not ret then |
err = true |
break |
end |
end |
if err then |
local pt = newclass.prototype |
for k,v in pairs(pt) do |
pt[k] = nil |
end |
-- method conflict |
AceOO:error(msg) |
end |
end |
newclass.prototype.class = newclass |
if newclass.interfaces then |
for interface in pairs(newclass.interfaces) do |
traverseInterfaces(interface, newclass.interfaces) |
end |
end |
if newclass.mixins then |
for mixin in pairs(newclass.mixins) do |
if mixin.interfaces then |
if not newclass.interfaces then |
newclass.interfaces = {} |
end |
for interface in pairs(mixin.interfaces) do |
newclass.interfaces[interface] = true |
end |
end |
end |
end |
end |
function Class:ToString() |
if type(self.GetLibraryVersion) == "function" then |
return (self:GetLibraryVersion()) |
else |
return "Class" |
end |
end |
local tmp |
function Class.prototype:init() |
if rawequal(self, initStatus) then |
initStatus = nil |
else |
AceOO:error("Improper self passed to init. You must do MyClass.super.prototype.init(self, ...)", 2) |
end |
self.uid = getuid(self) |
local current = self.class |
while true do |
if current == Class then |
break |
end |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnInstanceInit) == "function" then |
mixin:OnInstanceInit(self) |
end |
end |
end |
current = current.super |
end |
end |
end |
-- @object ClassFactory |
-- @brief A factory for creating classes. Rarely used directly. |
local ClassFactory = Factory(Object, Class, Object) |
function Class:new(...) |
local x = ClassFactory:new(...) |
if AceOO.classes then |
AceOO.classes[x] = true |
end |
return x |
end |
getmetatable(Class).__call = Class.new |
-- @class Mixin |
-- @brief A class to create mixin objects, which contain methods that get |
-- "mixed in" to class prototypes. |
-- |
-- @object Mixin prototype |
-- @brief The prototype that mixin objects inherit their methods from. |
-- |
-- @method Mixin prototype embed |
-- @brief Mix in the methods of our object which are listed in our interface |
-- to the supplied target table. |
-- |
-- @method Mixin prototype init |
-- @brief Initialize the mixin object. |
-- @param newobj The new object we're initializing. |
-- @param interface The interface we implement (the list of methods our |
-- prototype provides which should be mixed into the target |
-- table by embed). |
do |
Mixin = Class() |
function Mixin:ToString() |
if self.GetLibraryVersion then |
return (self:GetLibraryVersion()) |
else |
return 'Mixin' |
end |
end |
local function _Embed(state, field, target) |
field = next(state.export, field) |
if field == nil then |
return |
end |
if rawget(target, field) or (target[field] and target[field] ~= state[field]) then |
AceOO:error("Method conflict in attempt to mixin. Field %q", field) |
end |
target[field] = state[field] |
local ret,msg = pcall(_Embed, state, field, target) |
if not ret then |
-- Mix in the next method according to the defined interface. If that |
-- fails due to a conflict, re-raise to back out the previous mixed |
-- methods. |
target[field] = nil |
AceOO:error(msg) |
end |
end |
function Mixin.prototype:embed(target) |
if self.__deprecated then |
AceOO:error(self.__deprecated) |
end |
local mt = getmetatable(target) |
setmetatable(target, nil) |
local err, msg = pcall(_Embed, self, nil, target) |
if not err then |
setmetatable(target, mt) |
AceOO:error(msg) |
return |
end |
if type(self.embedList) == "table" then |
self.embedList[target] = true |
end |
if type(target.class) ~= "table" then |
target[self] = true |
end |
if not autoEmbed and type(self.OnManualEmbed) == "function" then |
self:OnManualEmbed(target) |
end |
setmetatable(target, mt) |
end |
function Mixin.prototype:activate(oldLib, oldDeactivate) |
if oldLib and oldLib.embedList then |
for target in pairs(oldLib.embedList) do |
local mt = getmetatable(target) |
setmetatable(target, nil) |
for field in pairs(oldLib.export) do |
target[field] = nil |
end |
setmetatable(target, mt) |
end |
self.embedList = oldLib.embedList |
for target in pairs(self.embedList) do |
self:embed(target) |
end |
else |
self.embedList = setmetatable({}, {__mode="k"}) |
end |
end |
function Mixin.prototype:init(export, ...) |
AceOO:argCheck(export, 2, "table") |
for k,v in pairs(export) do |
if type(k) ~= "number" then |
AceOO:error("All keys to argument #2 must be numbers.") |
elseif type(v) ~= "string" then |
AceOO:error("All values to argument #2 must be strings.") |
end |
end |
local num = #export |
for i = 1, num do |
local v = export[i] |
export[i] = nil |
export[v] = true |
end |
local interfaces |
if select('#', ...) >= 1 then |
interfaces = { ... } |
for i,v in ipairs(interfaces) do |
v = getlibrary(v) |
interfaces[i] = v |
if not v.class or not inherits(v, Interface) then |
AceOO:error("Mixins can inherit only from interfaces") |
end |
end |
local num = #interfaces |
for i = 1, num do |
local v = interfaces[i] |
interfaces[i] = nil |
interfaces[v] = true |
end |
for interface in pairs(interfaces) do |
traverseInterfaces(interface, interfaces) |
end |
for interface in pairs(interfaces) do |
for field,kind in pairs(interface.interface) do |
if kind ~= "nil" then |
local good = false |
for bit in pairs(export) do |
if bit == field then |
good = true |
break |
end |
end |
if not good then |
AceOO:error("Mixin does not fully accommodate field %q", field) |
end |
end |
end |
end |
end |
self.super = Mixin.prototype |
Mixin.super.prototype.init(self) |
self.export = export |
self.interfaces = interfaces |
end |
end |
-- @class Interface |
-- @brief A class to create interfaces, which contain contracts that classes |
-- which inherit from this must comply with. |
-- |
-- @object Interface prototype |
-- @brief The prototype that interface objects must adhere to. |
-- |
-- @method Interface prototype init |
-- @brief Initialize the mixin object. |
-- @param interface The interface we contract (the hash of fields forced). |
-- @param (...) Superinterfaces |
do |
Interface = Class() |
function Interface:ToString() |
if self.GetLibraryVersion then |
return (self:GetLibraryVersion()) |
else |
return 'Instance' |
end |
end |
function Interface.prototype:init(interface, ...) |
Interface.super.prototype.init(self) |
AceOO:argCheck(interface, 2, "table") |
for k,v in pairs(interface) do |
if type(k) ~= "string" then |
AceOO:error("All keys to argument #2 must be numbers.") |
elseif type(v) ~= "string" then |
AceOO:error("All values to argument #2 must be strings.") |
elseif v ~= "nil" and v ~= "string" and v ~= "number" and v ~= "table" and v ~= "function" then |
AceOO:error('All values to argument #2 must either be "nil", "string", "number", "table", or "function".') |
end |
end |
if select('#', ...) >= 1 then |
self.superinterfaces = { ... } |
for i,v in ipairs(self.superinterfaces) do |
v = getlibrary(v) |
self.superinterfaces[i] = v |
if not inherits(v, Interface) or not v.class then |
AceOO:error('Cannot provide a non-Interface to inherit from') |
end |
end |
local num = #self.superinterfaces |
for i = 1, num do |
local v = self.superinterfaces[i] |
self.superinterfaces[i] = nil |
self.superinterfaces[v] = true |
end |
end |
self.interface = interface |
end |
end |
-- @function Classpool |
-- @brief Obtain a read only class from our pool of classes, indexed by the |
-- superclass and mixins. |
-- @param sc The superclass of the class we want. |
-- @param (m1..m20) Mixins of the class we want's objects. |
-- @return A read only class from the class pool. |
local Classpool |
do |
local pool = setmetatable({}, {__mode = 'v'}) |
local function newindex(k, v) |
AceOO:error('Attempt to modify a read-only class.') |
end |
local function protonewindex(k, v) |
AceOO:error('Attempt to modify a read-only class prototype.') |
end |
local function ts(bit) |
if type(bit) ~= "table" then |
return tostring(bit) |
elseif getmetatable(bit) and bit.__tostring then |
return tostring(bit) |
elseif type(bit.GetLibraryVersion) == "function" then |
return bit:GetLibraryVersion() |
else |
return tostring(bit) |
end |
end |
local t = {} |
local function getcomplexuid(sc, ...) |
if sc then |
if sc.uid then |
table.insert(t, sc.uid) |
else |
AceOO:error("%s is not an appropriate class/mixin", ts(sc)) |
end |
end |
for i = 1, select('#', ...) do |
local m = select(i, ...) |
if m.uid then |
table.insert(t, m.uid) |
else |
AceOO:error("%s is not an appropriate mixin", ts(m)) |
end |
end |
table.sort(t) |
local uid = table.concat(t, '') |
local num = #t |
for i = 1, num do |
t[i] = nil |
end |
return uid |
end |
local classmeta |
local arg = {} |
function Classpool(superclass, ...) |
local l = getlibrary |
superclass = getlibrary(superclass) |
arg = { ... } |
for i, v in ipairs(arg) do |
arg[i] = getlibrary(v) |
end |
if superclass then |
if superclass.class then -- mixin |
table.insert(arg, 1, superclass) |
superclass = Class |
end |
else |
superclass = Class |
end |
local key = getcomplexuid(superclass, unpack(arg)) |
if not pool[key] then |
local class = Class(superclass, unpack(arg)) |
if not classmeta then |
classmeta = {} |
local mt = getmetatable(class) |
for k,v in pairs(mt) do |
classmeta[k] = v |
end |
classmeta.__newindex = newindex |
end |
-- Prevent the user from adding methods to this class. |
-- NOTE: I'm not preventing modifications of existing class members, |
-- but it's likely that only a truly malicious user will be doing so. |
class.sealed = true |
setmetatable(class, classmeta) |
getmetatable(class.prototype).__newindex = protonewindex |
pool[key] = class |
end |
return pool[key] |
end |
end |
AceOO.Factory = Factory |
AceOO.Object = Object |
AceOO.Class = Class |
AceOO.Mixin = Mixin |
AceOO.Interface = Interface |
AceOO.Classpool = Classpool |
AceOO.inherits = inherits |
-- Library handling bits |
local function activate(self, oldLib, oldDeactivate) |
AceOO = self |
Factory = self.Factory |
Object = self.Object |
Class = self.Class |
ClassFactory.prototype = Class |
Mixin = self.Mixin |
Interface = self.Interface |
Classpool = self.Classpool |
if oldLib then |
self.classes = oldLib.classes |
end |
if not self.classes then |
self.classes = setmetatable({}, {__mode="k"}) |
else |
for class in pairs(self.classes) do |
class.new = class_new |
end |
end |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
AceLibrary:Register(AceOO, MAJOR_VERSION, MINOR_VERSION, activate) |
AceOO = AceLibrary(MAJOR_VERSION) |
------------------------------------------------------------------------ |
r29174 | ckknight | 2007-02-27 16:07:22 -0500 (Tue, 27 Feb 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceDB-2.0/AceDB-2.0.lua |
.AceDB-2.0 - move registry set above InitializeDB, which should fix assorted issues. |
------------------------------------------------------------------------ |
r29000 | ckknight | 2007-02-26 00:47:30 -0500 (Mon, 26 Feb 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceDB-2.0/AceDB-2.0.lua |
.AceDB-2.0 - :OnProfileEnable and OnProfileDisable will now be fed the right arguments on profile reset. |
------------------------------------------------------------------------ |
r28997 | ckknight | 2007-02-26 00:33:51 -0500 (Mon, 26 Feb 2007) | 3 lines |
Changed paths: |
M /trunk/Ace2/AceDB-2.0/AceDB-2.0.lua |
.AceDB-2.0: |
- Added "Reset profile" to the standard AceOptions menu |
- Profile reset will now call OnProfileDisable/Enable as appropriate. |
------------------------------------------------------------------------ |
r28968 | ckknight | 2007-02-25 18:49:13 -0500 (Sun, 25 Feb 2007) | 2 lines |
Changed paths: |
M /trunk/Ace2/AceDB-2.0/AceDB-2.0.lua |
.AceDB-2.0: |
- :RegisterDB(name" [, "charName" ]) now changed to :RegisterDB(name" [, "charName" ] [, "defaultProfile" ]). This should allow people to specify "char" or "class" as the default profile without mad hax. |
------------------------------------------------------------------------ |
------------------------------------------------------------------------ |
r28672 | rabbit | 2007-02-21 20:09:15 -0500 (Wed, 21 Feb 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceAddon-2.0/AceAddon-2.0.lua |
.AceAddon-2.0: /ace2 enable, disable and load can now take multiple addons. |
------------------------------------------------------------------------ |
r26427 | ckknight | 2007-01-28 20:28:06 -0500 (Sun, 28 Jan 2007) | 5 lines |
Changed paths: |
M /trunk/Ace2/AceAddon-2.0/AceAddon-2.0.lua |
.AceAddon-2.0 - added a hack so that if you call LoadAddOn inside an :OnInitialize, it will call the :OnEnable in the order one would expect. |
Previously, Alpha's OnInitialize, load Bravo; Bravo's OnInitialize; Bravo's OnEnable; Alpha's OnEnable. |
Now, Alpha's OnInitialize, load Bravo; Bravo's OnInitialize; Alpha's OnEnable; Bravo's OnEnable. |
------------------------------------------------------------------------ |
r25921 | kergoth | 2007-01-23 16:50:43 -0500 (Tue, 23 Jan 2007) | 1 line |
Changed paths: |
M /trunk/!!!StandaloneLibraries/README-BAT-FILES.txt |
M /trunk/!!!StandaloneLibraries/README.txt |
M /trunk/!!!StandaloneLibraries/install.bat |
M /trunk/!!!StandaloneLibraries/makefilelist.bat |
M /trunk/!!!StandaloneLibraries/makefilelist_wau.bat |
M /trunk/!BugGrabber/gpl.txt |
M /trunk/!GetMoney_api/GetMoney_api.lua |
M /trunk/!StopTheSpam/Ruleset.lua |
M /trunk/!StopTheSpam/StopTheSpam.lua |
M /trunk/!SurfaceControl/SurfaceControl.lua |
M /trunk/!SurfaceControl/gpl.txt |
M /trunk/ABInfo Visor/ABInfo Visor.lua |
M /trunk/ABInfo Visor/ABInfo Visor.xml |
M /trunk/AEmotes/AEMOTES.lua |
M /trunk/AEmotes/AEmotes.xml |
M /trunk/AEmotes/ReadMe.txt |
M /trunk/AEmotes/gpl-v2.txt |
M /trunk/AEmotes_DrWho/AEmotes_DrWho.lua |
M /trunk/AEmotes_DrWho/ReadMe.txt |
M /trunk/AEmotes_DrWho/gpl-v2.txt |
M /trunk/AEmotes_JonyC/AEmotes_JonyC.lua |
M /trunk/AEmotes_JonyC/ReadMe.txt |
M /trunk/AEmotes_JonyC/gpl-v2.txt |
M /trunk/AEmotes_Kelly/AEmotes_Kelly.lua |
M /trunk/AEmotes_Kelly/ReadMe.txt |
M /trunk/AEmotes_Kelly/gpl-v2.txt |
M /trunk/AHFavorites/AHFavLocals.lua |
M /trunk/AHFavorites/AHFavLocals_deDE.lua |
M /trunk/AHFavorites/AHFavorites.lua |
M /trunk/AHFavorites/AHFavorites.xml |
M /trunk/AHFavorites/README.txt |
M /trunk/AH_MailCollect/AH_MailCollect.lua |
M /trunk/AH_MailCollect/AH_MailCollectLocals.lua |
M /trunk/AH_MailCollect/AH_MailCollectLocals_deDE.lua |
M /trunk/AH_MailCollect/AH_MailCollectLocals_xxXX.lua |
M /trunk/AH_MailCollect/AH_MailCollectUtil.lua |
M /trunk/AH_Wipe/AH_Wipe.lua |
M /trunk/AH_Wipe/AH_WipeLocale-deDE.lua |
M /trunk/AH_Wipe/AH_WipeLocale-enUS.lua |
M /trunk/AbacusLib/Abacus-2.0/Abacus-2.0.lua |
M /trunk/AbacusLib/LICENSE.txt |
M /trunk/Acceptance/Core.lua |
M /trunk/Ace/Ace.lua |
M /trunk/Ace/Ace.xml |
M /trunk/Ace/AceAddon.lua |
M /trunk/Ace/AceChatCmd.lua |
M /trunk/Ace/AceCommands.lua |
M /trunk/Ace/AceDB.lua |
M /trunk/Ace/AceData.lua |
M /trunk/Ace/AceEvent.lua |
M /trunk/Ace/AceHook.lua |
M /trunk/Ace/AceLocals.lua |
M /trunk/Ace/AceLocals_deDE.lua |
M /trunk/Ace/AceModule.lua |
M /trunk/Ace/AceState.lua |
M /trunk/Ace/README.txt |
M /trunk/Ace2/AceAddon-2.0/AceAddon-2.0.lua |
M /trunk/Ace2/AceComm-2.0/AceComm-2.0.lua |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
M /trunk/Ace2/AceDB-2.0/AceDB-2.0.lua |
M /trunk/Ace2/AceDebug-2.0/AceDebug-2.0.lua |
M /trunk/Ace2/AceEvent-2.0/AceEvent-2.0.lua |
M /trunk/Ace2/AceHook-2.0/AceHook-2.0.lua |
M /trunk/Ace2/AceHook-2.1/AceHook-2.1.lua |
M /trunk/Ace2/AceLibrary/AceLibrary.lua |
M /trunk/Ace2/AceLocale-2.0/AceLocale-2.0.lua |
M /trunk/Ace2/AceLocale-2.1/AceLocale-2.1.lua |
M /trunk/Ace2/AceLocale-2.2/AceLocale-2.2.lua |
M /trunk/Ace2/AceModuleCore-2.0/AceModuleCore-2.0.lua |
M /trunk/Ace2/AceOO-2.0/AceOO-2.0.lua |
M /trunk/Ace2/AceTab-2.0/AceTab-2.0.lua |
M /trunk/Ace2/readme.txt |
M /trunk/Ace2/version history.txt |
M /trunk/AceAutoInvite/AceAutoInvite.lua |
M /trunk/AceAutoInvite/AceAutoInviteLocals.lua |
M /trunk/AceBuffGroups/abg.xml |
M /trunk/AceBuffGroups/core.lua |
M /trunk/AceBuffGroups/druid.lua |
M /trunk/AceBuffGroups/localization.lua |
M /trunk/AceBuffGroups/mage.lua |
M /trunk/AceBuffGroups/paladin.lua |
M /trunk/AceBuffGroups/priest.lua |
M /trunk/AceCast/AceCast.lua |
M /trunk/AceFry/AceFry.xml |
M /trunk/AceGUI/AceGUI.lua |
M /trunk/AceGUI/AceGUI.xml |
M /trunk/AceGUI/AceGUIContainer.lua |
M /trunk/AceGUI/AceGUIDropDown.xml |
M /trunk/AceGUI/AceGUIDropDownMenu.lua |
M /trunk/AceGUI/AceGUIElement.lua |
M /trunk/AceGUI/AceGUIElement.xml |
M /trunk/AceGUI/AceGUILocals.lua |
M /trunk/AceGUI/README.txt |
M /trunk/AceGUI/elements/AceGUIButton.lua |
M /trunk/AceGUI/elements/AceGUIButton.xml |
M /trunk/AceGUI/elements/AceGUICheckBox.lua |
M /trunk/AceGUI/elements/AceGUICheckBox.xml |
M /trunk/AceGUI/elements/AceGUIDialog.lua |
M /trunk/AceGUI/elements/AceGUIDialog.xml |
M /trunk/AceGUI/elements/AceGUIDropDown.lua |
M /trunk/AceGUI/elements/AceGUIDropDown.xml |
M /trunk/AceGUI/elements/AceGUIEditBox.lua |
M /trunk/AceGUI/elements/AceGUIEditBox.xml |
M /trunk/AceGUI/elements/AceGUIFontstring.lua |
M /trunk/AceGUI/elements/AceGUIFontstring.xml |
M /trunk/AceGUI/elements/AceGUIFrame.lua |
M /trunk/AceGUI/elements/AceGUIFrame.xml |
M /trunk/AceGUI/elements/AceGUIListBox.lua |
M /trunk/AceGUI/elements/AceGUIListBox.xml |
M /trunk/AceGUI/elements/AceGUIMoneyFrame.lua |
M /trunk/AceGUI/elements/AceGUIMoneyFrame.xml |
M /trunk/AceGUI/elements/AceGUIOptionsBox.lua |
M /trunk/AceGUI/elements/AceGUIOptionsBox.xml |
M /trunk/AceGUI/elements/AceGUIScrollEditBox.lua |
M /trunk/AceGUI/elements/AceGUIScrollEditBox.xml |
M /trunk/AceGUI/elements/AceGUIScrollFrame.lua |
M /trunk/AceGUI/elements/AceGUIScrollFrame.xml |
M /trunk/AceGUI-2.0/AceGUI-2.0.lua |
M /trunk/AceGUI-2.0/AceGUI-2.0.xml |
M /trunk/AceGUI-2.0/AceGUIBase-2.0.lua |
M /trunk/AceGUI-2.0/AceGUIButton-2.0.lua |
M /trunk/AceGUI-2.0/AceGUICheckButton-2.0.lua |
M /trunk/AceGUI-2.0/AceGUICustomClass-2.0.lua |
M /trunk/AceGUI-2.0/AceGUIFactory-2.0.lua |
M /trunk/AceGUI-2.0/AceGUIFontInstance-2.0.lua |
M /trunk/AceGUI-2.0/AceGUIFontString-2.0.lua |
M /trunk/AceGUI-2.0/AceGUIFrame-2.0.lua |
M /trunk/AceGUI-2.0/AceGUILayeredRegion-2.0.lua |
M /trunk/AceGUI-2.0/AceGUIRegion-2.0.lua |
M /trunk/AceGUI-2.0/AceGUISlider-2.0.lua |
M /trunk/AceGUI-2.0/AceGUITemplates-2.0.lua |
M /trunk/AceGUI-2.0/AceGUITexture-2.0.lua |
M /trunk/AceGUI-2.0/wowtester.lua |
M /trunk/AceItemBid/AceItemBid.lua |
M /trunk/AceItemBid/AceItemBidLocals.lua |
M /trunk/AceSwiftShift/AceSwiftShift.lua |
M /trunk/AceSwiftShift/AceSwiftShiftLocals.lua |
M /trunk/AceSwiftShift/Bindings.xml |
M /trunk/AceTargetLog/AceTargetLog.lua |
M /trunk/AceTargetLog/AceTargetLog.xml |
M /trunk/AceTimer/Core/AceTimer.lua |
M /trunk/AceTimer/Core/AceTimer.xml |
M /trunk/AceTimer/Core/AceTimerModules.lua |
M /trunk/AceTimer/Data/AceTimerDruid.lua |
M /trunk/AceTimer/Data/AceTimerHunter.lua |
M /trunk/AceTimer/Data/AceTimerMage.lua |
M /trunk/AceTimer/Data/AceTimerPaladin.lua |
M /trunk/AceTimer/Data/AceTimerPriest.lua |
M /trunk/AceTimer/Data/AceTimerRogue.lua |
M /trunk/AceTimer/Data/AceTimerShaman.lua |
M /trunk/AceTimer/Data/AceTimerWarlock.lua |
M /trunk/AceTimer/Data/AceTimerWarrior.lua |
M /trunk/AceTimer/Locale/AceTimerLocals.lua |
M /trunk/AceTimer/Locale/AceTimerLocals_deDE.lua |
M /trunk/AceTimer/Locale/AceTimerLocals_frFR.lua |
M /trunk/AceTimer/Locale/AceTimerLocals_koKR.lua |
M /trunk/AceTimer/Mode/AceTimerAura.lua |
M /trunk/AceTimer/Mode/AceTimerCast.lua |
M /trunk/AceTimer/Mode/AceTimerFade.lua |
M /trunk/AceTimer/Mode/AceTimerKill.lua |
M /trunk/AceTimer/Mode/AceTimerSkill.lua |
M /trunk/AceUnitFrames/AUF_Docs.txt |
M /trunk/AceUnitFrames/AceUnitFrames.lua |
M /trunk/AceUnitFrames/AceUnitFrames.xml |
M /trunk/AceUnitFrames/AceUnitFramesLocals.lua |
M /trunk/AceUnitFrames/AceUnitFramesLocals_deDE.lua |
M /trunk/AceUnitFrames/AceUnitFramesLocals_frFR.lua |
M /trunk/AceUnitFrames/MetrognomeLib.lua |
M /trunk/AceWardrobe/AceWardrobe.lua |
M /trunk/AceWardrobe/AceWardrobe.xml |
M /trunk/AceWardrobe/AceWardrobeLocals.lua |
M /trunk/AceWardrobe/AceWardrobeLocals.zhcn.lua |
M /trunk/AceWardrobe_UI/AceWardrobe_UI.lua |
M /trunk/AceWardrobe_UI/AceWardrobe_UI.xml |
M /trunk/AceWardrobe_UI/AceWardrobe_UILocals.lua |
M /trunk/AceWardrobe_UI/AceWardrobe_UILocals.zhcn.lua |
M /trunk/Acolyte/ChatCmd.lua |
M /trunk/Acolyte/Core.lua |
M /trunk/Acolyte/Layout.lua |
M /trunk/Acolyte/Localizations/deDE.lua |
M /trunk/Acolyte/Localizations/enUS.lua |
M /trunk/Acolyte/Modules/MinionSummoner.lua |
M /trunk/Acolyte/Modules/MountSummoner.lua |
M /trunk/Acolyte/Modules/NightFall.lua |
M /trunk/Acolyte/Modules/RitualofSummoning.lua |
M /trunk/Acolyte/Modules/SoulKeeper.lua |
M /trunk/Acolyte/Modules/SpellCaster.lua |
M /trunk/Acolyte/Modules/StoneCreator.lua |
M /trunk/Aggromemnon/core.lua |
M /trunk/AlfCast/AlfCast.lua |
M /trunk/AllPlayed/AllPlayed-enUS.lua |
M /trunk/AllPlayed/AllPlayed.lua |
M /trunk/AltClickToAddItem/AltClickToAddItem.lua |
M /trunk/Angler/Angler.lua |
M /trunk/Angler/AnglerEasyLure.lua |
M /trunk/Angler/AnglerFastSwitch.lua |
M /trunk/Angler/AnglerModule.lua |
M /trunk/Angler/AnglerSetChanger.lua |
M /trunk/Angler/AnglerTracker.lua |
M /trunk/Angler/Bindings.xml |
M /trunk/Angler/MetrognomeLib.lua |
M /trunk/Antagonist/Antagonist-Options.lua |
M /trunk/Antagonist/Antagonist.lua |
M /trunk/Antagonist/Data/Buffs.lua |
M /trunk/Antagonist/Data/Casts.lua |
M /trunk/Antagonist/Data/Cooldowns.lua |
M /trunk/Antagonist/Locals/deDE.lua |
M /trunk/Antagonist/Locals/enGB.lua |
M /trunk/Antagonist/Locals/enUS.lua |
M /trunk/Antagonist/Locals/esES.lua |
M /trunk/Antagonist/Locals/frFR.lua |
M /trunk/Antagonist/Locals/koKR.lua |
M /trunk/AoFDKP/dkp.bat |
M /trunk/AoFDKP/updatedkp.exe.config |
M /trunk/AoFHeal/Bindings.xml |
M /trunk/Aperture/Aperture.lua |
M /trunk/ArcHUD2/Core.lua |
M /trunk/ArcHUD2/Core.xml |
M /trunk/ArcHUD2/FuBarPlugin.lua |
M /trunk/ArcHUD2/Locale_deDE.lua |
M /trunk/ArcHUD2/Locale_enUS.lua |
M /trunk/ArcHUD2/Locale_esES.lua |
M /trunk/ArcHUD2/Locale_zhCN.lua |
M /trunk/ArcHUD2/ModuleCore.lua |
M /trunk/ArcHUD2/RingTemplate.lua |
M /trunk/ArcHUD2/Rings/Anchors.lua |
M /trunk/ArcHUD2/Rings/Casting.lua |
M /trunk/ArcHUD2/Rings/ComboPoints.lua |
M /trunk/ArcHUD2/Rings/DruidMana.lua |
M /trunk/ArcHUD2/Rings/EnergyTick.lua |
M /trunk/ArcHUD2/Rings/FocusHealth.lua |
M /trunk/ArcHUD2/Rings/FocusMana.lua |
M /trunk/ArcHUD2/Rings/Health.lua |
M /trunk/ArcHUD2/Rings/Mana.lua |
M /trunk/ArcHUD2/Rings/MirrorTimer.lua |
M /trunk/ArcHUD2/Rings/PetHealth.lua |
M /trunk/ArcHUD2/Rings/PetMana.lua |
M /trunk/ArcHUD2/Rings/TargetCasting.lua |
M /trunk/ArcHUD2/Rings/TargetHealth.lua |
M /trunk/ArcHUD2/Rings/TargetMana.lua |
M /trunk/ArcHUD2/Utils.lua |
M /trunk/ArcHUD2/readme.txt |
M /trunk/ArcHUD2/ring-prototypes.txt |
M /trunk/ArcHUD2/statrings.txt |
M /trunk/ArenaMaster/Core.lua |
M /trunk/ArenaMaster/localization.lua |
M /trunk/ArkInventory/ArkInventory.lua |
M /trunk/ArkInventory/ArkInventory.xml |
M /trunk/ArkInventory/Bindings.xml |
M /trunk/ArkInventory/DefaultCategories.lua |
M /trunk/ArkInventory/Locale/deDE.lua |
M /trunk/ArkInventory/Locale/enUS.lua |
M /trunk/ArkInventory/ReadMe.txt |
M /trunk/ArmchairAlchemist/ArmchairAlchemist.lua |
M /trunk/ArmchairAlchemist/ArmchairAlchemistLocals.lua |
M /trunk/Assister/Core.lua |
M /trunk/Assister/modules/Invite.lua |
M /trunk/Assister/modules/MoveTooltip.lua |
M /trunk/Assister/modules/Resurect.lua |
M /trunk/Assister/modules/Summon.lua |
M /trunk/Assister/modules/Whisper.lua |
M /trunk/Assister/modules/options.lua |
M /trunk/AuctionSort/AuctionSort.lua |
M /trunk/AuldLangSyne/locales/enUS.lua |
M /trunk/AuldLangSyne/locales/esES.lua |
M /trunk/AuldLangSyne/locales/koKR.lua |
M /trunk/AuldLangSyne/locales/zhCN.lua |
M /trunk/AutoAcceptInvite/AutoAcceptInvite.lua |
M /trunk/AutoAcceptInvite/CHANGELOG.txt |
M /trunk/AutoAttack/Core.lua |
M /trunk/AutoBar/AutoBar.xml |
M /trunk/AutoBar/AutoBarButton.lua |
M /trunk/AutoBar/AutoBarItemList.lua |
M /trunk/AutoBar/AutoBarProfile.lua |
M /trunk/AutoBar/Bindings.xml |
M /trunk/AutoBar/ChangeList.lua |
M /trunk/AutoBar/Core.lua |
M /trunk/AutoBar/Locale-deDE.lua |
M /trunk/AutoBar/Locale-enUS.lua |
M /trunk/AutoBar/Locale-esES.lua |
M /trunk/AutoBar/Locale-frFR.lua |
M /trunk/AutoBar/Locale-koKR.lua |
M /trunk/AutoBar/Locale-zhCN.lua |
M /trunk/AutoBar/Locale-zhTW.lua |
M /trunk/AutoBar/Readme.txt |
M /trunk/AutoBar/Style.lua |
M /trunk/AutoBarConfig/AutoBarChooseCategory.lua |
M /trunk/AutoBarConfig/AutoBarChooseCategory.xml |
M /trunk/AutoBarConfig/AutoBarConfig.lua |
M /trunk/AutoBarConfig/AutoBarConfig.xml |
M /trunk/AutoBarConfig/AutoBarConfigSlot.lua |
M /trunk/AutoBarConfig/AutoBarConfigSlot.xml |
M /trunk/AutoTurnin/AutoTurnin.lua |
M /trunk/AutoTurnin/AutoTurnin.xml |
M /trunk/AutoTurnin/AutoTurninGlobals.lua |
M /trunk/Automaton/Core.lua |
M /trunk/Automaton/modules/Dismount.lua |
M /trunk/Automaton/modules/Filter.lua |
M /trunk/Automaton/modules/Gossip/Gossip.lua |
M /trunk/Automaton/modules/Gossip/GossipData.lua |
M /trunk/Automaton/modules/Gossip/Locale-deDE.lua |
M /trunk/Automaton/modules/Gossip/Locale-enUS.lua |
M /trunk/Automaton/modules/Gossip/Locale-esES.lua |
M /trunk/Automaton/modules/Gossip/Locale-frFR.lua |
M /trunk/Automaton/modules/Gossip/Locale-koKR.lua |
M /trunk/Automaton/modules/Group.lua |
M /trunk/Automaton/modules/Loner.lua |
M /trunk/Automaton/modules/LootBOP.lua |
M /trunk/Automaton/modules/Plates.lua |
M /trunk/Automaton/modules/Queue.lua |
M /trunk/Automaton/modules/Release.lua |
M /trunk/Automaton/modules/Repair.lua |
M /trunk/Automaton/modules/Rez.lua |
M /trunk/Automaton/modules/Sell.lua |
M /trunk/Automaton/modules/Stand.lua |
M /trunk/Automaton/modules/Summon.lua |
M /trunk/Automaton/modules/Unshapeshift.lua |
M /trunk/Automaton/modules/Wuss.lua |
M /trunk/BA3_SpellAbilities/SpellAbilities.lua |
M /trunk/BA3_SpellAbilities/SpellData.lua |
M /trunk/Babble-2.2/LICENSE.txt |
M /trunk/BabbleLib/Babble-Boss-2.0/Babble-Boss-2.0.lua |
M /trunk/BabbleLib/Babble-Class-2.0/Babble-Class-2.0.lua |
M /trunk/BabbleLib/Babble-Race-2.0/Babble-Race-2.0.lua |
M /trunk/BabbleLib/Babble-Spell-2.0/Babble-Spell-2.0.lua |
M /trunk/BabbleLib/Babble-SpellTree-2.0/Babble-SpellTree-2.0.lua |
M /trunk/BabbleLib/Babble-Zone-2.0/Babble-Zone-2.0.lua |
M /trunk/BabbleLib/BabbleLib-2.1/Babble-Boss-2.1/Babble-Boss-2.1.lua |
M /trunk/BabbleLib/BabbleLib-2.1/Babble-Class-2.1/Babble-Class-2.1.lua |
M /trunk/BabbleLib/BabbleLib-2.1/Babble-Race-2.1/Babble-Race-2.1.lua |
M /trunk/BabbleLib/BabbleLib-2.1/Babble-Spell-2.1/Babble-Spell-2.1.lua |
M /trunk/BabbleLib/BabbleLib-2.1/Babble-SpellTree-2.1/Babble-SpellTree-2.1.lua |
M /trunk/BabbleLib/BabbleLib-2.1/Babble-Zone-2.1/Babble-Zone-2.1.lua |
M /trunk/BabbleLib/Boss/BabbleLib-Boss.lua |
M /trunk/BabbleLib/Class/BabbleLib-Class.lua |
M /trunk/BabbleLib/Deformat/BabbleLib-Deformat.lua |
M /trunk/BabbleLib/Race/BabbleLib-Race.lua |
M /trunk/BabbleLib/Spell/BabbleLib-Spell.lua |
M /trunk/BabbleLib/SpellTree/BabbleLib-SpellTree.lua |
M /trunk/BabbleLib/Zone/BabbleLib-Zone.lua |
M /trunk/Baddiel/Baddiel.lua |
M /trunk/BagBoy2/BagBoy2.lua |
M /trunk/BagBoy2/BagBoy2Globals.lua |
M /trunk/BagBoy2/BagBoy2Glue.lua |
M /trunk/BagBoy2/BagBoy2Locals.lua |
M /trunk/BagBoy2/BagBoy2Menu.lua |
M /trunk/BagBoy2/BagBoy2Rules.lua |
M /trunk/BagBoy2/BagBoy2RulesLocals.lua |
M /trunk/BagBoy2/BagBoy2Tooltip.lua |
M /trunk/BagSlots/BagSlots.lua |
M /trunk/Baggins/Baggins-deDE.lua |
M /trunk/Baggins/Baggins-enUS.lua |
M /trunk/Baggins/Baggins-frFR.lua |
M /trunk/Baggins/Baggins-koKR.lua |
M /trunk/Baggins/Baggins.lua |
M /trunk/Baggins/bindings.xml |
M /trunk/Baggins/libs/Sieve-0.1/Sieve-0.1.lua |
M /trunk/BananaBar2/BananaBar2.lua |
M /trunk/BananaBar2/BananaBar2.xml |
M /trunk/BananaBar2/BananaBar2AssistButton.lua |
M /trunk/BananaBar2/BananaBar2Button.lua |
M /trunk/BananaBar2/BananaBar2Locale-deDE.lua |
M /trunk/BananaBar2/BananaBar2Locale-enUS.lua |
M /trunk/BananaBar2/BananaBar2Locale-frFR.lua |
M /trunk/BananaBar2/BananaBar2Locale-koKR.lua |
M /trunk/BananaBar2/BananaBar2Locale-zhCN.lua |
M /trunk/BananaBar2/BananaBar2TargetScanner.lua |
M /trunk/BananaBar2/BananaBarConstants.lua |
M /trunk/BananaBar2/Bindings.xml |
M /trunk/BananaBar2/SecureActionQueue-2.0.lua |
M /trunk/BanzaiAlert/BanzaiAlert.lua |
M /trunk/BanzaiAlert/license.txt |
M /trunk/BanzaiLib/license.txt |
M /trunk/BarAnnounce3/BarsClass.lua |
M /trunk/BarAnnounce3/Comms.lua |
M /trunk/BarAnnounce3/Core.lua |
M /trunk/BarAnnounce3/Defaults.lua |
M /trunk/BarAnnounce3/Extensions/InstanceInfo.lua |
M /trunk/BarAnnounce3/FramesClass.lua |
M /trunk/BarAnnounce3/Gui.lua |
M /trunk/BarAnnounce3/ModulePrototype.lua |
M /trunk/BarAnnounce3/Plugins/Range.lua |
M /trunk/BarAnnounce3/Plugins/TestSuite.lua |
M /trunk/BarAnnounce3/Plugins/VersionInfo.lua |
M /trunk/Barbrawl/Barbrawl.lua |
M /trunk/Barbrawl/Barbrawl.xml |
M /trunk/Barf/Barf.lua |
M /trunk/Bartender3/locales/Bartender3-deDE.lua |
M /trunk/Bartender3/locales/Bartender3-enUS.lua |
M /trunk/Bartender3/locales/Bartender3-esES.lua |
M /trunk/Bartender3/locales/Bartender3-frFR.lua |
M /trunk/Bartender3/locales/Bartender3-koKR.lua |
M /trunk/Bartender3_AutoBindings/Bartender3_AutoBindings.lua |
M /trunk/BattleChat/BattleChat.lua |
M /trunk/BattleChat_Buffs/BattleChat_Buffs.lua |
M /trunk/BestInShow/BestInShow.lua |
M /trunk/BestInShow/BestInShowLocals.lua |
M /trunk/BestInShow/README |
M /trunk/BiGOpt/BiGOpt-enUS.lua |
M /trunk/BiGOpt/BiGOpt-frFR.lua |
M /trunk/BiGOpt/main.lua |
M /trunk/BiGOpt/readme.txt |
M /trunk/BiGOpt/subgroups.lua |
M /trunk/BidHelper/BidHelper.lua |
M /trunk/BidHelper/BidHelper.xml |
M /trunk/BidHelper/Locale.lua |
M /trunk/BidHelper/Locale.zhcn.lua |
M /trunk/Bidder/Comm/comm.lua |
M /trunk/Bidder/DKPBrowser/browserframe.lua |
M /trunk/Bidder/DKPBrowser/textline.lua |
M /trunk/Bidder/DKPSystems/baseclass.lua |
M /trunk/Bidder/DKPSystems/fixeddkp.lua |
M /trunk/Bidder/DKPSystems/registry.lua |
M /trunk/Bidder/DKPstub.lua |
M /trunk/Bidder/Dialogs/dialogs.lua |
M /trunk/Bidder/Localization/enUS.lua |
M /trunk/Bidder/Looting/lootframe.lua |
M /trunk/Bidder/Looting/lootitem.lua |
M /trunk/Bidder/Options/optionfuncs.lua |
M /trunk/Bidder/Options/options.lua |
M /trunk/Bidder/Skinning/frameskinning.lua |
M /trunk/Bidder/gpl.txt |
M /trunk/Bidder/main.lua |
M /trunk/Bidder/utils.lua |
M /trunk/Bidder_FCZS/fczs.lua |
M /trunk/Bidder_FCZS/gpl.txt |
M /trunk/Bidder_FCZS/localization.enUS.lua |
M /trunk/Bidder_ZSumAuction/gpl.txt |
M /trunk/Bidder_ZSumAuction/localization.enUS.lua |
M /trunk/Bidder_ZSumAuction/zsumauction.lua |
M /trunk/BigTrouble/BigTrouble-deDE.lua |
M /trunk/BigTrouble/BigTrouble-enUS.lua |
M /trunk/BigTrouble/BigTrouble-frFR.lua |
M /trunk/BigTrouble/BigTrouble-koKR.lua |
M /trunk/BigTrouble/BigTrouble-zhCN.lua |
M /trunk/BigTrouble/BigTrouble.lua |
M /trunk/BigWigs/bigwigslod.bat |
M /trunk/BigWigs/bigwigslod.sh |
M /trunk/BigWigs_CommonAuras/CommonAuras.lua |
M /trunk/BigWigs_CommonAuras/readme.txt |
M /trunk/BigWigs_Debugger/Debugger.lua |
M /trunk/BigWigs_HealbotAssist/BigWigs_HealbotAssist.lua |
M /trunk/BigWigs_HealbotAssist/SEEA-2.0-Events-Only.lua |
M /trunk/BigWigs_HealbotAssist/readme.txt |
M /trunk/BigWigs_KLHTMTarget/BigWigs_KLHTMTarget.lua |
M /trunk/BigWigs_LoathebTactical/BigWigs_LoathebTactical.lua |
M /trunk/BigWigs_LoathebTactical/readme.txt |
M /trunk/BigWigs_RazuviousAssistant/BigWigs_RazuviousAssistant.lua |
M /trunk/BigWigs_RespawnTimers/BigWigs_RespawnTimers.lua |
M /trunk/BigWigs_TabletBars/TabletBars.lua |
M /trunk/BigWigs_ThaddiusArrows/sounds/AboutSounds.txt |
M /trunk/BigWigs_Timers/BigWigs_AQTimers.lua |
M /trunk/BigWigs_Timers/BigWigs_BWLTimers.lua |
M /trunk/BigWigs_Timers/BigWigs_MCTimers.lua |
M /trunk/BigWigs_ZombieFood/ZombieFood.lua |
M /trunk/Bits/Bits-1.0/Bits-1.0.lua |
M /trunk/BlackSheeps/BlackSheeps.lua |
M /trunk/BlackSheeps/BlackSheeps.xml |
M /trunk/BlackSheeps/ReadMe.txt |
M /trunk/Borked_Monitor/Borked_Monitor.lua |
M /trunk/Borked_Monitor/Borked_Monitor.xml |
M /trunk/Borked_Monitor/Borked_MonitorConstants.lua |
M /trunk/Borked_Monitor/about.txt |
M /trunk/Borked_Monitor/localisation.en.lua |
M /trunk/BossBlock/Core.lua |
M /trunk/BuffMe/buffs.lua |
M /trunk/BuffMe/core.lua |
M /trunk/BuffMe/locale.enUS.lua |
M /trunk/BuffProtectorGnome/BuffProtectorGnome.lua |
M /trunk/BuffProtectorGnome/gpl.txt |
M /trunk/Buffalo/Buffalo-deDE.lua |
M /trunk/Buffalo/Buffalo-enUS.lua |
M /trunk/Buffalo/Buffalo-esES.lua |
M /trunk/Buffalo/Buffalo-koKR.lua |
M /trunk/Buffalo/Buffalo.lua |
M /trunk/Buffalo/Buffalo.xml |
M /trunk/Buffalo/BuffaloDefaults.lua |
M /trunk/Buffalo/BuffaloOptions.lua |
M /trunk/BugSack/BugSack-esES.lua |
M /trunk/BugSack/gpl.txt |
M /trunk/BulkMail/BulkMail-enUS.lua |
M /trunk/BulkMail/BulkMail.lua |
M /trunk/BulkMail/BulkMailUtil.lua |
M /trunk/BulkMail/README |
M /trunk/BulkMail/gui.lua |
M /trunk/BulkMail/gui.xml |
M /trunk/ButtonNamer/ButtonNamer.lua |
M /trunk/ButtonNamer/ButtonNamer.xml |
M /trunk/CBRipoff/core/casting.lua |
M /trunk/CBRipoff/core/cbripoff.lua |
M /trunk/CBRipoff/core/frame.lua |
M /trunk/CBRipoff/core/mirror.lua |
M /trunk/CBRipoff/locale/deDE.lua |
M /trunk/CBRipoff/locale/enUS.lua |
M /trunk/CBRipoff/locale/koKR.lua |
M /trunk/CBRipoff/locale/zhCN.lua |
M /trunk/CBRipoff/locale/zhTW.lua |
M /trunk/CC_Core/Bindings.xml |
M /trunk/CC_Core/CC_Core.lua |
M /trunk/CC_MainAssist/Bindings.xml |
M /trunk/CC_MainAssist/CC_MainAssist.lua |
M /trunk/CC_MainAssist/CC_MainAssist.xml |
M /trunk/CC_Note/Bindings.xml |
M /trunk/CC_Note/CC_Note.lua |
M /trunk/CC_Note/CC_Note.xml |
M /trunk/CC_RangeCheck/CC_RangeCheck.lua |
M /trunk/CC_RangeCheck/CC_RangeCheck.xml |
M /trunk/CC_Roll/CC_Roll.lua |
M /trunk/CC_Roll/CC_RollLocals.lua |
M /trunk/CC_Target/Bindings.xml |
M /trunk/CC_Target/CC_Target.lua |
M /trunk/CC_Target/CC_Target.xml |
M /trunk/CC_ToolTip/CC_ToolTip.lua |
M /trunk/CVarScanner/AllWords.lua |
M /trunk/CVarScanner/CVarScanner.lua |
M /trunk/CVarScanner/README.txt |
M /trunk/CVarScanner/WikiFormatter.lua |
M /trunk/Cancellation/Core.lua |
M /trunk/Cancellation/Localization.lua |
M /trunk/CandyBar/CandyBar-2.0/CandyBar-2.0.lua |
M /trunk/Capping/AB.lua |
M /trunk/Capping/AV.lua |
M /trunk/Capping/Arenas.lua |
M /trunk/Capping/Capping.lua |
M /trunk/Capping/WSG.lua |
M /trunk/Capping/localization-deDE.lua |
M /trunk/Capping/localization-frFR.lua |
M /trunk/Capping/localization.lua |
M /trunk/Capping/options.lua |
M /trunk/Cartographer/Bindings.xml |
M /trunk/Cartographer/Cartographer.lua |
M /trunk/Cartographer/LICENSE.txt |
M /trunk/Cartographer/Libs/UTF8/utf8.lua |
M /trunk/Cartographer/Modules/GuildPositions.lua |
M /trunk/Cartographer/Modules/InstanceNotes/deDE.lua |
M /trunk/Cartographer/Modules/InstanceNotes/esES.lua |
M /trunk/Cartographer/Modules/InstanceNotes/frFR.lua |
M /trunk/Cartographer/Modules/InstanceNotes/zhTW.lua |
M /trunk/Cartographer/Scripts/pack.lua |
M /trunk/Cartographer_Fishing/LICENSE.txt |
M /trunk/Cartographer_Fishing/addon.lua |
M /trunk/Cartographer_Hotspot/Cartographer_Hotspot.lua |
M /trunk/Cartographer_Icons/LICENSE.txt |
M /trunk/Cartographer_Icons/addon.lua |
M /trunk/Cartographer_Icons_GathererPack/pack.lua |
M /trunk/Cartographer_Icons_MetaMapPack/pack.lua |
M /trunk/Cartographer_Import/Import.lua |
M /trunk/Cartographer_Noteshare/Cartographer_Noteshare.lua |
M /trunk/Cartographer_Noteshare/LICENSE.txt |
M /trunk/Cartographer_Opening/addon.lua |
M /trunk/Cartographer_Quests/LICENSE.txt |
M /trunk/Cartographer_Quests/addon.lua |
M /trunk/Cartographer_Quests/credits.txt |
M /trunk/Cartographer_Quests/gpl.txt |
M /trunk/Cartographer_Stats/Cartographer_Stats.lua |
M /trunk/Cartographer_Stats/LICENSE.txt |
M /trunk/Cartographer_Trainers/LICENSE.txt |
M /trunk/Cartographer_Trainers/addon.lua |
M /trunk/Cartographer_Trainers/credits.txt |
M /trunk/Cartographer_Trainers/gpl.txt |
M /trunk/Cartographer_Treasure/Cartographer_Treasure.lua |
M /trunk/Cartographer_Treasure/LICENSE.txt |
M /trunk/Cartographer_Vendors/LICENSE.txt |
M /trunk/Cartographer_Vendors/addon.lua |
M /trunk/Cartographer_Vendors/credits.txt |
M /trunk/Cartographer_Vendors/gpl.txt |
M /trunk/Catalyst/Catalyst.lua |
M /trunk/Caterer/Caterer.lua |
M /trunk/Caterer/Locale-enUS.lua |
M /trunk/Cellular/core.lua |
M /trunk/Cellular/frame.lua |
M /trunk/ChannelClean/ChannelClean.lua |
M /trunk/ChannelClean/Locale.lua |
M /trunk/CharacterInfo/CharacterInfo.lua |
M /trunk/CharacterInfo/CharacterInfo.xml |
M /trunk/CharacterInfoStorage/Bindings.xml |
M /trunk/CharacterInfoStorage/CharacterInfoStorage.lua |
M /trunk/ChatHighlighter/ChatHighlighter.lua |
M /trunk/ChatJustify/ChatJustify.lua |
M /trunk/ChatLog/Bindings.xml |
M /trunk/ChatLog/ChatLog.lua |
M /trunk/ChatLog/ChatLog.xml |
M /trunk/ChatLog/Locale-deDE.lua |
M /trunk/ChatLog/Locale-enUS.lua |
M /trunk/ChatLog/Locale-frFR.lua |
M /trunk/ChatLog/Locale-zhCN.lua |
M /trunk/ChatLog/Locale-zhTW.lua |
M /trunk/ChatSounds/ChatSounds.lua |
M /trunk/ChatThrottleLib/ChatThrottleLib.lua |
M /trunk/ChatThrottleLib/ChatThrottleLib.xml |
M /trunk/ChatThrottleLib/ChatThrottleStats.lua |
M /trunk/ChatThrottleLib/README.txt |
M /trunk/Chronometer/Core/Chronometer-Locale.lua |
M /trunk/Chronometer/Core/Chronometer.lua |
M /trunk/Chronometer/Data/Druid.lua |
M /trunk/Chronometer/Data/Hunter.lua |
M /trunk/Chronometer/Data/Mage.lua |
M /trunk/Chronometer/Data/Paladin.lua |
M /trunk/Chronometer/Data/Priest.lua |
M /trunk/Chronometer/Data/Racial.lua |
M /trunk/Chronometer/Data/Rogue.lua |
M /trunk/Chronometer/Data/Shaman.lua |
M /trunk/Chronometer/Data/Warlock.lua |
M /trunk/Chronometer/Data/Warrior.lua |
M /trunk/Chronometer/readme.txt |
M /trunk/ClassColors/ClassColors.lua |
M /trunk/ClearFont/Changelog.txt |
M /trunk/ClearFont/ClearFont.lua |
M /trunk/ClearFont/ClearFontAddons.lua |
M /trunk/ClearFont/Fonts/Calibri_v1/Info.txt |
M /trunk/ClearFont/How to use the font packs.txt |
M /trunk/ClearFont2/Fonts/BaarPhilos/Info.txt |
M /trunk/ClearFont2/Fonts/BaarSophia/Info.txt |
M /trunk/ClearFont2/Fonts/Calibri_v0.9/Info.txt |
M /trunk/ClearFont2/Fonts/Franc/Info.txt |
M /trunk/ClearFont2/Fonts/LucidaGrande/Info.txt |
M /trunk/ClearFont2/Fonts/LucidaSD/Info.txt |
M /trunk/ClearFont2/Fonts/PerspectiveSans/Info.txt |
M /trunk/ClearFont2/Fonts/TinBirdhouse/Info.txt |
M /trunk/ClearFont2/Fonts/TinBirdhouse/License Info/legal_tb.txt |
M /trunk/ClearFont2/Readme.txt |
M /trunk/ClearFont2_FontPack_1/core.lua |
M /trunk/Click2Cast/Click2Cast-deDE.lua |
M /trunk/Click2Cast/Click2Cast-enUS.lua |
M /trunk/Click2Cast/Click2Cast-koKR.lua |
M /trunk/Click2Cast/Click2Cast.lua |
M /trunk/Click2Cast/Click2CastMenu.lua |
M /trunk/ClosetGnome/ClosetGnome.lua |
M /trunk/ClosetGnome/TODO.txt |
M /trunk/ClosetGnome/license.txt |
M /trunk/ClosetGnome/locales/deDE.lua |
M /trunk/ClosetGnome/locales/enUS.lua |
M /trunk/ClosetGnome/locales/esES.lua |
M /trunk/ClosetGnome/locales/frFR.lua |
M /trunk/ClosetGnome/locales/koKR.lua |
M /trunk/ClosetGnome/locales/zhCN.lua |
M /trunk/ClosetGnome/readme.txt |
M /trunk/ClosetGnome_Banker/Banker.lua |
M /trunk/ClosetGnome_BigWigs/ClosetGnome_BigWigs.lua |
M /trunk/ClosetGnome_Gatherer/ClosetGnome_Gatherer.lua |
M /trunk/ClosetGnome_Mount/ClosetGnome_Mount.lua |
M /trunk/ClosetGnome_OhNoes/ClosetGnome_OhNoes.lua |
M /trunk/ClosetGnome_OhNoes/Localization_esES.lua |
M /trunk/ClosetGnome_OhNoes/Localization_zhCN.lua |
M /trunk/ClosetGnome_Switcher/ClosetGnome_Switcher.lua |
M /trunk/ClosetGnome_Switcher/License.txt |
M /trunk/ClosetGnome_Switcher/Locale-enUS.lua |
M /trunk/ClosetGnome_Switcher/Locale-esES.lua |
M /trunk/ClosetGnome_Switcher/Locale-koKR.lua |
M /trunk/ClosetGnome_Switcher/Locale-zhCN.lua |
M /trunk/ClosetGnome_Switcher/Modules/Druid.lua |
M /trunk/ClosetGnome_Switcher/Modules/Mage.lua |
M /trunk/ClosetGnome_Switcher/Modules/Priest.lua |
M /trunk/ClosetGnome_Switcher/Modules/Rogue.lua |
M /trunk/ClosetGnome_Switcher/Modules/Warrior.lua |
M /trunk/ClosetGnome_Switcher/README.txt |
M /trunk/ClosetGnome_Zone/ClosetGnome_Zone.lua |
M /trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-enUS.lua |
M /trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-esES.lua |
M /trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-koKR.lua |
M /trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-zhCN.lua |
M /trunk/CoatHanger/CoatHanger.lua |
M /trunk/CoatHanger/CoatHanger.xml |
M /trunk/ColaLight/Core.lua |
M /trunk/ColaLight/GPL.txt |
M /trunk/ColaLight/LICENSE.txt |
M /trunk/ColaMachine/Core.lua |
M /trunk/ColaMachine/GPL.txt |
M /trunk/ColaMachine/LICENSE.txt |
M /trunk/ColdFusionShell/Bindings.xml |
M /trunk/ColdFusionShell/ColdFusionShell.lua |
M /trunk/ColdFusionShell/ColdFusionShell.xml |
M /trunk/ColdFusionShell/ColdFusionShellEditor.lua |
M /trunk/ColdFusionShell/ColdFusionShellEditor.xml |
M /trunk/ColdFusionShell/indent.lua |
M /trunk/Combatants/Core.lua |
M /trunk/Combatotron/Combatotron.lua |
M /trunk/Combine/Combine.lua |
M /trunk/Combine/Combine.xml |
M /trunk/Combine/locals.lua |
M /trunk/Comercio/koKR.lua |
M /trunk/CommChannel/Lib/CommChannel.lua |
M /trunk/CommChannel/README |
M /trunk/CommandHistory/CommandHistory.lua |
M /trunk/CommandHistory/CommandHistoryLocals.lua |
M /trunk/CompostLib/Compost-2.0/Compost-2.0.lua |
M /trunk/CompostLib/Lib/CompostLib.lua |
M /trunk/ConsoleMage/ConsoleMage.lua |
M /trunk/ConsoleMage/Locale-enUS.lua |
M /trunk/CooldownCount/CooldownCount.lua |
M /trunk/CooldownCount/Locale.enUS.lua |
M /trunk/CooldownCount/Locale.frFR.lua |
M /trunk/CooldownCount/Locale.koKR.lua |
M /trunk/CooldownCount/Locale.zhCN.lua |
M /trunk/CooldownTimers2/Core.lua |
M /trunk/CooldownTimers2/Locale-deDE.lua |
M /trunk/CooldownTimers2/Locale-enUS.lua |
M /trunk/CooldownTimers2/fubar-plugin.lua |
M /trunk/Cosplay/Bindings.xml |
M /trunk/Cosplay/Cosplay.lua |
M /trunk/CrayonLib/Crayon-2.0/Crayon-2.0.lua |
M /trunk/CrayonLib/LICENSE.txt |
M /trunk/CryptoLib/Crypto-1.0/Crypto-1.0.lua |
M /trunk/Cyclone/core.lua |
M /trunk/Cyclone/locale.enUS.lua |
M /trunk/Cyclone/locale.koKR.lua |
M /trunk/DKPmon/Awarding/awardframe.lua |
M /trunk/DKPmon/Comm/comm.lua |
M /trunk/DKPmon/Custom/fixeddkp.lua |
M /trunk/DKPmon/Custom/registry.lua |
M /trunk/DKPmon/DKPSystems/baseclass.lua |
M /trunk/DKPmon/DKPSystems/fixeddkp.lua |
M /trunk/DKPmon/DKPSystems/registry.lua |
M /trunk/DKPmon/Dialogs/dialogs.lua |
M /trunk/DKPmon/ImpExpModules/registry.lua |
M /trunk/DKPmon/Localization/enUS.lua |
M /trunk/DKPmon/Logging/log.lua |
M /trunk/DKPmon/Logging/logviewer.lua |
M /trunk/DKPmon/Looting/lootframe.lua |
M /trunk/DKPmon/Looting/looting.lua |
M /trunk/DKPmon/Looting/lootitem.lua |
M /trunk/DKPmon/Options/optionfuncs.lua |
M /trunk/DKPmon/Options/options.lua |
M /trunk/DKPmon/PointsDB/pointsdb.lua |
M /trunk/DKPmon/PointsDB/syncing.lua |
M /trunk/DKPmon/README.txt |
M /trunk/DKPmon/Roster/raid.lua |
M /trunk/DKPmon/Skinning/frameskinning.lua |
M /trunk/DKPmon/gpl.txt |
M /trunk/DKPmon/main.lua |
M /trunk/DKPmon/utils.lua |
M /trunk/DKPmonInit/PHP/README |
M /trunk/DKPmonInit/README.txt |
M /trunk/DKPmonInit/gpl.txt |
M /trunk/DKPmonInit/importdata.lua |
M /trunk/DKPmonInit/main.lua |
M /trunk/DKPmon_CSV/exportmod.lua |
M /trunk/DKPmon_CSV/gpl.txt |
M /trunk/DKPmon_CSV/importdata.lua |
M /trunk/DKPmon_CSV/importmod.lua |
M /trunk/DKPmon_CSV/localization.enUS.lua |
M /trunk/DKPmon_FCZS/custom.lua |
M /trunk/DKPmon_FCZS/fczs.lua |
M /trunk/DKPmon_FCZS/gpl.txt |
M /trunk/DKPmon_FCZS/localization.enUS.lua |
M /trunk/DKPmon_ZSumAuction/custom.lua |
M /trunk/DKPmon_ZSumAuction/gpl.txt |
M /trunk/DKPmon_ZSumAuction/localization.enUS.lua |
M /trunk/DKPmon_ZSumAuction/zsumauction.lua |
M /trunk/DKPmon_eqDKP/README.txt |
M /trunk/DKPmon_eqDKP/exportmod.lua |
M /trunk/DKPmon_eqDKP/gpl.txt |
M /trunk/DKPmon_eqDKP/importdata.lua |
M /trunk/DKPmon_eqDKP/importmod.lua |
M /trunk/DKPmon_eqDKP/localization.enUS.lua |
M /trunk/DeclineDuel/DeclineDuel.lua |
M /trunk/Decursive/Bindings.xml |
M /trunk/Decursive/DCR_init.lua |
M /trunk/Decursive/Dcr_DebuffsFrame.lua |
M /trunk/Decursive/Dcr_DebuffsFrame.xml |
M /trunk/Decursive/Dcr_Events.lua |
M /trunk/Decursive/Dcr_Raid.lua |
M /trunk/Decursive/Dcr_lists.lua |
M /trunk/Decursive/Dcr_lists.xml |
M /trunk/Decursive/Dcr_opt.lua |
M /trunk/Decursive/Dcr_utils.lua |
M /trunk/Decursive/Decursive.lua |
M /trunk/Decursive/Decursive.xml |
M /trunk/Decursive/Downloads.txt |
M /trunk/Decursive/GPL.txt |
M /trunk/Decursive/QuoiDeNeuf.txt |
M /trunk/Decursive/Readme.txt |
M /trunk/Decursive/WhatsNew.txt |
M /trunk/Decursive/lisez-moi.txt |
M /trunk/Decursive/loc_lists.txt |
M /trunk/Decursive/localization.cn.lua |
M /trunk/Decursive/localization.de.lua |
M /trunk/Decursive/localization.es.lua |
M /trunk/Decursive/localization.fr.lua |
M /trunk/Decursive/localization.kr.lua |
M /trunk/Decursive/localization.lua |
M /trunk/Decursive/localization.tw.lua |
M /trunk/Deformat/Deformat-2.0/Deformat-2.0.lua |
M /trunk/Deformat/LICENSE.txt |
M /trunk/Denial2/Denial2.lua |
M /trunk/Denial2/Denial2Locale-enUS.lua |
M /trunk/Denial2/Denial2Locale-zhCN.lua |
M /trunk/Detox/Bindings.xml |
M /trunk/Detox/Detox.lua |
M /trunk/Detox/locals_deDE.lua |
M /trunk/Detox/locals_enUS.lua |
M /trunk/Detox/locals_frFR.lua |
M /trunk/Detox/locals_koKR.lua |
M /trunk/Detox/locals_zhCN.lua |
M /trunk/Detox/locals_zhTW.lua |
M /trunk/DeuceCommander/DeuceCommander.lua |
M /trunk/DeuceLog/DeuceLog.lua |
M /trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua |
M /trunk/DewdropLib/LICENSE.txt |
M /trunk/Diplomat/Core.lua |
M /trunk/Diplomat/Libs/AceAddon-2.0/AceAddon-2.0.lua |
M /trunk/Diplomat/Libs/AceConsole-2.0/AceConsole-2.0.lua |
M /trunk/Diplomat/Libs/AceDB-2.0/AceDB-2.0.lua |
M /trunk/Diplomat/Libs/AceEvent-2.0/AceEvent-2.0.lua |
M /trunk/Diplomat/Libs/AceLibrary/AceLibrary.lua |
M /trunk/Diplomat/Libs/AceLocale-2.1/AceLocale-2.1.lua |
M /trunk/Diplomat/Libs/AceOO-2.0/AceOO-2.0.lua |
M /trunk/Dock-1.0/Dock-1.0/Dock-1.0.lua |
M /trunk/DogChow/DogChow.lua |
M /trunk/DogChow/LICENSE.txt |
M /trunk/DontBugMe/DontBugMe.lua |
M /trunk/DorjeHealingBars/DorjeHealingBars.lua |
M /trunk/DowJones/DowJones.lua |
M /trunk/DowJones/README |
M /trunk/DowJones/getItemDKP.pl |
M /trunk/DowJones/getPlayerDKP.pl |
M /trunk/DrDamage/BuffScanning.lua |
M /trunk/DrDamage/Data/Druid.lua |
M /trunk/DrDamage/Data/Mage.lua |
M /trunk/DrDamage/Data/Paladin.lua |
M /trunk/DrDamage/Data/Priest.lua |
M /trunk/DrDamage/Data/Shaman.lua |
M /trunk/DrDamage/Data/Warlock.lua |
M /trunk/DrDamage/DrDamage.lua |
M /trunk/DrDamage/ItemSets.lua |
M /trunk/DrDamage/Localization.lua |
M /trunk/DrDamage/ReadMe.txt |
M /trunk/DreamBuff/DreamBuff.lua |
M /trunk/Druidcom/Druidcom.lua |
M /trunk/Druidcom/Druidcom.xml |
M /trunk/Druidcom/DruidcomDruidTemplate.xml |
M /trunk/Druidcom/Druidcom_Druid.lua |
M /trunk/Druidcom/Druidcom_Locals.lua |
M /trunk/Druidcom/Druidcom_Locals_deDE.lua |
M /trunk/Druidcom/Druidcom_Locals_frFR.lua |
M /trunk/DuctTape/DuctTape.lua |
M /trunk/DuctTape/DuctTape.xml |
M /trunk/EQCompare/EQCompare.lua |
M /trunk/EQCompare/EQCompare.xml |
M /trunk/EQCompare/localization.cn.lua |
M /trunk/EQCompare/localization.de.lua |
M /trunk/EQCompare/localization.fr.lua |
M /trunk/EQCompare/localization.kr.lua |
M /trunk/EQCompare/localization.lua |
M /trunk/EQCompare/localization.tw.lua |
M /trunk/EarPlug/Earplug.lua |
M /trunk/EasyVisor/EasyVisor.lua |
M /trunk/EasyVisor/EasyVisorLocale.lua |
M /trunk/EavesDrop/EavesDrop.lua |
M /trunk/EavesDrop/EavesDrop.xml |
M /trunk/EavesDrop/EavesDropStats.lua |
M /trunk/EavesDrop/install.txt |
M /trunk/EavesDrop/localization-enUS.lua |
M /trunk/EavesDrop/localization-koKR.lua |
M /trunk/EavesDrop/options.lua |
M /trunk/EavesDrop/readme.txt |
M /trunk/EgoCast/EgoCast.lua |
M /trunk/ElfReloaded/ElfReloaded.lua |
M /trunk/ElfReloaded/ElfReloaded.xml |
M /trunk/ElkBuffBar/ElkBuffBar.lua |
M /trunk/ElkBuffBar/ElkBuffBar.xml |
M /trunk/ElkBuffBar/readme.txt |
M /trunk/ElkBuffBars/EBBTest.lua |
M /trunk/ElkBuffBars/EBB_Bar.lua |
M /trunk/ElkBuffBars/EBB_BarGroup.lua |
M /trunk/ElkBuffBars/designdocument.txt |
M /trunk/EmbedLib/EmbedLib.lua |
M /trunk/EnchantList/EnchantList.lua |
M /trunk/EnchantList/localization.lua |
M /trunk/Engravings/Engravings.lua |
M /trunk/Engravings/EngravingsPresets.lua |
M /trunk/EnhancedColourPicker/EnhancedColourPicker.lua |
M /trunk/EnhancedLootFrames/EnhancedLootFrames.lua |
M /trunk/EnhancedLootFrames/EnhancedLootFrames.xml |
M /trunk/ErrorMonster/ErrorMonster-enUS.lua |
M /trunk/ErrorMonster/ErrorMonster-esES.lua |
M /trunk/ErrorMonster/ErrorMonster-koKR.lua |
M /trunk/ErrorMonster/ErrorMonster.lua |
M /trunk/ErrorMonster/license.txt |
M /trunk/EtchASketch/ed_worker.lua |
M /trunk/EtchASketch/flashframe.lua |
M /trunk/EtchASketch/nodist/makeworker.lua |
M /trunk/EtchASketch/worker.lua |
M /trunk/ExoticMaterial/Compost.lua |
M /trunk/ExoticMaterial/ExoticMaterial.lua |
M /trunk/ExoticMaterial/ExoticMaterialCats.lua |
M /trunk/ExoticMaterial/ExoticMaterialGlobals.lua |
M /trunk/EyeCandy/EyeCandy.lua |
M /trunk/FelwoodFarmer/FelwoodFarmer.lua |
M /trunk/FelwoodFarmer/FelwoodFarmer.xml |
M /trunk/FelwoodFarmer/localisation.deDE.lua |
M /trunk/FelwoodFarmer/localisation.enUS.lua |
M /trunk/FelwoodFarmer/localisation.koKR.lua |
M /trunk/Fence/Core.lua |
M /trunk/Fence/modules/Fence_AutoFill.lua |
M /trunk/Fence/modules/Fence_BidWatch.lua |
M /trunk/Fence/modules/Fence_Bookmarks.lua |
M /trunk/Fence/modules/Fence_Browse.lua |
M /trunk/Fence/modules/Fence_Clicks.lua |
M /trunk/Fence/modules/Fence_Search.lua |
M /trunk/Fence/modules/Fence_Sort.lua |
M /trunk/Fence/modules/Fence_Wipe.lua |
M /trunk/FinderReminder/FinderReminder.lua |
M /trunk/FinderReminder/SpellButtonClass.lua |
M /trunk/FinderReminder/locale.lua |
M /trunk/FixMe/FixMe.lua |
M /trunk/Fizzle/Core.lua |
M /trunk/Fizzle/FizzleLocale-enUS.lua |
M /trunk/Fizzle/FizzleLocale-koKR.lua |
M /trunk/Fizzle/FizzleLocale-zhCN.lua |
M /trunk/Fizzle/FizzleLocale-zhTW.lua |
M /trunk/Fizzle/Inspect.lua |
M /trunk/Fizzle/RepairCost.lua |
M /trunk/FlexBar2/ButtonController.lua |
M /trunk/FlexBar2/ButtonEventHandler.lua |
M /trunk/FlexBar2/ButtonInterface.lua |
M /trunk/FlexBar2/ButtonTheme.lua |
M /trunk/FlexBar2/Core.lua |
M /trunk/FramesResized/FramesResized.lua |
M /trunk/FramesResized/FramesResized.xml |
M /trunk/FreeRefills/Core.lua |
M /trunk/FreezeFrameLib/Lib/FreezeFrameLib.lua |
M /trunk/FruityLoots/FruityLoots-deDE.lua |
M /trunk/FruityLoots/FruityLoots-enUS.lua |
M /trunk/FruityLoots/FruityLoots-koKR.lua |
M /trunk/FruityLoots/FruityLoots.lua |
M /trunk/FryBid/FryBid.lua |
M /trunk/FryListDKP/BidQuery.lua |
M /trunk/FryListDKP/FryListDKP-enUS.lua |
M /trunk/FryListDKP/FryListDKP.lua |
M /trunk/FryListDKP/FryListDKP.xml |
M /trunk/FryListDKP/FryListDKPPoints.lua |
M /trunk/FryListDKP/FryListDKP_HistoryGUI.lua |
M /trunk/FryListDKP/FryListDKP_ItemGUI.lua |
M /trunk/FryListDKP/Hooks.lua |
M /trunk/FryListDKP/Points.lua |
M /trunk/FuBar/FuBar-Locale-deDE.lua |
M /trunk/FuBar/FuBar-Locale-enUS.lua |
M /trunk/FuBar/FuBar-Locale-esES.lua |
M /trunk/FuBar/FuBar-Locale-frFR.lua |
M /trunk/FuBar/FuBar-Locale-koKR.lua |
M /trunk/FuBar/FuBar-Locale-zhCN.lua |
M /trunk/FuBar/FuBar-Locale-zhTW.lua |
M /trunk/FuBar/FuBar.lua |
M /trunk/FuBar/FuBar_Panel.lua |
M /trunk/FuBar/LICENSE.txt |
M /trunk/FuBar-compat-1.2/FuBar-compat-1.2.lua |
M /trunk/FuBar-compat-1.2/FuBar-compat-1.2.xml |
M /trunk/FuBar-compat-1.2/FuBarLocals-deDE.lua |
M /trunk/FuBar-compat-1.2/FuBarLocals-frFR.lua |
M /trunk/FuBar-compat-1.2/FuBarLocals.lua |
M /trunk/FuBar-compat-1.2/FuBarUtils.lua |
M /trunk/FuBarPlugin-2.0/FuBarPlugin-2.0/FuBarPlugin-2.0.lua |
M /trunk/FuBarPlugin-2.0/LICENSE.txt |
M /trunk/FuBar_AEmotesFU/AEmotesFU.lua |
M /trunk/FuBar_AEmotesFU/ReadMe.txt |
M /trunk/FuBar_AEmotesFU/gpl-v2.txt |
M /trunk/FuBar_AceWardrobeFu/core.lua |
M /trunk/FuBar_AmmoFu/AmmoFu.lua |
M /trunk/FuBar_AmmoFu/AmmoFuLocale-deDE.lua |
M /trunk/FuBar_AmmoFu/AmmoFuLocale-enUS.lua |
M /trunk/FuBar_AmmoFu/AmmoFuLocale-esES.lua |
M /trunk/FuBar_AmmoFu/AmmoFuLocale-frFR.lua |
M /trunk/FuBar_AmmoFu/AmmoFuLocale-koKR.lua |
M /trunk/FuBar_AmmoFu/AmmoFuLocale-zhCN.lua |
M /trunk/FuBar_AmmoFu/AmmoFuLocale-zhTW.lua |
M /trunk/FuBar_AnkhTimerFu/AnkhTimerFu.lua |
M /trunk/FuBar_AspectFu/AspectFu.lua |
M /trunk/FuBar_AspectFu/AspectFuLocale-enUS.lua |
M /trunk/FuBar_AssistFu/Bindings.xml |
M /trunk/FuBar_AssistFu/FuBar_AssistFu.lua |
M /trunk/FuBar_BGQueueNumber/Core.lua |
M /trunk/FuBar_BGQueueNumber/localizations.lua |
M /trunk/FuBar_BGQueueNumber/network.txt |
M /trunk/FuBar_BagFu/BagFu.lua |
M /trunk/FuBar_BagFu/BagFuLocale-deDE.lua |
M /trunk/FuBar_BagFu/BagFuLocale-enUS.lua |
M /trunk/FuBar_BagFu/BagFuLocale-esES.lua |
M /trunk/FuBar_BagFu/BagFuLocale-frFR.lua |
M /trunk/FuBar_BagFu/BagFuLocale-koKR.lua |
M /trunk/FuBar_BagFu/BagFuLocale-zhCN.lua |
M /trunk/FuBar_BagFu/BagFuLocale-zhTW.lua |
M /trunk/FuBar_BagFu/README.txt |
M /trunk/FuBar_BananaBar2Fu/FuBar_BananaBar2Fu.lua |
M /trunk/FuBar_Bartender2Fu/Bartender2Fu.lua |
M /trunk/FuBar_BattlegroundFu/BattlegroundFu.lua |
M /trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-enUS.lua |
M /trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-esES.lua |
M /trunk/FuBar_CRDelayFu/CRDelayFu.lua |
M /trunk/FuBar_CheckStoneFu/CheckStoneFu.lua |
M /trunk/FuBar_CheckStoneFu/CheckStoneFuLocals-enUS.lua |
M /trunk/FuBar_ClockFu/ClockFu.lua |
M /trunk/FuBar_ClockFu/ClockFuLocale-deDE.lua |
M /trunk/FuBar_ClockFu/ClockFuLocale-enUS.lua |
M /trunk/FuBar_ClockFu/ClockFuLocale-esES.lua |
M /trunk/FuBar_ClockFu/ClockFuLocale-frFR.lua |
M /trunk/FuBar_ClockFu/ClockFuLocale-koKR.lua |
M /trunk/FuBar_ClockFu/ClockFuLocale-zhCN.lua |
M /trunk/FuBar_ClockFu/ClockFuLocale-zhTW.lua |
M /trunk/FuBar_ClockFu/README.txt |
M /trunk/FuBar_CombatTimeFu/FuBar_CombatTimeFu.lua |
M /trunk/FuBar_CombatantsFu/Core.lua |
M /trunk/FuBar_ConjureFu/Bindings.xml |
M /trunk/FuBar_ConjureFu/ConjureFu.lua |
M /trunk/FuBar_ConjureFu/ConjureFuLocale-enUS.lua |
M /trunk/FuBar_ConjureFu/ConjureFuLocale-frFR.lua |
M /trunk/FuBar_CorkFu/ADCommission.lua |
M /trunk/FuBar_CorkFu/BuffTemplate.lua |
M /trunk/FuBar_CorkFu/ClassDruid.lua |
M /trunk/FuBar_CorkFu/ClassHunter.lua |
M /trunk/FuBar_CorkFu/ClassHunterPetHappy.lua |
M /trunk/FuBar_CorkFu/ClassMage.lua |
M /trunk/FuBar_CorkFu/ClassPaladin.lua |
M /trunk/FuBar_CorkFu/ClassPriest.lua |
M /trunk/FuBar_CorkFu/ClassShaman.lua |
M /trunk/FuBar_CorkFu/ClassWarlock.lua |
M /trunk/FuBar_CorkFu/ClassWarlockSoulLink.lua |
M /trunk/FuBar_CorkFu/Core.lua |
M /trunk/FuBar_CorkFu/Minipet.lua |
M /trunk/FuBar_CorkFu/Repairs.lua |
M /trunk/FuBar_CorkFu/Tracking.lua |
M /trunk/FuBar_CustomMenuFu/CustomMenuFu.lua |
M /trunk/FuBar_DPS/FuBar_DPS-Locale-deDE.lua |
M /trunk/FuBar_DPS/FuBar_DPS-Locale-enUS.lua |
M /trunk/FuBar_DPS/FuBar_DPS-Locale-zhTW.lua |
M /trunk/FuBar_DPS/FuBar_DPS.lua |
M /trunk/FuBar_DPS/changelog.txt |
M /trunk/FuBar_DakSmak/DakSmak.lua |
M /trunk/FuBar_DakSmak/Locale-deDE.lua |
M /trunk/FuBar_DakSmak/Locale-enUS.lua |
M /trunk/FuBar_DakSmak/Readme.txt |
M /trunk/FuBar_DakSmak/changelog.txt |
M /trunk/FuBar_DebugFu/DebugFu.lua |
M /trunk/FuBar_DebugFu/README.txt |
M /trunk/FuBar_DebuggerFu/Bindings.xml |
M /trunk/FuBar_DebuggerFu/DebuggerFuLocals.lua |
M /trunk/FuBar_DebuggerFu/FuBar_DebuggerFu.lua |
M /trunk/FuBar_DebuggerFu/README.txt |
M /trunk/FuBar_DepositBoxFu/DepositBoxFu.lua |
M /trunk/FuBar_DuraTek/Core.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFu.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFuLocale-deDE.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFuLocale-enUS.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFuLocale-esES.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFuLocale-frFR.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFuLocale-koKR.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhCN.lua |
M /trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhTW.lua |
M /trunk/FuBar_ErrorMonsterFu/ErrorMonsterFu.lua |
M /trunk/FuBar_ExpRepGlueFu/ExpRepGlueFu.lua |
M /trunk/FuBar_ExpRepGlueFu/ExpRepGlueFuLocals.lua |
M /trunk/FuBar_ExpRepGlueFu/README.txt |
M /trunk/FuBar_ExperienceFu/ExperienceFu.lua |
M /trunk/FuBar_ExperienceFu/ExperienceFuLocals-deDE.lua |
M /trunk/FuBar_ExperienceFu/ExperienceFuLocals-esES.lua |
M /trunk/FuBar_ExperienceFu/ExperienceFuLocals-frFR.lua |
M /trunk/FuBar_ExperienceFu/ExperienceFuLocals-koKR.lua |
M /trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhCN.lua |
M /trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhTW.lua |
M /trunk/FuBar_ExperienceFu/ExperienceFuLocals.lua |
M /trunk/FuBar_ExperienceFu/README.txt |
M /trunk/FuBar_Experienced/FuBar_Experienced.lua |
M /trunk/FuBar_Experienced/FuBar_ExperiencedLocals.lua |
M /trunk/FuBar_FactionItemsFu/FactionItemsFu.lua |
M /trunk/FuBar_FactionItemsFu/FactionItemsFuLocals.lua |
M /trunk/FuBar_FactionItemsFu/Readme.txt |
M /trunk/FuBar_FactionsFu/FuBar_FactionsFu.lua |
M /trunk/FuBar_FactionsFu/FuBar_FactionsFu.options.lua |
M /trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.enUS.lua |
M /trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.frFR.lua |
M /trunk/FuBar_FarmerFu/FarmerFu.lua |
M /trunk/FuBar_FarmerFu/FarmerFuLocale-enUS.lua |
M /trunk/FuBar_FarmerFu/README.txt |
M /trunk/FuBar_FollowFu/FollowFu.lua |
M /trunk/FuBar_FollowFu/FollowFuLocals.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFu.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.deDE.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.enUS.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.esES.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.frFR.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.koKR.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.zhTW.lua |
M /trunk/FuBar_FriendsFu/FuBar_FriendsFuOptions.lua |
M /trunk/FuBar_FromAViewToAKillFu/Core.lua |
M /trunk/FuBar_FromAViewToAKillFu/Kopie von Core.lua |
M /trunk/FuBar_FromAViewToAKillFu/Locale_deDE.lua |
M /trunk/FuBar_FromAViewToAKillFu/Locale_enUS.lua |
M /trunk/FuBar_FromAViewToAKillFu/readme.txt |
M /trunk/FuBar_FuXPFu/FuBar_FuXPFu.lua |
M /trunk/FuBar_FuXPFu/FuXPLocals.lua |
M /trunk/FuBar_GCInFu/GCInFu.lua |
M /trunk/FuBar_GarbageFu/GarbageFu.lua |
M /trunk/FuBar_GarbageFu/GarbageFuLocale-deDE.lua |
M /trunk/FuBar_GarbageFu/GarbageFuLocale-enUS.lua |
M /trunk/FuBar_GarbageFu/GarbageFuLocale-frFR.lua |
M /trunk/FuBar_GarbageFu/GarbageFuLocale-koKR.lua |
M /trunk/FuBar_GarbageFu/GarbageFu_Auction.lua |
M /trunk/FuBar_GarbageFu/GarbageFu_Sell.lua |
M /trunk/FuBar_GarbageFu/GarbageFu_Type.lua |
M /trunk/FuBar_GarbageFu/GarbageFu_Vendor.lua |
M /trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices.lua |
M /trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices_Table.lua |
M /trunk/FuBar_GreedBeacon/FuBar_GreedBeacon.lua |
M /trunk/FuBar_GroupFu/GroupFu.lua |
M /trunk/FuBar_GroupFu/GroupFuLocal-deDE.lua |
M /trunk/FuBar_GroupFu/GroupFuLocal-enUS.lua |
M /trunk/FuBar_GroupFu/GroupFuLocal-koKR.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFu.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuLocals.deDE.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuLocals.enUS.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuLocals.esES.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuLocals.frFR.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuLocals.koKR.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhCN.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhTW.lua |
M /trunk/FuBar_GuildFu/FuBar_GuildFuOptions.lua |
M /trunk/FuBar_HeartFu/HeartFu.lua |
M /trunk/FuBar_HeartFu/Locale-deDE.lua |
M /trunk/FuBar_HeartFu/Locale-enUS.lua |
M /trunk/FuBar_HerbTrackerFu/HerbTrackerFu.lua |
M /trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-deDE.lua |
M /trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-enUS.lua |
M /trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-esES.lua |
M /trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-frFR.lua |
M /trunk/FuBar_HeyFu/Core.lua |
M /trunk/FuBar_HonorFu/HonorFu.lua |
M /trunk/FuBar_HonorFu/HonorFuLocale-deDE.lua |
M /trunk/FuBar_HonorFu/HonorFuLocale-enUS.lua |
M /trunk/FuBar_HonorFu/HonorFuLocale-esES.lua |
M /trunk/FuBar_HonorFu/HonorFuLocale-zhCN.lua |
M /trunk/FuBar_HonorFu/HonorFuLocale-zhTW.lua |
M /trunk/FuBar_HonorFu/README.txt |
M /trunk/FuBar_ItemBonusesFu/ItemBonusesFu_Locale_koKR.lua |
M /trunk/FuBar_ItemDBFu/FuBar_ItemDBFu.lua |
M /trunk/FuBar_ItemListFu/FuBar_ItemListFu.lua |
M /trunk/FuBar_KCIFu/KCIFu.lua |
M /trunk/FuBar_KCIFu/KCIFuLocale-deDE.lua |
M /trunk/FuBar_KCIFu/KCIFuLocale-enUS.lua |
M /trunk/FuBar_KeyQ/Core.lua |
M /trunk/FuBar_KungFu/KungFu.lua |
M /trunk/FuBar_KungFu/KungFuLocale-enUS.lua |
M /trunk/FuBar_KungFu/README.txt |
M /trunk/FuBar_LocationFu/LocationFu.lua |
M /trunk/FuBar_LocationFu/LocationFuLocale-deDE.lua |
M /trunk/FuBar_LocationFu/LocationFuLocale-enUS.lua |
M /trunk/FuBar_LocationFu/LocationFuLocale-esES.lua |
M /trunk/FuBar_LocationFu/LocationFuLocale-frFR.lua |
M /trunk/FuBar_LocationFu/LocationFuLocale-koKR.lua |
M /trunk/FuBar_LocationFu/LocationFuLocale-zhTW.lua |
M /trunk/FuBar_LocationFu/README.txt |
M /trunk/FuBar_LockFu/LockFu.lua |
M /trunk/FuBar_LockFu/LockFuLocals.lua |
M /trunk/FuBar_LockFu/LockFuLocals_deDE.lua |
M /trunk/FuBar_LockFu/readme.txt |
M /trunk/FuBar_LogFu2/LogFu2-enUS.lua |
M /trunk/FuBar_LogFu2/LogFu2.lua |
M /trunk/FuBar_LootTypeFu/LootTypeFu.lua |
M /trunk/FuBar_LootTypeFu/LootTypeFuLocale-enUS.lua |
M /trunk/FuBar_MCPFu/FuBar_MCPFu.lua |
M /trunk/FuBar_MCPFu/MCPFuLocals.lua |
M /trunk/FuBar_MCPFu/README.txt |
M /trunk/FuBar_MageFu/Bindings.xml |
M /trunk/FuBar_MageFu/Core.lua |
M /trunk/FuBar_MageFu/Locale-enUS.lua |
M /trunk/FuBar_MailFu/Core.lua |
M /trunk/FuBar_MicroMenuFu/MicroMenuFu.lua |
M /trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-deDE.lua |
M /trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-enUS.lua |
M /trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-zhTW.lua |
M /trunk/FuBar_MicroMenuFu/README.txt |
M /trunk/FuBar_MiniClockFu/MiniClockFu.lua |
M /trunk/FuBar_MiniPerfsFu/MiniPerfsFu.lua |
M /trunk/FuBar_ModMenu/Core.lua |
M /trunk/FuBar_ModMenu/Editbox.xml |
M /trunk/FuBar_ModMenu/Localization.lua |
M /trunk/FuBar_ModMenu/PredefinedMenus.lua |
M /trunk/FuBar_ModMenu/README.txt |
M /trunk/FuBar_ModMenuTuFu/Core.lua |
M /trunk/FuBar_MoneyFu/MoneyFu.lua |
M /trunk/FuBar_MoneyFu/MoneyFuLocale-deDE.lua |
M /trunk/FuBar_MoneyFu/MoneyFuLocale-enUS.lua |
M /trunk/FuBar_MoneyFu/MoneyFuLocale-esES.lua |
M /trunk/FuBar_MoneyFu/MoneyFuLocale-frFR.lua |
M /trunk/FuBar_MoneyFu/MoneyFuLocale-koKR.lua |
M /trunk/FuBar_MoneyFu/MoneyFuLocale-zhCN.lua |
M /trunk/FuBar_MoneyFu/MoneyFuLocale-zhTW.lua |
M /trunk/FuBar_MoneyFu/README.txt |
M /trunk/FuBar_NameToggleFu/Core.lua |
M /trunk/FuBar_NanoStatsFu/NanoStatsFu.lua |
M /trunk/FuBar_NanoStatsFu/NanoStatsFuLocals.lua |
M /trunk/FuBar_NanoStatsFu/readme.txt |
M /trunk/FuBar_NavigatorFu/NavigatorFu.lua |
M /trunk/FuBar_NetStatsFu/NetStatsFu.lua |
M /trunk/FuBar_NinjutFu/Locale-enUS.lua |
M /trunk/FuBar_NinjutFu/Menu.lua |
M /trunk/FuBar_NinjutFu/NinjutFu.lua |
M /trunk/FuBar_NinjutFu/ToolTip.lua |
M /trunk/FuBar_OutfitterFu/OutfitterFu.lua |
M /trunk/FuBar_OutfitterFu/OutfitterFuLocale-enUS.lua |
M /trunk/FuBar_OutfitterFu/README.txt |
M /trunk/FuBar_PerformanceFu/PerformanceFu.lua |
M /trunk/FuBar_PerformanceFu/PerformanceFuLocale-deDE.lua |
M /trunk/FuBar_PerformanceFu/PerformanceFuLocale-enUS.lua |
M /trunk/FuBar_PerformanceFu/PerformanceFuLocale-esES.lua |
M /trunk/FuBar_PerformanceFu/PerformanceFuLocale-frFR.lua |
M /trunk/FuBar_PerformanceFu/PerformanceFuLocale-koKR.lua |
M /trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhCN.lua |
M /trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhTW.lua |
M /trunk/FuBar_PerformanceFu/README.txt |
M /trunk/FuBar_PetFu/PetFu.lua |
M /trunk/FuBar_PetInFu/PetInFu.lua |
M /trunk/FuBar_PetInFu/PetInFuLocals.enUS.lua |
M /trunk/FuBar_PetInFu/PetInFuLocals.koKR.lua |
M /trunk/FuBar_PetInfoFu/Bindings.xml |
M /trunk/FuBar_PetInfoFu/PetInfoFu-readme.txt |
M /trunk/FuBar_PetInfoFu/PetInfoFu.lua |
M /trunk/FuBar_PetInfoFu/PetInfoFuLocals-enUS.lua |
M /trunk/FuBar_PetitionFu/petition.lua |
M /trunk/FuBar_PoisonFu/Core.lua |
.Line ending fixups: trunk/ |
------------------------------------------------------------------------ |
------------------------------------------------------------------------ |
r30385 | ckknight | 2007-03-17 05:08:16 -0400 (Sat, 17 Mar 2007) | 1 line |
Changed paths: |
M /trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua |
.Dewdrop-2.0 - change multiToggle implementation |
------------------------------------------------------------------------ |
r30376 | ckknight | 2007-03-17 04:31:49 -0400 (Sat, 17 Mar 2007) | 1 line |
Changed paths: |
M /trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua |
.Dewdrop-2.0 - added multiToggle support |
------------------------------------------------------------------------ |
r29792 | ckknight | 2007-03-08 20:58:16 -0500 (Thu, 08 Mar 2007) | 2 lines |
Changed paths: |
M /trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua |
.Dewdrop-2.0 - fixed :asserts |
------------------------------------------------------------------------ |
r28457 | ckknight | 2007-02-18 22:34:25 -0500 (Sun, 18 Feb 2007) | 1 line |
Changed paths: |
M /trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua |
.Dewdrop-2.0 - strip color codes before sorting |
------------------------------------------------------------------------ |
--[[ |
Name: Crayon-2.0 |
Revision: $Rev: 25921 $ |
Author(s): ckknight (ckknight@gmail.com) |
Website: http://ckknight.wowinterface.com/ |
Documentation: http://wiki.wowace.com/index.php/Crayon-2.0 |
SVN: http://svn.wowace.com/root/trunk/CrayonLib/Crayon-2.0 |
Description: A library to provide coloring tools. |
Dependencies: AceLibrary |
]] |
--Theondry (theondry@gmail.com) added the purple. yell at me if it's wrong, please |
local MAJOR_VERSION = "Crayon-2.0" |
local MINOR_VERSION = "$Revision: 25921 $" |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
local Crayon = {} |
Crayon.COLOR_HEX_RED = "ff0000" |
Crayon.COLOR_HEX_ORANGE = "ff7f00" |
Crayon.COLOR_HEX_YELLOW = "ffff00" |
Crayon.COLOR_HEX_GREEN = "00ff00" |
Crayon.COLOR_HEX_WHITE = "ffffff" |
Crayon.COLOR_HEX_COPPER = "eda55f" |
Crayon.COLOR_HEX_SILVER = "c7c7cf" |
Crayon.COLOR_HEX_GOLD = "ffd700" |
Crayon.COLOR_HEX_PURPLE = "9980CC" |
function Crayon:Colorize(hexColor, text) |
return "|cff" .. tostring(hexColor or 'ffffff') .. tostring(text) .. "|r" |
end |
function Crayon:Red(text) return self:Colorize(self.COLOR_HEX_RED, text) end |
function Crayon:Orange(text) return self:Colorize(self.COLOR_HEX_ORANGE, text) end |
function Crayon:Yellow(text) return self:Colorize(self.COLOR_HEX_YELLOW, text) end |
function Crayon:Green(text) return self:Colorize(self.COLOR_HEX_GREEN, text) end |
function Crayon:White(text) return self:Colorize(self.COLOR_HEX_WHITE, text) end |
function Crayon:Copper(text) return self:Colorize(self.COLOR_HEX_COPPER, text) end |
function Crayon:Silver(text) return self:Colorize(self.COLOR_HEX_SILVER, text) end |
function Crayon:Gold(text) return self:Colorize(self.COLOR_HEX_GOLD, text) end |
function Crayon:Purple(text) return self:Colorize(self.COLOR_HEX_PURPLE, text) end |
local inf = 1/0 |
local function GetThresholdPercentage(quality, ...) |
local n = select('#', ...) |
if n <= 1 then |
return GetThresholdPercentage(quality, 0, ... or 1) |
end |
local worst = ... |
local best = select(n, ...) |
if worst == best and quality == worst then |
return 0.5 |
end |
if worst <= best then |
if quality <= worst then |
return 0 |
elseif quality >= best then |
return 1 |
end |
local last = worst |
for i = 2, n-1 do |
local value = select(i, ...) |
if quality <= value then |
return ((i-2) + (quality - last) / (value - last)) / (n-1) |
end |
last = value |
end |
local value = select(n, ...) |
return ((n-2) + (quality - last) / (value - last)) / (n-1) |
else |
if quality >= worst then |
return 0 |
elseif quality <= best then |
return 1 |
end |
local last = worst |
for i = 2, n-1 do |
local value = select(i, ...) |
if quality >= value then |
return ((i-2) + (quality - last) / (value - last)) / (n-1) |
end |
last = value |
end |
local value = select(n, ...) |
return ((n-2) + (quality - last) / (value - last)) / (n-1) |
end |
end |
function Crayon:GetThresholdColor(quality, ...) |
self:argCheck(quality, 2, "number") |
if quality ~= quality or quality == inf or quality == -inf then |
return 1, 1, 1 |
end |
local percent = GetThresholdPercentage(quality, ...) |
if percent <= 0 then |
return 1, 0, 0 |
elseif percent <= 0.5 then |
return 1, percent*2, 0 |
elseif percent >= 1 then |
return 0, 1, 0 |
else |
return 2 - percent*2, 1, 0 |
end |
end |
function Crayon:GetThresholdHexColor(quality, ...) |
local r, g, b = self:GetThresholdColor(quality, ...) |
return string.format("%02x%02x%02x", r*255, g*255, b*255) |
end |
function Crayon:GetThresholdColorTrivial(quality, ...) |
self:argCheck(quality, 2, "number") |
if quality ~= quality or quality == inf or quality == -inf then |
return 1, 1, 1 |
end |
local percent = GetThresholdPercentage(quality, ...) |
if percent <= 0 then |
return 1, 0, 0 |
elseif percent <= 0.5 then |
return 1, percent*2, 0 |
elseif percent <= 0.75 then |
return 3 - percent*4, 1, 0 |
elseif percent >= 1 then |
return 0.5, 0.5, 0.5 |
else |
return percent*2 - 1.5, 2.5 - percent*2, percent*2 - 1.5 |
end |
end |
function Crayon:GetThresholdHexColorTrivial(quality, ...) |
local r, g, b = self:GetThresholdColorTrivial(quality, ...) |
return string.format("%02x%02x%02x", r*255, g*255, b*255) |
end |
function Crayon:RGBtoHSL(red, green, blue) |
local hue, saturation, luminance |
local minimum = math.min( red, green, blue ) |
local maximum = math.max( red, green, blue ) |
local difference = maximum - minimum |
luminance = ( maximum + minimum ) / 2 |
if difference == 0 then --Greyscale |
hue = 0 |
saturation = 0 |
else --Colour |
if luminance < 0.5 then |
saturation = difference / ( maximum + minimum ) |
else |
saturation = difference / ( 2 - maximum- minimum ) |
end |
local tmpRed = ( ( ( maximum - red ) / 6 ) + ( difference / 2 ) ) / difference |
local tmpGreen = ( ( ( maximum - green ) / 6 ) + ( difference / 2 ) ) / difference |
local tmpBlue = ( ( ( maximum - blue ) / 6 ) + ( difference / 2 ) ) / difference |
if red == maximum then |
hue = tmpBlue - tmpGreen |
elseif green == maximum then |
hue = ( 1 / 3 ) + tmpRed - tmpBlue |
elseif blue == maximum then |
hue = ( 2 / 3 ) + tmpGreen - tmpRed |
end |
hue = hue % 1 |
if hue < 0 then hue = hue + 1 end |
end |
return hue, saturation, luminance |
end |
function Crayon:HSLtoRGB(hue, saturation, luminance) |
local red, green, blue |
if ( S == 0 ) then |
red, green, blue = luminance, luminance, luminance |
else |
if luminance < 0.5 then |
var2 = luminance * ( 1 + saturation ) |
else |
var2 = ( luminance + saturation ) - ( saturation * luminance ) |
end |
var1 = 2 * luminance - var2 |
red = self:HueToColor( var1, var2, hue + ( 1 / 3 ) ) |
green = self:HueToColor( var1, var2, hue ) |
blue = self:HueToColor( var1, var2, hue - ( 1 / 3 ) ) |
end |
return red, green, blue |
end |
function Crayon:HueToColor(var1, var2, hue) |
hue = hue % 1 |
if hue < 0 then hue = hue + 1 end |
if ( 6 * hue ) < 1 then |
return hue + ( var2 - var1 ) * 6 * hue |
elseif ( 2 * hue ) < 1 then |
return var2 |
elseif ( 3 * hue ) < 2 then |
return var1 + ( var2 - var1 ) * ( ( 2 / 3 ) - hue ) * 6 |
else |
return var1 |
end |
end |
function Crayon:RotateRGBHue(red, green, blue, rotation) |
local hue, saturation, luminance = self:RGBtoHSL(red, green, blue) |
red, green, blue = self:HSLtoRGB(hue + rotation , saturation, luminance) |
return red, green, blue |
end |
AceLibrary:Register(Crayon, MAJOR_VERSION, MINOR_VERSION) |
Crayon = nil |
------------------------------------------------------------------------ |
r30624 | ckknight | 2007-03-20 22:50:57 -0400 (Tue, 20 Mar 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
.AceConsole-2.0 - for printing frames, show functions (but do not run them) if they are on the top level of the table. |
------------------------------------------------------------------------ |
r30384 | ckknight | 2007-03-17 05:08:09 -0400 (Sat, 17 Mar 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
.AceConsole-2.0 - change multiToggle implementation |
------------------------------------------------------------------------ |
r30377 | ckknight | 2007-03-17 04:31:58 -0400 (Sat, 17 Mar 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
.AceConsole-2.0 - added multiToggle support |
------------------------------------------------------------------------ |
r30169 | rabbit | 2007-03-14 06:08:45 -0400 (Wed, 14 Mar 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
.AceConsole-2.0: Fix execute suboptions in pass groups. |
------------------------------------------------------------------------ |
r30168 | rabbit | 2007-03-14 05:52:07 -0400 (Wed, 14 Mar 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
.AceConsole-2.0: tostring all variables used to format errors, so we don't error on nil. |
------------------------------------------------------------------------ |
r29919 | ckknight | 2007-03-11 03:43:20 -0400 (Sun, 11 Mar 2007) | 2 lines |
Changed paths: |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
.AceConsole-2.0 - escape more characters in :PrintLiteral |
------------------------------------------------------------------------ |
r28673 | rabbit | 2007-02-21 20:09:50 -0500 (Wed, 21 Feb 2007) | 1 line |
Changed paths: |
M /trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua |
.AceConsole-2.0: The print method now returns its text, so people can stuff it where they want. |
------------------------------------------------------------------------ |
--[[ |
Name: AceDB-2.0 |
Revision: $Rev: 29174 $ |
Developed by: The Ace Development Team (http://www.wowace.com/index.php/The_Ace_Development_Team) |
Inspired By: Ace 1.x by Turan (turan@gryphon.com) |
Website: http://www.wowace.com/ |
Documentation: http://www.wowace.com/index.php/AceDB-2.0 |
SVN: http://svn.wowace.com/root/trunk/Ace2/AceDB-2.0 |
Description: Mixin to allow for fast, clean, and featureful saved variable |
access. |
Dependencies: AceLibrary, AceOO-2.0, AceEvent-2.0 |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "AceDB-2.0" |
local MINOR_VERSION = "$Revision: 29174 $" |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end |
local function safecall(func,...) |
local success, err = pcall(func,...) |
if not success then geterrorhandler()(err) end |
end |
local ACTIVE, ENABLED, STATE, TOGGLE_ACTIVE, MAP_ACTIVESUSPENDED, SET_PROFILE, SET_PROFILE_USAGE, PROFILE, PLAYER_OF_REALM, CHOOSE_PROFILE_DESC, CHOOSE_PROFILE_GUI, COPY_PROFILE_DESC, COPY_PROFILE_GUI, OTHER_PROFILE_DESC, OTHER_PROFILE_GUI, OTHER_PROFILE_USAGE, RESET_PROFILE, RESET_PROFILE_DESC, CHARACTER_COLON, REALM_COLON, CLASS_COLON, DEFAULT, ALTERNATIVE |
if GetLocale() == "deDE" then |
ACTIVE = "Aktiv" |
ENABLED = "Aktiviert" |
STATE = "Status" |
TOGGLE_ACTIVE = "Stoppt/Aktiviert dieses Addon." |
MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00Aktiv|r", [false] = "|cffff0000Gestoppt|r" } |
SET_PROFILE = "Setzt das Profil f\195\188r dieses Addon." |
SET_PROFILE_USAGE = "{Charakter || Klasse || Realm || <Profilname>}" |
PROFILE = "Profil" |
PLAYER_OF_REALM = "%s von %s" |
CHOOSE_PROFILE_DESC = "W\195\164hle ein Profil." |
CHOOSE_PROFILE_GUI = "W\195\164hle" |
COPY_PROFILE_DESC = "Kopiert Einstellungen von einem anderem Profil." |
COPY_PROFILE_GUI = "Kopiere von" |
OTHER_PROFILE_DESC = "W\195\164hle ein anderes Profil." |
OTHER_PROFILE_GUI = "Anderes" |
OTHER_PROFILE_USAGE = "<Profilname>" |
RESET_PROFILE = "Reset profile" -- fix |
RESET_PROFILE_DESC = "Clear all settings of the current profile." -- fix |
CHARACTER_COLON = "Charakter: " |
REALM_COLON = "Realm: " |
CLASS_COLON = "Klasse: " |
DEFAULT = "Default" -- fix |
ALTERNATIVE = "Alternative" -- fix |
elseif GetLocale() == "frFR" then |
ACTIVE = "Actif" |
ENABLED = "Activ\195\169" |
STATE = "Etat" |
TOGGLE_ACTIVE = "Suspend/active cet addon." |
MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00Actif|r", [false] = "|cffff0000Suspendu|r" } |
SET_PROFILE = "S\195\169lectionne le profil pour cet addon." |
SET_PROFILE_USAGE = "{perso || classe || royaume || <nom de profil>}" |
PROFILE = "Profil" |
PLAYER_OF_REALM = "%s de %s" |
CHOOSE_PROFILE_DESC = "Choisissez un profil." |
CHOOSE_PROFILE_GUI = "Choix" |
COPY_PROFILE_DESC = "Copier les param\195\168tres d'un autre profil." |
COPY_PROFILE_GUI = "Copier \195\160 partir de" |
OTHER_PROFILE_DESC = "Choisissez un autre profil." |
OTHER_PROFILE_GUI = "Autre" |
OTHER_PROFILE_USAGE = "<nom de profil>" |
RESET_PROFILE = "Reset profile" -- fix |
RESET_PROFILE_DESC = "Clear all settings of the current profile." -- fix |
CHARACTER_COLON = "Personnage: " |
REALM_COLON = "Royaume: " |
CLASS_COLON = "Classe: " |
DEFAULT = "Default" -- fix |
ALTERNATIVE = "Alternative" -- fix |
elseif GetLocale() == "koKR" then |
ACTIVE = "íì±í" |
ENABLED = "íì±í" |
STATE = "ìí" |
TOGGLE_ACTIVE = "ì´ ì ëì¨ ì¤ì§/ê³ì ì¤í" |
MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00íì±í|r", [false] = "|cffff0000ì¤ì§ë¨|r" } |
SET_PROFILE = "ì´ ì ëì¨ì íë¡í ì¤ì " |
SET_PROFILE_USAGE = "{ìºë¦í°ëª || ì§ì || ìë²ëª || <íë¡íëª >}" |
PROFILE = "íë¡í" |
PLAYER_OF_REALM = "%s (%s ìë²)" |
CHOOSE_PROFILE_DESC = "íë¡íì¼ì ì íí©ëë¤." |
CHOOSE_PROFILE_GUI = "ì í" |
COPY_PROFILE_DESC = "ë¤ë¥¸ íë¡íì¼ìì ì¤ì ì ë³µì¬í©ëë¤." |
COPY_PROFILE_GUI = "ë³µì¬" |
OTHER_PROFILE_DESC = "ë¤ë¥¸ íë¡íì¼ì ì íí©ëë¤." |
OTHER_PROFILE_GUI = "기í" |
OTHER_PROFILE_USAGE = "<íë¡íì¼ëª >" |
RESET_PROFILE = "Reset profile" -- fix |
RESET_PROFILE_DESC = "Clear all settings of the current profile." -- fix |
CHARACTER_COLON = "ìºë¦í°: " |
REALM_COLON = "ìë²: " |
CLASS_COLON = "ì§ì : " |
DEFAULT = "Default" -- fix |
ALTERNATIVE = "Alternative" -- fix |
elseif GetLocale() == "zhTW" then |
ACTIVE = "åå" |
ENABLED = "åç¨" |
STATE = "çæ " |
TOGGLE_ACTIVE = "æ«å/éåéåæ件ã" |
MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00åå|r", [false] = "|cffff0000å·²æ«å|r" } |
SET_PROFILE = "è¨å®éæ件çè¨éæªã" |
SET_PROFILE_USAGE = "{è§è² || è¯æ¥ || 伺æå¨ || <è¨éæªå稱>}" |
PROFILE = "è¨éæª" |
PLAYER_OF_REALM = "%s æ¼ %s" |
CHOOSE_PROFILE_DESC = "é¸æä¸åè¨éæª" |
CHOOSE_PROFILE_GUI = "é¸æ" |
COPY_PROFILE_DESC = "ç±å ¶ä»è¨éæªè¤è£½è¨å®ã" |
COPY_PROFILE_GUI = "è¤è£½ç±" |
OTHER_PROFILE_DESC = "é¸æå ¶ä»è¨éæªã" |
OTHER_PROFILE_GUI = "å ¶ä»" |
OTHER_PROFILE_USAGE = "<è¨éæªå稱>" |
RESET_PROFILE = "Reset profile" -- fix |
RESET_PROFILE_DESC = "Clear all settings of the current profile." -- fix |
CHARACTER_COLON = "è§è²ï¼" |
REALM_COLON = "伺æå¨ï¼" |
CLASS_COLON = "è¯æ¥ï¼" |
DEFAULT = "Default" -- fix |
ALTERNATIVE = "Alternative" -- fix |
elseif GetLocale() == "zhCN" then |
ACTIVE = "\230\156\137\230\149\136" |
ENABLED = "\229\144\175\231\148\168" |
STATE = "\231\138\182\230\128\129" |
TOGGLE_ACTIVE = "\230\154\130\229\129\156/\230\129\162\229\164\141 \230\173\164\230\143\146\228\187\182." |
MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00\230\156\137\230\149\136|r", [false] = "|cffff0000\230\154\130\229\129\156|r" } |
SET_PROFILE = "\232\174\190\231\189\174\233\133\141\231\189\174\230\150\135\228\187\182\228\184\186\232\191\153\230\143\146\228\187\182." |
SET_PROFILE_USAGE = "{\229\173\151\231\172\166 || \233\128\137\228\187\182\231\177\187 || \229\159\159 || <\233\133\141\231\189\174\230\150\135\228\187\182\229\144\141\229\173\151>}" |
PROFILE = "\233\133\141\231\189\174\230\150\135\228\187\182" |
PLAYER_OF_REALM = "%s \231\154\132 %s" |
CHOOSE_PROFILE_DESC = "\233\128\137\230\139\169\233\133\141\231\189\174\230\150\135\228\187\182." |
CHOOSE_PROFILE_GUI = "\233\128\137\230\139\169" |
COPY_PROFILE_DESC = "\229\164\141\229\136\182\232\174\190\231\189\174\228\187\142\229\143\166\228\184\128\228\184\170\233\133\141\231\189\174\230\150\135\228\187\182." |
COPY_PROFILE_GUI = "\229\164\141\229\136\182\228\187\142" |
OTHER_PROFILE_DESC = "\233\128\137\230\139\169\229\143\166\228\184\128\228\184\170\233\133\141\231\189\174\230\150\135\228\187\182." |
OTHER_PROFILE_GUI = "\229\133\182\228\187\150" |
OTHER_PROFILE_USAGE = "<\233\133\141\231\189\174\230\150\135\228\187\182\229\144\141\229\173\151>" |
RESET_PROFILE = "Reset profile" -- fix |
RESET_PROFILE_DESC = "Clear all settings of the current profile." -- fix |
CHARACTER_COLON = "\229\173\151\231\172\166: " |
REALM_COLON = "\229\159\159: " |
CLASS_COLON = "\233\128\137\228\187\182\231\177\187: " |
DEFAULT = "Default" -- fix |
ALTERNATIVE = "Alternative" -- fix |
elseif GetLocale() == "esES" then |
ACTIVE = "Activo" |
ENABLED = "Activado" |
STATE = "Estado" |
TOGGLE_ACTIVE = "Parar/Continuar este accesorio" |
MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00Activo|r", [false] = "|cffff0000Parado|r" } |
SET_PROFILE = "Selecciona el perfil para este accesorio." |
SET_PROFILE_USAGE = "{perso || clase || reino || <nombre del perfil>}" |
PROFILE = "Perfil" |
PLAYER_OF_REALM = "%s de %s" |
CHOOSE_PROFILE_DESC = "Elige un perfil." |
CHOOSE_PROFILE_GUI = "Elige" |
COPY_PROFILE_DESC = "Copiar de un perfil a otro" |
COPY_PROFILE_GUI = "Copiar desde" |
OTHER_PROFILE_DESC = "Elige otro perfil." |
OTHER_PROFILE_GUI = "Otro" |
OTHER_PROFILE_USAGE = "<nombre del perfil>" |
RESET_PROFILE = "Reset profile" -- fix |
RESET_PROFILE_DESC = "Clear all settings of the current profile." -- fix |
CHARACTER_COLON = "Personaje: " |
REALM_COLON = "Reino: " |
CLASS_COLON = "Clase: " |
DEFAULT = "Por defecto" |
ALTERNATIVE = "Alternativo" |
else -- enUS |
ACTIVE = "Active" |
ENABLED = "Enabled" |
STATE = "State" |
TOGGLE_ACTIVE = "Suspend/resume this addon." |
MAP_ACTIVESUSPENDED = { [true] = "|cff00ff00Active|r", [false] = "|cffff0000Suspended|r" } |
SET_PROFILE = "Set profile for this addon." |
SET_PROFILE_USAGE = "{char || class || realm || <profile name>}" |
PROFILE = "Profile" |
PLAYER_OF_REALM = "%s of %s" |
CHOOSE_PROFILE_DESC = "Choose a profile." |
CHOOSE_PROFILE_GUI = "Choose" |
COPY_PROFILE_DESC = "Copy settings from another profile." |
COPY_PROFILE_GUI = "Copy from" |
OTHER_PROFILE_DESC = "Choose another profile." |
OTHER_PROFILE_GUI = "Other" |
OTHER_PROFILE_USAGE = "<profile name>" |
RESET_PROFILE = "Reset profile" |
RESET_PROFILE_DESC = "Clear all settings of the current profile." |
CHARACTER_COLON = "Character: " |
REALM_COLON = "Realm: " |
CLASS_COLON = "Class: " |
DEFAULT = "Default" |
ALTERNATIVE = "Alternative" |
end |
local convertFromOldCharID |
do |
local matchStr = "^" .. PLAYER_OF_REALM:gsub("([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1"):gsub("%%s", "(.+)") .. "$" |
function convertFromOldCharID(str) |
local player, realm = str:match(matchStr) |
if not player then |
return str |
end |
return player .. " - " .. realm |
end |
end |
local AceOO = AceLibrary("AceOO-2.0") |
local AceEvent |
local Mixin = AceOO.Mixin |
local AceDB = Mixin { |
"RegisterDB", |
"RegisterDefaults", |
"ResetDB", |
"SetProfile", |
"GetProfile", |
"CopyProfileFrom", |
"ToggleActive", |
"IsActive", |
"AcquireDBNamespace", |
} |
local Dewdrop = AceLibrary:HasInstance("Dewdrop-2.0") and AceLibrary("Dewdrop-2.0") |
local _G = getfenv(0) |
local function inheritDefaults(t, defaults) |
if not defaults then |
return t |
end |
for k,v in pairs(defaults) do |
if k == "*" then |
local v = v |
if type(v) == "table" then |
setmetatable(t, { |
__index = function(self, key) |
if key == nil then |
return nil |
end |
self[key] = {} |
inheritDefaults(self[key], v) |
return self[key] |
end |
} ) |
else |
setmetatable(t, { |
__index = function(self, key) |
if key == nil then |
return nil |
end |
self[key] = v |
return self[key] |
end |
} ) |
end |
for key in pairs(t) do |
if (defaults[key] == nil or key == "*") and type(t[key]) == "table" then |
inheritDefaults(t[key], v) |
end |
end |
else |
if type(v) == "table" then |
if type(t[k]) ~= "table" then |
t[k] = {} |
end |
inheritDefaults(t[k], v) |
elseif t[k] == nil then |
t[k] = v |
end |
end |
end |
return t |
end |
local _,race = UnitRace("player") |
local faction |
if race == "Orc" or race == "Scourge" or race == "Troll" or race == "Tauren" or race == "BloodElf" then |
faction = FACTION_HORDE |
else |
faction = FACTION_ALLIANCE |
end |
local server = GetRealmName():trim() |
local charID = UnitName("player") .. " - " .. server |
local realmID = server .. " - " .. faction |
local classID = UnitClass("player") |
AceDB.CHAR_ID = charID |
AceDB.REALM_ID = realmID |
AceDB.CLASS_ID = classID |
AceDB.FACTION = faction |
AceDB.REALM = server |
AceDB.NAME = UnitName("player") |
local new, del |
do |
local list = setmetatable({}, {__mode="k"}) |
function new() |
local t = next(list) |
if t then |
list[t] = nil |
return t |
else |
return {} |
end |
end |
function del(t) |
setmetatable(t, nil) |
for k in pairs(t) do |
t[k] = nil |
end |
list[t] = true |
end |
end |
local caseInsensitive_mt = { |
__index = function(self, key) |
if type(key) ~= "string" then |
return nil |
end |
local lowerKey = key:lower() |
for k,v in pairs(self) do |
if k:lower() == lowerKey then |
return self[k] |
end |
end |
end, |
__newindex = function(self, key, value) |
if type(key) ~= "string" then |
return error("table index is nil", 2) |
end |
local lowerKey = key:lower() |
for k in pairs(self) do |
if k:lower() == lowerKey then |
rawset(self, k, nil) |
rawset(self, key, value) |
return |
end |
end |
rawset(self, key, value) |
end |
} |
local db_mt = { __index = function(db, key) |
if key == "char" then |
if db.charName then |
if type(_G[db.charName]) ~= "table" then |
_G[db.charName] = {} |
end |
if type(_G[db.charName].global) ~= "table" then |
_G[db.charName].global = {} |
end |
rawset(db, 'char', _G[db.charName].global) |
else |
if type(db.raw.chars) ~= "table" then |
db.raw.chars = {} |
end |
local id = charID |
if type(db.raw.chars[id]) ~= "table" then |
db.raw.chars[id] = {} |
end |
rawset(db, 'char', db.raw.chars[id]) |
end |
if db.defaults and db.defaults.char then |
inheritDefaults(db.char, db.defaults.char) |
end |
return db.char |
elseif key == "realm" then |
if type(db.raw.realms) ~= "table" then |
db.raw.realms = {} |
end |
local id = realmID |
if type(db.raw.realms[id]) ~= "table" then |
db.raw.realms[id] = {} |
end |
rawset(db, 'realm', db.raw.realms[id]) |
if db.defaults and db.defaults.realm then |
inheritDefaults(db.realm, db.defaults.realm) |
end |
return db.realm |
elseif key == "server" then |
if type(db.raw.servers) ~= "table" then |
db.raw.servers = {} |
end |
local id = server |
if type(db.raw.servers[id]) ~= "table" then |
db.raw.servers[id] = {} |
end |
rawset(db, 'server', db.raw.servers[id]) |
if db.defaults and db.defaults.server then |
inheritDefaults(db.server, db.defaults.server) |
end |
return db.server |
elseif key == "account" then |
if type(db.raw.account) ~= "table" then |
db.raw.account = {} |
end |
rawset(db, 'account', db.raw.account) |
if db.defaults and db.defaults.account then |
inheritDefaults(db.account, db.defaults.account) |
end |
return db.account |
elseif key == "faction" then |
if type(db.raw.factions) ~= "table" then |
db.raw.factions = {} |
end |
local id = faction |
if type(db.raw.factions[id]) ~= "table" then |
db.raw.factions[id] = {} |
end |
rawset(db, 'faction', db.raw.factions[id]) |
if db.defaults and db.defaults.faction then |
inheritDefaults(db.faction, db.defaults.faction) |
end |
return db.faction |
elseif key == "class" then |
if type(db.raw.classes) ~= "table" then |
db.raw.classes = {} |
end |
local id = classID |
if type(db.raw.classes[id]) ~= "table" then |
db.raw.classes[id] = {} |
end |
rawset(db, 'class', db.raw.classes[id]) |
if db.defaults and db.defaults.class then |
inheritDefaults(db.class, db.defaults.class) |
end |
return db.class |
elseif key == "profile" then |
if type(db.raw.profiles) ~= "table" then |
db.raw.profiles = setmetatable({}, caseInsensitive_mt) |
else |
setmetatable(db.raw.profiles, caseInsensitive_mt) |
end |
local id = db.raw.currentProfile[charID] |
if id == "char" then |
id = "char/" .. charID |
elseif id == "class" then |
id = "class/" .. classID |
elseif id == "realm" then |
id = "realm/" .. realmID |
end |
if type(db.raw.profiles[id]) ~= "table" then |
db.raw.profiles[id] = {} |
end |
rawset(db, 'profile', db.raw.profiles[id]) |
if db.defaults and db.defaults.profile then |
inheritDefaults(db.profile, db.defaults.profile) |
end |
return db.profile |
elseif key == "raw" or key == "defaults" or key == "name" or key == "charName" or key == "namespaces" then |
return nil |
end |
error(("Cannot access key %q in db table. You may want to use db.profile[%q]"):format(tostring(key), tostring(key)), 2) |
end, __newindex = function(db, key, value) |
error(("Cannot access key %q in db table. You may want to use db.profile[%q]"):format(tostring(key), tostring(key)), 2) |
end } |
local function RecalculateAceDBCopyFromList(target) |
local db = target.db |
local t = target['acedb-profile-copylist'] |
for k,v in pairs(t) do |
t[k] = nil |
end |
local _,currentProfile = AceDB.GetProfile(target) |
if db and db.raw then |
if db.raw.profiles then |
for k in pairs(db.raw.profiles) do |
if currentProfile ~= k then |
if k:find("^char/") then |
local name = k:sub(6) |
local player, realm = name:match("^(.*) %- (.*)$") |
if player then |
name = PLAYER_OF_REALM:format(player, realm) |
end |
t[k] = CHARACTER_COLON .. name |
elseif k:find("^realm/") then |
local name = k:sub(7) |
t[k] = REALM_COLON .. name |
elseif k:find("^class/") then |
local name = k:sub(7) |
t[k] = CLASS_COLON .. name |
else |
t[k] = k |
end |
end |
end |
end |
if db.raw.namespaces then |
for _,n in pairs(db.raw.namespaces) do |
if n.profiles then |
for k in pairs(n.profiles) do |
if currentProfile ~= k then |
if k:find('^char/') then |
local name = k:sub(6) |
local player, realm = name:match("^(.*) %- (.*)$") |
if player then |
name = PLAYER_OF_REALM:format(player, realm) |
end |
t[k] = CHARACTER_COLON .. name |
elseif k:find('^realm/') then |
local name = k:sub(7) |
t[k] = REALM_COLON .. name |
elseif k:find('^class/') then |
local name = k:sub(7) |
t[k] = CLASS_COLON .. name |
else |
t[k] = k |
end |
end |
end |
end |
end |
end |
end |
if t.Default then |
t.Default = DEFAULT |
end |
if t.Alternative then |
t.Alternative = ALTERNATIVE |
end |
end |
local function RecalculateAceDBProfileList(target) |
local t = target['acedb-profile-list'] |
for k,v in pairs(t) do |
t[k] = nil |
end |
t.char = CHARACTER_COLON .. PLAYER_OF_REALM:format(UnitName("player"), server) |
t.realm = REALM_COLON .. realmID |
t.class = CLASS_COLON .. classID |
t.Default = DEFAULT |
local db = target.db |
if db and db.raw then |
if db.raw.profiles then |
for k in pairs(db.raw.profiles) do |
if not k:find("^char/") and not k:find("^realm/") and not k:find("^class/") then |
t[k] = k |
end |
end |
end |
if db.raw.namespaces then |
for _,n in pairs(db.raw.namespaces) do |
if n.profiles then |
for k in pairs(n.profiles) do |
if not k:find("^char/") and not k:find("^realm/") and not k:find("^class/") then |
t[k] = k |
end |
end |
end |
end |
end |
local curr = db.raw.currentProfile and db.raw.currentProfile[charID] |
if curr and not t[curr] then |
t[curr] = curr |
end |
end |
if t.Alternative then |
t.Alternative = ALTERNATIVE |
end |
end |
local CrawlForSerialization |
local CrawlForDeserialization |
local function SerializeObject(o) |
local t = { o:Serialize() } |
CrawlForSerialization(t) |
t[0] = o.class:GetLibraryVersion() |
return t |
end |
local function DeserializeObject(t) |
CrawlForDeserialization(t) |
local className = t[0] |
t[0] = nil |
return AceLibrary(className):Deserialize(unpack(t)) |
end |
local function IsSerializable(t) |
return AceOO.inherits(t, AceOO.Class) and t.class and type(t.class.Deserialize) == "function" and type(t.Serialize) == "function" and type(t.class.GetLibraryVersion) == "function" |
end |
function CrawlForSerialization(t) |
local tmp = new() |
for k,v in pairs(t) do |
tmp[k] = v |
end |
for k,v in pairs(tmp) do |
if type(v) == "table" and type(rawget(v, 0)) ~= "userdata" then |
if IsSerializable(v) then |
v = SerializeObject(v) |
t[k] = v |
else |
CrawlForSerialization(v) |
end |
end |
if type(k) == "table" and type(rawget(k, 0)) ~= "userdata" then |
if IsSerializable(k) then |
t[k] = nil |
t[SerializeObject(k)] = v |
else |
CrawlForSerialization(k) |
end |
end |
tmp[k] = nil |
k = nil |
end |
tmp = del(tmp) |
end |
local function IsDeserializable(t) |
return type(rawget(t, 0)) == "string" and AceLibrary:HasInstance(rawget(t, 0)) |
end |
function CrawlForDeserialization(t) |
local tmp = new() |
for k,v in pairs(t) do |
tmp[k] = v |
end |
for k,v in pairs(tmp) do |
if type(v) == "table" then |
if IsDeserializable(v) then |
t[k] = DeserializeObject(v) |
del(v) |
v = t[k] |
elseif type(rawget(v, 0)) ~= "userdata" then |
CrawlForDeserialization(v) |
end |
end |
if type(k) == "table" then |
if IsDeserializable(k) then |
t[k] = nil |
t[DeserializeObject(k)] = v |
del(k) |
elseif type(rawget(k, 0)) ~= "userdata" then |
CrawlForDeserialization(k) |
end |
end |
tmp[k] = nil |
k = nil |
end |
tmp = del(tmp) |
end |
local namespace_mt = { __index = function(namespace, key) |
local db = namespace.db |
local name = namespace.name |
if key == "char" then |
if db.charName then |
if type(_G[db.charName]) ~= "table" then |
_G[db.charName] = {} |
end |
if type(_G[db.charName].namespaces) ~= "table" then |
_G[db.charName].namespaces = {} |
end |
if type(_G[db.charName].namespaces[name]) ~= "table" then |
_G[db.charName].namespaces[name] = {} |
end |
rawset(namespace, 'char', _G[db.charName].namespaces[name]) |
else |
if type(db.raw.namespaces) ~= "table" then |
db.raw.namespaces = {} |
end |
if type(db.raw.namespaces[name]) ~= "table" then |
db.raw.namespaces[name] = {} |
end |
if type(db.raw.namespaces[name].chars) ~= "table" then |
db.raw.namespaces[name].chars = {} |
end |
local id = charID |
if type(db.raw.namespaces[name].chars[id]) ~= "table" then |
db.raw.namespaces[name].chars[id] = {} |
end |
rawset(namespace, 'char', db.raw.namespaces[name].chars[id]) |
end |
if namespace.defaults and namespace.defaults.char then |
inheritDefaults(namespace.char, namespace.defaults.char) |
end |
return namespace.char |
elseif key == "realm" then |
if type(db.raw.namespaces) ~= "table" then |
db.raw.namespaces = {} |
end |
if type(db.raw.namespaces[name]) ~= "table" then |
db.raw.namespaces[name] = {} |
end |
if type(db.raw.namespaces[name].realms) ~= "table" then |
db.raw.namespaces[name].realms = {} |
end |
local id = realmID |
if type(db.raw.namespaces[name].realms[id]) ~= "table" then |
db.raw.namespaces[name].realms[id] = {} |
end |
rawset(namespace, 'realm', db.raw.namespaces[name].realms[id]) |
if namespace.defaults and namespace.defaults.realm then |
inheritDefaults(namespace.realm, namespace.defaults.realm) |
end |
return namespace.realm |
elseif key == "server" then |
if type(db.raw.namespaces) ~= "table" then |
db.raw.namespaces = {} |
end |
if type(db.raw.namespaces[name]) ~= "table" then |
db.raw.namespaces[name] = {} |
end |
if type(db.raw.namespaces[name].servers) ~= "table" then |
db.raw.namespaces[name].servers = {} |
end |
local id = server |
if type(db.raw.namespaces[name].servers[id]) ~= "table" then |
db.raw.namespaces[name].servers[id] = {} |
end |
rawset(namespace, 'server', db.raw.namespaces[name].servers[id]) |
if namespace.defaults and namespace.defaults.server then |
inheritDefaults(namespace.server, namespace.defaults.server) |
end |
return namespace.server |
elseif key == "account" then |
if type(db.raw.namespaces) ~= "table" then |
db.raw.namespaces = {} |
end |
if type(db.raw.namespaces[name]) ~= "table" then |
db.raw.namespaces[name] = {} |
end |
if type(db.raw.namespaces[name].account) ~= "table" then |
db.raw.namespaces[name].account = {} |
end |
rawset(namespace, 'account', db.raw.namespaces[name].account) |
if namespace.defaults and namespace.defaults.account then |
inheritDefaults(namespace.account, namespace.defaults.account) |
end |
return namespace.account |
elseif key == "faction" then |
if type(db.raw.namespaces) ~= "table" then |
db.raw.namespaces = {} |
end |
if type(db.raw.namespaces[name]) ~= "table" then |
db.raw.namespaces[name] = {} |
end |
if type(db.raw.namespaces[name].factions) ~= "table" then |
db.raw.namespaces[name].factions = {} |
end |
local id = faction |
if type(db.raw.namespaces[name].factions[id]) ~= "table" then |
db.raw.namespaces[name].factions[id] = {} |
end |
rawset(namespace, 'faction', db.raw.namespaces[name].factions[id]) |
if namespace.defaults and namespace.defaults.faction then |
inheritDefaults(namespace.faction, namespace.defaults.faction) |
end |
return namespace.faction |
elseif key == "class" then |
if type(db.raw.namespaces) ~= "table" then |
db.raw.namespaces = {} |
end |
if type(db.raw.namespaces[name]) ~= "table" then |
db.raw.namespaces[name] = {} |
end |
if type(db.raw.namespaces[name].classes) ~= "table" then |
db.raw.namespaces[name].classes = {} |
end |
local id = classID |
if type(db.raw.namespaces[name].classes[id]) ~= "table" then |
db.raw.namespaces[name].classes[id] = {} |
end |
rawset(namespace, 'class', db.raw.namespaces[name].classes[id]) |
if namespace.defaults and namespace.defaults.class then |
inheritDefaults(namespace.class, namespace.defaults.class) |
end |
return namespace.class |
elseif key == "profile" then |
if type(db.raw.namespaces) ~= "table" then |
db.raw.namespaces = {} |
end |
if type(db.raw.namespaces[name]) ~= "table" then |
db.raw.namespaces[name] = {} |
end |
if type(db.raw.namespaces[name].profiles) ~= "table" then |
db.raw.namespaces[name].profiles = setmetatable({}, caseInsensitive_mt) |
else |
setmetatable(db.raw.namespaces[name].profiles, caseInsensitive_mt) |
end |
local id = db.raw.currentProfile[charID] |
if id == "char" then |
id = "char/" .. charID |
elseif id == "class" then |
id = "class/" .. classID |
elseif id == "realm" then |
id = "realm/" .. realmID |
end |
if type(db.raw.namespaces[name].profiles[id]) ~= "table" then |
db.raw.namespaces[name].profiles[id] = {} |
end |
rawset(namespace, 'profile', db.raw.namespaces[name].profiles[id]) |
if namespace.defaults and namespace.defaults.profile then |
inheritDefaults(namespace.profile, namespace.defaults.profile) |
end |
return namespace.profile |
elseif key == "defaults" or key == "name" or key == "db" then |
return nil |
end |
error(("Cannot access key %q in db table. You may want to use db.profile[%q]"):format(tostring(key), tostring(key)), 2) |
end, __newindex = function(db, key, value) |
error(("Cannot access key %q in db table. You may want to use db.profile[%q]"):format(tostring(key), tostring(key)), 2) |
end } |
local tmp = {} |
function AceDB:InitializeDB(addonName) |
local db = self.db |
if not db then |
if addonName then |
AceDB.addonsLoaded[addonName] = true |
end |
return |
end |
if db.raw then |
-- someone manually initialized |
return |
end |
if type(_G[db.name]) ~= "table" then |
_G[db.name] = {} |
else |
CrawlForDeserialization(_G[db.name]) |
end |
if type(_G[db.charName]) == "table" then |
CrawlForDeserialization(_G[db.charName]) |
end |
rawset(db, 'raw', _G[db.name]) |
if not db.raw.currentProfile then |
db.raw.currentProfile = {} |
else |
for k,v in pairs(db.raw.currentProfile) do |
tmp[convertFromOldCharID(k)] = v |
db.raw.currentProfile[k] = nil |
end |
for k,v in pairs(tmp) do |
db.raw.currentProfile[k] = v |
tmp[k] = nil |
end |
end |
if not db.raw.currentProfile[charID] then |
db.raw.currentProfile[charID] = AceDB.registry[self] or "Default" |
end |
if db.raw.profiles then |
for k,v in pairs(db.raw.profiles) do |
local new_k = k |
if k:find("^char/") then |
new_k = "char/" .. convertFromOldCharID(k:sub(6)) |
end |
tmp[new_k] = v |
db.raw.profiles[k] = nil |
end |
for k,v in pairs(tmp) do |
db.raw.profiles[k] = v |
tmp[k] = nil |
end |
end |
if db.raw.disabledModules then -- AceModuleCore-2.0 |
for k,v in pairs(db.raw.disabledModules) do |
local new_k = k |
if k:find("^char/") then |
new_k = "char/" .. convertFromOldCharID(k:sub(6)) |
end |
tmp[new_k] = v |
db.raw.disabledModules[k] = nil |
end |
for k,v in pairs(tmp) do |
db.raw.disabledModules[k] = v |
tmp[k] = nil |
end |
end |
if db.raw.chars then |
for k,v in pairs(db.raw.chars) do |
tmp[convertFromOldCharID(k)] = v |
db.raw.chars[k] = nil |
end |
for k,v in pairs(tmp) do |
db.raw.chars[k] = v |
tmp[k] = nil |
end |
end |
if db.raw.namespaces then |
for l,u in pairs(db.raw.namespaces) do |
if u.chars then |
for k,v in pairs(u.chars) do |
tmp[convertFromOldCharID(k)] = v |
u.chars[k] = nil |
end |
for k,v in pairs(tmp) do |
u.chars[k] = v |
tmp[k] = nil |
end |
end |
end |
end |
if db.raw.disabled then |
setmetatable(db.raw.disabled, caseInsensitive_mt) |
end |
if self['acedb-profile-copylist'] then |
RecalculateAceDBCopyFromList(self) |
end |
if self['acedb-profile-list'] then |
RecalculateAceDBProfileList(self) |
end |
setmetatable(db, db_mt) |
end |
function AceDB:OnEmbedInitialize(target, name) |
if name then |
self:ADDON_LOADED(name) |
end |
self.InitializeDB(target, name) |
end |
function AceDB:RegisterDB(name, charName, defaultProfile) |
AceDB:argCheck(name, 2, "string") |
AceDB:argCheck(charName, 3, "string", "nil") |
AceDB:argCheck(defaultProfile, 4, "string", "nil") |
if self.db then |
AceDB:error("Cannot call \"RegisterDB\" if self.db is set.") |
end |
local stack = debugstack() |
local addonName = stack:gsub(".-\n.-\\AddOns\\(.-)\\.*", "%1") |
self.db = { |
name = name, |
charName = charName |
} |
AceDB.registry[self] = defaultProfile or "Default" |
if AceDB.addonsLoaded[addonName] then |
AceDB.InitializeDB(self, addonName) |
else |
AceDB.addonsToBeInitialized[self] = addonName |
end |
end |
function AceDB:RegisterDefaults(kind, defaults, a3) |
local name |
if a3 then |
name, kind, defaults = kind, defaults, a3 |
AceDB:argCheck(name, 2, "string") |
AceDB:argCheck(kind, 3, "string") |
AceDB:argCheck(defaults, 4, "table") |
else |
AceDB:argCheck(kind, 2, "string") |
AceDB:argCheck(defaults, 3, "table") |
end |
if kind ~= "char" and kind ~= "class" and kind ~= "profile" and kind ~= "account" and kind ~= "realm" and kind ~= "faction" and kind ~= "server" then |
AceDB:error("Bad argument #%d to `RegisterDefaults' (\"char\", \"class\", \"profile\", \"account\", \"realm\", \"server\", or \"faction\" expected, got %q)", a3 and 3 or 2, kind) |
end |
if type(self.db) ~= "table" or type(self.db.name) ~= "string" then |
AceDB:error("Cannot call \"RegisterDefaults\" unless \"RegisterDB\" has been previously called.") |
end |
local db |
if name then |
local namespace = self:AcquireDBNamespace(name) |
if namespace.defaults and namespace.defaults[kind] then |
AceDB:error("\"RegisterDefaults\" has already been called for %q::%q.", name, kind) |
end |
db = namespace |
else |
if self.db.defaults and self.db.defaults[kind] then |
AceDB:error("\"RegisterDefaults\" has already been called for %q.", kind) |
end |
db = self.db |
end |
if not db.defaults then |
rawset(db, 'defaults', {}) |
end |
db.defaults[kind] = defaults |
if rawget(db, kind) then |
inheritDefaults(db[kind], defaults) |
end |
end |
function AceDB:ResetDB(kind, a2) |
local name |
if a2 then |
name, kind = kind, a2 |
AceDB:argCheck(name, 2, "nil", "string") |
AceDB:argCheck(kind, 3, "nil", "string") |
else |
AceDB:argCheck(kind, 2, "nil", "string") |
if kind ~= "char" and kind ~= "class" and kind ~= "profile" and kind ~= "account" and kind ~= "realm" and kind ~= "faction" and kind ~= "server" then |
name, kind = kind, nil |
end |
end |
if not self.db or not self.db.raw then |
AceDB:error("Cannot call \"ResetDB\" before \"RegisterDB\" has been called and before \"ADDON_LOADED\" has been fired.") |
end |
local db = self.db |
if not kind then |
if not name then |
if db.charName then |
_G[db.charName] = nil |
end |
_G[db.name] = nil |
rawset(db, 'raw', nil) |
AceDB.InitializeDB(self) |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'account', nil) |
rawset(v, 'char', nil) |
rawset(v, 'class', nil) |
rawset(v, 'profile', nil) |
rawset(v, 'realm', nil) |
rawset(v, 'server', nil) |
rawset(v, 'faction', nil) |
end |
end |
else |
if db.raw.namespaces then |
db.raw.namespaces[name] = nil |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'account', nil) |
rawset(v, 'char', nil) |
rawset(v, 'class', nil) |
rawset(v, 'profile', nil) |
rawset(v, 'realm', nil) |
rawset(v, 'server', nil) |
rawset(v, 'faction', nil) |
end |
end |
end |
elseif kind == "account" then |
if name then |
db.raw.account = nil |
rawset(db, 'account', nil) |
if db.raw.namespaces then |
for name,v in pairs(db.raw.namespaces) do |
v.account = nil |
end |
end |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'account', nil) |
end |
end |
else |
if db.raw.namespaces and db.raw.namespaces[name] then |
db.raw.namespaces[name].account = nil |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'account', nil) |
end |
end |
end |
elseif kind == "char" then |
if name then |
if db.charName then |
_G[db.charName] = nil |
else |
if db.raw.chars then |
db.raw.chars[charID] = nil |
end |
if db.raw.namespaces then |
for name,v in pairs(db.raw.namespaces) do |
if v.chars then |
v.chars[charID] = nil |
end |
end |
end |
end |
rawset(db, 'char', nil) |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'char', nil) |
end |
end |
else |
if db.charName then |
local x = _G[db.charName] |
if x.namespaces then |
x.namespaces[name] = nil |
end |
else |
if db.raw.namespaces then |
local v = db.namespaces[name] |
if v and v.chars then |
v.chars[charID] = nil |
end |
end |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'char', nil) |
end |
end |
end |
elseif kind == "realm" then |
if not name then |
if db.raw.realms then |
db.raw.realms[realmID] = nil |
end |
rawset(db, 'realm', nil) |
if db.raw.namespaces then |
for name,v in pairs(db.raw.namespaces) do |
if v.realms then |
v.realms[realmID] = nil |
end |
end |
end |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'realm', nil) |
end |
end |
else |
if db.raw.namespaces then |
local v = db.raw.namespaces[name] |
if v and v.realms then |
v.realms[realmID] = nil |
end |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'realm', nil) |
end |
end |
end |
elseif kind == "server" then |
if not name then |
if db.raw.servers then |
db.raw.servers[server] = nil |
end |
rawset(db, 'server', nil) |
if db.raw.namespaces then |
for name,v in pairs(db.raw.namespaces) do |
if v.servers then |
v.servers[server] = nil |
end |
end |
end |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'server', nil) |
end |
end |
else |
if db.raw.namespaces then |
local v = db.raw.namespaces[name] |
if v and v.servers then |
v.servers[server] = nil |
end |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'server', nil) |
end |
end |
end |
elseif kind == "faction" then |
if not name then |
if db.raw.factions then |
db.raw.factions[faction] = nil |
end |
rawset(db, 'faction', nil) |
if db.raw.namespaces then |
for name,v in pairs(db.raw.namespaces) do |
if v.factions then |
v.factions[faction] = nil |
end |
end |
end |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'faction', nil) |
end |
end |
else |
if db.raw.namespaces then |
local v = db.raw.namespaces[name] |
if v and v.factions then |
v.factions[faction] = nil |
end |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'faction', nil) |
end |
end |
end |
elseif kind == "class" then |
if not name then |
if db.raw.realms then |
db.raw.realms[classID] = nil |
end |
rawset(db, 'class', nil) |
if db.raw.namespaces then |
for name,v in pairs(db.raw.namespaces) do |
if v.classes then |
v.classes[classID] = nil |
end |
end |
end |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'class', nil) |
end |
end |
else |
if db.raw.namespaces then |
local v = db.raw.namespaces[name] |
if v and v.classes then |
v.classes[classID] = nil |
end |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'class', nil) |
end |
end |
end |
elseif kind == "profile" then |
local id = db.raw.currentProfile and db.raw.currentProfile[charID] or AceDB.registry[self] or "Default" |
if id == "char" then |
id = "char/" .. charID |
elseif id == "class" then |
id = "class/" .. classID |
elseif id == "realm" then |
id = "realm/" .. realmID |
end |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedProfileDisable) == "function" then |
safecall(mixin.OnEmbedProfileDisable, mixin, self, id) |
end |
end |
end |
current = current.super |
end |
if type(self.OnProfileDisable) == "function" then |
safecall(self.OnProfileDisable, self, id) |
end |
local active = self:IsActive() |
if not name then |
if db.raw.profiles then |
db.raw.profiles[id] = nil |
end |
rawset(db, 'profile', nil) |
if db.raw.namespaces then |
for name,v in pairs(db.raw.namespaces) do |
if v.profiles then |
v.profiles[id] = nil |
end |
end |
end |
if db.namespaces then |
for name,v in pairs(db.namespaces) do |
rawset(v, 'profile', nil) |
end |
end |
else |
if db.raw.namespaces then |
local v = db.raw.namespaces[name] |
if v and v.profiles then |
v.profiles[id] = nil |
end |
end |
if db.namespaces then |
local v = db.namespaces[name] |
if v then |
rawset(v, 'profile', nil) |
end |
end |
end |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedProfileEnable) == "function" then |
safecall(mixin.OnEmbedProfileEnable, mixin, self, id) |
end |
end |
end |
current = current.super |
end |
if type(self.OnProfileEnable) == "function" then |
safecall(self.OnProfileEnable, self, id) |
end |
local newactive = self:IsActive() |
if active ~= newactive then |
local first = nil |
if AceOO.inherits(self, "AceAddon-2.0") then |
local AceAddon = AceLibrary("AceAddon-2.0") |
if not AceAddon.addonsStarted[self] then |
return |
end |
if AceAddon.addonsEnabled and not AceAddon.addonsEnabled[self] then |
first = true |
end |
end |
if newactive then |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedEnable) == "function" then |
safecall(mixin.OnEmbedEnable, mixin, self, first) |
end |
end |
end |
current = current.super |
end |
if type(self.OnEnable) == "function" then |
safecall(self.OnEnable, self, first) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonEnabled", self, first) |
end |
else |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedDisable) == "function" then |
safecall(mixin.OnEmbedDisable, mixin, self) |
end |
end |
end |
current = current.super |
end |
if type(self.OnDisable) == "function" then |
safecall(self.OnDisable, self) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonDisabled", self) |
end |
end |
end |
end |
end |
local function cleanDefaults(t, defaults) |
if defaults then |
for k,v in pairs(defaults) do |
if k == "*" then |
if type(v) == "table" then |
for k in pairs(t) do |
if (defaults[k] == nil or k == "*") and type(t[k]) == "table" then |
if cleanDefaults(t[k], v) then |
t[k] = nil |
end |
end |
end |
else |
for k in pairs(t) do |
if (defaults[k] == nil or k == "*") and t[k] == v then |
t[k] = nil |
end |
end |
end |
else |
if type(v) == "table" then |
if type(t[k]) == "table" then |
if cleanDefaults(t[k], v) then |
t[k] = nil |
end |
end |
elseif t[k] == v then |
t[k] = nil |
end |
end |
end |
end |
return t and not next(t) |
end |
function AceDB:GetProfile() |
if not self.db or not self.db.raw then |
return nil |
end |
if not self.db.raw.currentProfile then |
self.db.raw.currentProfile = {} |
end |
if not self.db.raw.currentProfile[charID] then |
self.db.raw.currentProfile[charID] = AceDB.registry[self] or "Default" |
end |
local profile = self.db.raw.currentProfile[charID] |
if profile == "char" then |
return "char", "char/" .. charID |
elseif profile == "class" then |
return "class", "class/" .. classID |
elseif profile == "realm" then |
return "realm", "realm/" .. realmID |
end |
return profile, profile |
end |
local function copyTable(to, from) |
setmetatable(to, nil) |
for k,v in pairs(from) do |
if type(k) == "table" then |
k = copyTable({}, k) |
end |
if type(v) == "table" then |
v = copyTable({}, v) |
end |
to[k] = v |
end |
setmetatable(to, from) |
return to |
end |
function AceDB:SetProfile(name) |
AceDB:argCheck(name, 2, "string") |
if not self.db or not self.db.raw then |
AceDB:error("Cannot call \"SetProfile\" before \"RegisterDB\" has been called and before \"ADDON_LOADED\" has been fired.") |
end |
local db = self.db |
local lowerName = name:lower() |
if lowerName:find("^char/") or lowerName:find("^realm/") or lowerName:find("^class/") then |
if lowerName:find("^char/") then |
name = "char" |
else |
name = lowerName:sub(1, 5) |
end |
lowerName = name:lower() |
end |
local oldName = db.raw.currentProfile[charID] |
if oldName:lower() == name:lower() then |
return |
end |
local oldProfileData = db.profile |
local realName = name |
if lowerName == "char" then |
realName = name .. "/" .. charID |
elseif lowerName == "realm" then |
realName = name .. "/" .. realmID |
elseif lowerName == "class" then |
realName = name .. "/" .. classID |
end |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedProfileDisable) == "function" then |
safecall(mixin.OnEmbedProfileDisable, mixin, self, realName) |
end |
end |
end |
current = current.super |
end |
if type(self.OnProfileDisable) == "function" then |
safecall(self.OnProfileDisable, self, realName) |
end |
local active = self:IsActive() |
db.raw.currentProfile[charID] = name |
rawset(db, 'profile', nil) |
if db.namespaces then |
for k,v in pairs(db.namespaces) do |
rawset(v, 'profile', nil) |
end |
end |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedProfileEnable) == "function" then |
safecall(mixin.OnEmbedProfileEnable, mixin, self, oldName, oldProfileData) |
end |
end |
end |
current = current.super |
end |
if type(self.OnProfileEnable) == "function" then |
safecall(self.OnProfileEnable, self, oldName, oldProfileData) |
end |
if cleanDefaults(oldProfileData, db.defaults and db.defaults.profile) then |
db.raw.profiles[oldName] = nil |
if not next(db.raw.profiles) then |
db.raw.profiles = nil |
end |
end |
local newactive = self:IsActive() |
if active ~= newactive then |
local first = nil |
if AceOO.inherits(self, "AceAddon-2.0") then |
local AceAddon = AceLibrary("AceAddon-2.0") |
if not AceAddon.addonsStarted[self] then |
return |
end |
if AceAddon.addonsEnabled and not AceAddon.addonsEnabled[self] then |
first = true |
end |
end |
if newactive then |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedEnable) == "function" then |
safecall(mixin.OnEmbedEnable, mixin, self, first) |
end |
end |
end |
current = current.super |
end |
if type(self.OnEnable) == "function" then |
safecall(self.OnEnable, self, first) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonEnabled", self, first) |
end |
else |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedDisable) == "function" then |
safecall(mixin.OnEmbedDisable, mixin, self) |
end |
end |
end |
current = current.super |
end |
if type(self.OnDisable) == "function" then |
safecall(self.OnDisable, self) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonDisabled", self) |
end |
end |
end |
if self['acedb-profile-list'] then |
RecalculateAceDBProfileList(self) |
end |
if self['acedb-profile-copylist'] then |
RecalculateAceDBCopyFromList(self) |
end |
if Dewdrop then |
Dewdrop:Refresh(1) |
Dewdrop:Refresh(2) |
Dewdrop:Refresh(3) |
Dewdrop:Refresh(4) |
Dewdrop:Refresh(5) |
end |
end |
function AceDB:CopyProfileFrom(copyFrom) |
AceDB:argCheck(copyFrom, 2, "string") |
if not self.db or not self.db.raw then |
AceDB:error("Cannot call \"CopyProfileFrom\" before \"RegisterDB\" has been called and before \"ADDON_LOADED\" has been fired.") |
end |
local db = self.db |
local lowerCopyFrom = copyFrom:lower() |
if not db.raw.profiles or not db.raw.profiles[copyFrom] then |
local good = false |
if db.raw.namespaces then |
for _,n in pairs(db.raw.namespaces) do |
if n.profiles and n.profiles[copyFrom] then |
good = true |
break |
end |
end |
end |
if not good then |
AceDB:error("Cannot copy from profile %q, it does not exist.", copyFrom) |
end |
end |
local currentProfile = db.raw.currentProfile[charID] |
if currentProfile:lower() == lowerCopyFrom then |
AceDB:error("Cannot copy from profile %q, it is currently in use.", copyFrom) |
end |
local oldProfileData = db.profile |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedProfileDisable) == "function" then |
safecall(mixin.OnEmbedProfileDisable, mixin, self, currentProfile) |
end |
end |
end |
current = current.super |
end |
if type(self.OnProfileDisable) == "function" then |
safecall(self.OnProfileDisable, self, realName) |
end |
local active = self:IsActive() |
for k,v in pairs(db.profile) do |
db.profile[k] = nil |
end |
if db.raw.profiles[copyFrom] then |
copyTable(db.profile, db.raw.profiles[copyFrom]) |
end |
inheritDefaults(db.profile, db.defaults and db.defaults.profile) |
if db.namespaces then |
for l,u in pairs(db.namespaces) do |
for k,v in pairs(u.profile) do |
u.profile[k] = nil |
end |
if db.raw.namespaces[l].profiles[copyFrom] then |
copyTable(u.profile, db.raw.namespaces[l].profiles[copyFrom]) |
end |
inheritDefaults(u.profile, u.defaults and u.defaults.profile) |
end |
end |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedProfileEnable) == "function" then |
safecall(mixin.OnEmbedProfileEnable, mixin, self, copyFrom, oldProfileData, copyFrom) |
end |
end |
end |
current = current.super |
end |
if type(self.OnProfileEnable) == "function" then |
safecall(self.OnProfileEnable, self, copyFrom, oldProfileData, copyFrom) |
end |
local newactive = self:IsActive() |
if active ~= newactive then |
if AceOO.inherits(self, "AceAddon-2.0") then |
local AceAddon = AceLibrary("AceAddon-2.0") |
if not AceAddon.addonsStarted[self] then |
return |
end |
end |
if newactive then |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedEnable) == "function" then |
safecall(mixin.OnEmbedEnable, mixin, self) |
end |
end |
end |
current = current.super |
end |
if type(self.OnEnable) == "function" then |
safecall(self.OnEnable, self) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonEnabled", self) |
end |
else |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedDisable) == "function" then |
safecall(mixin.OnEmbedDisable, mixin, self) |
end |
end |
end |
current = current.super |
end |
if type(self.OnDisable) == "function" then |
safecall(self.OnDisable, self) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonDisabled", self) |
end |
end |
end |
if self['acedb-profile-list'] then |
RecalculateAceDBProfileList(self) |
end |
if self['acedb-profile-copylist'] then |
RecalculateAceDBCopyFromList(self) |
end |
if Dewdrop then |
Dewdrop:Refresh(1) |
Dewdrop:Refresh(2) |
Dewdrop:Refresh(3) |
Dewdrop:Refresh(4) |
Dewdrop:Refresh(5) |
end |
end |
function AceDB:IsActive() |
return not self.db or not self.db.raw or not self.db.raw.disabled or not self.db.raw.disabled[self.db.raw.currentProfile[charID]] |
end |
function AceDB:ToggleActive(state) |
AceDB:argCheck(state, 2, "boolean", "nil") |
if not self.db or not self.db.raw then |
AceDB:error("Cannot call \"ToggleActive\" before \"RegisterDB\" has been called and before \"ADDON_LOADED\" has been fired.") |
end |
local db = self.db |
if not db.raw.disabled then |
db.raw.disabled = setmetatable({}, caseInsensitive_mt) |
end |
local profile = db.raw.currentProfile[charID] |
local disable |
if state == nil then |
disable = not db.raw.disabled[profile] |
else |
disable = not state |
if disable == db.raw.disabled[profile] then |
return |
end |
end |
db.raw.disabled[profile] = disable or nil |
if AceOO.inherits(self, "AceAddon-2.0") then |
local AceAddon = AceLibrary("AceAddon-2.0") |
if not AceAddon.addonsStarted[self] then |
return |
end |
end |
if not disable then |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedEnable) == "function" then |
safecall(mixin.OnEmbedEnable, mixin, self) |
end |
end |
end |
current = current.super |
end |
if type(self.OnEnable) == "function" then |
safecall(self.OnEnable, self) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonEnabled", self) |
end |
else |
local current = self.class |
while current and current ~= AceOO.Class do |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedDisable) == "function" then |
safecall(mixin.OnEmbedDisable, mixin, self) |
end |
end |
end |
current = current.super |
end |
if type(self.OnDisable) == "function" then |
safecall(self.OnDisable, self) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonDisabled", self) |
end |
end |
return not disable |
end |
function AceDB:embed(target) |
self.super.embed(self, target) |
if not AceEvent then |
AceDB:error(MAJOR_VERSION .. " requires AceEvent-2.0") |
end |
end |
function AceDB:ADDON_LOADED(name) |
AceDB.addonsLoaded[name] = true |
for addon, addonName in pairs(AceDB.addonsToBeInitialized) do |
if name == addonName then |
AceDB.InitializeDB(addon, name) |
AceDB.addonsToBeInitialized[addon] = nil |
end |
end |
end |
function AceDB:PLAYER_LOGOUT() |
for addon, defaultProfile in pairs(AceDB.registry) do |
local db = addon.db |
if db then |
setmetatable(db, nil) |
CrawlForSerialization(db.raw) |
if type(_G[db.charName]) == "table" then |
CrawlForSerialization(_G[db.charName]) |
end |
if db.char and cleanDefaults(db.char, db.defaults and db.defaults.char) then |
if db.charName and _G[db.charName] and _G[db.charName].global == db.char then |
_G[db.charName].global = nil |
if not next(_G[db.charName]) then |
_G[db.charName] = nil |
end |
else |
if db.raw.chars then |
db.raw.chars[charID] = nil |
if not next(db.raw.chars) then |
db.raw.chars = nil |
end |
end |
end |
end |
if db.realm and cleanDefaults(db.realm, db.defaults and db.defaults.realm) then |
if db.raw.realms then |
db.raw.realms[realmID] = nil |
if not next(db.raw.realms) then |
db.raw.realms = nil |
end |
end |
end |
if db.server and cleanDefaults(db.server, db.defaults and db.defaults.server) then |
if db.raw.servers then |
db.raw.servers[server] = nil |
if not next(db.raw.servers) then |
db.raw.servers = nil |
end |
end |
end |
if db.faction and cleanDefaults(db.faction, db.defaults and db.defaults.faction) then |
if db.raw.factions then |
db.raw.factions[faction] = nil |
if not next(db.raw.factions) then |
db.raw.factions = nil |
end |
end |
end |
if db.class and cleanDefaults(db.class, db.defaults and db.defaults.class) then |
if db.raw.classes then |
db.raw.classes[classID] = nil |
if not next(db.raw.classes) then |
db.raw.classes = nil |
end |
end |
end |
if db.account and cleanDefaults(db.account, db.defaults and db.defaults.account) then |
db.raw.account = nil |
end |
if db.profile and cleanDefaults(db.profile, db.defaults and db.defaults.profile) then |
if db.raw.profiles then |
db.raw.profiles[db.raw.currentProfile and db.raw.currentProfile[charID] or defaultProfile or "Default"] = nil |
if not next(db.raw.profiles) then |
db.raw.profiles = nil |
end |
end |
end |
if db.namespaces and db.raw.namespaces then |
for name,v in pairs(db.namespaces) do |
if db.raw.namespaces[name] then |
setmetatable(v, nil) |
if v.char and cleanDefaults(v.char, v.defaults and v.defaults.char) then |
if db.charName and _G[db.charName] and _G[db.charName].namespaces and _G[db.charName].namespaces[name] == v then |
_G[db.charName].namespaces[name] = nil |
if not next(_G[db.charName].namespaces) then |
_G[db.charName].namespaces = nil |
if not next(_G[db.charName]) then |
_G[db.charName] = nil |
end |
end |
else |
if db.raw.namespaces[name].chars then |
db.raw.namespaces[name].chars[charID] = nil |
if not next(db.raw.namespaces[name].chars) then |
db.raw.namespaces[name].chars = nil |
end |
end |
end |
end |
if v.realm and cleanDefaults(v.realm, v.defaults and v.defaults.realm) then |
if db.raw.namespaces[name].realms then |
db.raw.namespaces[name].realms[realmID] = nil |
if not next(db.raw.namespaces[name].realms) then |
db.raw.namespaces[name].realms = nil |
end |
end |
end |
if v.server and cleanDefaults(v.server, v.defaults and v.defaults.server) then |
if db.raw.namespaces[name].servers then |
db.raw.namespaces[name].servers[server] = nil |
if not next(db.raw.namespaces[name].servers) then |
db.raw.namespaces[name].servers = nil |
end |
end |
end |
if v.faction and cleanDefaults(v.faction, v.defaults and v.defaults.faction) then |
if db.raw.namespaces[name].factions then |
db.raw.namespaces[name].factions[faction] = nil |
if not next(db.raw.namespaces[name].factions) then |
db.raw.namespaces[name].factions = nil |
end |
end |
end |
if v.class and cleanDefaults(v.class, v.defaults and v.defaults.class) then |
if db.raw.namespaces[name].classes then |
db.raw.namespaces[name].classes[classID] = nil |
if not next(db.raw.namespaces[name].classes) then |
db.raw.namespaces[name].classes = nil |
end |
end |
end |
if v.account and cleanDefaults(v.account, v.defaults and v.defaults.account) then |
db.raw.namespaces[name].account = nil |
end |
if v.profile and cleanDefaults(v.profile, v.defaults and v.defaults.profile) then |
if db.raw.namespaces[name].profiles then |
db.raw.namespaces[name].profiles[db.raw.currentProfile and db.raw.currentProfile[charID] or defaultProfile or "Default"] = nil |
if not next(db.raw.namespaces[name].profiles) then |
db.raw.namespaces[name].profiles = nil |
end |
end |
end |
if not next(db.raw.namespaces[name]) then |
db.raw.namespaces[name] = nil |
end |
end |
end |
if not next(db.raw.namespaces) then |
db.raw.namespaces = nil |
end |
end |
if db.raw.disabled and not next(db.raw.disabled) then |
db.raw.disabled = nil |
end |
if db.raw.currentProfile then |
for k,v in pairs(db.raw.currentProfile) do |
if v:lower() == (defaultProfile or "Default"):lower() then |
db.raw.currentProfile[k] = nil |
end |
end |
if not next(db.raw.currentProfile) then |
db.raw.currentProfile = nil |
end |
end |
if _G[db.name] and not next(_G[db.name]) then |
_G[db.name] = nil |
end |
end |
end |
end |
function AceDB:AcquireDBNamespace(name) |
AceDB:argCheck(name, 2, "string") |
local db = self.db |
if not db then |
AceDB:error("Cannot call `AcquireDBNamespace' before `RegisterDB' has been called.", 2) |
end |
if not db.namespaces then |
rawset(db, 'namespaces', {}) |
end |
if not db.namespaces[name] then |
local namespace = {} |
db.namespaces[name] = namespace |
namespace.db = db |
namespace.name = name |
setmetatable(namespace, namespace_mt) |
end |
return db.namespaces[name] |
end |
function AceDB:GetAceOptionsDataTable(target) |
if not target['acedb-profile-list'] then |
target['acedb-profile-list'] = setmetatable({}, caseInsensitive_mt) |
RecalculateAceDBProfileList(target) |
end |
if not target['acedb-profile-copylist'] then |
target['acedb-profile-copylist'] = setmetatable({}, caseInsensitive_mt) |
RecalculateAceDBCopyFromList(target) |
end |
return { |
standby = { |
cmdName = STATE, |
guiName = ENABLED, |
name = ACTIVE, |
desc = TOGGLE_ACTIVE, |
type = "toggle", |
get = "IsActive", |
set = "ToggleActive", |
map = MAP_ACTIVESUSPENDED, |
order = -3, |
}, |
profile = { |
type = 'group', |
name = PROFILE, |
desc = SET_PROFILE, |
order = -3.5, |
get = "GetProfile", |
args = { |
choose = { |
guiName = CHOOSE_PROFILE_GUI, |
cmdName = PROFILE, |
desc = CHOOSE_PROFILE_DESC, |
type = 'text', |
get = "GetProfile", |
set = "SetProfile", |
validate = target['acedb-profile-list'] |
}, |
copy = { |
guiName = COPY_PROFILE_GUI, |
cmdName = PROFILE, |
desc = COPY_PROFILE_DESC, |
type = 'text', |
get = false, |
set = "CopyProfileFrom", |
validate = target['acedb-profile-copylist'], |
disabled = function() |
return not next(target['acedb-profile-copylist']) |
end, |
}, |
other = { |
guiName = OTHER_PROFILE_GUI, |
cmdName = PROFILE, |
desc = OTHER_PROFILE_DESC, |
usage = OTHER_PROFILE_USAGE, |
type = 'text', |
get = "GetProfile", |
set = "SetProfile", |
}, |
reset = { |
name = RESET_PROFILE, |
desc = RESET_PROFILE_DESC, |
type = 'execute', |
func = function() |
target:ResetDB('profile') |
end, |
confirm = true, |
} |
} |
}, |
} |
end |
local function activate(self, oldLib, oldDeactivate) |
AceDB = self |
AceEvent = AceLibrary:HasInstance("AceEvent-2.0") and AceLibrary("AceEvent-2.0") |
self.addonsToBeInitialized = oldLib and oldLib.addonsToBeInitialized or {} |
self.addonsLoaded = oldLib and oldLib.addonsLoaded or {} |
self.registry = oldLib and oldLib.registry or {} |
for k, v in pairs(self.registry) do |
if v == true then |
self.registry[k] = "Default" |
end |
end |
self:activate(oldLib, oldDeactivate) |
for t in pairs(self.embedList) do |
if t.db then |
rawset(t.db, 'char', nil) |
rawset(t.db, 'realm', nil) |
rawset(t.db, 'class', nil) |
rawset(t.db, 'account', nil) |
rawset(t.db, 'server', nil) |
rawset(t.db, 'faction', nil) |
rawset(t.db, 'profile', nil) |
setmetatable(t.db, db_mt) |
end |
end |
if oldLib then |
oldDeactivate(oldLib) |
end |
end |
local function external(self, major, instance) |
if major == "AceEvent-2.0" then |
AceEvent = instance |
AceEvent:embed(self) |
self:RegisterEvent("ADDON_LOADED") |
self:RegisterEvent("PLAYER_LOGOUT") |
elseif major == "Dewdrop-2.0" then |
Dewdrop = instance |
end |
end |
AceLibrary:Register(AceDB, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) |
AceDB = AceLibrary(MAJOR_VERSION) |
--[[ |
Name: AceAddon-2.0 |
Revision: $Rev: 28672 $ |
Developed by: The Ace Development Team (http://www.wowace.com/index.php/The_Ace_Development_Team) |
Inspired By: Ace 1.x by Turan (turan@gryphon.com) |
Website: http://www.wowace.com/ |
Documentation: http://www.wowace.com/wiki/AceAddon-2.0 |
SVN: http://svn.wowace.com/wowace/trunk/Ace2/AceAddon-2.0 |
Description: Base for all Ace addons to inherit from. |
Dependencies: AceLibrary, AceOO-2.0, AceEvent-2.0, (optional) AceConsole-2.0 |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "AceAddon-2.0" |
local MINOR_VERSION = "$Revision: 28672 $" |
-- This ensures the code is only executed if the libary doesn't already exist, or is a newer version |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0.") end |
local function safecall(func,...) |
local success, err = pcall(func,...) |
if not success then geterrorhandler()(err:find("%.lua:%d+:") and err or (debugstack():match("\n(.-: )in.-\n") or "") .. err) end |
end |
-- Localization |
local STANDBY, TITLE, NOTES, VERSION, AUTHOR, DATE, CATEGORY, EMAIL, CREDITS, WEBSITE, CATEGORIES, ABOUT, LICENSE, PRINT_ADDON_INFO |
if GetLocale() == "deDE" then |
STANDBY = "|cffff5050(Standby)|r" -- capitalized |
TITLE = "Titel" |
NOTES = "Anmerkung" |
VERSION = "Version" |
AUTHOR = "Autor" |
DATE = "Datum" |
CATEGORY = "Kategorie" |
EMAIL = "E-Mail" |
WEBSITE = "Webseite" |
CREDITS = "Credits" -- fix |
LICENSE = "License" -- fix |
ABOUT = "Ãber" |
PRINT_ADDON_INFO = "Gibt Addondaten aus" |
CATEGORIES = { |
["Action Bars"] = "Aktionsleisten", |
["Auction"] = "Auktion", |
["Audio"] = "Audio", |
["Battlegrounds/PvP"] = "Schlachtfeld/PvP", |
["Buffs"] = "Stärkungszauber", |
["Chat/Communication"] = "Chat/Kommunikation", |
["Druid"] = "Druide", |
["Hunter"] = "Jäger", |
["Mage"] = "Magier", |
["Paladin"] = "Paladin", |
["Priest"] = "Priester", |
["Rogue"] = "Schurke", |
["Shaman"] = "Schamane", |
["Warlock"] = "Hexenmeister", |
["Warrior"] = "Krieger", |
["Healer"] = "Heiler", |
["Tank"] = "Tank", |
["Caster"] = "Zauberer", |
["Combat"] = "Kampf", |
["Compilations"] = "Zusammenstellungen", |
["Data Export"] = "Datenexport", |
["Development Tools"] = "Entwicklungs Tools", |
["Guild"] = "Gilde", |
["Frame Modification"] = "Frame Veränderungen", |
["Interface Enhancements"] = "Interface Verbesserungen", |
["Inventory"] = "Inventar", |
["Library"] = "Bibliotheken", |
["Map"] = "Karte", |
["Mail"] = "Post", |
["Miscellaneous"] = "Diverses", |
["Quest"] = "Quest", |
["Raid"] = "Schlachtzug", |
["Tradeskill"] = "Beruf", |
["UnitFrame"] = "Einheiten-Fenster", |
} |
elseif GetLocale() == "frFR" then |
STANDBY = "|cffff5050(attente)|r" |
TITLE = "Titre" |
NOTES = "Notes" |
VERSION = "Version" |
AUTHOR = "Auteur" |
DATE = "Date" |
CATEGORY = "Catégorie" |
EMAIL = "E-mail" |
WEBSITE = "Site web" |
CREDITS = "Credits" -- fix |
LICENSE = "License" -- fix |
ABOUT = "A propos" |
PRINT_ADDON_INFO = "Afficher les informations sur l'addon" |
CATEGORIES = { |
["Action Bars"] = "Barres d'action", |
["Auction"] = "Hôtel des ventes", |
["Audio"] = "Audio", |
["Battlegrounds/PvP"] = "Champs de bataille/JcJ", |
["Buffs"] = "Buffs", |
["Chat/Communication"] = "Chat/Communication", |
["Druid"] = "Druide", |
["Hunter"] = "Chasseur", |
["Mage"] = "Mage", |
["Paladin"] = "Paladin", |
["Priest"] = "Prêtre", |
["Rogue"] = "Voleur", |
["Shaman"] = "Chaman", |
["Warlock"] = "Démoniste", |
["Warrior"] = "Guerrier", |
["Healer"] = "Soigneur", |
["Tank"] = "Tank", |
["Caster"] = "Casteur", |
["Combat"] = "Combat", |
["Compilations"] = "Compilations", |
["Data Export"] = "Exportation de données", |
["Development Tools"] = "Outils de développement", |
["Guild"] = "Guilde", |
["Frame Modification"] = "Modification des fenêtres", |
["Interface Enhancements"] = "Améliorations de l'interface", |
["Inventory"] = "Inventaire", |
["Library"] = "Bibliothèques", |
["Map"] = "Carte", |
["Mail"] = "Courrier", |
["Miscellaneous"] = "Divers", |
["Quest"] = "Quêtes", |
["Raid"] = "Raid", |
["Tradeskill"] = "Métiers", |
["UnitFrame"] = "Fenêtres d'unité", |
} |
elseif GetLocale() == "koKR" then |
STANDBY = "|cffff5050(ì¬ì©ê°ë¥)|r" |
TITLE = "ì 목" |
NOTES = "ë ¸í¸" |
VERSION = "ë²ì " |
AUTHOR = "ì ìì" |
DATE = "ë ì§" |
CATEGORY = "ë¶ë¥" |
EMAIL = "E-mail" |
WEBSITE = "ì¹ì¬ì´í¸" |
CREDITS = "Credits" -- fix |
LICENSE = "License" -- fix |
ABOUT = "ì ë³´" |
PRINT_ADDON_INFO = "ì ëì¨ ì ë³´ ì¶ë ¥" |
CATEGORIES = { |
["Action Bars"] = "ì¡ì ë°", |
["Auction"] = "경매", |
["Audio"] = "ìí¥", |
["Battlegrounds/PvP"] = "ì ì¥/PvP", |
["Buffs"] = "ë²í", |
["Chat/Communication"] = "ëí/ìì¬ìíµ", |
["Druid"] = "ë루ì´ë", |
["Hunter"] = "ì¬ë¥ê¾¼", |
["Mage"] = "ë§ë²ì¬", |
["Paladin"] = "ì±ê¸°ì¬", |
["Priest"] = "ì¬ì ", |
["Rogue"] = "ëì ", |
["Shaman"] = "주ì ì¬", |
["Warlock"] = "íë§ë²ì¬", |
["Warrior"] = "ì ì¬", |
["Healer"] = "íë¬", |
["Tank"] = "í±ì»¤", |
["Caster"] = "ìºì¤í°", |
["Combat"] = "ì í¬", |
["Compilations"] = "ë³µí©", |
["Data Export"] = "ìë£ ì¶ë ¥", |
["Development Tools"] = "ê°ë° ë구", |
["Guild"] = "길ë", |
["Frame Modification"] = "구조 ë³ê²½", |
["Interface Enhancements"] = "ì¸í°íì´ì¤ ê°í", |
["Inventory"] = "ì¸ë²¤í 리", |
["Library"] = "ë¼ì´ë¸ë¬ë¦¬", |
["Map"] = "ì§ë", |
["Mail"] = "ì°í¸", |
["Miscellaneous"] = "기í", |
["Quest"] = "íì¤í¸", |
["Raid"] = "공격ë", |
["Tradeskill"] = "ì 문기ì ", |
["UnitFrame"] = "ì ë íë ì", |
} |
elseif GetLocale() == "zhTW" then |
STANDBY = "|cffff5050(å¾ å½)|r" |
TITLE = "æ¨é¡" |
NOTES = "註è¨" |
VERSION = "çæ¬" |
AUTHOR = "ä½è " |
DATE = "æ¥æ" |
CATEGORY = "é¡å¥" |
EMAIL = "E-mail" |
WEBSITE = "網ç«" |
CREDITS = "Credits" -- fix |
LICENSE = "License" -- fix |
ABOUT = "éæ¼" |
PRINT_ADDON_INFO = "顯示æ件è³è¨" |
CATEGORIES = { |
["Action Bars"] = "åä½å", |
["Auction"] = "æè³£", |
["Audio"] = "é³æ¨", |
["Battlegrounds/PvP"] = "æ°å ´/PvP", |
["Buffs"] = "å¢ç", |
["Chat/Communication"] = "è天/éè¨", |
["Druid"] = "å¾·é¯ä¼", |
["Hunter"] = "çµäºº", |
["Mage"] = "æ³å¸«", |
["Paladin"] = "èé¨å£«", |
["Priest"] = "ç§å¸«", |
["Rogue"] = "çè³", |
["Shaman"] = "è©æ»¿", |
["Warlock"] = "è¡å£«", |
["Warrior"] = "æ°å£«", |
["Healer"] = "æ²»çè ", |
["Tank"] = "å¦å ", |
["Caster"] = "æ½æ³è ", |
["Combat"] = "æ°é¬¥", |
["Compilations"] = "編輯", |
["Data Export"] = "è³æå¯åº", |
["Development Tools"] = "éç¼å·¥å ·", |
["Guild"] = "å ¬æ", |
["Frame Modification"] = "æ¡æ¶ä¿®æ¹", |
["Interface Enhancements"] = "ä»é¢å¢å¼·", |
["Inventory"] = "èå ", |
["Library"] = "è³æ庫", |
["Map"] = "å°å", |
["Mail"] = "éµä»¶", |
["Miscellaneous"] = "ç¶å", |
["Quest"] = "ä»»å", |
["Raid"] = "åé", |
["Tradeskill"] = "åæ¥æè½", |
["UnitFrame"] = "å®ä½æ¡æ¶", |
} |
elseif GetLocale() == "zhCN" then |
STANDBY = "|cffff5050(ææ)|r" |
TITLE = "æ é¢" |
NOTES = "é注" |
VERSION = "çæ¬" |
AUTHOR = "ä½è " |
DATE = "æ¥æ" |
CATEGORY = "åç±»" |
EMAIL = "çµåé®ä»¶" |
WEBSITE = "ç½ç«" |
CREDITS = "Credits" -- fix |
LICENSE = "License" -- fix |
ABOUT = "å ³äº" |
PRINT_ADDON_INFO = "å°ååºæ件信æ¯" |
CATEGORIES = { |
["Action Bars"] = "å¨ä½æ¡", |
["Auction"] = "æå", |
["Audio"] = "é³é¢", |
["Battlegrounds/PvP"] = "æåº/PvP", |
["Buffs"] = "å¢çéæ³", |
["Chat/Communication"] = "è天/交æµ", |
["Druid"] = "å¾·é²ä¼", |
["Hunter"] = "ç人", |
["Mage"] = "æ³å¸", |
["Paladin"] = "å£éªå£«", |
["Priest"] = "ç§å¸", |
["Rogue"] = "çè´¼", |
["Shaman"] = "è¨æ»¡ç¥å¸", |
["Warlock"] = "æ¯å£«", |
["Warrior"] = "æ士", |
-- ["Healer"] = "æ²»çä¿é", |
-- ["Tank"] = "è¿ææ§å¶", |
-- ["Caster"] = "è¿ç¨è¾åº", |
["Combat"] = "ææ", |
["Compilations"] = "ç¼è¯", |
["Data Export"] = "æ°æ®å¯¼åº", |
["Development Tools"] = "å¼åå·¥å ·", |
["Guild"] = "å ¬ä¼", |
["Frame Modification"] = "æ¡æ¶ä¿®æ¹", |
["Interface Enhancements"] = "çé¢å¢å¼º", |
["Inventory"] = "èå ", |
["Library"] = "åº", |
["Map"] = "å°å¾", |
["Mail"] = "é®ä»¶", |
["Miscellaneous"] = "æ项", |
["Quest"] = "ä»»å¡", |
["Raid"] = "å¢é", |
["Tradeskill"] = "åä¸æè½", |
["UnitFrame"] = "头åæ¡æ¶", |
} |
elseif GetLocale() == "esES" then |
STANDBY = "|cffff5050(espera)|r" |
TITLE = "TÃtulo" |
NOTES = "Notas" |
VERSION = "Versión" |
AUTHOR = "Autor" |
DATE = "Fecha" |
CATEGORY = "CategorÃa" |
EMAIL = "E-mail" |
WEBSITE = "Web" |
CREDITS = "Créditos" |
LICENSE = "License" -- fix |
ABOUT = "Acerca de" |
PRINT_ADDON_INFO = "Muestra información acerca del accesorio." |
CATEGORIES = { |
["Action Bars"] = "Barras de Acción", |
["Auction"] = "Subasta", |
["Audio"] = "Audio", |
["Battlegrounds/PvP"] = "Campos de Batalla/JcJ", |
["Buffs"] = "Buffs", |
["Chat/Communication"] = "Chat/Comunicación", |
["Druid"] = "Druida", |
["Hunter"] = "Cazador", |
["Mage"] = "Mago", |
["Paladin"] = "PaladÃn", |
["Priest"] = "Sacerdote", |
["Rogue"] = "PÃcaro", |
["Shaman"] = "Chamán", |
["Warlock"] = "Brujo", |
["Warrior"] = "Guerrero", |
["Healer"] = "Sanador", |
["Tank"] = "Tanque", |
["Caster"] = "Conjurador", |
["Combat"] = "Combate", |
["Compilations"] = "Compilaciones", |
["Data Export"] = "Exportar Datos", |
["Development Tools"] = "Herramientas de Desarrollo", |
["Guild"] = "Hermandad", |
["Frame Modification"] = "Modificación de Marcos", |
["Interface Enhancements"] = "Mejoras de la Interfaz", |
["Inventory"] = "Inventario", |
["Library"] = "Biblioteca", |
["Map"] = "Mapa", |
["Mail"] = "Correo", |
["Miscellaneous"] = "Misceláneo", |
["Quest"] = "Misión", |
["Raid"] = "Banda", |
["Tradeskill"] = "Habilidad de Comercio", |
["UnitFrame"] = "Marco de Unidades", |
} |
else -- enUS |
STANDBY = "|cffff5050(standby)|r" |
TITLE = "Title" |
NOTES = "Notes" |
VERSION = "Version" |
AUTHOR = "Author" |
DATE = "Date" |
CATEGORY = "Category" |
EMAIL = "E-mail" |
WEBSITE = "Website" |
CREDITS = "Credits" |
LICENSE = "License" |
ABOUT = "About" |
PRINT_ADDON_INFO = "Show information about the addon." |
CATEGORIES = { |
["Action Bars"] = "Action Bars", |
["Auction"] = "Auction", |
["Audio"] = "Audio", |
["Battlegrounds/PvP"] = "Battlegrounds/PvP", |
["Buffs"] = "Buffs", |
["Chat/Communication"] = "Chat/Communication", |
["Druid"] = "Druid", |
["Hunter"] = "Hunter", |
["Mage"] = "Mage", |
["Paladin"] = "Paladin", |
["Priest"] = "Priest", |
["Rogue"] = "Rogue", |
["Shaman"] = "Shaman", |
["Warlock"] = "Warlock", |
["Warrior"] = "Warrior", |
["Healer"] = "Healer", |
["Tank"] = "Tank", |
["Caster"] = "Caster", |
["Combat"] = "Combat", |
["Compilations"] = "Compilations", |
["Data Export"] = "Data Export", |
["Development Tools"] = "Development Tools", |
["Guild"] = "Guild", |
["Frame Modification"] = "Frame Modification", |
["Interface Enhancements"] = "Interface Enhancements", |
["Inventory"] = "Inventory", |
["Library"] = "Library", |
["Map"] = "Map", |
["Mail"] = "Mail", |
["Miscellaneous"] = "Miscellaneous", |
["Quest"] = "Quest", |
["Raid"] = "Raid", |
["Tradeskill"] = "Tradeskill", |
["UnitFrame"] = "UnitFrame", |
} |
end |
setmetatable(CATEGORIES, { __index = function(self, key) -- case-insensitive |
local lowerKey = key:lower() |
for k,v in pairs(CATEGORIES) do |
if k:lower() == lowerKey then |
return v |
end |
end |
end }) |
-- Create the library object |
local AceOO = AceLibrary("AceOO-2.0") |
local AceAddon = AceOO.Class() |
local AceEvent |
local AceConsole |
local AceModuleCore |
function AceAddon:GetLocalizedCategory(name) |
self:argCheck(name, 2, "string") |
return CATEGORIES[name] or UNKNOWN |
end |
function AceAddon:ToString() |
return "AceAddon" |
end |
local function print(text) |
DEFAULT_CHAT_FRAME:AddMessage(text) |
end |
function AceAddon:ADDON_LOADED(name) |
local unregister = true |
local initAddon = {} |
while #self.nextAddon > 0 do |
local addon = table.remove(self.nextAddon, 1) |
if addon.possibleNames[name] then |
table.insert(initAddon, addon) |
else |
unregister = nil |
table.insert(self.skipAddon, addon) |
end |
end |
self.nextAddon, self.skipAddon = self.skipAddon, self.nextAddon |
if unregister then |
AceAddon:UnregisterEvent("ADDON_LOADED") |
end |
while #initAddon > 0 do |
local addon = table.remove(initAddon, 1) |
table.insert(self.addons, addon) |
if not self.addons[name] then |
self.addons[name] = addon |
end |
addon.possibleNames = nil |
self:InitializeAddon(addon, name) |
end |
end |
local function RegisterOnEnable(self) |
if DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage then -- HACK |
AceAddon.playerLoginFired = true |
end |
if AceAddon.playerLoginFired then |
AceAddon.addonsStarted[self] = true |
if (type(self.IsActive) ~= "function" or self:IsActive()) and (not AceModuleCore or not AceModuleCore:IsModule(self) or AceModuleCore:IsModuleActive(self)) then |
AceAddon.addonsEnabled[self] = true |
local current = self.class |
while true do |
if current == AceOO.Class or not current then |
break |
end |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedEnable) == "function" then |
safecall(mixin.OnEmbedEnable,mixin,self,true) |
end |
end |
end |
current = current.super |
end |
if type(self.OnEnable) == "function" then |
safecall(self.OnEnable,self,true) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonEnabled", self, true) |
end |
end |
else |
if not AceAddon.addonsToOnEnable then |
AceAddon.addonsToOnEnable = {} |
end |
table.insert(AceAddon.addonsToOnEnable, self) |
end |
end |
function AceAddon:InitializeAddon(addon, name) |
if addon.name == nil then |
addon.name = name |
end |
if GetAddOnMetadata then |
-- TOC checks |
if addon.title == nil then |
addon.title = GetAddOnMetadata(name, "Title") |
end |
if type(addon.title) == "string" then |
local num = addon.title:find(" |cff7fff7f %-Ace2%-|r$") |
if num then |
addon.title = addon.title:sub(1, num - 1) |
end |
addon.title = addon.title:trim() |
end |
if addon.notes == nil then |
addon.notes = GetAddOnMetadata(name, "Notes") |
end |
if type(addon.notes) == "string" then |
addon.notes = addon.notes:trim() |
end |
if addon.version == nil then |
addon.version = GetAddOnMetadata(name, "Version") |
end |
if type(addon.version) == "string" then |
if addon.version:find("%$Revision: (%d+) %$") then |
addon.version = addon.version:gsub("%$Revision: (%d+) %$", "%1") |
elseif addon.version:find("%$Rev: (%d+) %$") then |
addon.version = addon.version:gsub("%$Rev: (%d+) %$", "%1") |
elseif addon.version:find("%$LastChangedRevision: (%d+) %$") then |
addon.version = addon.version:gsub("%$LastChangedRevision: (%d+) %$", "%1") |
end |
addon.version = addon.version:trim() |
end |
if addon.author == nil then |
addon.author = GetAddOnMetadata(name, "Author") |
end |
if type(addon.author) == "string" then |
addon.author = addon.author:trim() |
end |
if addon.credits == nil then |
addon.credits = GetAddOnMetadata(name, "X-Credits") |
end |
if type(addon.credits) == "string" then |
addon.credits = addon.credits:trim() |
end |
if addon.date == nil then |
addon.date = GetAddOnMetadata(name, "X-Date") or GetAddOnMetadata(name, "X-ReleaseDate") |
end |
if type(addon.date) == "string" then |
if addon.date:find("%$Date: (.-) %$") then |
addon.date = addon.date:gsub("%$Date: (.-) %$", "%1") |
elseif addon.date:find("%$LastChangedDate: (.-) %$") then |
addon.date = addon.date:gsub("%$LastChangedDate: (.-) %$", "%1") |
end |
addon.date = addon.date:trim() |
end |
if addon.category == nil then |
addon.category = GetAddOnMetadata(name, "X-Category") |
end |
if type(addon.category) == "string" then |
addon.category = addon.category:trim() |
end |
if addon.email == nil then |
addon.email = GetAddOnMetadata(name, "X-eMail") or GetAddOnMetadata(name, "X-Email") |
end |
if type(addon.email) == "string" then |
addon.email = addon.email:trim() |
end |
if addon.license == nil then |
addon.license = GetAddOnMetadata(name, "X-License") |
end |
if type(addon.license) == "string" then |
addon.license = addon.license:trim() |
end |
if addon.website == nil then |
addon.website = GetAddOnMetadata(name, "X-Website") |
end |
if type(addon.website) == "string" then |
addon.website = addon.website:trim() |
end |
end |
local current = addon.class |
while true do |
if current == AceOO.Class or not current then |
break |
end |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedInitialize) == "function" then |
mixin:OnEmbedInitialize(addon, name) |
end |
end |
end |
current = current.super |
end |
local n = AceAddon.addonsToOnEnable and #AceAddon.addonsToOnEnable or 0 |
if type(addon.OnInitialize) == "function" then |
safecall(addon.OnInitialize, addon, name) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonInitialized", addon) |
end |
RegisterOnEnable(addon) |
local n2 = AceAddon.addonsToOnEnable and #AceAddon.addonsToOnEnable or 0 |
if n2 - n > 1 then |
local mine = table.remove(AceAddon.addonsToOnEnable) |
table.insert(AceAddon.addonsToOnEnable, n+1, mine) |
end |
end |
local function isGoodVariable(var) |
return type(var) == "string" or type(var) == "number" |
end |
function AceAddon.prototype:PrintAddonInfo() |
local x |
if isGoodVariable(self.title) then |
x = "|cffffff7f" .. tostring(self.title) .. "|r" |
elseif isGoodVariable(self.name) then |
x = "|cffffff7f" .. tostring(self.name) .. "|r" |
else |
x = "|cffffff7f<" .. tostring(self.class) .. " instance>|r" |
end |
if type(self.IsActive) == "function" then |
if not self:IsActive() then |
x = x .. " " .. STANDBY |
end |
end |
if isGoodVariable(self.version) then |
x = x .. " - |cffffff7f" .. tostring(self.version) .. "|r" |
end |
if isGoodVariable(self.notes) then |
x = x .. " - " .. tostring(self.notes) |
end |
print(x) |
if isGoodVariable(self.author) then |
print(" - |cffffff7f" .. AUTHOR .. ":|r " .. tostring(self.author)) |
end |
if isGoodVariable(self.credits) then |
print(" - |cffffff7f" .. CREDITS .. ":|r " .. tostring(self.credits)) |
end |
if isGoodVariable(self.date) then |
print(" - |cffffff7f" .. DATE .. ":|r " .. tostring(self.date)) |
end |
if self.category then |
local category = CATEGORIES[self.category] |
if category then |
print(" - |cffffff7f" .. CATEGORY .. ":|r " .. category) |
end |
end |
if isGoodVariable(self.email) then |
print(" - |cffffff7f" .. EMAIL .. ":|r " .. tostring(self.email)) |
end |
if isGoodVariable(self.website) then |
print(" - |cffffff7f" .. WEBSITE .. ":|r " .. tostring(self.website)) |
end |
if isGoodVariable(self.license) then |
print(" - |cffffff7f" .. LICENSE .. ":|r " .. tostring(self.license)) |
end |
end |
local options |
function AceAddon:GetAceOptionsDataTable(target) |
if not options then |
options = { |
about = { |
name = ABOUT, |
desc = PRINT_ADDON_INFO, |
type = "execute", |
func = "PrintAddonInfo", |
order = -1, |
} |
} |
end |
return options |
end |
function AceAddon:PLAYER_LOGIN() |
self.playerLoginFired = true |
if self.addonsToOnEnable then |
while #self.addonsToOnEnable > 0 do |
local addon = table.remove(self.addonsToOnEnable, 1) |
self.addonsStarted[addon] = true |
if (type(addon.IsActive) ~= "function" or addon:IsActive()) and (not AceModuleCore or not AceModuleCore:IsModule(addon) or AceModuleCore:IsModuleActive(addon)) then |
self.addonsEnabled[addon] = true |
local current = addon.class |
while true do |
if current == AceOO.Class or not current then |
break |
end |
if current.mixins then |
for mixin in pairs(current.mixins) do |
if type(mixin.OnEmbedEnable) == "function" then |
safecall(mixin.OnEmbedEnable, mixin, addon, true) |
end |
end |
end |
current = current.super |
end |
if type(addon.OnEnable) == "function" then |
safecall(addon.OnEnable, addon, true) |
end |
if AceEvent then |
AceEvent:TriggerEvent("Ace2_AddonEnabled", addon, true) |
end |
end |
end |
self.addonsToOnEnable = nil |
end |
end |
function AceAddon.prototype:Inject(t) |
AceAddon:argCheck(t, 2, "table") |
for k,v in pairs(t) do |
self[k] = v |
end |
end |
function AceAddon.prototype:init() |
if not AceEvent then |
error(MAJOR_VERSION .. " requires AceEvent-2.0", 4) |
end |
AceAddon.super.prototype.init(self) |
self.super = self.class.prototype |
AceAddon:RegisterEvent("ADDON_LOADED", "ADDON_LOADED") |
local names = {} |
for i = 1, GetNumAddOns() do |
if IsAddOnLoaded(i) then names[GetAddOnInfo(i)] = true end |
end |
self.possibleNames = names |
table.insert(AceAddon.nextAddon, self) |
end |
function AceAddon.prototype:ToString() |
local x |
if type(self.title) == "string" then |
x = self.title |
elseif type(self.name) == "string" then |
x = self.name |
else |
x = "<" .. tostring(self.class) .. " instance>" |
end |
if (type(self.IsActive) == "function" and not self:IsActive()) or (AceModuleCore and AceModuleCore:IsModule(addon) and AceModuleCore:IsModuleActive(addon)) then |
x = x .. " " .. STANDBY |
end |
return x |
end |
AceAddon.new = function(self, ...) |
local class = AceAddon:pcall(AceOO.Classpool, self, ...) |
return class:new() |
end |
local function external(self, major, instance) |
if major == "AceEvent-2.0" then |
AceEvent = instance |
AceEvent:embed(self) |
self:RegisterEvent("PLAYER_LOGIN", "PLAYER_LOGIN", true) |
elseif major == "AceConsole-2.0" then |
AceConsole = instance |
local slashCommands = { "/ace2" } |
local _,_,_,enabled,loadable = GetAddOnInfo("Ace") |
if not enabled or not loadable then |
table.insert(slashCommands, "/ace") |
end |
local function listAddon(addon, depth) |
if not depth then |
depth = 0 |
end |
local s = (" "):rep(depth) .. " - " .. tostring(addon) |
if rawget(addon, 'version') then |
s = s .. " - |cffffff7f" .. tostring(addon.version) .. "|r" |
end |
if rawget(addon, 'slashCommand') then |
s = s .. " |cffffff7f(" .. tostring(addon.slashCommand) .. ")|r" |
end |
print(s) |
if type(rawget(addon, 'modules')) == "table" then |
local i = 0 |
for k,v in pairs(addon.modules) do |
i = i + 1 |
if i == 6 then |
print((" "):rep(depth + 1) .. " - more...") |
break |
else |
listAddon(v, depth + 1) |
end |
end |
end |
end |
local function listNormalAddon(i) |
local name,_,_,enabled,loadable = GetAddOnInfo(i) |
if not loadable then |
enabled = false |
end |
if self.addons[name] then |
listAddon(self.addons[name]) |
else |
local s = " - " .. tostring(GetAddOnMetadata(i, "Title") or name) |
local version = GetAddOnMetadata(i, "Version") |
if version then |
if version:find("%$Revision: (%d+) %$") then |
version = version:gsub("%$Revision: (%d+) %$", "%1") |
elseif version:find("%$Rev: (%d+) %$") then |
version = version:gsub("%$Rev: (%d+) %$", "%1") |
elseif version:find("%$LastChangedRevision: (%d+) %$") then |
version = version:gsub("%$LastChangedRevision: (%d+) %$", "%1") |
end |
s = s .. " - |cffffff7f" .. version .. "|r" |
end |
if not enabled then |
s = s .. " |cffff0000(disabled)|r" |
end |
if IsAddOnLoadOnDemand(i) then |
s = s .. " |cff00ff00[LoD]|r" |
end |
print(s) |
end |
end |
local function mySort(alpha, bravo) |
return tostring(alpha) < tostring(bravo) |
end |
AceConsole.RegisterChatCommand(self, slashCommands, { |
desc = "AddOn development framework", |
name = "Ace2", |
type = "group", |
args = { |
about = { |
desc = "Get information about Ace2", |
name = "About", |
type = "execute", |
func = function() |
print("|cffffff7fAce2|r - |cffffff7f2.0." .. MINOR_VERSION:gsub("%$Revision: (%d+) %$", "%1") .. "|r - AddOn development framework") |
print(" - |cffffff7f" .. AUTHOR .. ":|r Ace Development Team") |
print(" - |cffffff7f" .. WEBSITE .. ":|r http://www.wowace.com/") |
end |
}, |
list = { |
desc = "List addons", |
name = "List", |
type = "group", |
args = { |
ace2 = { |
desc = "List addons using Ace2", |
name = "Ace2", |
type = "execute", |
func = function() |
print("|cffffff7fAddon list:|r") |
table.sort(self.addons, mySort) |
for _,v in ipairs(self.addons) do |
listAddon(v) |
end |
end |
}, |
all = { |
desc = "List all addons", |
name = "All", |
type = "execute", |
func = function() |
print("|cffffff7fAddon list:|r") |
local count = GetNumAddOns() |
for i = 1, count do |
listNormalAddon(i) |
end |
end |
}, |
enabled = { |
desc = "List all enabled addons", |
name = "Enabled", |
type = "execute", |
func = function() |
print("|cffffff7fAddon list:|r") |
local count = GetNumAddOns() |
for i = 1, count do |
local _,_,_,enabled,loadable = GetAddOnInfo(i) |
if enabled and loadable then |
listNormalAddon(i) |
end |
end |
end |
}, |
disabled = { |
desc = "List all disabled addons", |
name = "Disabled", |
type = "execute", |
func = function() |
print("|cffffff7fAddon list:|r") |
local count = GetNumAddOns() |
for i = 1, count do |
local _,_,_,enabled,loadable = GetAddOnInfo(i) |
if not enabled or not loadable then |
listNormalAddon(i) |
end |
end |
end |
}, |
lod = { |
desc = "List all LoadOnDemand addons", |
name = "LoadOnDemand", |
type = "execute", |
func = function() |
print("|cffffff7fAddon list:|r") |
local count = GetNumAddOns() |
for i = 1, count do |
if IsAddOnLoadOnDemand(i) then |
listNormalAddon(i) |
end |
end |
end |
}, |
ace1 = { |
desc = "List all addons using Ace1", |
name = "Ace 1.x", |
type = "execute", |
func = function() |
print("|cffffff7fAddon list:|r") |
local count = GetNumAddOns() |
for i = 1, count do |
local dep1, dep2, dep3, dep4 = GetAddOnDependencies(i) |
if dep1 == "Ace" or dep2 == "Ace" or dep3 == "Ace" or dep4 == "Ace" then |
listNormalAddon(i) |
end |
end |
end |
}, |
libs = { |
desc = "List all libraries using AceLibrary", |
name = "Libraries", |
type = "execute", |
func = function() |
if type(AceLibrary) == "table" and type(AceLibrary.libs) == "table" then |
print("|cffffff7fLibrary list:|r") |
for name, data in pairs(AceLibrary.libs) do |
local s |
if data.minor then |
s = " - " .. tostring(name) .. "." .. tostring(data.minor) |
else |
s = " - " .. tostring(name) |
end |
if rawget(AceLibrary(name), 'slashCommand') then |
s = s .. " |cffffff7f(" .. tostring(AceLibrary(name).slashCommand) .. "|cffffff7f)" |
end |
print(s) |
end |
end |
end |
}, |
search = { |
desc = "Search by name", |
name = "Search", |
type = "text", |
usage = "<keyword>", |
input = true, |
get = false, |
set = function(...) |
local arg = { ... } |
for i,v in ipairs(arg) do |
arg[i] = v:gsub('%*', '.*'):gsub('%%', '%%%%'):lower() |
end |
local count = GetNumAddOns() |
for i = 1, count do |
local name = GetAddOnInfo(i) |
local good = true |
for _,v in ipairs(arg) do |
if not name:lower():find(v) then |
good = false |
break |
end |
end |
if good then |
listNormalAddon(i) |
end |
end |
end |
} |
}, |
}, |
enable = { |
desc = "Enable addon(s).", |
name = "Enable", |
type = "text", |
usage = "<addon 1> <addon 2> ...", |
get = false, |
input = true, |
set = function(...) |
for i = 1, select("#", ...) do |
local addon = select(i, ...) |
local name, title, _, enabled, _, reason = GetAddOnInfo(addon) |
if reason == "MISSING" then |
print(("|cffffff7fAce2:|r AddOn %q does not exist."):format(addon)) |
elseif not enabled then |
EnableAddOn(addon) |
print(("|cffffff7fAce2:|r %s is now enabled."):format(addon or name)) |
else |
print(("|cffffff7fAce2:|r %s is already enabled."):format(addon or name)) |
end |
end |
end, |
}, |
disable = { |
desc = "Disable addon(s).", |
name = "Disable", |
type = "text", |
usage = "<addon 1> <addon 2> ...", |
get = false, |
input = true, |
set = function(...) |
for i = 1, select("#", ...) do |
local addon = select(i, ...) |
local name, title, _, enabled, _, reason = GetAddOnInfo(addon) |
if reason == "MISSING" then |
print(("|cffffff7fAce2:|r AddOn %q does not exist."):format(addon)) |
elseif enabled then |
DisableAddOn(addon) |
print(("|cffffff7fAce2:|r %s is now disabled."):format(addon or name)) |
else |
print(("|cffffff7fAce2:|r %s is already disabled."):format(addon or name)) |
end |
end |
end, |
}, |
load = { |
desc = "Load addon(s).", |
name = "Load", |
type = "text", |
usage = "<addon 1> <addon 2> ...", |
get = false, |
input = true, |
set = function(...) |
for i = 1, select("#", ...) do |
local addon = select(i, ...) |
local name, title, _, _, loadable, reason = GetAddOnInfo(addon) |
if reason == "MISSING" then |
print(("|cffffff7fAce2:|r AddOn %q does not exist."):format(addon)) |
elseif not loadable then |
print(("|cffffff7fAce2:|r AddOn %q is not loadable. Reason: %s."):format(addon, reason)) |
else |
LoadAddOn(addon) |
print(("|cffffff7fAce2:|r %s is now loaded."):format(addon or name)) |
end |
end |
end |
}, |
info = { |
desc = "Display information", |
name = "Information", |
type = "execute", |
func = function() |
local mem, threshold = gcinfo() |
print((" - |cffffff7fMemory usage [|r%.3f MiB|cffffff7f]|r"):format(mem / 1024)) |
if threshold then |
print((" - |cffffff7fThreshold [|r%.3f MiB|cffffff7f]|r"):format(threshold / 1024)) |
end |
print((" - |cffffff7fFramerate [|r%.0f fps|cffffff7f]|r"):format(GetFramerate())) |
local bandwidthIn, bandwidthOut, latency = GetNetStats() |
bandwidthIn, bandwidthOut = floor(bandwidthIn * 1024), floor(bandwidthOut * 1024) |
print((" - |cffffff7fLatency [|r%.0f ms|cffffff7f]|r"):format(latency)) |
print((" - |cffffff7fBandwidth in [|r%.0f B/s|cffffff7f]|r"):format(bandwidthIn)) |
print((" - |cffffff7fBandwidth out [|r%.0f B/s|cffffff7f]|r"):format(bandwidthOut)) |
print((" - |cffffff7fTotal addons [|r%d|cffffff7f]|r"):format(GetNumAddOns())) |
print((" - |cffffff7fAce2 addons [|r%d|cffffff7f]|r"):format(#self.addons)) |
local ace = 0 |
local enabled = 0 |
local disabled = 0 |
local lod = 0 |
for i = 1, GetNumAddOns() do |
local dep1, dep2, dep3, dep4 = GetAddOnDependencies(i) |
if dep1 == "Ace" or dep2 == "Ace" or dep3 == "Ace" or dep4 == "Ace" then |
ace = ace + 1 |
end |
if IsAddOnLoadOnDemand(i) then |
lod = lod + 1 |
end |
local isActive, loadable = select(4, GetAddOnInfo(i)) |
if not isActive or not loadable then |
disabled = disabled + 1 |
else |
enabled = enabled + 1 |
end |
end |
print((" - |cffffff7fAce 1.x addons [|r%d|cffffff7f]|r"):format(ace)) |
print((" - |cffffff7fLoadOnDemand addons [|r%d|cffffff7f]|r"):format(lod)) |
print((" - |cffffff7fenabled addons [|r%d|cffffff7f]|r"):format(enabled)) |
print((" - |cffffff7fdisabled addons [|r%d|cffffff7f]|r"):format(disabled)) |
local libs = 0 |
if type(AceLibrary) == "table" and type(AceLibrary.libs) == "table" then |
for _ in pairs(AceLibrary.libs) do |
libs = libs + 1 |
end |
end |
print((" - |cffffff7fAceLibrary instances [|r%d|cffffff7f]|r"):format(libs)) |
end |
} |
} |
}) |
elseif major == "AceModuleCore-2.0" then |
AceModuleCore = instance |
end |
end |
local function activate(self, oldLib, oldDeactivate) |
AceAddon = self |
self.playerLoginFired = oldLib and oldLib.playerLoginFired or DEFAULT_CHAT_FRAME and DEFAULT_CHAT_FRAME.defaultLanguage |
self.addonsToOnEnable = oldLib and oldLib.addonsToOnEnable |
self.addons = oldLib and oldLib.addons or {} |
self.nextAddon = oldLib and oldLib.nextAddon or {} |
self.skipAddon = oldLib and oldLib.skipAddon or {} |
self.addonsStarted = oldLib and oldLib.addonsStarted or {} |
self.addonsEnabled = oldLib and oldLib.addonsEnabled or {} |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
AceLibrary:Register(AceAddon, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) |
--[[ |
Name: AceDebug-2.0 |
Revision: $Rev: 25921 $ |
Developed by: The Ace Development Team (http://www.wowace.com/index.php/The_Ace_Development_Team) |
Inspired By: Ace 1.x by Turan (turan@gryphon.com) |
Website: http://www.wowace.com/ |
Documentation: http://www.wowace.com/index.php/AceDebug-2.0 |
SVN: http://svn.wowace.com/root/trunk/Ace2/AceDebug-2.0 |
Description: Mixin to allow for simple debugging capabilities. |
Dependencies: AceLibrary, AceOO-2.0 |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "AceDebug-2.0" |
local MINOR_VERSION = "$Revision: 25921 $" |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0") end |
local function safecall(func,...) |
local success, err = pcall(func,...) |
if not success then geterrorhandler()(err:find("%.lua:%d+:") and err or (debugstack():match("\n(.-: )in.-\n") or "") .. err) end |
end |
if GetLocale() == "frFR" then |
DEBUGGING = "D\195\169boguage" |
TOGGLE_DEBUGGING = "Activer/d\195\169sactiver le d\195\169boguage" |
elseif GetLocale() == "deDE" then |
DEBUGGING = "Debuggen" |
TOGGLE_DEBUGGING = "Aktiviert/Deaktiviert Debugging." |
elseif GetLocale() == "koKR" then |
DEBUGGING = "ëë²ê¹ " |
TOGGLE_DEBUGGING = "ëë²ê¹ ê¸°ë¥ ì¬ì©í¨/ì¬ì©ìí¨" |
elseif GetLocale() == "zhTW" then |
DEBUGGING = "é¤é¯" |
TOGGLE_DEBUGGING = "åç¨/åç¨é¤é¯åè½" |
elseif GetLocale() == "zhCN" then |
DEBUGGING = "\232\176\131\232\175\149" |
TOGGLE_DEBUGGING = "\229\144\175\231\148\168/\231\166\129\231\148\168 \232\176\131\232\175\149." |
elseif GetLocale() == "esES" then |
DEBUGGING = "Debugging" |
TOGGLE_DEBUGGING = "Activar/desactivar Debugging." |
else -- enUS |
DEBUGGING = "Debugging" |
TOGGLE_DEBUGGING = "Toggle debugging for this addon." |
end |
local AceOO = AceLibrary:GetInstance("AceOO-2.0") |
local AceDebug = AceOO.Mixin {"Debug", "CustomDebug", "IsDebugging", "SetDebugging", "SetDebugLevel", "LevelDebug", "CustomLevelDebug", "GetDebugLevel"} |
local function print(text, r, g, b, frame, delay) |
(frame or DEFAULT_CHAT_FRAME):AddMessage(text, r, g, b, 1, delay or 5) |
end |
local tmp = {} |
function AceDebug:CustomDebug(r, g, b, frame, delay, a1, ...) |
if not self.debugging then |
return |
end |
local output = ("|cff7fff7f(DEBUG) %s:[%s.%3d]|r"):format(tostring(self), date("%H:%M:%S"), (GetTime() % 1) * 1000) |
a1 = tostring(a1) |
if a1:find("%%") and select('#', ...) >= 1 then |
for i = 1, select('#', ...) do |
tmp[i] = tostring((select(i, ...))) |
end |
output = output .. " " .. a1:format(unpack(tmp)) |
for i = 1, select('#', ...) do |
tmp[i] = nil |
end |
else |
-- This block dynamically rebuilds the tmp array stopping on the first nil. |
tmp[1] = output |
tmp[2] = a1 |
for i = 1, select('#', ...) do |
tmp[i+2] = tostring((select(i, ...))) |
end |
output = table.concat(tmp, " ") |
for i = 1, select('#', ...) + 2 do |
tmp[i] = nil |
end |
end |
print(output, r, g, b, frame or self.debugFrame, delay) |
end |
function AceDebug:Debug(...) |
AceDebug.CustomDebug(self, nil, nil, nil, nil, nil, ...) |
end |
function AceDebug:IsDebugging() |
return self.debugging |
end |
function AceDebug:SetDebugging(debugging) |
if debugging then |
self.debugging = debugging |
if type(self.OnDebugEnable) == "function" then |
safecall(self.OnDebugEnable, self) |
end |
else |
if type(self.OnDebugDisable) == "function" then |
safecall(self.OnDebugDisable, self) |
end |
self.debugging = debugging |
end |
end |
-- Takes a number 1-3 |
-- Level 1: Critical messages that every user should receive |
-- Level 2: Should be used for local debugging (function calls, etc) |
-- Level 3: Very verbose debugging, will dump everything and anything |
-- If set to nil, you will receive no debug information |
function AceDebug:SetDebugLevel(level) |
AceDebug:argCheck(level, 1, "number", "nil") |
if not level then |
self.debuglevel = nil |
return |
end |
if level < 1 or level > 3 then |
AceDebug:error("Bad argument #1 to `SetDebugLevel`, must be a number 1-3") |
end |
self.debuglevel = level |
end |
function AceDebug:GetDebugLevel() |
return self.debuglevel |
end |
function AceDebug:CustomLevelDebug(level, r, g, b, frame, delay, a1, ...) |
if not self.debugging or not self.debuglevel then return end |
AceDebug:argCheck(level, 1, "number") |
if level < 1 or level > 3 then |
AceDebug:error("Bad argument #1 to `LevelDebug`, must be a number 1-3") |
end |
if level > self.debuglevel then return end |
local output = ("|cff7fff7f(DEBUG) %s:[%s.%3d]|r"):format( tostring(self), date("%H:%M:%S"), (GetTime() % 1) * 1000) |
a1 = tostring(a1) |
if a1:find("%%") and select('#', ...) >= 1 then |
for i = 1, select('#', ...) do |
tmp[i] = tostring((select(i, ...))) |
end |
output = output .. " " .. a1:format(unpack(tmp)) |
for i = 1, select('#', ...) do |
tmp[i] = nil |
end |
else |
-- This block dynamically rebuilds the tmp array stopping on the first nil. |
tmp[1] = output |
tmp[2] = a1 |
for i = 1, select('#', ...) do |
tmp[i+2] = tostring((select(i, ...))) |
end |
output = table.concat(tmp, " ") |
for i = 1, select('#', ...) + 2 do |
tmp[i] = nil |
end |
end |
print(output, r, g, b, frame or self.debugFrame, delay) |
end |
function AceDebug:LevelDebug(level, ...) |
if not self.debugging or not self.debuglevel then return end |
AceDebug:argCheck(level, 1, "number") |
if level < 1 or level > 3 then |
AceDebug:error("Bad argument #1 to `LevelDebug`, must be a number 1-3") |
end |
if level > self.debuglevel then return end |
AceDebug.CustomLevelDebug(self, level, nil, nil, nil, nil, nil, ...) |
end |
local options |
function AceDebug:GetAceOptionsDataTable(target) |
if not options then |
options = { |
debug = { |
name = DEBUGGING, |
desc = TOGGLE_DEBUGGING, |
type = "toggle", |
get = "IsDebugging", |
set = "SetDebugging", |
order = -2, |
} |
} |
end |
return options |
end |
AceLibrary:Register(AceDebug, MAJOR_VERSION, MINOR_VERSION, AceDebug.activate) |
AceDebug = AceLibrary(MAJOR_VERSION) |
--[[ |
Name: Dewdrop-2.0 |
Revision: $Rev: 30385 $ |
Author(s): ckknight (ckknight@gmail.com) |
Website: http://ckknight.wowinterface.com/ |
Documentation: http://wiki.wowace.com/index.php/Dewdrop-2.0 |
SVN: http://svn.wowace.com/root/trunk/DewdropLib/Dewdrop-2.0 |
Description: A library to provide a clean dropdown menu interface. |
Dependencies: AceLibrary |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "Dewdrop-2.0" |
local MINOR_VERSION = "$Revision: 30385 $" |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
local Dewdrop = {} |
local CLOSE = "Close" |
local CLOSE_DESC = "Close the menu." |
local VALIDATION_ERROR = "Validation error." |
local USAGE_TOOLTIP = "Usage: %s." |
local RESET_KEYBINDING_DESC = "Hit escape to clear the keybinding." |
local KEY_BUTTON1 = "Left Mouse" |
local KEY_BUTTON2 = "Right Mouse" |
local DISABLED = "Disabled" |
local DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" |
if GetLocale() == "deDE" then |
CLOSE = "Schlie\195\159en" |
CLOSE_DESC = "Men\195\188 schlie\195\159en." |
VALIDATION_ERROR = "Validierungsfehler." |
RESET_KEYBINDING_DESC = "Escape dr\195\188cken, um die Tastenbelegung zu l\195\182schen." |
KEY_BUTTON1 = "Linke Maustaste" |
KEY_BUTTON2 = "Rechte Maustaste" |
DISABLED = "Deaktiviert" |
elseif GetLocale() == "koKR" then |
CLOSE = "ë«ê¸°" |
CLOSE_DESC = "ë©ë´ë¥¼ ë«ìµëë¤." |
elseif GetLocale() == "frFR" then |
CLOSE = "Fermer" |
CLOSE_DESC = "Ferme le menu." |
VALIDATION_ERROR = "Erreur de validation." |
RESET_KEYBINDING_DESC = "Appuyez sur la touche Echappement pour effacer le raccourci." |
elseif GetLocale() == "esES" then |
CLOSE = "Cerrar" |
CLOSE_DESC = "Cierra el men\195\186." |
VALIDATION_ERROR = "Error de validaci\195\179n" |
RESET_KEYBINDING_DESC = "Pulsa Escape para limpiar la asignaci\195\179n de tecla." |
end |
Dewdrop.KEY_BUTTON1 = KEY_BUTTON1 |
Dewdrop.KEY_BUTTON2 = KEY_BUTTON2 |
local function new(...) |
local t = {} |
for i = 1, select('#', ...), 2 do |
local k = select(i, ...) |
if k then |
t[k] = select(i+1, ...) |
else |
break |
end |
end |
return t |
end |
local tmp |
do |
local t = {} |
function tmp(...) |
for k in pairs(t) do |
t[k] = nil |
end |
for i = 1, select('#', ...), 2 do |
local k = select(i, ...) |
if k then |
t[k] = select(i+1, ...) |
else |
break |
end |
end |
return t |
end |
end |
local tmp2 |
do |
local t = {} |
function tmp2(...) |
for k in pairs(t) do |
t[k] = nil |
end |
for i = 1, select('#', ...), 2 do |
local k = select(i, ...) |
if k then |
t[k] = select(i+1, ...) |
else |
break |
end |
end |
return t |
end |
end |
local levels |
local buttons |
local function GetScaledCursorPosition() |
local x, y = GetCursorPosition() |
local scale = UIParent:GetEffectiveScale() |
return x / scale, y / scale |
end |
local function StartCounting(self, level) |
for i = level, 1, -1 do |
if levels[i] then |
levels[i].count = 3 |
end |
end |
end |
local function StopCounting(self, level) |
for i = level, 1, -1 do |
if levels[i] then |
levels[i].count = nil |
end |
end |
end |
local function OnUpdate(self, elapsed) |
for _,level in ipairs(levels) do |
local count = level.count |
if count then |
count = count - elapsed |
if count < 0 then |
level.count = nil |
self:Close(level.num) |
else |
level.count = count |
end |
end |
end |
end |
local function CheckDualMonitor(self, frame) |
local ratio = GetScreenWidth() / GetScreenHeight() |
if ratio >= 2.4 and frame:GetRight() > GetScreenWidth() / 2 and frame:GetLeft() < GetScreenWidth() / 2 then |
local offsetx |
if GetCursorPosition() / GetScreenHeight() * 768 < GetScreenWidth() / 2 then |
offsetx = GetScreenWidth() / 2 - frame:GetRight() |
else |
offsetx = GetScreenWidth() / 2 - frame:GetLeft() |
end |
local point, parent, relativePoint, x, y = frame:GetPoint(1) |
frame:SetPoint(point, parent, relativePoint, (x or 0) + offsetx, y or 0) |
end |
end |
local function CheckSize(self, level) |
if not level.buttons then |
return |
end |
local height = 20 |
for _, button in ipairs(level.buttons) do |
height = height + button:GetHeight() |
end |
level:SetHeight(height) |
local width = 160 |
for _, button in ipairs(level.buttons) do |
local extra = 1 |
if button.hasArrow or button.hasColorSwatch then |
extra = extra + 16 |
end |
if not button.notCheckable then |
extra = extra + 24 |
end |
button.text:SetFont(STANDARD_TEXT_FONT, button.textHeight) |
if button.text:GetWidth() + extra > width then |
width = button.text:GetWidth() + extra |
end |
end |
level:SetWidth(width + 20) |
if level:GetLeft() and level:GetRight() and level:GetTop() and level:GetBottom() and (level:GetLeft() < 0 or level:GetRight() > GetScreenWidth() or level:GetTop() > GetScreenHeight() or level:GetBottom() < 0) then |
level:ClearAllPoints() |
if level.lastDirection == "RIGHT" then |
if level.lastVDirection == "DOWN" then |
level:SetPoint("TOPLEFT", level.parent or level:GetParent(), "TOPRIGHT", 5, 10) |
else |
level:SetPoint("BOTTOMLEFT", level.parent or level:GetParent(), "BOTTOMRIGHT", 5, -10) |
end |
else |
if level.lastVDirection == "DOWN" then |
level:SetPoint("TOPRIGHT", level.parent or level:GetParent(), "TOPLEFT", -5, 10) |
else |
level:SetPoint("BOTTOMRIGHT", level.parent or level:GetParent(), "BOTTOMLEFT", -5, -10) |
end |
end |
end |
local dirty = false |
if not level:GetRight() then |
self:Close() |
return |
end |
if level:GetRight() > GetScreenWidth() and level.lastDirection == "RIGHT" then |
level.lastDirection = "LEFT" |
dirty = true |
elseif level:GetLeft() < 0 and level.lastDirection == "LEFT" then |
level.lastDirection = "RIGHT" |
dirty = true |
end |
if level:GetTop() > GetScreenHeight() and level.lastVDirection == "UP" then |
level.lastVDirection = "DOWN" |
dirty = true |
elseif level:GetBottom() < 0 and level.lastVDirection == "DOWN" then |
level.lastVDirection = "UP" |
dirty = true |
end |
if dirty then |
level:ClearAllPoints() |
if level.lastDirection == "RIGHT" then |
if level.lastVDirection == "DOWN" then |
level:SetPoint("TOPLEFT", level.parent or level:GetParent(), "TOPRIGHT", 5, 10) |
else |
level:SetPoint("BOTTOMLEFT", level.parent or level:GetParent(), "BOTTOMRIGHT", 5, -10) |
end |
else |
if level.lastVDirection == "DOWN" then |
level:SetPoint("TOPRIGHT", level.parent or level:GetParent(), "TOPLEFT", -5, 10) |
else |
level:SetPoint("BOTTOMRIGHT", level.parent or level:GetParent(), "BOTTOMLEFT", -5, -10) |
end |
end |
end |
if level:GetTop() > GetScreenHeight() then |
local top = level:GetTop() |
local point, parent, relativePoint, x, y = level:GetPoint(1) |
level:ClearAllPoints() |
level:SetPoint(point, parent, relativePoint, x or 0, (y or 0) + GetScreenHeight() - top) |
elseif level:GetBottom() < 0 then |
local bottom = level:GetBottom() |
local point, parent, relativePoint, x, y = level:GetPoint(1) |
level:ClearAllPoints() |
level:SetPoint(point, parent, relativePoint, x or 0, (y or 0) - bottom) |
end |
CheckDualMonitor(self, level) |
if mod(level.num, 5) == 0 then |
local left, bottom = level:GetLeft(), level:GetBottom() |
level:ClearAllPoints() |
level:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", left, bottom) |
end |
end |
local Open |
local OpenSlider |
local OpenEditBox |
local Refresh |
local Clear |
local function ReleaseButton(self, level, index) |
if not level.buttons then |
return |
end |
if not level.buttons[index] then |
return |
end |
local button = level.buttons[index] |
button:Hide() |
if button.highlight then |
button.highlight:Hide() |
end |
-- button.arrow:SetVertexColor(1, 1, 1) |
-- button.arrow:SetHeight(16) |
-- button.arrow:SetWidth(16) |
table.remove(level.buttons, index) |
table.insert(buttons, button) |
for k in pairs(button) do |
if k ~= 0 and k ~= "text" and k ~= "check" and k ~= "arrow" and k ~= "colorSwatch" and k ~= "highlight" and k ~= "radioHighlight" then |
button[k] = nil |
end |
end |
return true |
end |
local function Scroll(self, level, down) |
if down then |
if level:GetBottom() < 0 then |
local point, parent, relativePoint, x, y = level:GetPoint(1) |
level:SetPoint(point, parent, relativePoint, x, y + 50) |
if level:GetBottom() > 0 then |
level:SetPoint(point, parent, relativePoint, x, y + 50 - level:GetBottom()) |
end |
end |
else |
if level:GetTop() > GetScreenHeight() then |
local point, parent, relativePoint, x, y = level:GetPoint(1) |
level:SetPoint(point, parent, relativePoint, x, y - 50) |
if level:GetTop() < GetScreenHeight() then |
level:SetPoint(point, parent, relativePoint, x, y - 50 + GetScreenHeight() - level:GetTop()) |
end |
end |
end |
end |
local function getArgs(t, str, num, ...) |
local x = t[str .. num] |
if x == nil then |
return ... |
else |
return x, getArgs(t, str, num + 1, ...) |
end |
end |
local sliderFrame |
local editBoxFrame |
local function showGameTooltip(this) |
if this.tooltipTitle or this.tooltipText then |
GameTooltip_SetDefaultAnchor(GameTooltip, this) |
local disabled = not this.isTitle and this.disabled |
if this.tooltipTitle then |
if disabled then |
GameTooltip:SetText(this.tooltipTitle, 0.5, 0.5, 0.5, 1) |
else |
GameTooltip:SetText(this.tooltipTitle, 1, 1, 1, 1) |
end |
if this.tooltipText then |
if disabled then |
GameTooltip:AddLine(this.tooltipText, (NORMAL_FONT_COLOR.r + 0.5) / 2, (NORMAL_FONT_COLOR.g + 0.5) / 2, (NORMAL_FONT_COLOR.b + 0.5) / 2, 1) |
else |
GameTooltip:AddLine(this.tooltipText, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1) |
end |
end |
else |
if disabled then |
GameTooltip:SetText(this.tooltipText, 0.5, 0.5, 0.5, 1) |
else |
GameTooltip:SetText(this.tooltipText, 1, 1, 1, 1) |
end |
end |
GameTooltip:Show() |
end |
if this.tooltipFunc then |
GameTooltip:SetOwner(this, "ANCHOR_NONE") |
GameTooltip:SetPoint("TOPLEFT", this, "TOPRIGHT", 5, 0) |
this.tooltipFunc(getArgs(this, 'tooltipArg', 1)) |
GameTooltip:Show() |
end |
end |
local tmpt = setmetatable({}, {mode='v'}) |
local numButtons = 0 |
local function AcquireButton(self, level) |
if not levels[level] then |
return |
end |
level = levels[level] |
if not level.buttons then |
level.buttons = {} |
end |
local button |
if #buttons == 0 then |
numButtons = numButtons + 1 |
button = CreateFrame("Button", "Dewdrop20Button" .. numButtons, nil) |
button:SetFrameStrata("FULLSCREEN_DIALOG") |
button:SetHeight(16) |
local highlight = button:CreateTexture(nil, "BACKGROUND") |
highlight:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") |
button.highlight = highlight |
highlight:SetBlendMode("ADD") |
highlight:SetAllPoints(button) |
highlight:Hide() |
local check = button:CreateTexture(nil, "ARTWORK") |
button.check = check |
check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") |
check:SetPoint("CENTER", button, "LEFT", 12, 0) |
check:SetWidth(24) |
check:SetHeight(24) |
local radioHighlight = button:CreateTexture(nil, "ARTWORK") |
button.radioHighlight = radioHighlight |
radioHighlight:SetTexture("Interface\\Buttons\\UI-RadioButton") |
radioHighlight:SetAllPoints(check) |
radioHighlight:SetBlendMode("ADD") |
radioHighlight:SetTexCoord(0.5, 0.75, 0, 1) |
radioHighlight:Hide() |
button:SetScript("OnEnter", function() |
if (sliderFrame and sliderFrame:IsShown() and sliderFrame.mouseDown and sliderFrame.level == this.level.num + 1) or (editBoxFrame and editBoxFrame:IsShown() and editBoxFrame.mouseDown and editBoxFrame.level == this.level.num + 1) then |
for i = 1, this.level.num do |
Refresh(self, levels[i]) |
end |
return |
end |
self:Close(this.level.num + 1) |
if not this.disabled then |
if this.hasSlider then |
OpenSlider(self, this) |
elseif this.hasEditBox then |
OpenEditBox(self, this) |
elseif this.hasArrow then |
Open(self, this, nil, this.level.num + 1, this.value) |
end |
end |
if not this.level then -- button reclaimed |
return |
end |
StopCounting(self, this.level.num + 1) |
if not this.disabled then |
highlight:Show() |
if this.isRadio then |
button.radioHighlight:Show() |
end |
end |
showGameTooltip(this) |
end) |
button:SetScript("OnLeave", function() |
if not this.selected then |
highlight:Hide() |
end |
button.radioHighlight:Hide() |
if this.level then |
StartCounting(self, this.level.num) |
end |
GameTooltip:Hide() |
end) |
local first = true |
button:SetScript("OnClick", function() |
if not this.disabled then |
if this.hasColorSwatch then |
local func = button.colorFunc |
local hasOpacity = this.hasOpacity |
local this = this |
for k in pairs(tmpt) do |
tmpt[k] = nil |
end |
for i = 1, 1000 do |
local x = this['colorArg'..i] |
if x == nil then |
break |
else |
tmpt[i] = x |
end |
end |
ColorPickerFrame.func = function() |
if func then |
local r,g,b = ColorPickerFrame:GetColorRGB() |
local a = hasOpacity and 1 - OpacitySliderFrame:GetValue() or nil |
local n = #tmpt |
tmpt[n+1] = r |
tmpt[n+2] = g |
tmpt[n+3] = b |
tmpt[n+4] = a |
func(unpack(tmpt)) |
tmpt[n+1] = nil |
tmpt[n+2] = nil |
tmpt[n+3] = nil |
tmpt[n+4] = nil |
end |
end |
ColorPickerFrame.hasOpacity = this.hasOpacity |
ColorPickerFrame.opacityFunc = ColorPickerFrame.func |
ColorPickerFrame.opacity = 1 - this.opacity |
ColorPickerFrame:SetColorRGB(this.r, this.g, this.b) |
local r, g, b, a = this.r, this.g, this.b, this.opacity |
ColorPickerFrame.cancelFunc = function() |
if func then |
local n = #tmpt |
tmpt[n+1] = r |
tmpt[n+2] = g |
tmpt[n+3] = b |
tmpt[n+4] = a |
func(unpack(tmpt)) |
for i = 1, n+4 do |
tmpt[i] = nil |
end |
end |
end |
self:Close(1) |
ShowUIPanel(ColorPickerFrame) |
elseif this.func then |
local level = this.level |
if type(this.func) == "string" then |
if type(this.arg1[this.func]) ~= "function" then |
self:error("Cannot call method %q", this.func) |
end |
this.arg1[this.func](this.arg1, getArgs(this, 'arg', 2)) |
else |
this.func(getArgs(this, 'arg', 1)) |
end |
if this.closeWhenClicked then |
self:Close() |
elseif level:IsShown() then |
for i = 1, level.num do |
Refresh(self, levels[i]) |
end |
local value = levels[level.num].value |
for i = level.num-1, 1, -1 do |
local level = levels[i] |
local good = false |
for _,button in ipairs(level.buttons) do |
if button.value == value then |
good = true |
break |
end |
end |
if not good then |
Dewdrop:Close(i+1) |
end |
value = levels[i].value |
end |
end |
elseif this.closeWhenClicked then |
self:Close() |
end |
end |
end) |
local text = button:CreateFontString(nil, "ARTWORK") |
button.text = text |
text:SetFontObject(GameFontHighlightSmall) |
button.text:SetFont(STANDARD_TEXT_FONT, UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT) |
button:SetScript("OnMouseDown", function() |
if not this.disabled and (this.func or this.colorFunc or this.closeWhenClicked) then |
text:SetPoint("LEFT", button, "LEFT", this.notCheckable and 1 or 25, -1) |
end |
end) |
button:SetScript("OnMouseUp", function() |
if not this.disabled and (this.func or this.colorFunc or this.closeWhenClicked) then |
text:SetPoint("LEFT", button, "LEFT", this.notCheckable and 0 or 24, 0) |
end |
end) |
local arrow = button:CreateTexture(nil, "ARTWORK") |
button.arrow = arrow |
arrow:SetPoint("LEFT", button, "RIGHT", -16, 0) |
arrow:SetWidth(16) |
arrow:SetHeight(16) |
arrow:SetTexture("Interface\\ChatFrame\\ChatFrameExpandArrow") |
local colorSwatch = button:CreateTexture(nil, "OVERLAY") |
button.colorSwatch = colorSwatch |
colorSwatch:SetWidth(20) |
colorSwatch:SetHeight(20) |
colorSwatch:SetTexture("Interface\\ChatFrame\\ChatFrameColorSwatch") |
local texture = button:CreateTexture(nil, "OVERLAY") |
colorSwatch.texture = texture |
texture:SetTexture(1, 1, 1) |
texture:SetWidth(11.5) |
texture:SetHeight(11.5) |
texture:Show() |
texture:SetPoint("CENTER", colorSwatch, "CENTER") |
colorSwatch:SetPoint("RIGHT", button, "RIGHT", 0, 0) |
else |
button = table.remove(buttons) |
end |
button:ClearAllPoints() |
button:SetParent(level) |
button:SetFrameStrata(level:GetFrameStrata()) |
button:SetFrameLevel(level:GetFrameLevel() + 1) |
button:SetPoint("LEFT", level, "LEFT", 10, 0) |
button:SetPoint("RIGHT", level, "RIGHT", -10, 0) |
if #level.buttons == 0 then |
button:SetPoint("TOP", level, "TOP", 0, -10) |
else |
button:SetPoint("TOP", level.buttons[#level.buttons], "BOTTOM", 0, 0) |
end |
button.text:SetPoint("LEFT", button, "LEFT", 24, 0) |
button:Show() |
button.level = level |
table.insert(level.buttons, button) |
if not level.parented then |
level.parented = true |
level:ClearAllPoints() |
if level.num == 1 then |
if level.parent ~= UIParent then |
level:SetPoint("TOPRIGHT", level.parent, "TOPLEFT") |
else |
level:SetPoint("CENTER", level.parent, "CENTER") |
end |
else |
if level.lastDirection == "RIGHT" then |
if level.lastVDirection == "DOWN" then |
level:SetPoint("TOPLEFT", level.parent, "TOPRIGHT", 5, 10) |
else |
level:SetPoint("BOTTOMLEFT", level.parent, "BOTTOMRIGHT", 5, -10) |
end |
else |
if level.lastVDirection == "DOWN" then |
level:SetPoint("TOPRIGHT", level.parent, "TOPLEFT", -5, 10) |
else |
level:SetPoint("BOTTOMRIGHT", level.parent, "BOTTOMLEFT", -5, -10) |
end |
end |
end |
level:SetFrameStrata("FULLSCREEN_DIALOG") |
end |
button:SetAlpha(1) |
return button |
end |
local numLevels = 0 |
local function AcquireLevel(self, level) |
if not levels[level] then |
for i = #levels + 1, level, -1 do |
local i = i |
numLevels = numLevels + 1 |
local frame = CreateFrame("Button", "Dewdrop20Level" .. numLevels, nil) |
if i == 1 then |
local old_CloseSpecialWindows = CloseSpecialWindows |
function CloseSpecialWindows() |
local found = old_CloseSpecialWindows() |
if levels[1]:IsShown() then |
self:Close() |
return 1 |
end |
return found |
end |
end |
levels[i] = frame |
frame.num = i |
frame:SetParent(UIParent) |
frame:SetFrameStrata("FULLSCREEN_DIALOG") |
frame:Hide() |
frame:SetWidth(180) |
frame:SetHeight(10) |
frame:SetFrameLevel(i * 3) |
frame:SetScript("OnHide", function() |
self:Close(level + 1) |
end) |
if frame.SetTopLevel then |
frame:SetTopLevel(true) |
end |
frame:EnableMouse(true) |
frame:EnableMouseWheel(true) |
local backdrop = CreateFrame("Frame", nil, frame) |
backdrop:SetAllPoints(frame) |
backdrop:SetBackdrop(tmp( |
'bgFile', "Interface\\Tooltips\\UI-Tooltip-Background", |
'edgeFile', "Interface\\Tooltips\\UI-Tooltip-Border", |
'tile', true, |
'insets', tmp2( |
'left', 5, |
'right', 5, |
'top', 5, |
'bottom', 5 |
), |
'tileSize', 16, |
'edgeSize', 16 |
)) |
backdrop:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b) |
backdrop:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b) |
frame:SetScript("OnClick", function() |
self:Close(i) |
end) |
frame:SetScript("OnEnter", function() |
StopCounting(self, i) |
end) |
frame:SetScript("OnLeave", function() |
StartCounting(self, i) |
end) |
frame:SetScript("OnMouseWheel", function() |
Scroll(self, frame, arg1 < 0) |
end) |
if i == 1 then |
frame:SetScript("OnUpdate", function(this, arg1) |
OnUpdate(self, arg1) |
end) |
levels[1].lastDirection = "RIGHT" |
levels[1].lastVDirection = "DOWN" |
else |
levels[i].lastDirection = levels[i - 1].lastDirection |
levels[i].lastVDirection = levels[i - 1].lastVDirection |
end |
end |
end |
local fullscreenFrame = GetFullScreenFrame() |
local l = levels[level] |
local strata, framelevel = l:GetFrameStrata(), l:GetFrameLevel() |
if fullscreenFrame then |
l:SetParent(fullscreenFrame) |
else |
l:SetParent(UIParent) |
end |
l:SetFrameStrata(strata) |
l:SetFrameLevel(framelevel) |
l:SetAlpha(1) |
return l |
end |
local function validateOptions(options, position, baseOptions, fromPass) |
if not baseOptions then |
baseOptions = options |
end |
if type(options) ~= "table" then |
return "Options must be a table.", position |
end |
local kind = options.type |
if type(kind) ~= "string" then |
return '"type" must be a string.', position |
elseif kind ~= "group" and kind ~= "range" and kind ~= "text" and kind ~= "execute" and kind ~= "toggle" and kind ~= "color" and kind ~= "header" then |
return '"type" must either be "range", "text", "group", "toggle", "execute", "color", or "header".', position |
end |
if options.aliases then |
if type(options.aliases) ~= "table" and type(options.aliases) ~= "string" then |
return '"alias" must be a table or string', position |
end |
end |
if not fromPass then |
if kind == "execute" then |
if type(options.func) ~= "string" and type(options.func) ~= "function" then |
return '"func" must be a string or function', position |
end |
elseif kind == "range" or kind == "text" or kind == "toggle" then |
if type(options.set) ~= "string" and type(options.set) ~= "function" then |
return '"set" must be a string or function', position |
end |
if kind == "text" and options.get == false then |
elseif type(options.get) ~= "string" and type(options.get) ~= "function" then |
return '"get" must be a string or function', position |
end |
elseif kind == "group" and options.pass then |
if options.pass ~= true then |
return '"pass" must be either nil, true, or false', position |
end |
if not options.func then |
if type(options.set) ~= "string" and type(options.set) ~= "function" then |
return '"set" must be a string or function', position |
end |
if type(options.get) ~= "string" and type(options.get) ~= "function" then |
return '"get" must be a string or function', position |
end |
elseif type(options.func) ~= "string" and type(options.func) ~= "function" then |
return '"func" must be a string or function', position |
end |
end |
else |
if kind == "group" then |
return 'cannot have "type" = "group" as a subgroup of a passing group', position |
end |
end |
if options ~= baseOptions then |
if kind == "header" then |
elseif type(options.desc) ~= "string" then |
return '"desc" must be a string', position |
elseif options.desc:len() == 0 then |
return '"desc" cannot be a 0-length string', position |
end |
end |
if options ~= baseOptions or kind == "range" or kind == "text" or kind == "toggle" or kind == "color" then |
if options.type == "header" and not options.cmdName and not options.name then |
elseif options.cmdName then |
if type(options.cmdName) ~= "string" then |
return '"cmdName" must be a string or nil', position |
elseif options.cmdName:len() == 0 then |
return '"cmdName" cannot be a 0-length string', position |
end |
if type(options.guiName) ~= "string" then |
if not options.guiNameIsMap then |
return '"guiName" must be a string or nil', position |
end |
elseif options.guiName:len() == 0 then |
return '"guiName" cannot be a 0-length string', position |
end |
else |
if type(options.name) ~= "string" then |
return '"name" must be a string', position |
elseif options.name:len() == 0 then |
return '"name" cannot be a 0-length string', position |
end |
end |
end |
if options.guiNameIsMap then |
if type(options.guiNameIsMap) ~= "boolean" then |
return '"guiNameIsMap" must be a boolean or nil', position |
elseif options.type ~= "toggle" then |
return 'if "guiNameIsMap" is true, then "type" must be set to \'toggle\'', position |
elseif type(options.map) ~= "table" then |
return '"map" must be a table', position |
end |
end |
if options.message and type(options.message) ~= "string" then |
return '"message" must be a string or nil', position |
end |
if options.error and type(options.error) ~= "string" then |
return '"error" must be a string or nil', position |
end |
if options.current and type(options.current) ~= "string" then |
return '"current" must be a string or nil', position |
end |
if options.order then |
if type(options.order) ~= "number" or (-1 < options.order and options.order < 0.999) then |
return '"order" must be a non-zero number or nil', position |
end |
end |
if options.disabled then |
if type(options.disabled) ~= "function" and type(options.disabled) ~= "string" and options.disabled ~= true then |
return '"disabled" must be a function, string, or boolean', position |
end |
end |
if options.cmdHidden then |
if type(options.cmdHidden) ~= "function" and type(options.cmdHidden) ~= "string" and options.cmdHidden ~= true then |
return '"cmdHidden" must be a function, string, or boolean', position |
end |
end |
if options.guiHidden then |
if type(options.guiHidden) ~= "function" and type(options.guiHidden) ~= "string" and options.guiHidden ~= true then |
return '"guiHidden" must be a function, string, or boolean', position |
end |
end |
if options.hidden then |
if type(options.hidden) ~= "function" and type(options.hidden) ~= "string" and options.hidden ~= true then |
return '"hidden" must be a function, string, or boolean', position |
end |
end |
if kind == "text" then |
if type(options.validate) == "table" then |
local t = options.validate |
local iTable = nil |
for k,v in pairs(t) do |
if type(k) == "number" then |
if iTable == nil then |
iTable = true |
elseif not iTable then |
return '"validate" must either have all keys be indexed numbers or strings', position |
elseif k < 1 or k > #t then |
return '"validate" numeric keys must be indexed properly. >= 1 and <= #t', position |
end |
else |
if iTable == nil then |
iTable = false |
elseif iTable then |
return '"validate" must either have all keys be indexed numbers or strings', position |
end |
end |
if type(v) ~= "string" then |
return '"validate" values must all be strings', position |
end |
end |
if options.multiToggle and options.multiToggle ~= true then |
return '"multiToggle" must be a boolean or nil if "validate" is a table', position |
end |
elseif options.validate == "keybinding" then |
-- no other checks |
else |
if type(options.usage) ~= "string" then |
return '"usage" must be a string', position |
elseif options.validate and type(options.validate) ~= "string" and type(options.validate) ~= "function" then |
return '"validate" must be a string, function, or table', position |
end |
end |
if options.multiToggle and type(options.validate) ~= "table" then |
return '"validate" must be a table if "multiToggle" is true', position |
end |
elseif kind == "range" then |
if options.min or options.max then |
if type(options.min) ~= "number" then |
return '"min" must be a number', position |
elseif type(options.max) ~= "number" then |
return '"max" must be a number', position |
elseif options.min >= options.max then |
return '"min" must be less than "max"', position |
end |
end |
if options.step then |
if type(options.step) ~= "number" then |
return '"step" must be a number', position |
elseif options.step < 0 then |
return '"step" must be nonnegative', position |
end |
end |
if options.isPercent and options.isPercent ~= true then |
return '"isPercent" must either be nil, true, or false', position |
end |
elseif kind == "toggle" then |
if options.map then |
if type(options.map) ~= "table" then |
return '"map" must be a table', position |
elseif type(options.map[true]) ~= "string" then |
return '"map[true]" must be a string', position |
elseif type(options.map[false]) ~= "string" then |
return '"map[false]" must be a string', position |
end |
end |
elseif kind == "color" then |
if options.hasAlpha and options.hasAlpha ~= true then |
return '"hasAlpha" must be nil, true, or false', position |
end |
elseif kind == "group" then |
if options.pass and options.pass ~= true then |
return '"pass" must be nil, true, or false', position |
end |
if type(options.args) ~= "table" then |
return '"args" must be a table', position |
end |
for k,v in pairs(options.args) do |
if type(k) ~= "number" then |
if type(k) ~= "string" then |
return '"args" keys must be strings or numbers', position |
elseif k:len() == 0 then |
return '"args" keys must not be 0-length strings.', position |
end |
end |
if type(v) ~= "table" then |
return '"args" values must be tables', position and position .. "." .. k or k |
end |
local newposition |
if position then |
newposition = position .. ".args." .. k |
else |
newposition = "args." .. k |
end |
local err, pos = validateOptions(v, newposition, baseOptions, options.pass) |
if err then |
return err, pos |
end |
end |
elseif kind == "execute" then |
if type(options.confirm) ~= "string" and type(options.confirm) ~= "boolean" and type(options.confirm) ~= "nil" then |
return '"confirm" must be a string, boolean, or nil', position |
end |
end |
if options.icon and type(options.icon) ~= "string" then |
return'"icon" must be a string', position |
end |
if options.iconWidth or options.iconHeight then |
if type(options.iconWidth) ~= "number" or type(options.iconHeight) ~= "number" then |
return '"iconHeight" and "iconWidth" must be numbers', position |
end |
end |
if options.iconCoordLeft or options.iconCoordRight or options.iconCoordTop or options.iconCoordBottom then |
if type(options.iconCoordLeft) ~= "number" or type(options.iconCoordRight) ~= "number" or type(options.iconCoordTop) ~= "number" or type(options.iconCoordBottom) ~= "number" then |
return '"iconCoordLeft", "iconCoordRight", "iconCoordTop", and "iconCoordBottom" must be numbers', position |
end |
end |
end |
local validatedOptions |
local values |
local mysort_args |
local mysort |
local othersort |
local othersort_validate |
local baseFunc, currentLevel |
local function confirmPopup(message, func, ...) |
if not StaticPopupDialogs["DEWDROP20_CONFIRM_DIALOG"] then |
StaticPopupDialogs["DEWDROP20_CONFIRM_DIALOG"] = {} |
end |
local t = StaticPopupDialogs["DEWDROP20_CONFIRM_DIALOG"] |
for k in pairs(t) do |
t[k] = nil |
end |
t.text = message |
t.button1 = ACCEPT or "Accept" |
t.button2 = CANCEL or "Cancel" |
t.OnAccept = function() |
func(unpack(t)) |
end |
for i = 1, select('#', ...) do |
t[i] = select(i, ...) |
end |
t.timeout = 0 |
t.whileDead = 1 |
t.hideOnEscape = 1 |
Dewdrop:Close() |
StaticPopup_Show("DEWDROP20_CONFIRM_DIALOG") |
end |
function Dewdrop:FeedAceOptionsTable(options, difference) |
self:argCheck(options, 2, "table") |
self:argCheck(difference, 3, "nil", "number") |
if not currentLevel then |
self:error("Cannot call `FeedAceOptionsTable' outside of a Dewdrop declaration") |
end |
if not difference then |
difference = 0 |
end |
if not validatedOptions then |
validatedOptions = {} |
end |
if not validatedOptions[options] then |
local err, position = validateOptions(options) |
if err then |
if position then |
Dewdrop:error(position .. ": " .. err) |
else |
Dewdrop:error(err) |
end |
end |
validatedOptions[options] = true |
end |
local level = levels[currentLevel] |
if not level then |
self:error("Improper level given") |
end |
if not values then |
values = {} |
else |
for k,v in pairs(values) do |
values[k] = nil |
end |
end |
local current = level |
while current do |
if current.num == difference + 1 then |
break |
end |
table.insert(values, current.value) |
current = levels[current.num - 1] |
end |
local realOptions = options |
local handler = options.handler |
local passTable |
local passValue |
while #values > 0 do |
passTable = options.pass and options or nil |
local value = table.remove(values) |
options = options.args and options.args[value] |
if not options then |
return |
end |
handler = options.handler or handler |
passValue = passTable and value or nil |
end |
if options.type == "group" then |
local hidden, disabled = options.hidden |
if hidden then |
if type(hidden) == "function" then |
hidden = hidden() |
elseif type(hidden) == "string" then |
local f = hidden |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
hidden = handler[f](handler) |
if neg then |
hidden = not hidden |
end |
end |
end |
if hidden then |
return |
end |
local disabled = options.disabled |
if disabled then |
if type(disabled) == "function" then |
disabled = disabled() |
elseif type(disabled) == "string" then |
local f = disabled |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
hidden = handler[f](handler) |
if neg then |
disabled = not disabled |
end |
end |
end |
if disabled then |
self:AddLine( |
'text', DISABLED, |
'disabled', true |
) |
return |
end |
for k in pairs(options.args) do |
table.insert(values, k) |
end |
passTable = options.pass and options or nil |
if not mysort then |
mysort = function(a, b) |
local alpha, bravo = mysort_args[a], mysort_args[b] |
local alpha_order = alpha.order or 100 |
local bravo_order = bravo.order or 100 |
local alpha_name = alpha.guiName or alpha.name |
local bravo_name = bravo.guiName or bravo.name |
if alpha_order == bravo_order then |
if not alpha_name then |
return true |
elseif not bravo_name then |
return false |
else |
return alpha_name:gsub("|c%x%x%x%x%x%x%x%x", ""):gsub("|r", ""):upper() < bravo_name:gsub("|c%x%x%x%x%x%x%x%x", ""):gsub("|r", ""):upper() |
end |
else |
if alpha_order < 0 then |
if bravo_order > 0 then |
return false |
end |
else |
if bravo_order < 0 then |
return true |
end |
end |
return alpha_order < bravo_order |
end |
end |
end |
mysort_args = options.args |
table.sort(values, mysort) |
mysort_args = nil |
local hasBoth = #values >= 1 and (options.args[values[1]].order or 100) > 0 and (options.args[values[#values]].order or 100) < 0 |
local last_order = 1 |
for _,k in ipairs(values) do |
local v = options.args[k] |
local handler = v.handler or handler |
if hasBoth and last_order > 0 and (v.order or 100) < 0 then |
hasBoth = false |
self:AddLine() |
end |
local hidden, disabled = v.guiHidden or v.hidden, v.disabled |
if type(hidden) == "function" then |
local success |
success, hidden = pcall(hidden) |
if not success then |
geterrorhandler()(hidden) |
hidden = false |
end |
elseif type(hidden) == "string" then |
local f = hidden |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
local success |
success, hidden = pcall(handler[f], handler) |
if not success then |
geterrorhandler()(hidden) |
hidden = false |
end |
if neg then |
hidden = not hidden |
end |
end |
if not hidden then |
if type(disabled) == "function" then |
local success |
success, disabled = pcall(disabled) |
if not success then |
geterrorhandler()(disabled) |
disabled = false |
end |
elseif type(disabled) == "string" then |
local f = disabled |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
local success |
success, disabled = pcall(handler[f], handler) |
if not success then |
geterrorhandler()(disabled) |
disabled = false |
end |
if neg then |
disabled = not disabled |
end |
end |
local name = (v.guiIconOnly and v.icon) and "" or (v.guiName or v.name) |
local desc = v.desc |
local iconHeight = v.iconHeight or 16 |
local iconWidth = v.iconWidth or 16 |
local iconCoordLeft = v.iconCoordLeft |
local iconCoordRight = v.iconCoordRight |
local iconCoordBottom = v.iconCoordBottom |
local iconCoordTop = v.iconCoordTop |
local tooltipTitle, tooltipText |
tooltipTitle = name |
if name ~= desc then |
tooltipText = desc |
end |
if type(v.usage) == "string" and v.usage:trim():len() > 0 then |
if tooltipText then |
tooltipText = tooltipText .. "\n\n" .. USAGE_TOOLTIP:format(v.usage) |
else |
tooltipText = USAGE_TOOLTIP:format(v.usage) |
end |
end |
local v_p = passTable or v |
local passValue = passTable and k or nil |
if v.type == "toggle" then |
local checked |
local checked_arg |
if type(v_p.get) == "function" then |
local success, ret = pcall(v_p.get, passValue) |
if success then |
checked = ret |
else |
geterrorhandler()(ret) |
checked = false |
end |
checked_arg = checked |
else |
local f = v_p.get |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if not handler[f] then |
Dewdrop:error("Handler %q not available", f) |
end |
local success, ret = pcall(handler[f], handler, passValue) |
if success then |
checked = ret |
else |
geterrorhandler()(ret) |
checked = false |
end |
checked_arg = checked |
if neg then |
checked = not checked |
end |
end |
local func, arg1, arg2, arg3 |
if type(v_p.set) == "function" then |
func = v_p.set |
if passValue then |
arg1 = passValue |
arg2 = not checked_arg |
else |
arg1 = not checked_arg |
end |
else |
if not handler[v_p.set] then |
Dewdrop:error("Handler %q not available", v_p.set) |
end |
func = handler[v_p.set] |
arg1 = handler |
if passValue then |
arg2 = passValue |
arg3 = not checked_arg |
else |
arg2 = not checked_arg |
end |
end |
if v.guiNameIsMap then |
checked = checked and true or false |
name = tostring(v.map and v.map[checked]):gsub("|c%x%x%x%x%x%x%x%x(.-)|r", "%1") |
tooltipTitle = name |
checked = true--nil |
end |
self:AddLine( |
'text', name, |
'checked', checked, |
'isRadio', v.isRadio, |
'func', func, |
'arg1', arg1, |
'arg2', arg2, |
'arg3', arg3, |
'disabled', disabled, |
'tooltipTitle', tooltipTitle, |
'tooltipText', tooltipText |
) |
elseif v.type == "execute" then |
local func, arg1, arg2, arg3, arg4 |
local confirm = v.confirm |
if confirm == true then |
confirm = DEFAULT_CONFIRM_MESSAGE:format(tooltipText or tooltipTitle) |
end |
if type(v_p.func) == "function" then |
if confirm then |
func = confirmPopup |
arg1 = confirm |
arg2 = v_p.func |
arg3 = passValue |
else |
func = v_p.func |
arg1 = passValue |
end |
else |
if not handler[v_p.func] then |
Dewdrop:error("Handler %q not available", v_p.func) |
end |
if confirm then |
func = confirmPopup |
arg1 = confirm |
arg2 = handler[v_p.func] |
arg3 = handler |
arg4 = passValue |
else |
func = handler[v_p.func] |
arg1 = handler |
arg2 = passValue |
end |
end |
self:AddLine( |
'text', name, |
'checked', checked, |
'func', func, |
'arg1', arg1, |
'arg2', arg2, |
'arg3', arg3, |
'arg4', arg4, |
'disabled', disabled, |
'tooltipTitle', tooltipTitle, |
'tooltipText', tooltipText, |
'icon', v.icon, |
'iconHeight', iconHeight, |
'iconWidth', iconWidth, |
'iconCoordLeft', iconCoordLeft, |
'iconCoordRight', iconCoordRight, |
'iconCoordTop', iconCoordTop, |
'iconCoordBottom', iconCoordBottom |
) |
elseif v.type == "range" then |
local sliderValue |
if type(v_p.get) == "function" then |
local success, ret = pcall(v_p.get, passValue) |
if success then |
sliderValue = ret |
else |
geterrorhandler()(ret) |
sliderValue = 0 |
end |
else |
if not handler[v_p.get] then |
Dewdrop:error("Handler %q not available", v_p.get) |
end |
local success, ret = pcall(handler[v_p.get], handler, passValue) |
if success then |
sliderValue = ret |
else |
geterrorhandler()(ret) |
sliderValue = 0 |
end |
end |
local sliderFunc, sliderArg1, sliderArg2 |
if type(v_p.set) == "function" then |
sliderFunc = v_p.set |
sliderArg1 = passValue |
else |
if not handler[v_p.set] then |
Dewdrop:error("Handler %q not available", v_p.set) |
end |
sliderFunc = handler[v_p.set] |
sliderArg1 = handler |
sliderArg2 = passValue |
end |
self:AddLine( |
'text', name, |
'hasArrow', true, |
'hasSlider', true, |
'sliderMin', v.min or 0, |
'sliderMax', v.max or 1, |
'sliderStep', v.step or 0, |
'sliderIsPercent', v.isPercent or false, |
'sliderValue', sliderValue, |
'sliderFunc', sliderFunc, |
'sliderArg1', sliderArg1, |
'sliderArg2', sliderArg2, |
'disabled', disabled, |
'tooltipTitle', tooltipTitle, |
'tooltipText', tooltipText, |
'icon', v.icon, |
'iconHeight', iconHeight, |
'iconWidth', iconWidth, |
'iconCoordLeft', iconCoordLeft, |
'iconCoordRight', iconCoordRight, |
'iconCoordTop', iconCoordTop, |
'iconCoordBottom', iconCoordBottom |
) |
elseif v.type == "color" then |
local r,g,b,a |
if type(v_p.get) == "function" then |
local success |
success, r, g, b, a = pcall(v_p.get, passValue) |
if not success then |
geterrorhandler()(r) |
r, g, b, a = 0, 0, 0, 0 |
end |
else |
if not handler[v_p.get] then |
Dewdrop:error("Handler %q not available", v_p.get) |
end |
local success |
success, r, g, b, a = pcall(handler[v_p.get], handler, passValue) |
if not success then |
geterrorhandler()(r) |
r, g, b, a = 0, 0, 0, 0 |
end |
end |
local colorFunc, colorArg1, colorArg2 |
if type(v_p.set) == "function" then |
colorFunc = v_p.set |
colorArg1 = passValue |
else |
if not handler[v_p.set] then |
Dewdrop:error("Handler %q not available", v_p.set) |
end |
colorFunc = handler[v_p.set] |
colorArg1 = handler |
colorArg2 = passValue |
end |
self:AddLine( |
'text', name, |
'hasArrow', true, |
'hasColorSwatch', true, |
'r', r, |
'g', g, |
'b', b, |
'opacity', v.hasAlpha and a or nil, |
'hasOpacity', v.hasAlpha, |
'colorFunc', colorFunc, |
'colorArg1', colorArg1, |
'colorArg2', colorArg2, |
'disabled', disabled, |
'tooltipTitle', tooltipTitle, |
'tooltipText', tooltipText |
) |
elseif v.type == "text" then |
if type(v.validate) == "table" then |
self:AddLine( |
'text', name, |
'hasArrow', true, |
'value', k, |
'disabled', disabled, |
'tooltipTitle', tooltipTitle, |
'tooltipText', tooltipText, |
'icon', v.icon, |
'iconHeight', iconHeight, |
'iconWidth', iconWidth, |
'iconCoordLeft', iconCoordLeft, |
'iconCoordRight', iconCoordRight, |
'iconCoordTop', iconCoordTop, |
'iconCoordBottom', iconCoordBottom |
) |
else |
local editBoxText |
if type(v_p.get) == "function" then |
local success, ret = pcall(v_p.get, passValue) |
if success then |
editBoxText = ret |
else |
geterrorhandler()(ret) |
editBoxText = "" |
end |
elseif v_p.get == false then |
editBoxText = nil |
else |
if not handler[v_p.get] then |
Dewdrop:error("Handler %q not available", v_p.get) |
end |
local success, ret = pcall(handler[v_p.get], handler, passValue) |
if success then |
editBoxText = ret |
else |
geterrorhandler()(ret) |
editBoxText = "" |
end |
end |
local editBoxFunc, editBoxArg1, editBoxArg2 |
if type(v_p.set) == "function" then |
editBoxFunc = v_p.set |
editBoxArg1 = passValue |
else |
if not handler[v_p.set] then |
Dewdrop:error("Handler %q not available", v_p.set) |
end |
editBoxFunc = handler[v_p.set] |
editBoxArg1 = handler |
editBoxArg2 = passValue |
end |
local editBoxValidateFunc, editBoxValidateArg1 |
if v.validate and v.validate ~= "keybinding" then |
if type(v.validate) == "function" then |
editBoxValidateFunc = v.validate |
else |
if not handler[v.validate] then |
Dewdrop:error("Handler %q not available", v.validate) |
end |
editBoxValidateFunc = handler[v.validate] |
editBoxValidateArg1 = handler |
end |
elseif v.validate then |
if tooltipText then |
tooltipText = tooltipText .. "\n\n" .. RESET_KEYBINDING_DESC |
else |
tooltipText = RESET_KEYBINDING_DESC |
end |
end |
self:AddLine( |
'text', name, |
'hasArrow', true, |
'icon', v.icon, |
'iconHeight', iconHeight, |
'iconWidth', iconWidth, |
'iconCoordLeft', iconCoordLeft, |
'iconCoordRight', iconCoordRight, |
'iconCoordTop', iconCoordTop, |
'iconCoordBottom', iconCoordBottom, |
'hasEditBox', true, |
'editBoxText', editBoxText, |
'editBoxFunc', editBoxFunc, |
'editBoxArg1', editBoxArg1, |
'editBoxArg2', editBoxArg2, |
'editBoxValidateFunc', editBoxValidateFunc, |
'editBoxValidateArg1', editBoxValidateArg1, |
'editBoxIsKeybinding', v.validate == "keybinding", |
'editBoxKeybindingOnly', v.keybindingOnly, |
'editBoxKeybindingExcept', v.keybindingExcept, |
'disabled', disabled, |
'tooltipTitle', tooltipTitle, |
'tooltipText', tooltipText |
) |
end |
elseif v.type == "group" then |
self:AddLine( |
'text', name, |
'hasArrow', true, |
'value', k, |
'disabled', disabled, |
'tooltipTitle', tooltipTitle, |
'tooltipText', tooltipText, |
'icon', v.icon, |
'iconHeight', iconHeight, |
'iconWidth', iconWidth, |
'iconCoordLeft', iconCoordLeft, |
'iconCoordRight', iconCoordRight, |
'iconCoordTop', iconCoordTop, |
'iconCoordBottom', iconCoordBottom |
) |
elseif v.type == "header" then |
if name == "" or not name then |
self:AddLine( |
'isTitle', true, |
'icon', v.icon, |
'iconHeight', iconHeight, |
'iconWidth', iconWidth, |
'iconCoordLeft', iconCoordLeft, |
'iconCoordRight', iconCoordRight, |
'iconCoordTop', iconCoordTop, |
'iconCoordBottom', iconCoordBottom |
) |
else |
self:AddLine( |
'text', name, |
'isTitle', true, |
'icon', v.icon, |
'iconHeight', iconHeight, |
'iconWidth', iconWidth, |
'iconCoordLeft', iconCoordLeft, |
'iconCoordRight', iconCoordRight, |
'iconCoordTop', iconCoordTop, |
'iconCoordBottom', iconCoordBottom |
) |
end |
end |
end |
last_order = v.order or 100 |
end |
elseif options.type == "text" and type(options.validate) == "table" then |
local current |
local options_p = passTable or options |
local multiToggle = options_p.multiToggle |
if not multiToggle then |
if type(options_p.get) == "function" then |
current = options_p.get(passValue) |
elseif options_p.get ~= false then |
if not handler[options_p.get] then |
Dewdrop:error("Handler %q not available", options_p.get) |
end |
current = handler[options_p.get](handler, passValue) |
end |
end |
local indexed = true |
for k,v in pairs(options.validate) do |
if type(k) ~= "number" then |
indexed = false |
end |
table.insert(values, k) |
end |
if not indexed then |
if not othersort then |
othersort = function(alpha, bravo) |
return othersort_validate[alpha]:gsub("|c%x%x%x%x%x%x%x%x", ""):gsub("|r", ""):upper() < othersort_validate[bravo]:gsub("|c%x%x%x%x%x%x%x%x", ""):gsub("|r", ""):upper() |
end |
end |
othersort_validate = options.validate |
table.sort(values, othersort) |
othersort_validate = nil |
end |
for _,k in ipairs(values) do |
local v = options.validate[k] |
if type(k) == "number" then |
k = v |
end |
local func, arg1, arg2, arg3, arg4 |
if type(options_p.set) == "function" then |
func = options_p.set |
if passValue then |
arg1 = passValue |
arg2 = k |
else |
arg1 = k |
end |
else |
if not handler[options_p.set] then |
Dewdrop:error("Handler %q not available", options_p.set) |
end |
func = handler[options_p.set] |
arg1 = handler |
if passValue then |
arg2 = passValue |
arg3 = k |
else |
arg2 = k |
end |
end |
local checked |
if multiToggle then |
if type(options_p.get) == "function" then |
if passValue == nil then |
checked = options_p.get(k) |
else |
checked = options_p.get(passValue, k) |
end |
elseif options_p.get ~= false then |
if not handler[options_p.get] then |
Dewdrop:error("Handler %q not available", options_p.get) |
end |
if passValue == nil then |
checked = handler[options_p.get](handler, k) |
else |
checked = handler[options_p.get](handler, passValue, k) |
end |
end |
if arg2 == nil then |
arg2 = not checked |
elseif arg3 == nil then |
arg3 = not checked |
else |
arg4 = not checked |
end |
else |
checked = (k == current or (type(k) == "string" and type(current) == "string" and k:lower() == current:lower())) |
if checked then |
func, arg1, arg2, arg3, arg4 = nil, nil, nil, nil, nil |
end |
end |
self:AddLine( |
'text', v, |
'func', func, |
'arg1', arg1, |
'arg2', arg2, |
'arg3', arg3, |
'arg4', arg4, |
'isRadio', not multiToggle, |
'checked', checked, |
'tooltipTitle', options.guiName or options.name, |
'tooltipText', v |
) |
end |
for k in pairs(values) do |
values[k] = nil |
end |
else |
return false |
end |
return true |
end |
function Refresh(self, level) |
if type(level) == "number" then |
level = levels[level] |
end |
if not level then |
return |
end |
if baseFunc then |
Clear(self, level) |
currentLevel = level.num |
if type(baseFunc) == "table" then |
if currentLevel == 1 then |
local handler = baseFunc.handler |
if handler then |
local name = tostring(handler) |
if not name:find('^table:') and not handler.hideMenuTitle then |
name = name:gsub("|c%x%x%x%x%x%x%x%x(.-)|r", "%1") |
self:AddLine( |
'text', name, |
'isTitle', true |
) |
end |
end |
-- elseif level.parentText then |
-- self:AddLine( |
-- 'text', level.parentText, |
-- 'tooltipTitle', level.parentTooltipTitle, |
-- 'tooltipText', level.parentTooltipText, |
-- 'tooltipFunc', level.parentTooltipFunc, |
-- 'isTitle', true |
-- ) |
end |
self:FeedAceOptionsTable(baseFunc) |
if currentLevel == 1 then |
self:AddLine( |
'text', CLOSE, |
'tooltipTitle', CLOSE, |
'tooltipText', CLOSE_DESC, |
'closeWhenClicked', true |
) |
end |
else |
-- if level.parentText then |
-- self:AddLine( |
-- 'text', level.parentText, |
-- 'tooltipTitle', level.parentTooltipTitle, |
-- 'tooltipText', level.parentTooltipText, |
-- 'tooltipFunc', level.parentTooltipFunc, |
-- 'isTitle', true |
-- ) |
-- end |
baseFunc(currentLevel, level.value, levels[level.num - 1] and levels[level.num - 1].value, levels[level.num - 2] and levels[level.num - 2].value, levels[level.num - 3] and levels[level.num - 3].value, levels[level.num - 4] and levels[level.num - 4].value) |
end |
currentLevel = nil |
CheckSize(self, level) |
end |
end |
function Dewdrop:Refresh(level) |
self:argCheck(level, 2, "number") |
Refresh(self, levels[level]) |
end |
function OpenSlider(self, parent) |
if not sliderFrame then |
sliderFrame = CreateFrame("Frame", nil, nil) |
sliderFrame:SetWidth(80) |
sliderFrame:SetHeight(170) |
sliderFrame:SetScale(UIParent:GetScale()) |
sliderFrame:SetBackdrop(tmp( |
'bgFile', "Interface\\Tooltips\\UI-Tooltip-Background", |
'edgeFile', "Interface\\Tooltips\\UI-Tooltip-Border", |
'tile', true, |
'insets', tmp2( |
'left', 5, |
'right', 5, |
'top', 5, |
'bottom', 5 |
), |
'tileSize', 16, |
'edgeSize', 16 |
)) |
sliderFrame:SetFrameStrata("FULLSCREEN_DIALOG") |
if sliderFrame.SetTopLevel then |
sliderFrame:SetTopLevel(true) |
end |
sliderFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b) |
sliderFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b) |
sliderFrame:EnableMouse(true) |
sliderFrame:Hide() |
sliderFrame:SetPoint("CENTER", UIParent, "CENTER") |
local slider = CreateFrame("Slider", nil, sliderFrame) |
sliderFrame.slider = slider |
slider:SetOrientation("VERTICAL") |
slider:SetMinMaxValues(0, 1) |
slider:SetValueStep(0.01) |
slider:SetValue(0.5) |
slider:SetWidth(16) |
slider:SetHeight(128) |
slider:SetPoint("LEFT", sliderFrame, "LEFT", 15, 0) |
slider:SetBackdrop(tmp( |
'bgFile', "Interface\\Buttons\\UI-SliderBar-Background", |
'edgeFile', "Interface\\Buttons\\UI-SliderBar-Border", |
'tile', true, |
'edgeSize', 8, |
'tileSize', 8, |
'insets', tmp2( |
'left', 3, |
'right', 3, |
'top', 3, |
'bottom', 3 |
) |
)) |
local texture = slider:CreateTexture() |
slider:SetThumbTexture("Interface\\Buttons\\UI-SliderBar-Button-Vertical") |
local text = slider:CreateFontString(nil, "ARTWORK") |
sliderFrame.topText = text |
text:SetFontObject(GameFontGreenSmall) |
text:SetText("100%") |
text:SetPoint("BOTTOM", slider, "TOP") |
local text = slider:CreateFontString(nil, "ARTWORK") |
sliderFrame.bottomText = text |
text:SetFontObject(GameFontGreenSmall) |
text:SetText("0%") |
text:SetPoint("TOP", slider, "BOTTOM") |
local text = slider:CreateFontString(nil, "ARTWORK") |
sliderFrame.currentText = text |
text:SetFontObject(GameFontHighlightSmall) |
text:SetText("50%") |
text:SetPoint("LEFT", slider, "RIGHT") |
text:SetPoint("RIGHT", sliderFrame, "RIGHT", -6, 0) |
text:SetJustifyH("CENTER") |
local changed = false |
local inside = false |
slider:SetScript("OnValueChanged", function() |
if sliderFrame.changing then |
return |
end |
changed = true |
local done = false |
if sliderFrame.parent and sliderFrame.parent.sliderFunc then |
local min = sliderFrame.parent.sliderMin or 0 |
local max = sliderFrame.parent.sliderMax or 1 |
local step = sliderFrame.parent.sliderStep or (max - min) / 100 |
local value = (1 - slider:GetValue()) * (max - min) + min |
if step > 0 then |
value = math.floor((value - min) / step + 0.5) * step + min |
if value > max then |
value = max |
elseif value < min then |
value = min |
end |
end |
if value == sliderFrame.lastValue then |
return |
end |
sliderFrame.lastValue = value |
local text = sliderFrame.parent.sliderFunc(getArgs(sliderFrame.parent, 'sliderArg', 1, value)) |
if text then |
sliderFrame.currentText:SetText(text) |
done = true |
end |
end |
if not done then |
local min = sliderFrame.parent.sliderMin or 0 |
local max = sliderFrame.parent.sliderMax or 1 |
local step = sliderFrame.parent.sliderStep or (max - min) / 100 |
local value = (1 - slider:GetValue()) * (max - min) + min |
if step > 0 then |
value = math.floor((value - min) / step + 0.5) * step + min |
if value > max then |
value = max |
elseif value < min then |
value = min |
end |
end |
if sliderFrame.parent.sliderIsPercent then |
sliderFrame.currentText:SetText(string.format("%.0f%%", value * 100)) |
else |
if step < 0.1 then |
sliderFrame.currentText:SetText(string.format("%.2f", value)) |
elseif step < 1 then |
sliderFrame.currentText:SetText(string.format("%.1f", value)) |
else |
sliderFrame.currentText:SetText(string.format("%.0f", value)) |
end |
end |
end |
end) |
sliderFrame:SetScript("OnEnter", function() |
StopCounting(self, sliderFrame.level) |
showGameTooltip(sliderFrame.parent) |
end) |
sliderFrame:SetScript("OnLeave", function() |
StartCounting(self, sliderFrame.level) |
GameTooltip:Hide() |
end) |
slider:SetScript("OnMouseDown", function() |
sliderFrame.mouseDown = true |
GameTooltip:Hide() |
end) |
slider:SetScript("OnMouseUp", function() |
sliderFrame.mouseDown = false |
if changed--[[ and not inside]] then |
local parent = sliderFrame.parent |
local sliderFunc = parent.sliderFunc |
for i = 1, sliderFrame.level - 1 do |
Refresh(self, levels[i]) |
end |
local newParent |
for _,button in ipairs(levels[sliderFrame.level-1].buttons) do |
if button.sliderFunc == sliderFunc then |
newParent = button |
break |
end |
end |
if newParent then |
OpenSlider(self, newParent) |
else |
sliderFrame:Hide() |
end |
end |
if inside then |
showGameTooltip(sliderFrame.parent) |
end |
end) |
slider:SetScript("OnEnter", function() |
inside = true |
StopCounting(self, sliderFrame.level) |
showGameTooltip(sliderFrame.parent) |
end) |
slider:SetScript("OnLeave", function() |
inside = false |
StartCounting(self, sliderFrame.level) |
GameTooltip:Hide() |
if changed and not sliderFrame.mouseDown then |
local parent = sliderFrame.parent |
local sliderFunc = parent.sliderFunc |
for i = 1, sliderFrame.level - 1 do |
Refresh(self, levels[i]) |
end |
local newParent |
for _,button in ipairs(levels[sliderFrame.level-1].buttons) do |
if button.sliderFunc == sliderFunc then |
newParent = button |
break |
end |
end |
if newParent then |
OpenSlider(self, newParent) |
else |
sliderFrame:Hide() |
end |
end |
end) |
end |
sliderFrame.parent = parent |
sliderFrame.level = parent.level.num + 1 |
sliderFrame.parentValue = parent.level.value |
sliderFrame:SetFrameLevel(parent.level:GetFrameLevel() + 3) |
sliderFrame.slider:SetFrameLevel(sliderFrame:GetFrameLevel() + 1) |
sliderFrame.changing = true |
if not parent.sliderMin or not parent.sliderMax then |
return |
end |
if parent.arrow then |
-- parent.arrow:SetVertexColor(0.2, 0.6, 0) |
-- parent.arrow:SetHeight(24) |
-- parent.arrow:SetWidth(24) |
parent.selected = true |
parent.highlight:Show() |
end |
sliderFrame:SetClampedToScreen(false) |
if not parent.sliderValue then |
parent.sliderValue = (parent.sliderMin + parent.sliderMax) / 2 |
end |
sliderFrame.slider:SetValue(1 - (parent.sliderValue - parent.sliderMin) / (parent.sliderMax - parent.sliderMin)) |
sliderFrame.changing = false |
sliderFrame.bottomText:SetText(parent.sliderMinText or "0") |
sliderFrame.topText:SetText(parent.sliderMaxText or "1") |
local text |
if parent.sliderFunc then |
text = parent.sliderFunc(getArgs(parent, 'sliderArg', 1, parent.sliderValue)) |
end |
if text then |
sliderFrame.currentText:SetText(text) |
elseif parent.sliderIsPercent then |
sliderFrame.currentText:SetText(string.format("%.0f%%", parent.sliderValue * 100)) |
else |
sliderFrame.currentText:SetText(parent.sliderValue) |
end |
sliderFrame.lastValue = parent.sliderValue |
local level = parent.level |
sliderFrame:Show() |
sliderFrame:ClearAllPoints() |
if level.lastDirection == "RIGHT" then |
if level.lastVDirection == "DOWN" then |
sliderFrame:SetPoint("TOPLEFT", parent, "TOPRIGHT", 5, 10) |
else |
sliderFrame:SetPoint("BOTTOMLEFT", parent, "BOTTOMRIGHT", 5, -10) |
end |
else |
if level.lastVDirection == "DOWN" then |
sliderFrame:SetPoint("TOPRIGHT", parent, "TOPLEFT", -5, 10) |
else |
sliderFrame:SetPoint("BOTTOMRIGHT", parent, "BOTTOMLEFT", -5, -10) |
end |
end |
local dirty |
if level.lastDirection == "RIGHT" then |
if sliderFrame:GetRight() > GetScreenWidth() then |
level.lastDirection = "LEFT" |
dirty = true |
end |
elseif sliderFrame:GetLeft() < 0 then |
level.lastDirection = "RIGHT" |
dirty = true |
end |
if level.lastVDirection == "DOWN" then |
if sliderFrame:GetBottom() < 0 then |
level.lastVDirection = "UP" |
dirty = true |
end |
elseif sliderFrame:GetTop() > GetScreenWidth() then |
level.lastVDirection = "DOWN" |
dirty = true |
end |
if dirty then |
sliderFrame:ClearAllPoints() |
if level.lastDirection == "RIGHT" then |
if level.lastVDirection == "DOWN" then |
sliderFrame:SetPoint("TOPLEFT", parent, "TOPRIGHT", 5, 10) |
else |
sliderFrame:SetPoint("BOTTOMLEFT", parent, "BOTTOMRIGHT", 5, -10) |
end |
else |
if level.lastVDirection == "DOWN" then |
sliderFrame:SetPoint("TOPRIGHT", parent, "TOPLEFT", -5, 10) |
else |
sliderFrame:SetPoint("BOTTOMRIGHT", parent, "BOTTOMLEFT", -5, -10) |
end |
end |
end |
local left, bottom = sliderFrame:GetLeft(), sliderFrame:GetBottom() |
sliderFrame:ClearAllPoints() |
sliderFrame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", left, bottom) |
if mod(level.num, 5) == 0 then |
local left, bottom = level:GetLeft(), level:GetBottom() |
level:ClearAllPoints() |
level:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", left, bottom) |
end |
sliderFrame:SetClampedToScreen(true) |
end |
function OpenEditBox(self, parent) |
if not editBoxFrame then |
editBoxFrame = CreateFrame("Frame", nil, nil) |
editBoxFrame:SetWidth(200) |
editBoxFrame:SetHeight(40) |
editBoxFrame:SetScale(UIParent:GetScale()) |
editBoxFrame:SetBackdrop(tmp( |
'bgFile', "Interface\\Tooltips\\UI-Tooltip-Background", |
'edgeFile', "Interface\\Tooltips\\UI-Tooltip-Border", |
'tile', true, |
'insets', tmp2( |
'left', 5, |
'right', 5, |
'top', 5, |
'bottom', 5 |
), |
'tileSize', 16, |
'edgeSize', 16 |
)) |
editBoxFrame:SetFrameStrata("FULLSCREEN_DIALOG") |
if editBoxFrame.SetTopLevel then |
editBoxFrame:SetTopLevel(true) |
end |
editBoxFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b) |
editBoxFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b) |
editBoxFrame:EnableMouse(true) |
editBoxFrame:EnableMouseWheel(true) |
editBoxFrame:Hide() |
editBoxFrame:SetPoint("CENTER", UIParent, "CENTER") |
local editBox = CreateFrame("EditBox", nil, editBoxFrame) |
editBoxFrame.editBox = editBox |
editBox:SetFontObject(ChatFontNormal) |
editBox:SetWidth(160) |
editBox:SetHeight(13) |
editBox:SetPoint("CENTER", editBoxFrame, "CENTER", 0, 0) |
local left = editBox:CreateTexture(nil, "BACKGROUND") |
left:SetTexture("Interface\\ChatFrame\\UI-ChatInputBorder-Left") |
left:SetTexCoord(0, 100 / 256, 0, 1) |
left:SetWidth(100) |
left:SetHeight(32) |
left:SetPoint("LEFT", editBox, "LEFT", -10, 0) |
local right = editBox:CreateTexture(nil, "BACKGROUND") |
right:SetTexture("Interface\\ChatFrame\\UI-ChatInputBorder-Right") |
right:SetTexCoord(156/256, 1, 0, 1) |
right:SetWidth(100) |
right:SetHeight(32) |
right:SetPoint("RIGHT", editBox, "RIGHT", 10, 0) |
editBox:SetScript("OnEnterPressed", function() |
if editBoxFrame.parent and editBoxFrame.parent.editBoxValidateFunc then |
local t = editBox.realText or editBox:GetText() or "" |
local result = editBoxFrame.parent.editBoxValidateFunc(getArgs(editBoxFrame.parent, 'editBoxValidateArg', 1, t)) |
if not result then |
UIErrorsFrame:AddMessage(VALIDATION_ERROR, 1, 0, 0) |
return |
end |
end |
if editBoxFrame.parent and editBoxFrame.parent.editBoxFunc then |
local t |
if editBox.realText ~= "NONE" then |
t = editBox.realText or editBox:GetText() or "" |
end |
editBoxFrame.parent.editBoxFunc(getArgs(editBoxFrame.parent, 'editBoxArg', 1, t)) |
end |
self:Close(editBoxFrame.level) |
for i = 1, editBoxFrame.level - 1 do |
Refresh(self, levels[i]) |
end |
StartCounting(self, editBoxFrame.level-1) |
end) |
editBox:SetScript("OnEscapePressed", function() |
self:Close(editBoxFrame.level) |
StartCounting(self, editBoxFrame.level-1) |
end) |
editBox:SetScript("OnReceiveDrag", function(this) |
if GetCursorInfo then |
local type, alpha, bravo = GetCursorInfo() |
local text |
if type == "spell" then |
text = GetSpellName(alpha, bravo) |
elseif type == "item" then |
text = bravo |
end |
if not text then |
return |
end |
ClearCursor() |
editBox:SetText(text) |
end |
end) |
local changing = false |
local skipNext = false |
function editBox:SpecialSetText(text) |
local oldText = editBox:GetText() or "" |
if not text then |
text = "" |
end |
if text ~= oldText then |
changing = true |
self:SetText(text) |
changing = false |
skipNext = true |
end |
end |
editBox:SetScript("OnTextChanged", function() |
if skipNext then |
skipNext = false |
elseif not changing and editBoxFrame.parent and editBoxFrame.parent.editBoxChangeFunc then |
local t |
if editBox.realText ~= "NONE" then |
t = editBox.realText or editBox:GetText() or "" |
end |
local text = editBoxFrame.parent.editBoxChangeFunc(getArgs(editBoxFrame.parent, 'editBoxChangeArg', 1, t)) |
if text then |
editBox:SpecialSetText(text) |
end |
end |
end) |
editBoxFrame:SetScript("OnEnter", function() |
StopCounting(self, editBoxFrame.level) |
showGameTooltip(editBoxFrame.parent) |
end) |
editBoxFrame:SetScript("OnLeave", function() |
GameTooltip:Hide() |
end) |
editBox:SetScript("OnEnter", function() |
StopCounting(self, editBoxFrame.level) |
showGameTooltip(editBoxFrame.parent) |
end) |
editBox:SetScript("OnLeave", function() |
GameTooltip:Hide() |
end) |
editBoxFrame:SetScript("OnKeyDown", function(this, a1) |
if not editBox.keybinding then |
return |
end |
local arg1 = a1 or arg1 |
local screenshotKey = GetBindingKey("SCREENSHOT") |
if screenshotKey and arg1 == screenshotKey then |
Screenshot() |
return |
end |
if arg1 == "LeftButton" then |
arg1 = "BUTTON1" |
elseif arg1 == "RightButton" then |
arg1 = "BUTTON2" |
elseif arg1 == "MiddleButton" then |
arg1 = "BUTTON3" |
elseif arg1 == "Button4" then |
arg1 = "BUTTON4" |
elseif arg1 == "Button5" then |
arg1 = "BUTTON5" |
end |
if arg1 == "UNKNOWN" then |
return |
elseif arg1 == "SHIFT" or arg1 == "CTRL" or arg1 == "ALT" then |
return |
elseif arg1 == "ENTER" then |
if editBox.keybindingOnly and not editBox.keybindingOnly[editBox.realText] then |
return editBox:GetScript("OnEscapePressed")() |
elseif editBox.keybindingExcept and editBox.keybindingExcept[editBox.realText] then |
return editBox:GetScript("OnEscapePressed")() |
else |
return editBox:GetScript("OnEnterPressed")() |
end |
elseif arg1 == "ESCAPE" then |
if editBox.realText == "NONE" then |
return editBox:GetScript("OnEscapePressed")() |
else |
editBox:SpecialSetText(NONE or "NONE") |
editBox.realText = "NONE" |
return |
end |
elseif editBox.keybindingOnly and not editBox.keybindingOnly[arg1] then |
return |
elseif editBox.keybindingExcept and editBox.keybindingExcept[arg1] then |
return |
end |
local s = GetBindingText(arg1, "KEY_") |
if s == "BUTTON1" then |
s = KEY_BUTTON1 |
elseif s == "BUTTON2" then |
s = KEY_BUTTON2 |
end |
local real = arg1 |
if IsShiftKeyDown() then |
s = "Shift-" .. s |
real = "SHIFT-" .. real |
end |
if IsControlKeyDown() then |
s = "Ctrl-" .. s |
real = "CTRL-" .. real |
end |
if IsAltKeyDown() then |
s = "Alt-" .. s |
real = "ALT-" .. real |
end |
if editBox:GetText() ~= s then |
editBox:SpecialSetText("-") |
editBox:SpecialSetText(s) |
editBox.realText = real |
return editBox:GetScript("OnTextChanged")() |
end |
end) |
editBoxFrame:SetScript("OnMouseDown", editBoxFrame:GetScript("OnKeyDown")) |
editBox:SetScript("OnMouseDown", function(this, ...) |
if GetCursorInfo and (CursorHasItem() or CursorHasSpell()) then |
return editBox:GetScript("OnReceiveDrag")(this, ...) |
end |
return editBoxFrame:GetScript("OnKeyDown")(this, ...) |
end) |
editBoxFrame:SetScript("OnMouseWheel", function(t, a1) |
local arg1 = a1 or arg1 |
local up = arg1 > 0 |
arg1 = up and "MOUSEWHEELUP" or "MOUSEWHEELDOWN" |
return editBoxFrame:GetScript("OnKeyDown")(t or this, arg1) |
end) |
editBox:SetScript("OnMouseWheel", editBoxFrame:GetScript("OnMouseWheel")) |
end |
editBoxFrame.parent = parent |
editBoxFrame.level = parent.level.num + 1 |
editBoxFrame.parentValue = parent.level.value |
editBoxFrame:SetFrameLevel(parent.level:GetFrameLevel() + 3) |
editBoxFrame.editBox:SetFrameLevel(editBoxFrame:GetFrameLevel() + 1) |
editBoxFrame.editBox.realText = nil |
editBoxFrame:SetClampedToScreen(false) |
editBoxFrame.editBox:SpecialSetText("") |
if parent.editBoxIsKeybinding then |
local s = parent.editBoxText |
if s == "" then |
s = "NONE" |
end |
editBoxFrame.editBox.realText = s |
if s and s ~= "NONE" then |
local alpha,bravo = s:match("^(.+)%-(.+)$") |
if not bravo then |
alpha = nil |
bravo = s |
end |
bravo = GetBindingText(bravo, "KEY_") |
if alpha then |
editBoxFrame.editBox:SpecialSetText(alpha:upper() .. "-" .. bravo) |
else |
editBoxFrame.editBox:SpecialSetText(bravo) |
end |
else |
editBoxFrame.editBox:SpecialSetText(NONE or "NONE") |
end |
else |
editBoxFrame.editBox:SpecialSetText(parent.editBoxText) |
end |
editBoxFrame.editBox.keybinding = parent.editBoxIsKeybinding |
editBoxFrame.editBox.keybindingOnly = parent.editBoxKeybindingOnly |
editBoxFrame.editBox.keybindingExcept = parent.editBoxKeybindingExcept |
editBoxFrame.editBox:EnableKeyboard(not parent.editBoxIsKeybinding) |
editBoxFrame:EnableKeyboard(parent.editBoxIsKeybinding) |
if parent.arrow then |
-- parent.arrow:SetVertexColor(0.2, 0.6, 0) |
-- parent.arrow:SetHeight(24) |
-- parent.arrow:SetWidth(24) |
parent.selected = true |
parent.highlight:Show() |
end |
local level = parent.level |
editBoxFrame:Show() |
editBoxFrame:ClearAllPoints() |
if level.lastDirection == "RIGHT" then |
if level.lastVDirection == "DOWN" then |
editBoxFrame:SetPoint("TOPLEFT", parent, "TOPRIGHT", 5, 10) |
else |
editBoxFrame:SetPoint("BOTTOMLEFT", parent, "BOTTOMRIGHT", 5, -10) |
end |
else |
if level.lastVDirection == "DOWN" then |
editBoxFrame:SetPoint("TOPRIGHT", parent, "TOPLEFT", -5, 10) |
else |
editBoxFrame:SetPoint("BOTTOMRIGHT", parent, "BOTTOMLEFT", -5, -10) |
end |
end |
local dirty |
if level.lastDirection == "RIGHT" then |
if editBoxFrame:GetRight() > GetScreenWidth() then |
level.lastDirection = "LEFT" |
dirty = true |
end |
elseif editBoxFrame:GetLeft() < 0 then |
level.lastDirection = "RIGHT" |
dirty = true |
end |
if level.lastVDirection == "DOWN" then |
if editBoxFrame:GetBottom() < 0 then |
level.lastVDirection = "UP" |
dirty = true |
end |
elseif editBoxFrame:GetTop() > GetScreenWidth() then |
level.lastVDirection = "DOWN" |
dirty = true |
end |
if dirty then |
editBoxFrame:ClearAllPoints() |
if level.lastDirection == "RIGHT" then |
if level.lastVDirection == "DOWN" then |
editBoxFrame:SetPoint("TOPLEFT", parent, "TOPRIGHT", 5, 10) |
else |
editBoxFrame:SetPoint("BOTTOMLEFT", parent, "BOTTOMRIGHT", 5, -10) |
end |
else |
if level.lastVDirection == "DOWN" then |
editBoxFrame:SetPoint("TOPRIGHT", parent, "TOPLEFT", -5, 10) |
else |
editBoxFrame:SetPoint("BOTTOMRIGHT", parent, "BOTTOMLEFT", -5, -10) |
end |
end |
end |
local left, bottom = editBoxFrame:GetLeft(), editBoxFrame:GetBottom() |
editBoxFrame:ClearAllPoints() |
editBoxFrame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", left, bottom) |
if mod(level.num, 5) == 0 then |
local left, bottom = level:GetLeft(), level:GetBottom() |
level:ClearAllPoints() |
level:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", left, bottom) |
end |
editBoxFrame:SetClampedToScreen(true) |
end |
function Dewdrop:EncodeKeybinding(text) |
if text == nil or text == "NONE" then |
return nil |
end |
text = tostring(text):upper() |
local shift, ctrl, alt |
local modifier |
while true do |
if text == "-" then |
break |
end |
modifier, text = strsplit('-', text, 2) |
if text then |
if modifier ~= "SHIFT" and modifier ~= "CTRL" and modifier ~= "ALT" then |
return false |
end |
if modifier == "SHIFT" then |
if shift then |
return false |
end |
shift = true |
end |
if modifier == "CTRL" then |
if ctrl then |
return false |
end |
ctrl = true |
end |
if modifier == "ALT" then |
if alt then |
return false |
end |
alt = true |
end |
else |
text = modifier |
break |
end |
end |
if not text:find("^F%d+$") and text ~= "CAPSLOCK" and text:len() ~= 1 and (text:len() == 0 or text:byte() < 128 or text:len() > 4) and not _G["KEY_" .. text] and text ~= "BUTTON1" and text ~= "BUTTON2" then |
return false |
end |
local s = GetBindingText(text, "KEY_") |
if s == "BUTTON1" then |
s = KEY_BUTTON1 |
elseif s == "BUTTON2" then |
s = KEY_BUTTON2 |
end |
if shift then |
s = "Shift-" .. s |
end |
if ctrl then |
s = "Ctrl-" .. s |
end |
if alt then |
s = "Alt-" .. s |
end |
return s |
end |
function Dewdrop:IsOpen(parent) |
self:argCheck(parent, 2, "table", "nil") |
return levels[1] and levels[1]:IsShown() and (not parent or parent == levels[1].parent or parent == levels[1]:GetParent()) |
end |
function Dewdrop:GetOpenedParent() |
return (levels[1] and levels[1]:IsShown()) and (levels[1].parent or levels[1]:GetParent()) |
end |
function Open(self, parent, func, level, value, point, relativePoint, cursorX, cursorY) |
self:Close(level) |
if DewdropLib then |
local d = DewdropLib:GetInstance('1.0') |
local ret, val = pcall(d, IsOpen, d) |
if ret and val then |
DewdropLib:GetInstance('1.0'):Close() |
end |
end |
parent:GetCenter() |
local frame = AcquireLevel(self, level) |
if level == 1 then |
frame.lastDirection = "RIGHT" |
frame.lastVDirection = "DOWN" |
else |
frame.lastDirection = levels[level - 1].lastDirection |
frame.lastVDirection = levels[level - 1].lastVDirection |
end |
frame:SetFrameStrata("FULLSCREEN_DIALOG") |
frame:ClearAllPoints() |
frame.parent = parent |
frame:SetPoint("LEFT", UIParent, "RIGHT", 10000, 0) |
frame:Show() |
if level == 1 then |
baseFunc = func |
end |
levels[level].value = value |
-- levels[level].parentText = parent.text and parent.text:GetText() or nil |
-- levels[level].parentTooltipTitle = parent.tooltipTitle |
-- levels[level].parentTooltipText = parent.tooltipText |
-- levels[level].parentTooltipFunc = parent.tooltipFunc |
if parent.arrow then |
-- parent.arrow:SetVertexColor(0.2, 0.6, 0) |
-- parent.arrow:SetHeight(24) |
-- parent.arrow:SetWidth(24) |
parent.selected = true |
parent.highlight:Show() |
end |
relativePoint = relativePoint or point |
Refresh(self, levels[level]) |
if point or (cursorX and cursorY) then |
frame:ClearAllPoints() |
if cursorX and cursorY then |
local curX, curY = GetScaledCursorPosition() |
if curY < GetScreenHeight() / 2 then |
point, relativePoint = "BOTTOM", "BOTTOM" |
else |
point, relativePoint = "TOP", "TOP" |
end |
if curX < GetScreenWidth() / 2 then |
point, relativePoint = point .. "LEFT", relativePoint .. "RIGHT" |
else |
point, relativePoint = point .. "RIGHT", relativePoint .. "LEFT" |
end |
end |
frame:SetPoint(point, parent, relativePoint) |
if cursorX and cursorY then |
local left = frame:GetLeft() |
local width = frame:GetWidth() |
local bottom = frame:GetBottom() |
local height = frame:GetHeight() |
local curX, curY = GetScaledCursorPosition() |
frame:ClearAllPoints() |
relativePoint = relativePoint or point |
if point == "BOTTOM" or point == "TOP" then |
if curX < GetScreenWidth() / 2 then |
point = point .. "LEFT" |
else |
point = point .. "RIGHT" |
end |
elseif point == "CENTER" then |
if curX < GetScreenWidth() / 2 then |
point = "LEFT" |
else |
point = "RIGHT" |
end |
end |
local xOffset, yOffset = 0, 0 |
if curY > GetScreenHeight() / 2 then |
yOffset = -height |
end |
if curX > GetScreenWidth() / 2 then |
xOffset = -width |
end |
frame:SetPoint(point, parent, relativePoint, curX - left + xOffset, curY - bottom + yOffset) |
if level == 1 then |
frame.lastDirection = "RIGHT" |
end |
elseif cursorX then |
local left = frame:GetLeft() |
local width = frame:GetWidth() |
local curX, curY = GetScaledCursorPosition() |
frame:ClearAllPoints() |
relativePoint = relativePoint or point |
if point == "BOTTOM" or point == "TOP" then |
if curX < GetScreenWidth() / 2 then |
point = point .. "LEFT" |
else |
point = point .. "RIGHT" |
end |
elseif point == "CENTER" then |
if curX < GetScreenWidth() / 2 then |
point = "LEFT" |
else |
point = "RIGHT" |
end |
end |
frame:SetPoint(point, parent, relativePoint, curX - left - width / 2, 0) |
if level == 1 then |
frame.lastDirection = "RIGHT" |
end |
elseif cursorY then |
local bottom = frame:GetBottom() |
local height = frame:GetHeight() |
local curX, curY = GetScaledCursorPosition() |
frame:ClearAllPoints() |
relativePoint = relativePoint or point |
if point == "LEFT" or point == "RIGHT" then |
if curX < GetScreenHeight() / 2 then |
point = point .. "BOTTOM" |
else |
point = point .. "TOP" |
end |
elseif point == "CENTER" then |
if curX < GetScreenHeight() / 2 then |
point = "BOTTOM" |
else |
point = "TOP" |
end |
end |
frame:SetPoint(point, parent, relativePoint, 0, curY - bottom - height / 2) |
if level == 1 then |
frame.lastDirection = "DOWN" |
end |
end |
if (strsub(point, 1, 3) ~= strsub(relativePoint, 1, 3)) then |
if frame:GetBottom() < 0 then |
local point, parent, relativePoint, x, y = frame:GetPoint(1) |
local change = GetScreenHeight() - frame:GetTop() |
local otherChange = -frame:GetBottom() |
if otherChange < change then |
change = otherChange |
end |
frame:SetPoint(point, parent, relativePoint, x, y + change) |
elseif frame:GetTop() > GetScreenHeight() then |
local point, parent, relativePoint, x, y = frame:GetPoint(1) |
local change = GetScreenHeight() - frame:GetTop() |
local otherChange = -frame:GetBottom() |
if otherChange < change then |
change = otherChange |
end |
frame:SetPoint(point, parent, relativePoint, x, y + change) |
end |
end |
end |
CheckDualMonitor(self, frame) |
frame:SetClampedToScreen(true) |
frame:SetClampedToScreen(false) |
StartCounting(self, level) |
end |
function Dewdrop:IsRegistered(parent) |
self:argCheck(parent, 2, "table") |
return not not self.registry[parent] |
end |
function Dewdrop:Register(parent, ...) |
self:argCheck(parent, 2, "table") |
if self.registry[parent] then |
self:Unregister(parent) |
end |
local info = new(...) |
if type(info.children) == "table" then |
local err, position = validateOptions(info.children) |
if err then |
if position then |
Dewdrop:error(position .. ": " .. err) |
else |
Dewdrop:error(err) |
end |
end |
end |
self.registry[parent] = info |
if not info.dontHook and not self.onceRegistered[parent] then |
if parent:HasScript("OnMouseUp") then |
local script = parent:GetScript("OnMouseUp") |
parent:SetScript("OnMouseUp", function() |
if script then |
script() |
end |
if arg1 == "RightButton" and self.registry[parent] then |
if self:IsOpen(parent) then |
self:Close() |
else |
self:Open(parent) |
end |
end |
end) |
end |
if parent:HasScript("OnMouseDown") then |
local script = parent:GetScript("OnMouseDown") |
parent:SetScript("OnMouseDown", function() |
if script then |
script() |
end |
if self.registry[parent] then |
self:Close() |
end |
end) |
end |
end |
self.onceRegistered[parent] = true |
end |
function Dewdrop:Unregister(parent) |
self:argCheck(parent, 2, "table") |
self.registry[parent] = nil |
end |
function Dewdrop:Open(parent, ...) |
self:argCheck(parent, 2, "table") |
local info |
local k1 = ... |
if type(k1) == "table" and k1[0] and k1.IsFrameType and self.registry[k1] then |
info = tmp() |
for k,v in pairs(self.registry[k1]) do |
info[k] = v |
end |
else |
info = tmp(...) |
if self.registry[parent] then |
for k,v in pairs(self.registry[parent]) do |
if info[k] == nil then |
info[k] = v |
end |
end |
end |
end |
local point = info.point |
local relativePoint = info.relativePoint |
local cursorX = info.cursorX |
local cursorY = info.cursorY |
if type(point) == "function" then |
local b |
point, b = point(parent) |
if b then |
relativePoint = b |
end |
end |
if type(relativePoint) == "function" then |
relativePoint = relativePoint(parent) |
end |
Open(self, parent, info.children, 1, nil, point, relativePoint, cursorX, cursorY) |
end |
function Clear(self, level) |
if level then |
if level.buttons then |
for i = #level.buttons, 1, -1 do |
ReleaseButton(self, level, i) |
end |
end |
end |
end |
function Dewdrop:Close(level) |
if DropDownList1:IsShown() then |
DropDownList1:Hide() |
end |
if DewdropLib then |
local d = DewdropLib:GetInstance('1.0') |
local ret, val = pcall(d, IsOpen, d) |
if ret and val then |
DewdropLib:GetInstance('1.0'):Close() |
end |
end |
self:argCheck(level, 2, "number", "nil") |
if not level then |
level = 1 |
end |
if level == 1 and levels[level] then |
levels[level].parented = false |
end |
if level > 1 and levels[level-1].buttons then |
local buttons = levels[level-1].buttons |
for _,button in ipairs(buttons) do |
-- button.arrow:SetWidth(16) |
-- button.arrow:SetHeight(16) |
button.selected = nil |
button.highlight:Hide() |
-- button.arrow:SetVertexColor(1, 1, 1) |
end |
end |
if sliderFrame and sliderFrame.level >= level then |
sliderFrame:Hide() |
end |
if editBoxFrame and editBoxFrame.level >= level then |
editBoxFrame:Hide() |
end |
for i = level, #levels do |
Clear(self, levels[level]) |
levels[i]:Hide() |
levels[i]:ClearAllPoints() |
levels[i]:SetPoint("CENTER", UIParent, "CENTER") |
levels[i].value = nil |
end |
end |
function Dewdrop:AddLine(...) |
local info = tmp(...) |
local level = info.level or currentLevel |
info.level = nil |
local button = AcquireButton(self, level) |
if not next(info) then |
info.disabled = true |
end |
button.disabled = info.isTitle or info.notClickable or info.disabled |
button.isTitle = info.isTitle |
button.notClickable = info.notClickable |
if button.isTitle then |
button.text:SetFontObject(GameFontNormalSmall) |
elseif button.notClickable then |
button.text:SetFontObject(GameFontHighlightSmall) |
elseif button.disabled then |
button.text:SetFontObject(GameFontDisableSmall) |
else |
button.text:SetFontObject(GameFontHighlightSmall) |
end |
if info.disabled then |
button.arrow:SetDesaturated(true) |
button.check:SetDesaturated(true) |
else |
button.arrow:SetDesaturated(false) |
button.check:SetDesaturated(false) |
end |
if info.textR and info.textG and info.textB then |
button.textR = info.textR |
button.textG = info.textG |
button.textB = info.textB |
button.text:SetTextColor(button.textR, button.textG, button.textB) |
else |
button.text:SetTextColor(button.text:GetFontObject():GetTextColor()) |
end |
button.notCheckable = info.notCheckable |
button.text:SetPoint("LEFT", button, "LEFT", button.notCheckable and 0 or 24, 0) |
button.checked = not info.notCheckable and info.checked |
button.isRadio = not info.notCheckable and info.isRadio |
if info.isRadio then |
button.check:Show() |
button.check:SetTexture(info.checkIcon or "Interface\\Buttons\\UI-RadioButton") |
if button.checked then |
button.check:SetTexCoord(0.25, 0.5, 0, 1) |
button.check:SetVertexColor(1, 1, 1, 1) |
else |
button.check:SetTexCoord(0, 0.25, 0, 1) |
button.check:SetVertexColor(1, 1, 1, 0.5) |
end |
button.radioHighlight:SetTexture(info.checkIcon or "Interface\\Buttons\\UI-RadioButton") |
button.check:SetWidth(16) |
button.check:SetHeight(16) |
elseif info.icon then |
button.check:Show() |
button.check:SetTexture(info.icon) |
if info.iconWidth and info.iconHeight then |
button.check:SetWidth(info.iconWidth) |
button.check:SetHeight(info.iconHeight) |
else |
button.check:SetWidth(16) |
button.check:SetHeight(16) |
end |
if info.iconCoordLeft and info.iconCoordRight and info.iconCoordTop and info.iconCoordBottom then |
button.check:SetTexCoord(info.iconCoordLeft, info.iconCoordRight, info.iconCoordTop, info.iconCoordBottom) |
elseif info.icon:find("^Interface\\Icons\\") then |
button.check:SetTexCoord(0.05, 0.95, 0.05, 0.95) |
else |
button.check:SetTexCoord(0, 1, 0, 1) |
end |
button.check:SetVertexColor(1, 1, 1, 1) |
else |
if button.checked then |
if info.checkIcon then |
button.check:SetWidth(16) |
button.check:SetHeight(16) |
button.check:SetTexture(info.checkIcon) |
if info.checkIcon:find("^Interface\\Icons\\") then |
button.check:SetTexCoord(0.05, 0.95, 0.05, 0.95) |
else |
button.check:SetTexCoord(0, 1, 0, 1) |
end |
else |
button.check:SetWidth(24) |
button.check:SetHeight(24) |
button.check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") |
button.check:SetTexCoord(0, 1, 0, 1) |
end |
button.check:SetVertexColor(1, 1, 1, 1) |
else |
button.check:SetVertexColor(1, 1, 1, 0) |
end |
end |
if not button.disabled then |
button.func = info.func |
end |
button.hasColorSwatch = info.hasColorSwatch |
if button.hasColorSwatch then |
button.colorSwatch:Show() |
button.colorSwatch.texture:Show() |
button.r = info.r or 1 |
button.g = info.g or 1 |
button.b = info.b or 1 |
button.colorSwatch.texture:SetTexture(button.r, button.g, button.b) |
button.checked = false |
button.func = nil |
button.colorFunc = info.colorFunc |
local i = 1 |
while true do |
local k = "colorArg" .. i |
local x = info[k] |
if x == nil then |
break |
end |
button[k] = x |
i = i + 1 |
end |
button.hasOpacity = info.hasOpacity |
button.opacity = info.opacity or 1 |
else |
button.colorSwatch:Hide() |
button.colorSwatch.texture:Hide() |
end |
button.hasArrow = not button.hasColorSwatch and (info.value or info.hasSlider or info.hasEditBox) and info.hasArrow |
if button.hasArrow then |
button.arrow:SetAlpha(1) |
if info.hasSlider then |
button.hasSlider = true |
button.sliderMin = info.sliderMin or 0 |
button.sliderMax = info.sliderMax or 1 |
button.sliderStep = info.sliderStep or 0 |
button.sliderIsPercent = info.sliderIsPercent and true or false |
button.sliderMinText = info.sliderMinText or button.sliderIsPercent and string.format("%.0f%%", button.sliderMin * 100) or button.sliderMin |
button.sliderMaxText = info.sliderMaxText or button.sliderIsPercent and string.format("%.0f%%", button.sliderMax * 100) or button.sliderMax |
button.sliderFunc = info.sliderFunc |
button.sliderValue = info.sliderValue |
local i = 1 |
while true do |
local k = "sliderArg" .. i |
local x = info[k] |
if x == nil then |
break |
end |
button[k] = x |
i = i + 1 |
end |
elseif info.hasEditBox then |
button.hasEditBox = true |
button.editBoxText = info.editBoxText or "" |
button.editBoxFunc = info.editBoxFunc |
local i = 1 |
while true do |
local k = "editBoxArg" .. i |
local x = info[k] |
if x == nil then |
break |
end |
button[k] = x |
i = i + 1 |
end |
button.editBoxChangeFunc = info.editBoxChangeFunc |
local i = 1 |
while true do |
local k = "editBoxChangeArg" .. i |
local x = info[k] |
if x == nil then |
break |
end |
button[k] = x |
i = i + 1 |
end |
button.editBoxValidateFunc = info.editBoxValidateFunc |
local i = 1 |
while true do |
local k = "editBoxValidateArg" .. i |
local x = info[k] |
if x == nil then |
break |
end |
button[k] = x |
i = i + 1 |
end |
button.editBoxIsKeybinding = info.editBoxIsKeybinding |
button.editBoxKeybindingOnly = info.editBoxKeybindingOnly |
button.editBoxKeybindingExcept = info.editBoxKeybindingExcept |
else |
button.value = info.value |
local l = levels[level+1] |
if l and info.value == l.value then |
-- button.arrow:SetWidth(24) |
-- button.arrow:SetHeight(24) |
button.selected = true |
button.highlight:Show() |
end |
end |
else |
button.arrow:SetAlpha(0) |
end |
local i = 1 |
while true do |
local k = "arg" .. i |
local x = info[k] |
if x == nil then |
break |
end |
button[k] = x |
i = i + 1 |
end |
button.closeWhenClicked = info.closeWhenClicked |
button.textHeight = info.textHeight or UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT or 10 |
local font,_ = button.text:GetFont() |
button.text:SetFont(STANDARD_TEXT_FONT or "Fonts\\FRIZQT__.TTF", button.textHeight) |
button:SetHeight(button.textHeight + 6) |
button.text:SetPoint("RIGHT", button.arrow, (button.hasColorSwatch or button.hasArrow) and "LEFT" or "RIGHT") |
button.text:SetJustifyH(info.justifyH or "LEFT") |
button.text:SetText(info.text) |
button.tooltipTitle = info.tooltipTitle |
button.tooltipText = info.tooltipText |
button.tooltipFunc = info.tooltipFunc |
local i = 1 |
while true do |
local k = "tooltipArg" .. i |
local x = info[k] |
if x == nil then |
break |
end |
button[k] = x |
i = i + 1 |
end |
if not button.tooltipTitle and not button.tooltipText and not button.tooltipFunc and not info.isTitle then |
button.tooltipTitle = info.text |
end |
if type(button.func) == "string" then |
if type(button.arg1) ~= "table" then |
self:error("Cannot call method %q on a non-table", button.func) |
end |
if type(button.arg1[button.func]) ~= "function" then |
self:error("Method %q nonexistant.", button.func) |
end |
end |
end |
function Dewdrop:InjectAceOptionsTable(handler, options) |
self:argCheck(handler, 2, "table") |
self:argCheck(options, 3, "table") |
if tostring(options.type):lower() ~= "group" then |
self:error('Cannot inject into options table argument #3 if its type is not "group"') |
end |
if options.handler ~= nil and options.handler ~= handler then |
self:error("Cannot inject into options table argument #3 if it has a different handler than argument #2") |
end |
options.handler = handler |
local class = handler.class |
if not AceLibrary:HasInstance("AceOO-2.0") or not class then |
self:error("Cannot retrieve AceOptions tables from a non-object argument #2") |
end |
while class and class ~= AceLibrary("AceOO-2.0").Class do |
if type(class.GetAceOptionsDataTable) == "function" then |
local t = class:GetAceOptionsDataTable(handler) |
for k,v in pairs(t) do |
if type(options.args) ~= "table" then |
options.args = {} |
end |
if options.args[k] == nil then |
options.args[k] = v |
end |
end |
end |
local mixins = class.mixins |
if mixins then |
for mixin in pairs(mixins) do |
if type(mixin.GetAceOptionsDataTable) == "function" then |
local t = mixin:GetAceOptionsDataTable(handler) |
for k,v in pairs(t) do |
if type(options.args) ~= "table" then |
options.args = {} |
end |
if options.args[k] == nil then |
options.args[k] = v |
end |
end |
end |
end |
end |
class = class.super |
end |
return options |
end |
local function activate(self, oldLib, oldDeactivate) |
Dewdrop = self |
if oldLib and oldLib.registry then |
self.registry = oldLib.registry |
self.onceRegistered = oldLib.onceRegistered |
else |
self.registry = {} |
self.onceRegistered = {} |
local WorldFrame_OnMouseDown = WorldFrame:GetScript("OnMouseDown") |
local WorldFrame_OnMouseUp = WorldFrame:GetScript("OnMouseUp") |
local oldX, oldY, clickTime |
WorldFrame:SetScript("OnMouseDown", function() |
oldX,oldY = GetCursorPosition() |
clickTime = GetTime() |
if WorldFrame_OnMouseDown then |
WorldFrame_OnMouseDown() |
end |
end) |
WorldFrame:SetScript("OnMouseUp", function() |
local x,y = GetCursorPosition() |
if not oldX or not oldY or not x or not y or not clickTime then |
self:Close() |
if WorldFrame_OnMouseUp then |
WorldFrame_OnMouseUp() |
end |
return |
end |
local d = math.abs(x - oldX) + math.abs(y - oldY) |
if d <= 5 and GetTime() - clickTime < 0.5 then |
self:Close() |
end |
if WorldFrame_OnMouseUp then |
WorldFrame_OnMouseUp() |
end |
end) |
hooksecurefunc(DropDownList1, "Show", function() |
if levels[1] and levels[1]:IsVisible() then |
self:Close() |
end |
end) |
hooksecurefunc("HideDropDownMenu", function() |
if levels[1] and levels[1]:IsVisible() then |
self:Close() |
end |
end) |
hooksecurefunc("CloseDropDownMenus", function() |
if levels[1] and levels[1]:IsVisible() then |
local stack = debugstack() |
if not stack:find("`TargetFrame_OnHide'") then |
self:Close() |
end |
end |
end) |
end |
self.frame = oldLib and oldLib.frame or CreateFrame("Frame") |
self.frame:UnregisterAllEvents() |
self.frame:RegisterEvent("PLAYER_REGEN_ENABLED") |
self.frame:RegisterEvent("PLAYER_REGEN_DISABLED") |
self.frame:Hide() |
self.frame:SetScript("OnEvent", function(this, event) |
this:Show() |
end) |
self.frame:SetScript("OnUpdate", function(this) |
this:Hide() |
self:Refresh(1) |
end) |
levels = {} |
buttons = {} |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
AceLibrary:Register(Dewdrop, MAJOR_VERSION, MINOR_VERSION, activate) |
------------------------------------------------------------------------ |
r30695 | ckknight | 2007-03-21 17:27:48 -0400 (Wed, 21 Mar 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - fix potential nil bug |
------------------------------------------------------------------------ |
r30607 | ckknight | 2007-03-20 18:49:41 -0400 (Tue, 20 Mar 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - make sure that getTestWidth works |
------------------------------------------------------------------------ |
r29933 | ckknight | 2007-03-11 05:56:09 -0400 (Sun, 11 Mar 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - nil out func, onEnterFunc, onLeaveFunc as necessary |
------------------------------------------------------------------------ |
r29791 | ckknight | 2007-03-08 20:57:01 -0500 (Thu, 08 Mar 2007) | 2 lines |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - fixed :assert |
------------------------------------------------------------------------ |
r28502 | ckknight | 2007-02-19 06:09:11 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - should fix OnLeave/OnEnter |
------------------------------------------------------------------------ |
r28500 | ckknight | 2007-02-19 06:01:35 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - added onEnterFunc, onEnterArgX, onLeaveFunc, and onLeaveArgX |
------------------------------------------------------------------------ |
r28492 | ckknight | 2007-02-19 04:49:26 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - another possible efficiency boost |
------------------------------------------------------------------------ |
r28491 | ckknight | 2007-02-19 04:44:39 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - now recycles fontstrings, so that no more than needed is created. Previously, after creating a large grid, many columns could go unused. |
------------------------------------------------------------------------ |
r28490 | ckknight | 2007-02-19 04:18:51 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - now supports a completely arbitrary amount of columns |
------------------------------------------------------------------------ |
r28487 | ckknight | 2007-02-19 02:54:10 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - renamed left to col1, right to col2, third to col3, etc. |
------------------------------------------------------------------------ |
r28486 | ckknight | 2007-02-19 02:46:05 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - jostle around some stuff, args now stored as arg1 instead of 1 |
------------------------------------------------------------------------ |
r28483 | ckknight | 2007-02-19 02:26:16 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - fix a typo - it seriously had to be in here for many months. |
------------------------------------------------------------------------ |
r28481 | ckknight | 2007-02-19 02:18:26 -0500 (Mon, 19 Feb 2007) | 1 line |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - now creates fontstrings dynamically as needed. |
------------------------------------------------------------------------ |
r28476 | ckknight | 2007-02-19 02:02:32 -0500 (Mon, 19 Feb 2007) | 2 lines |
Changed paths: |
M /trunk/TabletLib/Tablet-2.0/Tablet-2.0.lua |
.Tablet-2.0 - reorganized fontstring structure to be tablet.buttons[i].left instead of tablet.lefts[i], so the button contains its children. |
- fixed issue where first line was outlined. |
------------------------------------------------------------------------ |
<?xml version="1.0"?> |
<log> |
<logentry |
revision="27198"> |
<author>ckknight</author> |
<date>2007-02-04T21:59:09.248708Z</date> |
<paths> |
<path |
action="M">/trunk/Ace2/AceLocale-2.2/AceLocale-2.2.lua</path> |
</paths> |
<msg>.AceLocale-2.2 - added :HasBaseTranslation</msg> |
</logentry> |
<logentry |
revision="25921"> |
<author>kergoth</author> |
<date>2007-01-23T21:50:43.516580Z</date> |
<paths> |
<path |
action="M">/trunk/Acolyte/Modules/NightFall.lua</path> |
<path |
action="M">/trunk/Chronometer/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFu.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README.txt</path> |
<path |
action="M">/trunk/Cancellation/Localization.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Shaman.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Readme.txt</path> |
<path |
action="M">/trunk/FreeRefills/Core.lua</path> |
<path |
action="M">/trunk/Bidder/Localization/enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceDebug-2.0/AceDebug-2.0.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellData.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/paladin.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/BulkMail/BulkMail-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/EnhancedColourPicker/EnhancedColourPicker.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/Race/BabbleLib-Race.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Rogue.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Angler/AnglerFastSwitch.lua</path> |
<path |
action="M">/trunk/Cosplay/Cosplay.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-esES.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist.bat</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetHealth.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.esES.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_Roll.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.enUS.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/Cellular/frame.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.xml</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/log.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/custom.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.lua</path> |
<path |
action="M">/trunk/Baddiel/Baddiel.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/Bindings.xml</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-enUS.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar_Panel.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarlock.lua</path> |
<path |
action="M">/trunk/ClassColors/ClassColors.lua</path> |
<path |
action="M">/trunk/DKPmonInit/PHP/README</path> |
<path |
action="M">/trunk/Decursive/Decursive.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/esES.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Browse.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFrame-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceLocals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/ReadMe.txt</path> |
<path |
action="M">/trunk/AceFry/AceFry.xml</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/FuBarPlugin-2.0/FuBarPlugin-2.0.lua</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer.lua</path> |
<path |
action="M">/trunk/Assister/modules/Invite.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Druid.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-frFR.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-enUS.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/DruidMana.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICheckButton-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIBase-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_NetStatsFu/NetStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Detox/locals_koKR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerModule.lua</path> |
<path |
action="M">/trunk/AutoBar/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/ClearFont/ClearFont.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColaLight/Core.lua</path> |
<path |
action="M">/trunk/CC_ToolTip/CC_ToolTip.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_PetitionFu/petition.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.xml</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-frFR.lua</path> |
<path |
action="M">/trunk/AHFavorites/README.txt</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-deDE.lua</path> |
<path |
action="M">/trunk/Detox/locals_zhTW.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-zhCN.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBid.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importmod.lua</path> |
<path |
action="M">/trunk/FryListDKP/Hooks.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.xml</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerHunter.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/FuBar_MCPFu.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/frFR.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Zone-2.1/Babble-Zone-2.1.lua</path> |
<path |
action="M">/trunk/BabbleLib/SpellTree/BabbleLib-SpellTree.lua</path> |
<path |
action="M">/trunk/CooldownCount/CooldownCount.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/Decursive/localization.kr.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/README.txt</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.lua</path> |
<path |
action="M">/trunk/BigWigs_KLHTMTarget/BigWigs_KLHTMTarget.lua</path> |
<path |
action="M">/trunk/ConsoleMage/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUICustomClass-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/BuffScanning.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Mage.lua</path> |
<path |
action="M">/trunk/ArkInventory/Bindings.xml</path> |
<path |
action="M">/trunk/DKPmon/Custom/registry.lua</path> |
<path |
action="M">/trunk/!SurfaceControl/gpl.txt</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-enUS.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlockSoulLink.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPriest.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFu.lua</path> |
<path |
action="M">/trunk/Combine/locals.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BagSlots/BagSlots.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Casts.lua</path> |
<path |
action="M">/trunk/ClosetGnome/ClosetGnome.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/Cartographer_Stats.lua</path> |
<path |
action="M">/trunk/DKPmonInit/main.lua</path> |
<path |
action="M">/trunk/Bidder/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.xml</path> |
<path |
action="M">/trunk/Cartographer/Modules/GuildPositions.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/LICENSE.txt</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisor.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals.lua</path> |
<path |
action="M">/trunk/Decursive/localization.tw.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.xml</path> |
<path |
action="M">/trunk/CBRipoff/core/frame.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerPaladin.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonController.lua</path> |
<path |
action="M">/trunk/CC_Note/Bindings.xml</path> |
<path |
action="M">/trunk/BuffProtectorGnome/gpl.txt</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.lua</path> |
<path |
action="M">/trunk/ColaMachine/Core.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/FuBar_DebuggerFu.lua</path> |
<path |
action="M">/trunk/Assister/modules/options.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/README.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_Bar.lua</path> |
<path |
action="M">/trunk/ArcHUD2/FuBarPlugin.lua</path> |
<path |
action="M">/trunk/Capping/localization-frFR.lua</path> |
<path |
action="M">/trunk/DrDamage/DrDamage.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Repairs.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.sh</path> |
<path |
action="M">/trunk/BigWigs_TabletBars/TabletBars.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerKill.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/readme.txt</path> |
<path |
action="M">/trunk/Ace/AceAddon.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.0/AceHook-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Zone-2.0/Babble-Zone-2.0.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFu.lua</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/readme.txt</path> |
<path |
action="M">/trunk/DKPmon/ImpExpModules/registry.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_frFR.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Editbox.xml</path> |
<path |
action="M">/trunk/Decursive/Dcr_Raid.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/ReadMe.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals-deDE.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/readme.txt</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/BiGOpt/subgroups.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/DebugFu.lua</path> |
<path |
action="M">/trunk/BigWigs_Debugger/Debugger.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/install.bat</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Type.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/Cartographer_Treasure.lua</path> |
<path |
action="M">/trunk/BanzaiAlert/BanzaiAlert.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/deDE.lua</path> |
<path |
action="M">/trunk/CryptoLib/Crypto-1.0/Crypto-1.0.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Clicks.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/addon.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_AutoFill.lua</path> |
<path |
action="M">/trunk/ClearFont/Fonts/Calibri_v1/Info.txt</path> |
<path |
action="M">/trunk/ClosetGnome/readme.txt</path> |
<path |
action="M">/trunk/ElkBuffBars/EBB_BarGroup.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Sort.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.lua</path> |
<path |
action="M">/trunk/ErrorMonster/license.txt</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.lua</path> |
<path |
action="M">/trunk/AuctionSort/AuctionSort.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.0/AceLocale-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/syncing.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/deDE.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_NanoStatsFu/NanoStatsFuLocals.lua</path> |
<path |
action="M">/trunk/EasyVisor/EasyVisorLocale.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.xml</path> |
<path |
action="M">/trunk/Bidder_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/Antagonist/Locals/enGB.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.lua</path> |
<path |
action="M">/trunk/CommChannel/README</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/DakSmak.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/LICENSE.txt</path> |
<path |
action="M">/trunk/CooldownCount/Locale.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Class-2.1/Babble-Class-2.1.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.xml</path> |
<path |
action="M">/trunk/Caterer/Caterer.lua</path> |
<path |
action="M">/trunk/AoFHeal/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFactory-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/README.txt</path> |
<path |
action="M">/trunk/CommChannel/Lib/CommChannel.lua</path> |
<path |
action="M">/trunk/BlackSheeps/ReadMe.txt</path> |
<path |
action="M">/trunk/Detox/locals_zhCN.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.xml</path> |
<path |
action="M">/trunk/AutoBar/Core.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusMana.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Cooldowns.lua</path> |
<path |
action="M">/trunk/AutoAcceptInvite/CHANGELOG.txt</path> |
<path |
action="M">/trunk/AutoBar/Style.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIContainer.lua</path> |
<path |
action="M">/trunk/ChatLog/Bindings.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInviteLocals.lua</path> |
<path |
action="M">/trunk/Ace/Ace.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Core.xml</path> |
<path |
action="M">/trunk/Chronometer/Core/Chronometer-Locale.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.koKR.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/Core.lua</path> |
<path |
action="M">/trunk/BiGOpt/readme.txt</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.kr.lua</path> |
<path |
action="M">/trunk/DKPmonInit/importdata.lua</path> |
<path |
action="M">/trunk/Ace/AceState.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUILocals.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/ReadMe.txt</path> |
<path |
action="M">/trunk/EavesDrop/localization-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/ReadMe.txt</path> |
<path |
action="M">/trunk/Fizzle/Core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/gpl.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-koKR.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Repair.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFu.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.lua</path> |
<path |
action="M">/trunk/Capping/localization-deDE.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarLocals.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Group.lua</path> |
<path |
action="M">/trunk/Decursive/localization.cn.lua</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.lua</path> |
<path |
action="M">/trunk/EavesDrop/options.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/README.txt</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFu.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBarConstants.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/AEmotes_Kelly.lua</path> |
<path |
action="M">/trunk/FuBar_DebugFu/README.txt</path> |
<path |
action="M">/trunk/BigWigs_LoathebTactical/BigWigs_LoathebTactical.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.tw.lua</path> |
<path |
action="M">/trunk/FryBid/FryBid.lua</path> |
<path |
action="M">/trunk/AEmotes_JonyC/AEmotes_JonyC.lua</path> |
<path |
action="M">/trunk/Decursive/lisez-moi.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Gatherer/ClosetGnome_Gatherer.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_deDE.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollect.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/FlexBar2/ButtonTheme.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/Bindings.xml</path> |
<path |
action="M">/trunk/Decursive/localization.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerMage.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/about.txt</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-koKR.lua</path> |
<path |
action="M">/trunk/DKPmon/PointsDB/pointsdb.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ADCommission.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectUtil.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Menu.lua</path> |
<path |
action="M">/trunk/EmbedLib/EmbedLib.lua</path> |
<path |
action="M">/trunk/FuBar_CRDelayFu/CRDelayFu.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Minipet.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Warlock.lua</path> |
<path |
action="M">/trunk/Angler/AnglerSetChanger.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloDefaults.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/MirrorTimer.lua</path> |
<path |
action="M">/trunk/Acolyte/Localizations/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Menu.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Mana.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFramesLocals_deDE.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Search.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Spell-2.1/Babble-Spell-2.1.lua</path> |
<path |
action="M">/trunk/Acolyte/ChatCmd.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals_deDE.lua</path> |
<path |
action="M">/trunk/Ace2/readme.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Core.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/README.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BossBlock/Core.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/SEEA-2.0-Events-Only.lua</path> |
<path |
action="M">/trunk/DKPmon/Comm/comm.lua</path> |
<path |
action="M">/trunk/Ace2/version history.txt</path> |
<path |
action="M">/trunk/FlexBar2/ButtonEventHandler.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_HeartFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFu.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerFade.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarButton.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIRegion-2.0.lua</path> |
<path |
action="M">/trunk/BigWigs_RazuviousAssistant/BigWigs_RazuviousAssistant.lua</path> |
<path |
action="M">/trunk/ArenaMaster/localization.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/readme.txt</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/Range.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/designdocument.txt</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/localizations.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Warlock.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-koKR.lua</path> |
<path |
action="M">/trunk/Acceptance/Core.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Glue.lua</path> |
<path |
action="M">/trunk/Acolyte/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_MiniPerfsFu/MiniPerfsFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Loner.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialCats.lua</path> |
<path |
action="M">/trunk/Detox/Bindings.xml</path> |
<path |
action="M">/trunk/BulkMail/BulkMail.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/priest.lua</path> |
<path |
action="M">/trunk/Ace/AceChatCmd.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/esES.lua</path> |
<path |
action="M">/trunk/FuBar_GCInFu/GCInFu.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ring-prototypes.txt</path> |
<path |
action="M">/trunk/FuBar_DebuggerFu/DebuggerFuLocals.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/TestSuite.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Comms.lua</path> |
<path |
action="M">/trunk/EtchASketch/nodist/makeworker.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/readme.txt</path> |
<path |
action="M">/trunk/BulkMail/BulkMailUtil.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2TargetScanner.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Vendor.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EtchASketch/ed_worker.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/cbripoff.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Paladin.lua</path> |
<path |
action="M">/trunk/BlackSheeps/BlackSheeps.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Stand.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/ModulePrototype.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-zhCN.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-frFR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetMana.lua</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistory.lua</path> |
<path |
action="M">/trunk/Decursive/Decursive.xml</path> |
<path |
action="M">/trunk/CooldownTimers2/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-zhTW.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.cn.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/ExpRepGlueFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/localization.enUS.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/frFR.lua</path> |
<path |
action="M">/trunk/CC_Target/CC_Target.xml</path> |
<path |
action="M">/trunk/BidHelper/BidHelper.xml</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2.lua</path> |
<path |
action="M">/trunk/BulkMail/README</path> |
<path |
action="M">/trunk/Automaton/modules/Unshapeshift.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFu.lua</path> |
<path |
action="M">/trunk/Decursive/loc_lists.txt</path> |
<path |
action="M">/trunk/!SurfaceControl/SurfaceControl.lua</path> |
<path |
action="M">/trunk/BuffProtectorGnome/BuffProtectorGnome.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.zhcn.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_frFR.lua</path> |
<path |
action="M">/trunk/DKPmon/utils.lua</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/localization.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI-2.0/wowtester.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Paladin.lua</path> |
<path |
action="M">/trunk/Catalyst/Catalyst.lua</path> |
<path |
action="M">/trunk/ChannelClean/Locale.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Class-2.0/Babble-Class-2.0.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/localization.enUS.lua</path> |
<path |
action="M">/trunk/Combatotron/Combatotron.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist.lua</path> |
<path |
action="M">/trunk/BiGOpt/BiGOpt-enUS.lua</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UILocals.lua</path> |
<path |
action="M">/trunk/ChatSounds/ChatSounds.lua</path> |
<path |
action="M">/trunk/ArkInventory/ReadMe.txt</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.zhcn.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontInstance-2.0.lua</path> |
<path |
action="M">/trunk/Assister/modules/Resurect.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShiftLocals.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassShaman.lua</path> |
<path |
action="M">/trunk/DowJones/README</path> |
<path |
action="M">/trunk/AceWardrobe_UI/AceWardrobe_UI.xml</path> |
<path |
action="M">/trunk/Fizzle/Inspect.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/credits.txt</path> |
<path |
action="M">/trunk/DeuceLog/DeuceLog.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/koKR.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShellEditor.xml</path> |
<path |
action="M">/trunk/AH_Wipe/AH_WipeLocale-enUS.lua</path> |
<path |
action="M">/trunk/Capping/WSG.lua</path> |
<path |
action="M">/trunk/ABInfo Visor/ABInfo Visor.xml</path> |
<path |
action="M">/trunk/Cartographer_Trainers/credits.txt</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerShaman.lua</path> |
<path |
action="M">/trunk/Cartographer_Opening/addon.lua</path> |
<path |
action="M">/trunk/Cartographer_Import/Import.lua</path> |
<path |
action="M">/trunk/Antagonist/Data/Buffs.lua</path> |
<path |
action="M">/trunk/Assister/modules/MoveTooltip.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/License Info/legal_tb.txt</path> |
<path |
action="M">/trunk/Deformat/Deformat-2.0/Deformat-2.0.lua</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals_xxXX.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/readme.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Druid.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Tracking.lua</path> |
<path |
action="M">/trunk/Cartographer_Treasure/LICENSE.txt</path> |
<path |
action="M">/trunk/BanzaiAlert/license.txt</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Bookmarks.lua</path> |
<path |
action="M">/trunk/FuBar_KeyQ/Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKPPoints.lua</path> |
<path |
action="M">/trunk/Decursive/DCR_init.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Mage.lua</path> |
<path |
action="M">/trunk/Ace/AceModule.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FinderReminder/locale.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFu.lua</path> |
<path |
action="M">/trunk/Ace2/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AEmotes/gpl-v2.txt</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_CustomMenuFu/CustomMenuFu.lua</path> |
<path |
action="M">/trunk/Capping/AB.lua</path> |
<path |
action="M">/trunk/AoFDKP/dkp.bat</path> |
<path |
action="M">/trunk/AutoBar/Bindings.xml</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_Monitor.xml</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_PoisonFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Rez.lua</path> |
<path |
action="M">/trunk/Deformat/LICENSE.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetHealth.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/AoFDKP/updatedkp.exe.config</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobeLocals.lua</path> |
<path |
action="M">/trunk/CVarScanner/AllWords.lua</path> |
<path |
action="M">/trunk/BigWigs_RespawnTimers/BigWigs_RespawnTimers.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerRogue.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/README.txt</path> |
<path |
action="M">/trunk/Automaton/modules/Release.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-SpellTree-2.0/Babble-SpellTree-2.0.lua</path> |
<path |
action="M">/trunk/DrDamage/ItemSets.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/importdata.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/deDE.lua</path> |
<path |
action="M">/trunk/AceItemBid/AceItemBidLocals.lua</path> |
<path |
action="M">/trunk/AceSwiftShift/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_Events.lua</path> |
<path |
action="M">/trunk/ArcHUD2/ModuleCore.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceDB-2.0/AceDB-2.0.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals_deDE.lua</path> |
<path |
action="M">/trunk/DrDamage/Localization.lua</path> |
<path |
action="M">/trunk/Cartographer/Bindings.xml</path> |
<path |
action="M">/trunk/AH_MailCollect/AH_MailCollectLocals.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUILayeredRegion-2.0.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Spell-2.0/Babble-Spell-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIEditBox.xml</path> |
<path |
action="M">/trunk/Decursive/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon/main.lua</path> |
<path |
action="M">/trunk/Ace2/AceComm-2.0/AceComm-2.0.lua</path> |
<path |
action="M">/trunk/Detox/locals_frFR.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleStats.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/Assister/modules/Summon.lua</path> |
<path |
action="M">/trunk/DKPmon/README.txt</path> |
<path |
action="M">/trunk/Decursive/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_Bartender2Fu/Bartender2Fu.lua</path> |
<path |
action="M">/trunk/Cartographer/Scripts/pack.lua</path> |
<path |
action="M">/trunk/AH_Wipe/AH_Wipe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Readme.txt</path> |
<path |
action="M">/trunk/FuBar_ItemDBFu/FuBar_ItemDBFu.lua</path> |
<path |
action="M">/trunk/FlexBar2/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurnin.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/esES.lua</path> |
<path |
action="M">/trunk/Capping/Capping.lua</path> |
<path |
action="M">/trunk/CC_Note/CC_Note.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Druid.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Anchors.lua</path> |
<path |
action="M">/trunk/FryListDKP/Points.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFu.lua</path> |
<path |
action="M">/trunk/BuffMe/buffs.lua</path> |
<path |
action="M">/trunk/Capping/localization.lua</path> |
<path |
action="M">/trunk/FuBar_AnkhTimerFu/AnkhTimerFu.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Core.lua</path> |
<path |
action="M">/trunk/Angler/MetrognomeLib.lua</path> |
<path |
action="M">/trunk/BananaBar2/SecureActionQueue-2.0.lua</path> |
<path |
action="M">/trunk/CompostLib/Compost-2.0/Compost-2.0.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/CC_MainAssist.xml</path> |
<path |
action="M">/trunk/EnhancedLootFrames/EnhancedLootFrames.xml</path> |
<path |
action="M">/trunk/ClosetGnome_BigWigs/ClosetGnome_BigWigs.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Druid.lua</path> |
<path |
action="M">/trunk/BattleChat/BattleChat.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.options.lua</path> |
<path |
action="M">/trunk/BA3_SpellAbilities/SpellAbilities.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFu.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/mage.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITexture-2.0.lua</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/License.txt</path> |
<path |
action="M">/trunk/Bidder/gpl.txt</path> |
<path |
action="M">/trunk/Cartographer_Trainers/addon.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/FramesClass.lua</path> |
<path |
action="M">/trunk/Ace2/AceHook-2.1/AceHook-2.1.lua</path> |
<path |
action="M">/trunk/DKPmon/Localization/enUS.lua</path> |
<path |
action="M">/trunk/EarPlug/Earplug.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Bindings.xml</path> |
<path |
action="M">/trunk/ClosetGnome/locales/frFR.lua</path> |
<path |
action="M">/trunk/FuBar_MCPFu/MCPFuLocals.lua</path> |
<path |
action="M">/trunk/Ace/AceHook.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/gpl.txt</path> |
<path |
action="M">/trunk/AltClickToAddItem/AltClickToAddItem.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_zhCN.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-koKR.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_zhCN.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/zhCN.lua</path> |
<path |
action="M">/trunk/Ace/AceData.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/addon.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFu.lua</path> |
<path |
action="M">/trunk/ChatLog/ChatLog.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/README.txt</path> |
<path |
action="M">/trunk/Decursive/Dcr_opt.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.lua</path> |
<path |
action="M">/trunk/ElkBuffBar/ElkBuffBar.xml</path> |
<path |
action="M">/trunk/FuBar_HeyFu/Core.lua</path> |
<path |
action="M">/trunk/Decursive/WhatsNew.txt</path> |
<path |
action="M">/trunk/FuBar_NavigatorFu/NavigatorFu.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootframe.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFu.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.zhcn.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/PerspectiveSans/Info.txt</path> |
<path |
action="M">/trunk/DuctTape/DuctTape.xml</path> |
<path |
action="M">/trunk/Barbrawl/Barbrawl.xml</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/README.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-koKR.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_ItemGUI.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDown.xml</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.enUS.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Utils.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Racial.lua</path> |
<path |
action="M">/trunk/Cellular/core.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/fixeddkp.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.lua</path> |
<path |
action="M">/trunk/ClearFont/How to use the font packs.txt</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast.lua</path> |
<path |
action="M">/trunk/EQCompare/EQCompare.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/TargetCasting.lua</path> |
<path |
action="M">/trunk/FreezeFrameLib/Lib/FreezeFrameLib.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhTW.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Boss-2.1/Babble-Boss-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassHunterPetHappy.lua</path> |
<path |
action="M">/trunk/Ace2/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/TinBirdhouse/Info.txt</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Logging/logviewer.lua</path> |
<path |
action="M">/trunk/Detox/locals_deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/readme.txt</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFu.lua</path> |
<path |
action="M">/trunk/BigWigs_ThaddiusArrows/sounds/AboutSounds.txt</path> |
<path |
action="M">/trunk/CommandHistory/CommandHistoryLocals.lua</path> |
<path |
action="M">/trunk/BestInShow/README</path> |
<path |
action="M">/trunk/FuBar_KungFu/KungFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/OutfitterFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FelwoodFarmer/FelwoodFarmer.xml</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuXPLocals.lua</path> |
<path |
action="M">/trunk/Fizzle/RepairCost.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.lua</path> |
<path |
action="M">/trunk/Ace2/AceModuleCore-2.0/AceModuleCore-2.0.lua</path> |
<path |
action="M">/trunk/Ace/AceEvent.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins.lua</path> |
<path |
action="M">/trunk/FuBar_MiniClockFu/MiniClockFu.lua</path> |
<path |
action="M">/trunk/FuBar_ExpRepGlueFu/README.txt</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed-enUS.lua</path> |
<path |
action="M">/trunk/EnchantList/EnchantList.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-esES.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-esES.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.lua</path> |
<path |
action="M">/trunk/AEmotes/AEMOTES.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/FuBar_AssistFu.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Hunter.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavorites.xml</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceOO-2.0/AceOO-2.0.lua</path> |
<path |
action="M">/trunk/Fence/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/gpl-v2.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/core.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFu.lua</path> |
<path |
action="M">/trunk/Ace/AceDB.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.lua</path> |
<path |
action="M">/trunk/FuBar_FuXPFu/FuBar_FuXPFu.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/README.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarSophia/Info.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/BarsClass.lua</path> |
<path |
action="M">/trunk/ChatHighlighter/ChatHighlighter.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_lists.xml</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerWarrior.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/deDE.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Priest.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/textline.lua</path> |
<path |
action="M">/trunk/AceUnitFrames/AUF_Docs.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaSD/Info.txt</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Boss-2.0/Babble-Boss-2.0.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/FocusHealth.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_utils.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/Cartographer_Noteshare.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.lua</path> |
<path |
action="M">/trunk/AutoAttack/Core.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-frFR.lua</path> |
<path |
action="M">/trunk/CharacterInfoStorage/CharacterInfoStorage.lua</path> |
<path |
action="M">/trunk/FinderReminder/FinderReminder.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-zhCN.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals.lua</path> |
<path |
action="M">/trunk/DKPmon/Looting/lootitem.lua</path> |
<path |
action="M">/trunk/BigWigs_HealbotAssist/BigWigs_HealbotAssist.lua</path> |
<path |
action="M">/trunk/Ace2/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/Cartographer_Hotspot/Cartographer_Hotspot.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Filter.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Locals.lua</path> |
<path |
action="M">/trunk/FuBar_KCIFu/KCIFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BigWigs/bigwigslod.bat</path> |
<path |
action="M">/trunk/Cartographer_Icons_GathererPack/pack.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerCast.lua</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/ClosetGnome_OhNoes.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SoulKeeper.lua</path> |
<path |
action="M">/trunk/Cosplay/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_DPS/changelog.txt</path> |
<path |
action="M">/trunk/ArenaMaster/Core.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/Ruleset.lua</path> |
<path |
action="M">/trunk/DKPmon/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_HeartFu/HeartFu.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-frFR.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2Locale-enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/BuffTemplate.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.lua</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.lua</path> |
<path |
action="M">/trunk/DKPmon/Awarding/awardframe.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Plugins/VersionInfo.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.koKR.lua</path> |
<path |
action="M">/trunk/AEmotes_Kelly/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/LucidaGrande/Info.txt</path> |
<path |
action="M">/trunk/AEmotes_JonyC/gpl-v2.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu-readme.txt</path> |
<path |
action="M">/trunk/DKPmon/gpl.txt</path> |
<path |
action="M">/trunk/AutoAcceptInvite/AutoAcceptInvite.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/Druidcom/DruidcomDruidTemplate.xml</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-zhCN.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-Race-2.1/Babble-Race-2.1.lua</path> |
<path |
action="M">/trunk/Cancellation/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFu.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/Compost.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBarUtils.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Casting.lua</path> |
<path |
action="M">/trunk/Decursive/Bindings.xml</path> |
<path |
action="M">/trunk/AceSwiftShift/AceSwiftShift.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_MCTimers.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/Health.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2RulesLocals.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_Experienced.lua</path> |
<path |
action="M">/trunk/EavesDrop/localization-koKR.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/MinionSummoner.lua</path> |
<path |
action="M">/trunk/Capping/Arenas.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFu.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2.xml</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-esES.lua</path> |
<path |
action="M">/trunk/BarAnnounce3/Gui.lua</path> |
<path |
action="M">/trunk/ArcHUD2/statrings.txt</path> |
<path |
action="M">/trunk/DorjeHealingBars/DorjeHealingBars.lua</path> |
<path |
action="M">/trunk/FuBar-compat-1.2/FuBar-compat-1.2.xml</path> |
<path |
action="M">/trunk/Ace/AceLocals.lua</path> |
<path |
action="M">/trunk/BigWigs_CommonAuras/CommonAuras.lua</path> |
<path |
action="M">/trunk/Ace/README.txt</path> |
<path |
action="M">/trunk/BarAnnounce3/Defaults.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatTimeFu/FuBar_CombatTimeFu.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/exportmod.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/AEmotes_DrWho.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimerModules.lua</path> |
<path |
action="M">/trunk/FuBar_ItemBonusesFu/ItemBonusesFu_Locale_koKR.lua</path> |
<path |
action="M">/trunk/AutoBar/AutoBarItemList.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuOptions.lua</path> |
<path |
action="M">/trunk/FuBar_PetInFu/PetInFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_DurabilityFu/DurabilityFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Angler/Angler.lua</path> |
<path |
action="M">/trunk/BabbleLib/Babble-Race-2.0/Babble-Race-2.0.lua</path> |
<path |
action="M">/trunk/ColaLight/GPL.txt</path> |
<path |
action="M">/trunk/Capping/AV.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/Readme.txt</path> |
<path |
action="M">/trunk/BugSack/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/Core.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-frFR.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-deDE.lua</path> |
<path |
action="M">/trunk/DKPmon_CSV/gpl.txt</path> |
<path |
action="M">/trunk/DogChow/DogChow.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfig.xml</path> |
<path |
action="M">/trunk/FuBar_OutfitterFu/README.txt</path> |
<path |
action="M">/trunk/ChatJustify/ChatJustify.lua</path> |
<path |
action="M">/trunk/FuBar_LootTypeFu/LootTypeFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AEmotes_DrWho/ReadMe.txt</path> |
<path |
action="M">/trunk/CVarScanner/WikiFormatter.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons_MetaMapPack/pack.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFrame.xml</path> |
<path |
action="M">/trunk/ClosetGnome_OhNoes/Localization_esES.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-esES.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Queue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_esES.lua</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-deDE.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/esES.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassMage.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-esES.lua</path> |
<path |
action="M">/trunk/AllPlayed/AllPlayed.lua</path> |
<path |
action="M">/trunk/FuBar_Experienced/FuBar_ExperiencedLocals.lua</path> |
<path |
action="M">/trunk/Cartographer/Libs/UTF8/utf8.lua</path> |
<path |
action="M">/trunk/CC_Roll/CC_RollLocals.lua</path> |
<path |
action="M">/trunk/Combine/Combine.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/Detox/locals_enUS.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/deDE.lua</path> |
<path |
action="M">/trunk/FuBar_CombatantsFu/Core.lua</path> |
<path |
action="M">/trunk/Dock-1.0/Dock-1.0/Dock-1.0.lua</path> |
<path |
action="M">/trunk/AbacusLib/Abacus-2.0/Abacus-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Rogue.lua</path> |
<path |
action="M">/trunk/ArcHUD2/readme.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-esES.lua</path> |
<path |
action="M">/trunk/Combatants/Core.lua</path> |
<path |
action="M">/trunk/AutoTurnin/AutoTurninGlobals.lua</path> |
<path |
action="M">/trunk/DreamBuff/DreamBuff.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/README-BAT-FILES.txt</path> |
<path |
action="M">/trunk/Decursive/localization.es.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-esES.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.zhCN.lua</path> |
<path |
action="M">/trunk/Cartographer/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.esES.lua</path> |
<path |
action="M">/trunk/BabbleLib/Class/BabbleLib-Class.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Priest.lua</path> |
<path |
action="M">/trunk/DKPmon/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_ErrorMonsterFu/ErrorMonsterFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Plates.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFu.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_PetInfoFu/PetInfoFu.lua</path> |
<path |
action="M">/trunk/CandyBar/CandyBar-2.0/CandyBar-2.0.lua</path> |
<path |
action="M">/trunk/ColaMachine/LICENSE.txt</path> |
<path |
action="M">/trunk/FramesResized/FramesResized.xml</path> |
<path |
action="M">/trunk/ChatThrottleLib/README.txt</path> |
<path |
action="M">/trunk/Decursive/localization.fr.lua</path> |
<path |
action="M">/trunk/Caterer/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerSkill.lua</path> |
<path |
action="M">/trunk/Cartographer_Noteshare/LICENSE.txt</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.lua</path> |
<path |
action="M">/trunk/ClosetGnome/locales/enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Options/options.lua</path> |
<path |
action="M">/trunk/Bidder/Comm/comm.lua</path> |
<path |
action="M">/trunk/FuBar_BattlegroundFu/BattlegroundFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Tooltip.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFu.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.lua</path> |
<path |
action="M">/trunk/Bidder/utils.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-frFR.lua</path> |
<path |
action="M">/trunk/Angler/AnglerEasyLure.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/Bindings.xml</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.lua</path> |
<path |
action="M">/trunk/BuffMe/core.lua</path> |
<path |
action="M">/trunk/Angler/AnglerTracker.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/druid.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUI-2.0.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.frFR.lua</path> |
<path |
action="M">/trunk/Bidder/Skinning/frameskinning.lua</path> |
<path |
action="M">/trunk/Bidder/DKPstub.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-deDE.lua</path> |
<path |
action="M">/trunk/BiGOpt/main.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Mage.lua</path> |
<path |
action="M">/trunk/Decursive/localization.de.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_BidWatch.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_AQTimers.lua</path> |
<path |
action="M">/trunk/ChatLog/Locale-zhCN.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFu.lua</path> |
<path |
action="M">/trunk/ColaMachine/GPL.txt</path> |
<path |
action="M">/trunk/DKPmon_CSV/exportmod.lua</path> |
<path |
action="M">/trunk/Babble-2.2/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/LICENSE.txt</path> |
<path |
action="M">/trunk/DKPmon_FCZS/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.koKR.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/koKR.lua</path> |
<path |
action="M">/trunk/BigWigs_ZombieFood/ZombieFood.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDialog.xml</path> |
<path |
action="M">/trunk/DKPmonInit/README.txt</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/ToolTip.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/Localization.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenuTuFu/Core.lua</path> |
<path |
action="M">/trunk/Bidder_FCZS/localization.enUS.lua</path> |
<path |
action="M">/trunk/AHFavorites/AHFavLocals_deDE.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/README.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIButton.xml</path> |
<path |
action="M">/trunk/Chronometer/Data/Warrior.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhTW.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhTW.lua</path> |
<path |
action="M">/trunk/Antagonist/Locals/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FarmerFu/FarmerFu.lua</path> |
<path |
action="M">/trunk/EtchASketch/flashframe.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar.lua</path> |
<path |
action="M">/trunk/Cartographer_Vendors/LICENSE.txt</path> |
<path |
action="M">/trunk/AceBuffGroups/abg.xml</path> |
<path |
action="M">/trunk/Ace2/AceLibrary/AceLibrary.lua</path> |
<path |
action="M">/trunk/AbacusLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_ItemListFu/FuBar_ItemListFu.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/LICENSE.txt</path> |
<path |
action="M">/trunk/CBRipoff/core/casting.lua</path> |
<path |
action="M">/trunk/DogChow/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/Aperture/Aperture.lua</path> |
<path |
action="M">/trunk/ElkBuffBars/EBBTest.lua</path> |
<path |
action="M">/trunk/Bidder/Options/options.lua</path> |
<path |
action="M">/trunk/!StopTheSpam/StopTheSpam.lua</path> |
<path |
action="M">/trunk/Decursive/Downloads.txt</path> |
<path |
action="M">/trunk/Angler/Bindings.xml</path> |
<path |
action="M">/trunk/ArkInventory/DefaultCategories.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Ace2/AceConsole-2.0/AceConsole-2.0.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/RitualofSummoning.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/CharacterInfo/CharacterInfo.xml</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIMoneyFrame.xml</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_deDE.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Button.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/FuBar_FactionItemsFu/FactionItemsFuLocals.lua</path> |
<path |
action="M">/trunk/ColdFusionShell/indent.lua</path> |
<path |
action="M">/trunk/Cartographer_Quests/credits.txt</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhTW.lua</path> |
<path |
action="M">/trunk/FuBar_AceWardrobeFu/core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/GossipData.lua</path> |
<path |
action="M">/trunk/AceTimer/Data/AceTimerDruid.lua</path> |
<path |
action="M">/trunk/DrDamage/Data/Priest.lua</path> |
<path |
action="M">/trunk/Assister/modules/Whisper.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-frFR.lua</path> |
<path |
action="M">/trunk/ClearFont2_FontPack_1/core.lua</path> |
<path |
action="M">/trunk/BidHelper/Locale.lua</path> |
<path |
action="M">/trunk/DKPmon/Custom/fixeddkp.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_ZoneLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Sell.lua</path> |
<path |
action="M">/trunk/Cyclone/locale.enUS.lua</path> |
<path |
action="M">/trunk/Chronometer/Data/Shaman.lua</path> |
<path |
action="M">/trunk/CoatHanger/CoatHanger.xml</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarConfigSlot.lua</path> |
<path |
action="M">/trunk/BestInShow/BestInShow.lua</path> |
<path |
action="M">/trunk/Bidder/main.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-esES.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Globals.lua</path> |
<path |
action="M">/trunk/AutoBarConfig/AutoBarChooseCategory.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/Locales/FuBar_FactionsFu.frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NameToggleFu/Core.lua</path> |
<path |
action="M">/trunk/Barf/Barf.lua</path> |
<path |
action="M">/trunk/ColaLight/LICENSE.txt</path> |
<path |
action="M">/trunk/AutoBar/Locale-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/BabbleLib-2.1/Babble-SpellTree-2.1/Babble-SpellTree-2.1.lua</path> |
<path |
action="M">/trunk/Cartographer_Icons/addon.lua</path> |
<path |
action="M">/trunk/FuBar/FuBar-Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Locale/AceTimerLocals_koKR.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/BaarPhilos/Info.txt</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP.xml</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.deDE.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/registry.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_deDE.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.fr.lua</path> |
<path |
action="M">/trunk/BanzaiLib/license.txt</path> |
<path |
action="M">/trunk/AceUnitFrames/AceUnitFrames.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP_HistoryGUI.lua</path> |
<path |
action="M">/trunk/Cartographer_Fishing/addon.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollEditBox.xml</path> |
<path |
action="M">/trunk/ArcHUD2/RingTemplate.lua</path> |
<path |
action="M">/trunk/Assister/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/fubar-plugin.lua</path> |
<path |
action="M">/trunk/Baggins/bindings.xml</path> |
<path |
action="M">/trunk/Automaton/modules/Gossip/Gossip.lua</path> |
<path |
action="M">/trunk/Decursive/Dcr_DebuffsFrame.xml</path> |
<path |
action="M">/trunk/CC_Core/CC_Core.lua</path> |
<path |
action="M">/trunk/Automaton/modules/LootBOP.lua</path> |
<path |
action="M">/trunk/CC_RangeCheck/CC_RangeCheck.lua</path> |
<path |
action="M">/trunk/EtchASketch/worker.lua</path> |
<path |
action="M">/trunk/BigWigs_Timers/BigWigs_BWLTimers.lua</path> |
<path |
action="M">/trunk/CrayonLib/LICENSE.txt</path> |
<path |
action="M">/trunk/FuBar_DepositBoxFu/DepositBoxFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFu.lua</path> |
<path |
action="M">/trunk/Engravings/EngravingsPresets.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-frFR.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/NinjutFu.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIFontstring.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Zone/ClosetGnome_Zone.lua</path> |
<path |
action="M">/trunk/Diplomat/Libs/AceAddon-2.0/AceAddon-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_GreedBeacon/FuBar_GreedBeacon.lua</path> |
<path |
action="M">/trunk/EQCompare/localization.de.lua</path> |
<path |
action="M">/trunk/Baggins/Baggins-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIScrollFrame.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemist.lua</path> |
<path |
action="M">/trunk/CVarScanner/README.txt</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassWarlock.lua</path> |
<path |
action="M">/trunk/ArkInventory/ArkInventory.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUI.xml</path> |
<path |
action="M">/trunk/AceWardrobe/AceWardrobe.xml</path> |
<path |
action="M">/trunk/FuBar_GroupFu/GroupFuLocal-enUS.lua</path> |
<path |
action="M">/trunk/AceBuffGroups/localization.lua</path> |
<path |
action="M">/trunk/FuBar_PetFu/PetFu.lua</path> |
<path |
action="M">/trunk/FuBar_PerformanceFu/PerformanceFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/Borked_MonitorConstants.lua</path> |
<path |
action="M">/trunk/FuBar_GuildFu/FuBar_GuildFuLocals.zhCN.lua</path> |
<path |
action="M">/trunk/CBRipoff/locale/zhCN.lua</path> |
<path |
action="M">/trunk/CC_MainAssist/Bindings.xml</path> |
<path |
action="M">/trunk/AceGUI/AceGUIDropDownMenu.lua</path> |
<path |
action="M">/trunk/CrayonLib/Crayon-2.0/Crayon-2.0.lua</path> |
<path |
action="M">/trunk/ArkInventory/Locale/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFu_Auction.lua</path> |
<path |
action="M">/trunk/Antagonist/Antagonist-Options.lua</path> |
<path |
action="M">/trunk/AEmotes/AEmotes.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/Druidcom/Druidcom_Locals.lua</path> |
<path |
action="M">/trunk/Acolyte/Layout.lua</path> |
<path |
action="M">/trunk/FuBar_ConjureFu/ConjureFu.lua</path> |
<path |
action="M">/trunk/FuBar/LICENSE.txt</path> |
<path |
action="M">/trunk/FixMe/FixMe.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/StoneCreator.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Core.lua</path> |
<path |
action="M">/trunk/CooldownTimers2/Core.lua</path> |
<path |
action="M">/trunk/ClosetGnome/TODO.txt</path> |
<path |
action="M">/trunk/ClearFont/ClearFontAddons.lua</path> |
<path |
action="M">/trunk/BulkMail/gui.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.2/AceLocale-2.2.lua</path> |
<path |
action="M">/trunk/BabbleLib/Spell/BabbleLib-Spell.lua</path> |
<path |
action="M">/trunk/BigTrouble/BigTrouble-deDE.lua</path> |
<path |
action="M">/trunk/BabbleLib/Deformat/BabbleLib-Deformat.lua</path> |
<path |
action="M">/trunk/Buffalo/Buffalo.lua</path> |
<path |
action="M">/trunk/Bidder/DKPSystems/baseclass.lua</path> |
<path |
action="M">/trunk/Diplomat/Core.lua</path> |
<path |
action="M">/trunk/FuBar_BananaBar2Fu/FuBar_BananaBar2Fu.lua</path> |
<path |
action="M">/trunk/FuBar_BagFu/BagFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ErrorMonster/ErrorMonster-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFu.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Dismount.lua</path> |
<path |
action="M">/trunk/Fizzle/FizzleLocale-zhCN.lua</path> |
<path |
action="M">/trunk/ChannelClean/ChannelClean.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/custom.lua</path> |
<path |
action="M">/trunk/FuBar_NinjutFu/Locale-enUS.lua</path> |
<path |
action="M">/trunk/Bits/Bits-1.0/Bits-1.0.lua</path> |
<path |
action="M">/trunk/DewdropLib/Dewdrop-2.0/Dewdrop-2.0.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Summon.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2Cast-deDE.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots.lua</path> |
<path |
action="M">/trunk/AceCast/AceCast.lua</path> |
<path |
action="M">/trunk/Buffalo/BuffaloOptions.lua</path> |
<path |
action="M">/trunk/Bidder/DKPBrowser/browserframe.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-esES.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-koKR.lua</path> |
<path |
action="M">/trunk/FuBar_MageFu/Core.lua</path> |
<path |
action="M">/trunk/FuBar_MoneyFu/MoneyFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/ClosetGnome_Switcher.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/EnergyTick.lua</path> |
<path |
action="M">/trunk/Cartographer_Stats/LICENSE.txt</path> |
<path |
action="M">/trunk/FelwoodFarmer/localisation.koKR.lua</path> |
<path |
action="M">/trunk/!BugGrabber/gpl.txt</path> |
<path |
action="M">/trunk/DKPmon/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_AssistFu/Bindings.xml</path> |
<path |
action="M">/trunk/BarAnnounce3/Extensions/InstanceInfo.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDropStats.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhTW.lua</path> |
<path |
action="M">/trunk/!GetMoney_api/GetMoney_api.lua</path> |
<path |
action="M">/trunk/EyeCandy/EyeCandy.lua</path> |
<path |
action="M">/trunk/EnchantList/localization.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassPaladin.lua</path> |
<path |
action="M">/trunk/Bidder_ZSumAuction/gpl.txt</path> |
<path |
action="M">/trunk/AutoBar/AutoBarProfile.lua</path> |
<path |
action="M">/trunk/Bartender3/locales/Bartender3-enUS.lua</path> |
<path |
action="M">/trunk/BuffMe/locale.enUS.lua</path> |
<path |
action="M">/trunk/AutoBar/ChangeList.lua</path> |
<path |
action="M">/trunk/FuBar_DPS/FuBar_DPS-Locale-enUS.lua</path> |
<path |
action="M">/trunk/BabbleLib/Zone/BabbleLib-Zone.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/ExperienceFuLocals-deDE.lua</path> |
<path |
action="M">/trunk/AceTargetLog/AceTargetLog.xml</path> |
<path |
action="M">/trunk/AceGUI/README.txt</path> |
<path |
action="M">/trunk/Decursive/QuoiDeNeuf.txt</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/PetMana.lua</path> |
<path |
action="M">/trunk/FlexBar2/ButtonInterface.lua</path> |
<path |
action="M">/trunk/ClearFont/Changelog.txt</path> |
<path |
action="M">/trunk/BestInShow/BestInShowLocals.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-frFR.lua</path> |
<path |
action="M">/trunk/Druidcom/Druidcom.lua</path> |
<path |
action="M">/trunk/FryListDKP/BidQuery.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Wuss.lua</path> |
<path |
action="M">/trunk/FuBar_LockFu/LockFuLocals.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Modules/Warrior.lua</path> |
<path |
action="M">/trunk/Click2Cast/Click2CastMenu.lua</path> |
<path |
action="M">/trunk/Acolyte/Modules/SpellCaster.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/MicroMenuFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/CooldownCount/Locale.frFR.lua</path> |
<path |
action="M">/trunk/AlfCast/AlfCast.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIOptionsBox.lua</path> |
<path |
action="M">/trunk/FinderReminder/SpellButtonClass.lua</path> |
<path |
action="M">/trunk/FuBar_ModMenu/PredefinedMenus.lua</path> |
<path |
action="M">/trunk/Ace2/AceTab-2.0/AceTab-2.0.lua</path> |
<path |
action="M">/trunk/AceGUI/AceGUIElement.lua</path> |
<path |
action="M">/trunk/FruityLoots/FruityLoots-deDE.lua</path> |
<path |
action="M">/trunk/Combine/Combine.xml</path> |
<path |
action="M">/trunk/CC_Core/Bindings.xml</path> |
<path |
action="M">/trunk/FuBar_ModMenu/README.txt</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importdata.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Core.lua</path> |
<path |
action="M">/trunk/Ace/Ace.lua</path> |
<path |
action="M">/trunk/FuBar_LogFu2/LogFu2-enUS.lua</path> |
<path |
action="M">/trunk/DKPmon/Roster/raid.lua</path> |
<path |
action="M">/trunk/DeuceCommander/DeuceCommander.lua</path> |
<path |
action="M">/trunk/FuBar_CheckStoneFu/CheckStoneFuLocals-enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUISlider-2.0.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterialGlobals.lua</path> |
<path |
action="M">/trunk/Fence/modules/Fence_Wipe.lua</path> |
<path |
action="M">/trunk/CompostLib/Lib/CompostLib.lua</path> |
<path |
action="M">/trunk/ClosetGnome/license.txt</path> |
<path |
action="M">/trunk/ClosetGnome_Mount/ClosetGnome_Mount.lua</path> |
<path |
action="M">/trunk/Ace/AceCommands.lua</path> |
<path |
action="M">/trunk/!!!StandaloneLibraries/makefilelist_wau.bat</path> |
<path |
action="M">/trunk/BananaBar2/Bindings.xml</path> |
<path |
action="M">/trunk/CVarScanner/CVarScanner.lua</path> |
<path |
action="M">/trunk/FuBar_LocationFu/LocationFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/AceTimer/Mode/AceTimerAura.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Locale_enUS.lua</path> |
<path |
action="M">/trunk/AuldLangSyne/locales/enUS.lua</path> |
<path |
action="M">/trunk/FuBar_ClockFu/ClockFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/BagBoy2/BagBoy2Rules.lua</path> |
<path |
action="M">/trunk/BugSack/BugSack-esES.lua</path> |
<path |
action="M">/trunk/Denial2/Denial2.lua</path> |
<path |
action="M">/trunk/DKPmon/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/FuBar_AspectFu/AspectFu.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Banker/Banker.lua</path> |
<path |
action="M">/trunk/FuBar_MicroMenuFu/README.txt</path> |
<path |
action="M">/trunk/Comercio/koKR.lua</path> |
<path |
action="M">/trunk/FuBar_FollowFu/FollowFuLocals.lua</path> |
<path |
action="M">/trunk/DontBugMe/DontBugMe.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Franc/Info.txt</path> |
<path |
action="M">/trunk/ChatLog/Locale-frFR.lua</path> |
<path |
action="M">/trunk/DowJones/DowJones.lua</path> |
<path |
action="M">/trunk/DKPmon_FCZS/fczs.lua</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIDropDown.lua</path> |
<path |
action="M">/trunk/FuBar_MailFu/Core.lua</path> |
<path |
action="M">/trunk/ConsoleMage/ConsoleMage.lua</path> |
<path |
action="M">/trunk/AceTimer/Core/AceTimer.xml</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUIListBox.xml</path> |
<path |
action="M">/trunk/EavesDrop/install.txt</path> |
<path |
action="M">/trunk/DKPmonInit/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_HonorFu/HonorFuLocale-esES.lua</path> |
<path |
action="M">/trunk/ClosetGnome_Switcher/Locale-enUS.lua</path> |
<path |
action="M">/trunk/FuBar_AEmotesFU/AEmotesFU.lua</path> |
<path |
action="M">/trunk/Aggromemnon/core.lua</path> |
<path |
action="M">/trunk/Cartographer/Cartographer.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2Locale-koKR.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUITemplates-2.0.lua</path> |
<path |
action="M">/trunk/AutoBar/Locale-enUS.lua</path> |
<path |
action="M">/trunk/ChatThrottleLib/ChatThrottleLib.xml</path> |
<path |
action="M">/trunk/ColdFusionShell/ColdFusionShell.xml</path> |
<path |
action="M">/trunk/AutoBar/AutoBar.xml</path> |
<path |
action="M">/trunk/DKPmon_ZSumAuction/zsumauction.lua</path> |
<path |
action="M">/trunk/ButtonNamer/ButtonNamer.xml</path> |
<path |
action="M">/trunk/FuBar_BGQueueNumber/network.txt</path> |
<path |
action="M">/trunk/FuBar_GarbageFu/GarbageFuLocale-enUS.lua</path> |
<path |
action="M">/trunk/Automaton/modules/Sell.lua</path> |
<path |
action="M">/trunk/FuBar_FriendsFu/FuBar_FriendsFuLocals.enUS.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIButton-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Locale_enUS.lua</path> |
<path |
action="M">/trunk/ExoticMaterial/ExoticMaterial.lua</path> |
<path |
action="M">/trunk/Cyclone/core.lua</path> |
<path |
action="M">/trunk/DKPmon_eqDKP/importmod.lua</path> |
<path |
action="M">/trunk/Ace2/AceEvent-2.0/AceEvent-2.0.lua</path> |
<path |
action="M">/trunk/FuBarPlugin-2.0/LICENSE.txt</path> |
<path |
action="M">/trunk/AceGUI/elements/AceGUICheckBox.xml</path> |
<path |
action="M">/trunk/Acolyte/Modules/MountSummoner.lua</path> |
<path |
action="M">/trunk/FuBar_FactionsFu/FuBar_FactionsFu.lua</path> |
<path |
action="M">/trunk/Cartographer/Modules/InstanceNotes/zhTW.lua</path> |
<path |
action="M">/trunk/AceGUI-2.0/AceGUIFontString-2.0.lua</path> |
<path |
action="M">/trunk/FuBar_CorkFu/ClassDruid.lua</path> |
<path |
action="M">/trunk/Detox/Detox.lua</path> |
<path |
action="M">/trunk/FuBar_DuraTek/Core.lua</path> |
<path |
action="M">/trunk/FuBar_AmmoFu/AmmoFuLocale-zhCN.lua</path> |
<path |
action="M">/trunk/Capping/options.lua</path> |
<path |
action="M">/trunk/FuBar_HerbTrackerFu/HerbTrackerFuLocale-deDE.lua</path> |
<path |
action="M">/trunk/DowJones/getItemDKP.pl</path> |
<path |
action="M">/trunk/AEmotes/ReadMe.txt</path> |
<path |
action="M">/trunk/Bidder/Options/optionfuncs.lua</path> |
<path |
action="M">/trunk/FuBar_ExperienceFu/README.txt</path> |
<path |
action="M">/trunk/Bidder/Dialogs/dialogs.lua</path> |
<path |
action="M">/trunk/Bartender3_AutoBindings/Bartender3_AutoBindings.lua</path> |
<path |
action="M">/trunk/EavesDrop/EavesDrop.xml</path> |
<path |
action="M">/trunk/AceAutoInvite/AceAutoInvite.lua</path> |
<path |
action="M">/trunk/BattleChat_Buffs/BattleChat_Buffs.lua</path> |
<path |
action="M">/trunk/BananaBar2/BananaBar2AssistButton.lua</path> |
<path |
action="M">/trunk/ArcHUD2/Rings/ComboPoints.lua</path> |
<path |
action="M">/trunk/BabbleLib/Boss/BabbleLib-Boss.lua</path> |
<path |
action="M">/trunk/FuBar_GarbageFu_Prices/GarbageFu_Prices_Table.lua</path> |
<path |
action="M">/trunk/ElfReloaded/ElfReloaded.lua</path> |
<path |
action="M">/trunk/DowJones/getPlayerDKP.pl</path> |
<path |
action="M">/trunk/DKPmon/Looting/looting.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/changelog.txt</path> |
<path |
action="M">/trunk/Baggins/libs/Sieve-0.1/Sieve-0.1.lua</path> |
<path |
action="M">/trunk/Ace2/AceLocale-2.1/AceLocale-2.1.lua</path> |
<path |
action="M">/trunk/FuBar_DakSmak/Locale-deDE.lua</path> |
<path |
action="M">/trunk/DeclineDuel/DeclineDuel.lua</path> |
<path |
action="M">/trunk/CBRipoff/core/mirror.lua</path> |
<path |
action="M">/trunk/FuBar_FromAViewToAKillFu/Kopie von Core.lua</path> |
<path |
action="M">/trunk/FryListDKP/FryListDKP-enUS.lua</path> |
<path |
action="M">/trunk/ArmchairAlchemist/ArmchairAlchemistLocals.lua</path> |
<path |
action="M">/trunk/Borked_Monitor/localisation.en.lua</path> |
<path |
action="M">/trunk/ClearFont2/Fonts/Calibri_v0.9/Info.txt</path> |
<path |
action="M">/trunk/Engravings/Engravings.lua</path> |
<path |
action="M">/trunk/Cartographer_Trainers/gpl.txt</path> |
<path |
action="M">/trunk/FuBar_KungFu/README.txt</path> |
<path |
action="M">/trunk/EgoCast/EgoCast.lua</path> |
<path |
action="M">/trunk/DewdropLib/LICENSE.txt</path> |
</paths> |
<msg>.Line ending fixups: trunk/</msg> |
</logentry> |
</log> |
--[[ |
Name: AceLocale-2.2 |
Revision: $Rev: 27198 $ |
Developed by: The Ace Development Team (http://www.wowace.com/index.php/The_Ace_Development_Team) |
Inspired By: Ace 1.x by Turan (turan@gryphon.com) |
Website: http://www.wowace.com/ |
Documentation: http://www.wowace.com/index.php/AceLocale-2.2 |
SVN: http://svn.wowace.com/root/trunk/Ace2/AceLocale-2.2 |
Description: Localization library for addons to use to handle proper |
localization and internationalization. |
Dependencies: AceLibrary |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "AceLocale-2.2" |
local MINOR_VERSION = "$Revision: 27198 $" |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
local AceLocale = {} |
local DEFAULT_LOCALE = "enUS" |
local _G = getfenv(0) |
local BASE_TRANSLATIONS, DEBUGGING, TRANSLATIONS, BASE_LOCALE, TRANSLATION_TABLES, REVERSE_TRANSLATIONS, STRICTNESS, DYNAMIC_LOCALES, CURRENT_LOCALE, NAME |
local rawget = rawget |
local rawset = rawset |
local type = type |
local newRegistries = {} |
local scheduleClear |
local lastSelf |
local __index = function(self, key) |
lastSelf = self |
local value = (rawget(self, TRANSLATIONS) or AceLocale.prototype)[key] |
rawset(self, key, value) |
return value |
end |
local __newindex = function(self, k, v) |
if type(v) ~= "function" and type(k) ~= "table" then |
AceLocale.error(self, "Cannot change the values of an AceLocale instance.") |
end |
rawset(self, k, v) |
end |
local __tostring = function(self) |
if type(rawget(self, 'GetLibraryVersion')) == "function" then |
return self:GetLibraryVersion() |
else |
return "AceLocale(" .. self[NAME] .. ")" |
end |
end |
local function clearCache(self) |
if not rawget(self, BASE_TRANSLATIONS) then |
return |
end |
local cache = self[BASE_TRANSLATIONS] |
rawset(self, REVERSE_TRANSLATIONS, nil) |
for k in pairs(self) do |
if rawget(cache, k) ~= nil then |
self[k] = nil |
end |
end |
rawset(self, 'tmp', true) |
self.tmp = nil |
end |
local function refixInstance(instance) |
if getmetatable(instance) then |
setmetatable(instance, nil) |
end |
local translations = instance[TRANSLATIONS] |
if translations then |
if getmetatable(translations) then |
setmetatable(translations, nil) |
end |
local baseTranslations = instance[BASE_TRANSLATIONS] |
if getmetatable(baseTranslations) then |
setmetatable(baseTranslations, nil) |
end |
if translations == baseTranslations or instance[STRICTNESS] then |
setmetatable(instance, { |
__index = __index, |
__newindex = __newindex, |
__tostring = __tostring |
}) |
setmetatable(translations, { |
__index = AceLocale.prototype |
}) |
else |
setmetatable(instance, { |
__index = __index, |
__newindex = __newindex, |
__tostring = __tostring |
}) |
setmetatable(translations, { |
__index = baseTranslations, |
}) |
setmetatable(baseTranslations, { |
__index = AceLocale.prototype, |
}) |
end |
else |
setmetatable(instance, { |
__index = __index, |
__newindex = __newindex, |
__tostring = __tostring, |
}) |
end |
clearCache(instance) |
newRegistries[instance] = true |
scheduleClear() |
return instance |
end |
function AceLocale:new(name) |
self:argCheck(name, 2, "string") |
if self.registry[name] and type(rawget(self.registry[name], 'GetLibraryVersion')) ~= "function" then |
return self.registry[name] |
end |
AceLocale.registry[name] = refixInstance({ |
[STRICTNESS] = false, |
[NAME] = name, |
}) |
newRegistries[AceLocale.registry[name]] = true |
return AceLocale.registry[name] |
end |
AceLocale.prototype = { class = AceLocale } |
function AceLocale.prototype:EnableDebugging() |
if rawget(self, BASE_TRANSLATIONS) then |
AceLocale.error(self, "Cannot enable debugging after a translation has been registered.") |
end |
rawset(self, DEBUGGING, true) |
end |
function AceLocale.prototype:EnableDynamicLocales(override) |
AceLocale.argCheck(self, override, 2, "boolean", "nil") |
if not override and rawget(self, BASE_TRANSLATIONS) then |
AceLocale.error(self, "Cannot enable dynamic locales after a translation has been registered.") |
end |
if not rawget(self, DYNAMIC_LOCALES) then |
rawset(self, DYNAMIC_LOCALES, true) |
if rawget(self, BASE_LOCALE) then |
if not rawget(self, TRANSLATION_TABLES) then |
rawset(self, TRANSLATION_TABLES, {}) |
end |
self[TRANSLATION_TABLES][self[BASE_LOCALE]] = self[BASE_TRANSLATIONS] |
self[TRANSLATION_TABLES][self[CURRENT_LOCALE]] = self[TRANSLATIONS] |
end |
end |
end |
function AceLocale.prototype:RegisterTranslations(locale, func) |
AceLocale.argCheck(self, locale, 2, "string") |
AceLocale.argCheck(self, func, 3, "function") |
if locale == rawget(self, BASE_LOCALE) then |
AceLocale.error(self, "Cannot provide the same locale more than once. %q provided twice.", locale) |
end |
if rawget(self, BASE_TRANSLATIONS) and GetLocale() ~= locale then |
if rawget(self, DEBUGGING) or rawget(self, DYNAMIC_LOCALES) then |
if not rawget(self, TRANSLATION_TABLES) then |
rawset(self, TRANSLATION_TABLES, {}) |
end |
if self[TRANSLATION_TABLES][locale] then |
AceLocale.error(self, "Cannot provide the same locale more than once. %q provided twice.", locale) |
end |
local t = func() |
func = nil |
if type(t) ~= "table" then |
AceLocale.error(self, "Bad argument #3 to `RegisterTranslations'. function did not return a table. (expected table, got %s)", type(t)) |
end |
self[TRANSLATION_TABLES][locale] = t |
t = nil |
end |
func = nil |
return |
end |
local t = func() |
func = nil |
if type(t) ~= "table" then |
AceLocale.error(self, "Bad argument #3 to `RegisterTranslations'. function did not return a table. (expected table, got %s)", type(t)) |
end |
rawset(self, TRANSLATIONS, t) |
if not rawget(self, BASE_TRANSLATIONS) then |
rawset(self, BASE_TRANSLATIONS, t) |
rawset(self, BASE_LOCALE, locale) |
for key,value in pairs(t) do |
if value == true then |
t[key] = key |
end |
end |
else |
for key, value in pairs(self[TRANSLATIONS]) do |
if not rawget(self[BASE_TRANSLATIONS], key) then |
AceLocale.error(self, "Improper translation exists. %q is likely misspelled for locale %s.", key, locale) |
end |
if value == true then |
AceLocale.error(self, "Can only accept true as a value on the base locale. %q is the base locale, %q is not.", rawget(self, BASE_LOCALE), locale) |
end |
end |
end |
rawset(self, CURRENT_LOCALE, locale) |
if not rawget(self, 'reverse') then |
rawset(self, 'reverse', setmetatable({}, { __index = function(self2, key) |
local self = AceLocale.reverseToBase[self2] |
if not rawget(self, REVERSE_TRANSLATIONS) then |
self:GetReverseTranslation(key) |
end |
self.reverse = self[REVERSE_TRANSLATIONS] |
return self.reverse[key] |
end })) |
AceLocale.reverseToBase[self.reverse] = self |
end |
refixInstance(self) |
if rawget(self, DEBUGGING) or rawget(self, DYNAMIC_LOCALES) then |
if not rawget(self, TRANSLATION_TABLES) then |
rawset(self, TRANSLATION_TABLES, {}) |
end |
self[TRANSLATION_TABLES][locale] = t |
end |
t = nil |
end |
function AceLocale.prototype:SetLocale(locale) |
AceLocale.argCheck(self, locale, 2, "string", "boolean") |
if not rawget(self, DYNAMIC_LOCALES) then |
AceLocale.error(self, "Cannot call `SetLocale' without first calling `EnableDynamicLocales'.") |
end |
if not rawget(self, TRANSLATION_TABLES) then |
AceLocale.error(self, "Cannot call `SetLocale' without first calling `RegisterTranslations'.") |
end |
if locale == true then |
locale = GetLocale() |
if not self[TRANSLATION_TABLES][locale] then |
locale = self[BASE_LOCALE] |
end |
end |
if self[CURRENT_LOCALE] == locale then |
return |
end |
if not self[TRANSLATION_TABLES][locale] then |
AceLocale.error(self, "Locale %q not registered.", locale) |
end |
self[TRANSLATIONS] = self[TRANSLATION_TABLES][locale] |
self[CURRENT_LOCALE] = locale |
refixInstance(self) |
end |
function AceLocale.prototype:GetLocale() |
if not rawget(self, TRANSLATION_TABLES) then |
AceLocale.error(self, "Cannot call `GetLocale' without first calling `RegisterTranslations'.") |
end |
return self[CURRENT_LOCALE] |
end |
local function iter(t, position) |
return (next(t, position)) |
end |
function AceLocale.prototype:IterateAvailableLocales() |
if not rawget(self, DYNAMIC_LOCALES) then |
AceLocale.error(self, "Cannot call `IterateAvailableLocales' without first calling `EnableDynamicLocales'.") |
end |
if not rawget(self, TRANSLATION_TABLES) then |
AceLocale.error(self, "Cannot call `IterateAvailableLocales' without first calling `RegisterTranslations'.") |
end |
return iter, self[TRANSLATION_TABLES], nil |
end |
function AceLocale.prototype:HasLocale(locale) |
if not rawget(self, DYNAMIC_LOCALES) then |
AceLocale.error(self, "Cannot call `HasLocale' without first calling `EnableDynamicLocales'.") |
end |
AceLocale.argCheck(self, locale, 2, "string") |
return rawget(self, TRANSLATION_TABLES) and self[TRANSLATION_TABLES][locale] ~= nil |
end |
function AceLocale.prototype:SetStrictness(strict) |
AceLocale.argCheck(self, strict, 2, "boolean") |
local mt = getmetatable(self) |
if not mt then |
AceLocale.error(self, "Cannot call `SetStrictness' without a metatable.") |
end |
if not rawget(self, TRANSLATIONS) then |
AceLocale.error(self, "No translations registered.") |
end |
rawset(self, STRICTNESS, strict) |
refixInstance(self) |
end |
local function initReverse(self) |
rawset(self, REVERSE_TRANSLATIONS, setmetatable({}, { __index = function(_, key) |
AceLocale.error(self, "Reverse translation for %q does not exist", key) |
end })) |
local alpha = self[TRANSLATIONS] |
local bravo = self[REVERSE_TRANSLATIONS] |
for base, localized in pairs(alpha) do |
bravo[localized] = base |
end |
end |
function AceLocale.prototype:GetTranslation(text) |
AceLocale.argCheck(self, text, 1, "string", "number") |
if not rawget(self, TRANSLATIONS) then |
AceLocale.error(self, "No translations registered") |
end |
return self[text] |
end |
function AceLocale.prototype:GetStrictTranslation(text) |
AceLocale.argCheck(self, text, 1, "string", "number") |
local x = rawget(self, TRANSLATIONS) |
if not x then |
AceLocale.error(self, "No translations registered") |
end |
local value = rawget(x, text) |
if value == nil then |
AceLocale.error(self, "Translation %q does not exist for locale %s", text, self[CURRENT_LOCALE]) |
end |
return value |
end |
function AceLocale.prototype:GetReverseTranslation(text) |
local x = rawget(self, REVERSE_TRANSLATIONS) |
if not x then |
if not rawget(self, TRANSLATIONS) then |
AceLocale.error(self, "No translations registered") |
end |
initReverse(self) |
x = self[REVERSE_TRANSLATIONS] |
end |
local translation = x[text] |
if not translation then |
AceLocale.error(self, "Reverse translation for %q does not exist", text) |
end |
return translation |
end |
function AceLocale.prototype:GetIterator() |
local x = rawget(self, TRANSLATIONS) |
if not x then |
AceLocale.error(self, "No translations registered") |
end |
return next, x, nil |
end |
function AceLocale.prototype:GetReverseIterator() |
local x = rawget(self, REVERSE_TRANSLATIONS) |
if not x then |
if not rawget(self, TRANSLATIONS) then |
AceLocale.error(self, "No translations registered") |
end |
initReverse(self) |
x = self[REVERSE_TRANSLATIONS] |
end |
return next, x, nil |
end |
function AceLocale.prototype:HasTranslation(text) |
AceLocale.argCheck(self, text, 1, "string", "number") |
local x = rawget(self, TRANSLATIONS) |
if not x then |
AceLocale.error(self, "No translations registered") |
end |
return rawget(x, text) and true |
end |
function AceLocale.prototype:HasBaseTranslation(text) |
AceLocale.argCheck(self, text, 1, "string", "number") |
local x = rawget(self, BASE_TRANSLATIONS) |
if not x then |
AceLocale.error(self, "No translations registered") |
end |
return rawget(x, text) and true |
end |
function AceLocale.prototype:HasReverseTranslation(text) |
local x = rawget(self, REVERSE_TRANSLATIONS) |
if not x then |
if not rawget(self, TRANSLATIONS) then |
AceLocale.error(self, "No translations registered") |
end |
initReverse(self) |
x = self[REVERSE_TRANSLATIONS] |
end |
return rawget(x, text) and true |
end |
function AceLocale.prototype:Debug() |
if not rawget(self, DEBUGGING) then |
return |
end |
local words = {} |
local locales = {"enUS", "deDE", "frFR", "koKR", "zhCN", "zhTW", "esES"} |
local localizations = {} |
DEFAULT_CHAT_FRAME:AddMessage("--- AceLocale Debug ---") |
for _,locale in ipairs(locales) do |
if not self[TRANSLATION_TABLES][locale] then |
DEFAULT_CHAT_FRAME:AddMessage(("Locale %q not found"):format(locale)) |
else |
localizations[locale] = self[TRANSLATION_TABLES][locale] |
end |
end |
local localeDebug = {} |
for locale, localization in pairs(localizations) do |
localeDebug[locale] = {} |
for word in pairs(localization) do |
if type(localization[word]) == "table" then |
if type(words[word]) ~= "table" then |
words[word] = {} |
end |
for bit in pairs(localization[word]) do |
if type(localization[word][bit]) == "string" then |
words[word][bit] = true |
end |
end |
elseif type(localization[word]) == "string" then |
words[word] = true |
end |
end |
end |
for word in pairs(words) do |
if type(words[word]) == "table" then |
for bit in pairs(words[word]) do |
for locale, localization in pairs(localizations) do |
if not rawget(localization, word) or not localization[word][bit] then |
localeDebug[locale][word .. "::" .. bit] = true |
end |
end |
end |
else |
for locale, localization in pairs(localizations) do |
if not rawget(localization, word) then |
localeDebug[locale][word] = true |
end |
end |
end |
end |
for locale, t in pairs(localeDebug) do |
if not next(t) then |
DEFAULT_CHAT_FRAME:AddMessage(("Locale %q complete"):format(locale)) |
else |
DEFAULT_CHAT_FRAME:AddMessage(("Locale %q missing:"):format(locale)) |
for word in pairs(t) do |
DEFAULT_CHAT_FRAME:AddMessage((" %q"):format(word)) |
end |
end |
end |
DEFAULT_CHAT_FRAME:AddMessage("--- End AceLocale Debug ---") |
end |
setmetatable(AceLocale.prototype, { |
__index = function(self, k) |
if type(k) ~= "table" and k ~= 0 and k ~= "GetLibraryVersion" and k ~= "error" and k ~= "assert" and k ~= "argCheck" and k ~= "pcall" then -- HACK: remove "GetLibraryVersion" and such later. |
AceLocale.error(lastSelf or self, "Translation %q does not exist.", k) |
end |
return nil |
end |
}) |
local function activate(self, oldLib, oldDeactivate) |
AceLocale = self |
self.frame = oldLib and oldLib.frame or CreateFrame("Frame") |
self.registry = oldLib and oldLib.registry or {} |
self.BASE_TRANSLATIONS = oldLib and oldLib.BASE_TRANSLATIONS or {} |
self.DEBUGGING = oldLib and oldLib.DEBUGGING or {} |
self.TRANSLATIONS = oldLib and oldLib.TRANSLATIONS or {} |
self.BASE_LOCALE = oldLib and oldLib.BASE_LOCALE or {} |
self.TRANSLATION_TABLES = oldLib and oldLib.TRANSLATION_TABLES or {} |
self.REVERSE_TRANSLATIONS = oldLib and oldLib.REVERSE_TRANSLATIONS or {} |
self.STRICTNESS = oldLib and oldLib.STRICTNESS or {} |
self.NAME = oldLib and oldLib.NAME or {} |
self.DYNAMIC_LOCALES = oldLib and oldLib.DYNAMIC_LOCALES or {} |
self.CURRENT_LOCALE = oldLib and oldLib.CURRENT_LOCALE or {} |
self.reverseToBase = oldLib and oldLib.reverseToBase or {} |
BASE_TRANSLATIONS = self.BASE_TRANSLATIONS |
DEBUGGING = self.DEBUGGING |
TRANSLATIONS = self.TRANSLATIONS |
BASE_LOCALE = self.BASE_LOCALE |
TRANSLATION_TABLES = self.TRANSLATION_TABLES |
REVERSE_TRANSLATIONS = self.REVERSE_TRANSLATIONS |
STRICTNESS = self.STRICTNESS |
NAME = self.NAME |
DYNAMIC_LOCALES = self.DYNAMIC_LOCALES |
CURRENT_LOCALE = self.CURRENT_LOCALE |
local GetTime = GetTime |
local timeUntilClear = GetTime() + 5 |
scheduleClear = function() |
if next(newRegistries) then |
self.frame:Show() |
timeUntilClear = GetTime() + 5 |
end |
end |
if not self.registry then |
self.registry = {} |
else |
for name, instance in pairs(self.registry) do |
local name = name |
local mt = getmetatable(instance) |
setmetatable(instance, nil) |
instance[NAME] = name |
local strict |
if instance[STRICTNESS] ~= nil then |
strict = instance[STRICTNESS] |
elseif instance[TRANSLATIONS] ~= instance[BASE_TRANSLATIONS] then |
if getmetatable(instance[TRANSLATIONS]).__index == oldLib.prototype then |
strict = true |
end |
end |
instance[STRICTNESS] = strict and true or false |
refixInstance(instance) |
end |
end |
self.frame:SetScript("OnEvent", scheduleClear) |
self.frame:SetScript("OnUpdate", function() -- (this, elapsed) |
if timeUntilClear - GetTime() <= 0 then |
self.frame:Hide() |
for k in pairs(newRegistries) do |
clearCache(k) |
newRegistries[k] = nil |
k = nil |
end |
end |
end) |
self.frame:UnregisterAllEvents() |
self.frame:RegisterEvent("ADDON_LOADED") |
self.frame:RegisterEvent("PLAYER_ENTERING_WORLD") |
self.frame:Show() |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
AceLibrary:Register(AceLocale, MAJOR_VERSION, MINOR_VERSION, activate) |
--[[ |
Name: Tablet-2.0 |
Revision: $Rev: 30695 $ |
Author(s): ckknight (ckknight@gmail.com) |
Website: http://ckknight.wowinterface.com/ |
Documentation: http://www.wowace.com/index.php/Tablet-2.0 |
SVN: http://svn.wowace.com/wowace/trunk/TabletLib/Tablet-2.0 |
Description: A library to provide an efficient, featureful tooltip-style display. |
Dependencies: AceLibrary, (optional) Dewdrop-2.0 |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "Tablet-2.0" |
local MINOR_VERSION = tonumber(("$Revision: 30695 $"):sub(12, -3)) |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
local DEBUG = false |
local SCROLL_UP = "Scroll up" |
local SCROLL_DOWN = "Scroll down" |
local HINT = "Hint" |
local DETACH = "Detach" |
local DETACH_DESC = "Detach the tablet from its source." |
local SIZE = "Size" |
local SIZE_DESC = "Scale the tablet." |
local CLOSE_MENU = "Close menu" |
local CLOSE_MENU_DESC = "Close the menu." |
local COLOR = "Background color" |
local COLOR_DESC = "Set the background color." |
local LOCK = "Lock" |
local LOCK_DESC = "Lock the tablet in its current position. Alt+Right-click for menu or Alt+drag to drag it when locked." |
if GetLocale() == "deDE" then |
SCROLL_UP = "Hochscrollen" |
SCROLL_DOWN = "Runterscrollen" |
HINT = "Hinweis" |
DETACH = "L\195\182sen" |
DETACH_DESC = "L\195\182st den Tooltip aus seiner Verankerung." |
SIZE = "Gr\195\182\195\159e" |
SIZE_DESC = "Gr\195\182\195\159e des Tooltips \195\164ndern." |
CLOSE_MENU = "Menu schlie\195\159en" |
CLOSE_MENU_DESC = "Schlie\195\159t das Menu." |
COLOR = "Hintergrundfarbe" |
COLOR_DESC = "Hintergrundfarbe setzen." |
LOCK = "Sperren" |
LOCK_DESC = "Sperrt die aktuelle Position vom Tooltip. Alt+Rechts-klick f\195\188rs Men\195\188 oder Alt+Verschieben f\195\188rs verschieben wenn es gesperrt ist." |
elseif GetLocale() == "koKR" then |
SCROLL_UP = "ìë¡ ì¤í¬ë¡¤" |
SCROLL_DOWN = "ìëë¡ ì¤í¬ë¡¤" |
HINT = "íí¸" |
DETACH = "ë¶ë¦¬" |
DETACH_DESC = "í ì´ë¸ì ë¶ë¦¬í©ëë¤." |
SIZE = "í¬ê¸°" |
SIZE_DESC = "í ì´ë¸ì í¬ê¸°ì ëë¤." |
CLOSE_MENU = "ë©ë´ ë«ê¸°" |
CLOSE_MENU_DESC = "ë©ë´ë¥¼ ë«ìµëë¤." |
COLOR = "ë°°ê²½ ìì" |
COLOR_DESC = "ë°°ê²½ ììì ì¤ì í©ëë¤." |
LOCK = "ê³ ì " |
LOCK_DESC = "íì¬ ìì¹ì í ì´ë¸ì ê³ ì í©ëë¤. ìí¸+ì°í´ë¦ : ë©ë´ì´ê¸°, ìí¸+ëëê·¸ : ê³ ì ëê²ì ëëê·¸í©ëë¤." |
elseif GetLocale() == "zhCN" then |
SCROLL_UP = "åä¸ç¿»è½¬" |
SCROLL_DOWN = "åä¸ç¿»è½¬" |
HINT = "æ示" |
DETACH = "å离" |
DETACH_DESC = "å离èå为ç¬ç«æ示." |
SIZE = "尺寸" |
SIZE_DESC = "缩æ¾èåæ¾ç¤ºå°ºå¯¸." |
CLOSE_MENU = "å ³éèå" |
CLOSE_MENU_DESC = "å ³éèå" |
COLOR = "èæ¯é¢è²" |
COLOR_DESC = "设置èåèæ¯é¢è²." |
LOCK = "éå®" |
LOCK_DESC = "éå®èåå½åä½ç½®. alt+å³é® å°æ¾ç¤ºé项, alt+æå¨ å¯ä»¥ç§»å¨å·²éå®çèå." |
elseif GetLocale() == "zhTW" then |
SCROLL_UP = "åä¸ç¿»è½" |
SCROLL_DOWN = "åä¸ç¿»è½" |
HINT = "æ示" |
DETACH = "åé¢" |
DETACH_DESC = "åé¢é¸å®çºç¨ç«æ示ã" |
SIZE = "尺寸" |
SIZE_DESC = "縮æ¾é¸å®é¡¯ç¤ºå°ºå¯¸ã" |
CLOSE_MENU = "ééé¸å®" |
CLOSE_MENU_DESC = "ééé¸å®" |
COLOR = "èæ¯é¡è²" |
COLOR_DESC = "è¨ç½®é¸å®èæ¯é¡è²ã" |
LOCK = "éå®" |
LOCK_DESC = "éå®é¸å®ç®åä½ç½®. Alt+å³éµ å°é¡¯ç¤ºé¸é ï¼Alt+æå å¯ä»¥ç§»åå·²éå®çé¸å®ã" |
elseif GetLocale() == "frFR" then |
SCROLL_UP = "Parcourir vers le haut" |
SCROLL_DOWN = "Parcourir vers le bas" |
HINT = "Astuce" |
DETACH = "D\195\169tacher" |
DETACH_DESC = "Permet de d\195\169tacher le tableau de sa source." |
SIZE = "Taille" |
SIZE_DESC = "Permet de changer l'\195\169chelle du tableau." |
CLOSE_MENU = "Fermer le menu" |
CLOSE_MENU_DESC = "Ferme ce menu." |
COLOR = "Couleur du fond" |
COLOR_DESC = "Permet de d\195\169finir la couleur du fond." |
LOCK = "Bloquer" |
LOCK_DESC = "Bloque le tableau \195\160 sa position actuelle. Alt+clic-droit pour le menu ou Alt+glisser pour le d\195\169placer quand il est bloqu\195\169." |
elseif GetLocale() == "esES" then |
SCROLL_UP = "Desplazar hacia arriba" |
SCROLL_DOWN = "Desplazar hacia abajo" |
HINT = "Consejo" |
DETACH = "Separar" |
DETACH_DESC = "Separa el tooltip de su fuente." |
SIZE = "Tama\195\177o" |
SIZE_DESC = "Escala el tooltip" |
CLOSE_MENU = "Cerrar men\195\186" |
CLOSE_MENU_DESC = "Cierra el men\195\186" |
COLOR = "Color de fondo" |
COLOR_DESC = "Establece el color de fondo" |
LOCK = "Bloquear" |
LOCK_DESC = "Bloquea el tooltip en su posici\195\179n actual. Clic+Alt para el men\195\186 y arrastra+Alt para arrastrarlo cuando est\195\161 bloqueado" |
end |
local start = GetTime() |
local wrap |
local GetProfileInfo |
if DEBUG then |
local tree = {} |
local treeMemories = {} |
local treeTimes = {} |
local memories = {} |
local times = {} |
function wrap(value, name) |
if type(value) == "function" then |
local oldFunction = value |
memories[name] = 0 |
times[name] = 0 |
return function(self, ...) |
local pos = #tree |
tree[#tree+1] = name |
treeMemories[#treeMemories+1] = 0 |
treeTimes[#treeTimes+1] = 0 |
local t, mem = GetTime(), gcinfo() |
local r1, r2, r3, r4, r5, r6, r7, r8 = oldFunction(self, ...) |
mem, t = gcinfo() - mem, GetTime() - t |
if pos > 0 then |
treeMemories[pos] = treeMemories[pos] + mem |
treeTimes[pos] = treeTimes[pos] + t |
end |
local otherMem = table.remove(treeMemories) |
if mem - otherMem > 0 then |
memories[name] = memories[name] + mem - otherMem |
end |
times[name] = times[name] + t - table.remove(treeTimes) |
table.remove(tree) |
return r1, r2, r3, r4, r5, r6, r7, r8 |
end |
end |
end |
function GetProfileInfo() |
return GetTime() - start, times, memories |
end |
else |
function wrap(value) |
return value |
end |
end |
local function GetMainFrame() |
if UIParent:IsShown() then |
return UIParent |
end |
local f = GetFullScreenFrame() |
if f and f:IsShown() then |
return f |
end |
return nil |
end |
local MIN_TOOLTIP_SIZE = 200 |
local TESTSTRING_EXTRA_WIDTH = 8 |
local Tablet = {} |
local Dewdrop = nil |
local CleanCategoryPool |
local pool = {} |
local function del(t) |
if t then |
for k in pairs(t) do |
t[k] = nil |
end |
setmetatable(t, nil) |
pool[t] = true |
end |
end |
local new |
local function copy(parent) |
local t = next(pool) or {} |
pool[t] = nil |
if parent then |
for k,v in pairs(parent) do |
t[k] = v |
end |
setmetatable(t, getmetatable(parent)) |
end |
return t |
end |
function new(...) |
local t = next(pool) or {} |
pool[t] = nil |
for i = 1, select('#', ...), 2 do |
local k = select(i, ...) |
if k then |
t[k] = select(i+1, ...) |
else |
break |
end |
end |
return t |
end |
local tmp |
tmp = setmetatable({}, {__index = function(self, key) |
local t = {} |
tmp[key] = function(...) |
for k in pairs(t) do |
t[k] = nil |
end |
for i = 1, select('#', ...), 2 do |
local k = select(i, ...) |
if k then |
t[k] = select(i+1, ...) |
else |
break |
end |
end |
return t |
end |
return tmp[key] |
end}) |
local headerSize, normalSize |
if GameTooltipHeaderText then |
_,headerSize = GameTooltipHeaderText:GetFont() |
else |
headerSize = 14 |
end |
if GameTooltipText then |
_,normalSize = GameTooltipText:GetFont() |
else |
normalSize = 12 |
end |
local tooltip |
local testString |
local TabletData = {} |
local Category = {} |
local Line = {} |
local function getTestWidth(font, size, text) |
if not testString then |
return MIN_TOOLTIP_SIZE + 40 |
end |
testString:SetWidth(0) |
testString:SetFontObject(font) |
local a,_,b = font:GetFont() |
testString:SetFont(a, size, b) |
testString:SetText(text) |
return testString:GetStringWidth()-- + TESTSTRING_EXTRA_WIDTH |
end |
do |
local TabletData_mt = { __index = TabletData } |
function TabletData:new(tablet) |
local self = new() |
self.categories = new() |
self.id = 0 |
self.width = 0 -- (MIN_TOOLTIP_SIZE - 20)*tablet.fontSizePercent |
self.tablet = tablet |
self.title = nil |
self.titleR, self.titleG, self.titleB = nil, nil, nil |
self.num_lines = 0 |
setmetatable(self, TabletData_mt) |
return self |
end |
function TabletData:checkMinWidth() |
local min = self.minWidth or MIN_TOOLTIP_SIZE |
local width = (min - 20)*self.tablet.fontSizePercent |
if self.width < width then |
self.width = width |
end |
end |
function TabletData:del() |
for k, v in ipairs(self.categories) do |
v:del() |
end |
del(self.categories) |
del(self) |
end |
function TabletData:Display() |
if self.title and (self.tablet == tooltip or self.tablet.registration.showTitleWhenDetached) then |
local info = new( |
'hideBlankLine', true, |
'text', self.title, |
'justify', "CENTER", |
'font', GameTooltipHeaderText, |
'isTitle', true |
) |
if self.titleR then |
info.textR = self.titleR |
info.textG = self.titleG |
info.textB = self.titleB |
end |
self:AddCategory(info, 1) |
del(info) |
end |
if self.tablet == tooltip or self.tablet.registration.showHintWhenDetached then |
if self.hint then |
self:AddCategory(nil):AddLine( |
'text', HINT .. ": " .. self.hint, |
'textR', 0, |
'textG', 1, |
'textB', 0, |
'wrap', true |
) |
end |
end |
local tabletData = self.tabletData |
for k, v in ipairs(self.categories) do |
local width |
if v.columns <= 2 then |
width = v.x1 |
else |
width = (v.columns - 1)*20 |
for i = 1, v.columns do |
width = width + v['x' .. i] |
end |
end |
if self.width < width then |
self.width = width |
end |
end |
local good = false |
local lastTitle = true |
for k, v in ipairs(self.categories) do |
if lastTitle then |
v.hideBlankLine = true |
lastTitle = false |
end |
if v:Display(self.tablet) and (not v.isTitle or not self.tablet.registration.hideWhenEmpty or next(self.categories, k)) then |
good = true |
end |
if v.isTitle then |
lastTitle = true |
end |
end |
if not good then |
if self.tablet == tooltip or not self.tablet.registration.hideWhenEmpty then |
local width |
local info = new( |
'hideBlankLine', true, |
'text', self.title, |
'justify', "CENTER", |
'font', GameTooltipHeaderText, |
'isTitle', true |
) |
local cat = self:AddCategory(info) |
del(info) |
self.width = self.categories[#self.categories].x1 |
cat:Display(self.tablet) |
else |
self.tablet:__Hide() |
self.tablet.tmpHidden = true |
end |
else |
self.tablet:__Show() |
self.tablet.tmpHidden = nil |
end |
end |
function TabletData:AddCategory(info, index) |
local made = false |
if not info then |
made = true |
info = new() |
end |
local cat = Category:new(self, info) |
if index then |
table.insert(self.categories, index, cat) |
else |
self.categories[#self.categories+1] = cat |
end |
if made then |
del(info) |
end |
return cat |
end |
function TabletData:SetHint(hint) |
self.hint = hint |
end |
function TabletData:SetTitle(title) |
self.title = title or "Title" |
end |
function TabletData:SetTitleColor(r, g, b) |
self.titleR = r |
self.titleG = g |
self.titleB = b |
end |
end |
do |
local Category_mt = { __index = Category } |
function Category:new(tabletData, info, superCategory) |
local self = copy(info) |
if superCategory and not self.noInherit then |
self.superCategory = superCategory.superCategory |
for k, v in pairs(superCategory) do |
if string.find(k, "^child_") then |
local k = strsub(k, 7) |
if self[k] == nil then |
self[k] = v |
end |
end |
end |
self.columns = superCategory.columns |
else |
self.superCategory = self |
end |
self.tabletData = tabletData |
self.lines = new() |
if not self.columns then |
self.columns = 1 |
end |
for i = 1, self.columns do |
self['x' .. i] = 0 |
end |
setmetatable(self, Category_mt) |
self.lastWasTitle = nil |
local good = self.text |
if not good then |
for i = 2, self.columns do |
if self['text' .. i] then |
good = true |
break |
end |
end |
end |
if good then |
local x = new( |
'category', category, |
'text', self.text, |
'fakeChild', true, |
'func', self.func, |
'onEnterFunc', self.onEnterFunc, |
'onLeaveFunc', self.onLeaveFunc, |
'hasCheck', self.hasCheck, |
'checked', self.checked, |
'checkIcon', self.checkIcon, |
'isRadio', self.isRadio, |
'font', self.font, |
'size', self.size, |
'wrap', self.wrap, |
'catStart', true, |
'indentation', self.indentation, |
'noInherit', true, |
'justify', self.justify, |
'isTitle', self.isTitle |
) |
local i = 1 |
while true do |
local k = 'arg' .. i |
local v = self[k] |
if v == nil then |
break |
end |
x[k] = v |
i = i + 1 |
end |
i = 1 |
while true do |
local k = 'onEnterArg' .. i |
local v = self[k] |
if v == nil then |
break |
end |
x[k] = v |
i = i + 1 |
end |
i = 1 |
while true do |
local k = 'onLeaveArg' .. i |
local v = self[k] |
if v == nil then |
break |
end |
x[k] = v |
i = i + 1 |
end |
if self.isTitle then |
x.textR = self.textR or 1 |
x.textG = self.textG or 0.823529 |
x.textB = self.textB or 0 |
else |
x.textR = self.textR or 1 |
x.textG = self.textG or 1 |
x.textB = self.textB or 1 |
end |
for i = 2, self.columns do |
x['text' .. i] = self['text' .. i] |
x['text' .. i .. 'R'] = self['text' .. i .. 'R'] or self['textR' .. i] or 1 |
x['text' .. i .. 'G'] = self['text' .. i .. 'G'] or self['textG' .. i] or 1 |
x['text' .. i .. 'B'] = self['text' .. i .. 'B'] or self['textB' .. i] or 1 |
x['font' .. i] = self['font' .. i] |
x['size' .. i] = self['size' .. i] |
x['justify' .. i] = self['justify' .. i] |
end |
if self.checkIcon and string.find(self.checkIcon, "^Interface\\Icons\\") then |
x.checkCoordLeft = self.checkCoordLeft or 0.05 |
x.checkCoordRight = self.checkCoordRight or 0.95 |
x.checkCoordTop = self.checkCoordTop or 0.05 |
x.checkCoordBottom = self.checkCoordBottom or 0.95 |
else |
x.checkCoordLeft = self.checkCoordLeft or 0 |
x.checkCoordRight = self.checkCoordRight or 1 |
x.checkCoordTop = self.checkCoordTop or 0 |
x.checkCoordBottom = self.checkCoordBottom or 1 |
end |
x.checkColorR = self.checkColorR or 1 |
x.checkColorG = self.checkColorG or 1 |
x.checkColorB = self.checkColorB or 1 |
self:AddLine(x) |
del(x) |
self.lastWasTitle = true |
end |
return self |
end |
function Category:del() |
local prev = garbageLine |
for k, v in pairs(self.lines) do |
v:del() |
end |
del(self.lines) |
del(self) |
end |
function Category:AddLine(...) |
self.lastWasTitle = nil |
local line |
local k1 = ... |
if type(k1) == "table" then |
local k2 = select(2, ...) |
Line:new(self, k1, k2) |
else |
local info = new(...) |
Line:new(self, info) |
info = del(info) |
end |
end |
function Category:AddCategory(...) |
local lastWasTitle = self.lastWasTitle |
self.lastWasTitle = nil |
local info |
local k1 = ... |
if type(k1) == "table" then |
info = k1 |
else |
info = new(...) |
end |
if lastWasTitle or #self.lines == 0 then |
info.hideBlankLine = true |
end |
local cat = Category:new(self.tabletData, info, self) |
self.lines[#self.lines+1] = cat |
if info ~= k1 then |
info = del(info) |
end |
return cat |
end |
function Category:HasChildren() |
local hasChildren = false |
for k, v in ipairs(self.lines) do |
if v.HasChildren then |
if v:HasChildren() then |
return true |
end |
end |
if not v.fakeChild then |
return true |
end |
end |
return false |
end |
local lastWasTitle = false |
function Category:Display(tablet) |
if not self.isTitle and not self.showWithoutChildren and not self:HasChildren() then |
return false |
end |
if not self.hideBlankLine and not lastWasTitle then |
local info = new( |
'blank', true, |
'fakeChild', true |
) |
self:AddLine(info, 1) |
del(info) |
end |
local good = false |
if #self.lines > 0 then |
self.tabletData.id = self.tabletData.id + 1 |
self.id = self.tabletData.id |
for k, v in ipairs(self.lines) do |
if v:Display(tablet) then |
good = true |
end |
end |
end |
lastWasTitle = self.isTitle |
return good |
end |
end |
do |
local Line_mt = { __index = Line } |
function Line:new(category, info, position) |
local self = copy(info) |
if not info.noInherit then |
for k, v in pairs(category) do |
if string.find(k, "^child_") then |
local k = strsub(k, 7) |
if self[k] == nil then |
self[k] = v |
end |
end |
end |
end |
self.category = category |
if position then |
table.insert(category.lines, position, self) |
else |
category.lines[#category.lines+1] = self |
end |
setmetatable(self, Line_mt) |
local n = category.tabletData.num_lines + 1 |
category.tabletData.num_lines = n |
if n == 10 then |
category.tabletData:checkMinWidth() |
end |
local columns = category.columns |
if columns == 1 then |
if not self.justify then |
self.justify = "LEFT" |
end |
elseif columns == 2 then |
self.justify = "LEFT" |
self.justify2 = "RIGHT" |
if self.wrap then |
self.wrap2 = false |
end |
else |
for i = 2, columns-1 do |
if not self['justify' .. i] then |
self['justify' .. i] = "CENTER" |
end |
end |
if not self.justify then |
self.justify = "LEFT" |
end |
if not self['justify' .. columns] then |
self['justify' .. columns] = "RIGHT" |
end |
if self.wrap then |
for i = 2, columns do |
self['wrap' .. i] = false |
end |
else |
for i = 2, columns do |
if self['wrap' .. i] then |
for j = i+1, columns do |
self['wrap' .. i] = false |
end |
break |
end |
end |
end |
end |
if not self.indentation or self.indentation < 0 then |
self.indentation = 0 |
end |
if not self.font then |
self.font = GameTooltipText |
end |
for i = 2, columns do |
if not self['font' .. i] then |
self['font' .. i] = self.font |
end |
end |
if not self.size then |
_,self.size = self.font:GetFont() |
end |
for i = 2, columns do |
if not self['size' .. i] then |
_,self['size' .. i] = self['font' .. i]:GetFont() |
end |
end |
if self.checkIcon and string.find(self.checkIcon, "^Interface\\Icons\\") then |
if not self.checkCoordLeft then |
self.checkCoordLeft = 0.05 |
end |
if not self.checkCoordRight then |
self.checkCoordRight = 0.95 |
end |
if not self.checkCoordTop then |
self.checkCoordTop = 0.05 |
end |
if not self.checkCoordBottom then |
self.checkCoordBottom = 0.95 |
end |
else |
if not self.checkCoordLeft then |
self.checkCoordLeft = 0 |
end |
if not self.checkCoordRight then |
self.checkCoordRight = 1 |
end |
if not self.checkCoordTop then |
self.checkCoordTop = 0 |
end |
if not self.checkCoordBottom then |
self.checkCoordBottom = 1 |
end |
end |
if not self.checkColorR then |
self.checkColorR = 1 |
end |
if not self.checkColorG then |
self.checkColorG = 1 |
end |
if not self.checkColorB then |
self.checkColorB = 1 |
end |
local fontSizePercent = category.tabletData.tablet.fontSizePercent |
local w = 0 |
self.checkWidth = 0 |
testString = category.tabletData.tablet.buttons[1].col1 |
if self.text then |
if not self.wrap then |
local testWidth = getTestWidth(self.font, self.size * fontSizePercent, self.text) |
local checkWidth = self.hasCheck and self.size * fontSizePercent or 0 |
self.checkWidth = checkWidth |
w = testWidth + self.indentation * fontSizePercent + checkWidth |
if category.superCategory.x1 < w then |
category.superCategory.x1 = w |
end |
else |
if columns == 1 then |
local testWidth = getTestWidth(self.font, self.size * fontSizePercent, self.text) |
local checkWidth = self.hasCheck and self.size * fontSizePercent or 0 |
self.checkWidth = checkWidth |
w = testWidth + self.indentation * fontSizePercent + checkWidth |
if w > (MIN_TOOLTIP_SIZE - 20) * fontSizePercent then |
w = (MIN_TOOLTIP_SIZE - 20) * fontSizePercent |
end |
else |
w = MIN_TOOLTIP_SIZE * fontSizePercent / 2 |
end |
if category.superCategory.x1 < w then |
category.superCategory.x1 = w |
end |
end |
end |
if columns == 2 and self.text2 then |
if not self.wrap2 then |
local testWidth = getTestWidth(self.font2, self.size2 * fontSizePercent, self.text2) |
w = w + 40 * fontSizePercent + testWidth |
if category.superCategory.x1 < w then |
category.superCategory.x1 = w |
end |
else |
w = w + 40 * fontSizePercent + MIN_TOOLTIP_SIZE * fontSizePercent / 2 |
if category.superCategory.x1 < w then |
category.superCategory.x1 = w |
end |
end |
elseif columns >= 3 then |
if self.text2 then |
if not self.wrap2 then |
local testWidth = getTestWidth(self.font2, self.size2 * fontSizePercent, self.text2) |
local w = testWidth |
if category.superCategory.x2 < w then |
category.superCategory.x2 = w |
end |
else |
local w = MIN_TOOLTIP_SIZE / 2 |
if category.superCategory.x2 < w then |
category.superCategory.x2 = w |
end |
end |
end |
for i = 3, columns do |
local text = self['text' .. i] |
if text then |
local x_i = 'x' .. i |
if not self['wrap' .. i] then |
local testWidth = getTestWidth(self['font' .. i], self['size' .. i] * fontSizePercent, text) |
local w = testWidth |
if category.superCategory[x_i] < w then |
category.superCategory[x_i] = w |
end |
else |
local w = MIN_TOOLTIP_SIZE / 2 |
if category.superCategory[x_i] < w then |
category.superCategory[x_i] = w |
end |
end |
end |
end |
end |
return self |
end |
function Line:del() |
del(self) |
end |
function Line:Display(tablet) |
tablet:AddLine(self) |
return true |
end |
end |
local fake_ipairs |
do |
local function iter(tmp, i) |
i = i + 1 |
local x = tmp[i] |
tmp[i] = nil |
if x then |
return i, x |
end |
end |
local tmp = {} |
function fake_ipairs(...) |
for i = 1, select('#', ...) do |
tmp[i] = select(i, ...) |
end |
return iter, tmp, 0 |
end |
end |
local function argunpack(t, key, i) |
if not i then |
i = 1 |
end |
local k = key .. i |
local v = t[k] |
if v then |
return v, argunpack(t, key, i+1) |
end |
end |
local delstring, newstring |
do |
local cache = {} |
function delstring(t) |
cache[#cache+1] = t |
t:SetText(nil) |
t:ClearAllPoints() |
t:Hide() |
t:SetParent(UIParent) |
return nil |
end |
function newstring(parent) |
if #cache ~= 0 then |
local t = cache[#cache] |
cache[#cache] = nil |
t:Show() |
t:SetParent(parent) |
return t |
end |
local t = parent:CreateFontString(nil, "ARTWORK") |
return t |
end |
end |
local function button_OnEnter(this, ...) |
if type(this.self:GetScript("OnEnter")) == "function" then |
this.self:GetScript("OnEnter")(this.self, ...) |
end |
this.highlight:Show() |
if this.onEnterFunc then |
local success, ret = pcall(this.onEnterFunc, argunpack(this, 'onEnterArg')) |
if not success then |
geterrorhandler()(ret) |
end |
end |
end |
local function button_OnLeave(this, ...) |
if type(this.self:GetScript("OnLeave")) == "function" then |
this.self:GetScript("OnLeave")(this.self, ...) |
end |
this.highlight:Hide() |
if this.onLeaveFunc then |
local success, ret = pcall(this.onLeaveFunc, argunpack(this, 'onLeaveArg')) |
if not success then |
geterrorhandler()(ret) |
end |
end |
end |
local lastMouseDown |
local function button_OnClick(this, arg1, ...) |
if this.self:HasScript("OnClick") and type(this.self:GetScript("OnClick")) == "function" then |
this.self:GetScript("OnClick")(this.self, arg1, ...) |
end |
if arg1 == "RightButton" then |
if this.self:HasScript("OnClick") and type(this.self:GetScript("OnClick")) == "function" then |
this.self:GetScript("OnClick")(this.self, arg1, ...) |
end |
elseif arg1 == "LeftButton" then |
if this.self.preventClick == nil or GetTime() > this.self.preventClick and GetTime() < lastMouseDown + 0.5 then |
this.self.preventClick = nil |
this.self.updating = true |
this.self.preventRefresh = true |
local success, ret = pcall(this.func, argunpack(this, 'arg')) |
if not success then |
geterrorhandler()(ret) |
end |
if this.self and this.self.registration then |
this.self.preventRefresh = false |
this.self:children() |
this.self.updating = false |
end |
end |
end |
end |
local function button_OnMouseUp(this, arg1, ...) |
if this.self:HasScript("OnMouseUp") and type(this.self:GetScript("OnMouseUp")) == "function" then |
this.self:GetScript("OnMouseUp")(this.self, arg1, ...) |
end |
if arg1 ~= "RightButton" then |
if this.clicked then |
local a,b,c,d,e = this.check:GetPoint(1) |
this.check:SetPoint(a,b,c,d-1,e+1) |
this.clicked = false |
end |
end |
end |
local function button_OnMouseDown(this, arg1, ...) |
if this.self:HasScript("OnMouseDown") and type(this.self:GetScript("OnMouseDown")) == "function" then |
this.self:GetScript("OnMouseDown")(this.self, arg1, ...) |
end |
lastMouseDown = GetTime() |
if arg1 ~= "RightButton" then |
local a,b,c,d,e = this.check:GetPoint(1) |
this.check:SetPoint(a,b,c,d+1,e-1) |
this.clicked = true |
end |
end |
local function button_OnDragStart(this, ...) |
local parent = this:GetParent() and this:GetParent().tablet |
if parent:GetScript("OnDragStart") then |
return parent:GetScript("OnDragStart")(parent, ...) |
end |
end |
local function button_OnDragStop(this, ...) |
local parent = this:GetParent() and this:GetParent().tablet |
if parent:GetScript("OnDragStop") then |
return parent:GetScript("OnDragStop")(parent, ...) |
end |
end |
local num_buttons = 0 |
local function NewLine(self) |
if self.maxLines <= self.numLines then |
self.maxLines = self.maxLines + 1 |
num_buttons = num_buttons + 1 |
local button = CreateFrame("Button", "Tablet20Button" .. num_buttons, self.scrollChild) |
button:SetFrameLevel(12) |
button.indentation = 0 |
local check = button:CreateTexture(nil, "ARTWORK") |
local col1 = newstring(button) |
testString = col1 |
local highlight = button:CreateTexture(nil, "BACKGROUND") |
highlight:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") |
button.highlight = highlight |
highlight:SetBlendMode("ADD") |
highlight:SetAllPoints(button) |
highlight:Hide() |
self.buttons[#self.buttons+1] = button |
button.check = check |
button.col1 = col1 |
col1:SetWidth(0) |
if self.maxLines == 1 then |
col1:SetFontObject(GameTooltipHeaderText) |
col1:SetJustifyH("CENTER") |
button:SetPoint("TOPLEFT", self.scrollFrame, "TOPLEFT", 3, -5) |
else |
col1:SetFontObject(GameTooltipText) |
button:SetPoint("TOPLEFT", self.buttons[self.maxLines - 1], "BOTTOMLEFT", 0, -2) |
end |
button:SetScript("OnEnter", button_OnEnter) |
button:SetScript("OnLeave", button_OnLeave) |
button.check = check |
button.self = self |
button:SetPoint("RIGHT", self.scrollFrame, "RIGHT", -7, 0) |
check.shown = false |
check:SetPoint("TOPLEFT", button, "TOPLEFT") |
col1:SetPoint("TOPLEFT", check, "TOPLEFT") |
local _,size = GameTooltipText:GetFont() |
check:SetHeight(size * 1.5) |
check:SetWidth(size * 1.5) |
check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") |
check:SetAlpha(0) |
if not button.clicked then |
button:SetScript("OnMouseWheel", self:GetScript("OnMouseWheel")) |
button:EnableMouseWheel(true) |
button:Hide() |
end |
check:Show() |
col1:Hide() |
end |
end |
NewLine = wrap(NewLine, "NewLine") |
local function RecalculateTabletHeight(detached) |
detached.height_ = nil |
if detached.registration and detached.registration.positionFunc then |
local height = detached:GetHeight() |
if height > 0 then |
detached.height_ = height |
else |
local top, bottom |
for i = 1, detached:GetNumPoints() do |
local a,b,c,d,e = detached:GetPoint(i) |
if a:find("^TOP") then |
if c:find("^TOP") then |
top = b:GetTop() |
elseif c:find("^BOTTOM") then |
top = b:GetBottom() |
else |
_,top = b:GetCenter() |
end |
if top then |
top = top + e |
end |
elseif a:find("^BOTTOM") then |
if c:find("^TOP") then |
bottom = b:GetTop() |
elseif c:find("^BOTTOM") then |
bottom = b:GetBottom() |
else |
_,bottom = b:GetCenter() |
end |
if bottom then |
bottom = bottom + e |
end |
end |
end |
if top and bottom then |
detached.height_ = top - bottom |
end |
end |
end |
end |
local function GetTooltipHeight(self) |
RecalculateTabletHeight(self) |
if self.height_ then |
local height = self:GetTop() and self:GetBottom() and self:GetTop() - self:GetBottom() or self:GetHeight() |
if height == 0 then |
height = self.height_ |
end |
return height |
end |
if self.registration.maxHeight then |
return self.registration.maxHeight |
end |
if self == tooltip then |
return GetScreenHeight()*3/4 |
else |
return GetScreenHeight()*2/3 |
end |
end |
GetTooltipHeight = wrap(GetTooltipHeight, "GetTooltipHeight") |
local overFrame = nil |
local detachedTooltips = {} |
local AcquireDetachedFrame, ReleaseDetachedFrame |
local function AcquireFrame(self, registration, data, detachedData) |
if not detachedData then |
detachedData = data |
end |
if tooltip then |
tooltip.data = data |
tooltip.detachedData = detachedData |
local fontSizePercent = tooltip.data and tooltip.data.fontSizePercent or 1 |
local transparency = tooltip.data and tooltip.data.transparency or 0.75 |
local r = tooltip.data and tooltip.data.r or 0 |
local g = tooltip.data and tooltip.data.g or 0 |
local b = tooltip.data and tooltip.data.b or 0 |
tooltip:SetFontSizePercent(fontSizePercent) |
tooltip:SetTransparency(transparency) |
tooltip:SetColor(r, g, b) |
tooltip:SetParent(GetMainFrame()) |
tooltip:SetFrameStrata(registration.strata or "TOOLTIP") |
tooltip:SetFrameLevel(10) |
for _,frame in fake_ipairs(tooltip:GetChildren()) do |
frame:SetFrameLevel(12) |
end |
else |
tooltip = CreateFrame("Frame", "Tablet20Frame", UIParent) |
tooltip:SetParent(GetMainFrame()) |
self.tooltip = tooltip |
tooltip.data = data |
tooltip.detachedData = detachedData |
tooltip:EnableMouse(true) |
tooltip:EnableMouseWheel(true) |
tooltip:SetFrameStrata(registration.strata or "TOOLTIP") |
tooltip:SetFrameLevel(10) |
local backdrop = new( |
'bgFile', "Interface\\Buttons\\WHITE8X8", |
'edgeFile', "Interface\\Tooltips\\UI-Tooltip-Border", |
'tile', true, |
'tileSize', 16, |
'edgeSize', 16, |
'insets', new( |
'left', 5, |
'right', 5, |
'top', 5, |
'bottom', 5 |
) |
) |
tooltip:SetBackdrop(backdrop) |
del(backdrop.insets) |
del(backdrop) |
tooltip:SetBackdropColor(0, 0, 0, 1) |
tooltip.numLines = 0 |
tooltip.owner = nil |
tooltip.fontSizePercent = tooltip.data and tooltip.data.fontSizePercent or 1 |
tooltip.maxLines = 0 |
tooltip.buttons = {} |
tooltip.transparency = tooltip.data and tooltip.data.transparency or 0.75 |
tooltip:SetBackdropColor(0, 0, 0, tooltip.transparency) |
tooltip:SetBackdropBorderColor(1, 1, 1, tooltip.transparency) |
tooltip:SetScript("OnUpdate", function(this, elapsed) |
if not tooltip.updating and (not tooltip.enteredFrame or (overFrame and not MouseIsOver(overFrame))) then |
tooltip.scrollFrame:SetVerticalScroll(0) |
tooltip.slider:SetValue(0) |
tooltip:Hide() |
tooltip.registration.tooltip = nil |
tooltip.registration = nil |
overFrame = nil |
end |
end) |
tooltip:SetScript("OnEnter", function(this) |
if tooltip.clickable then |
tooltip.enteredFrame = true |
overFrame = nil |
end |
end) |
tooltip:SetScript("OnLeave", function(this) |
if not tooltip.updating then |
tooltip.enteredFrame = false |
end |
end) |
tooltip:SetScript("OnMouseWheel", function(this, arg1) |
tooltip.updating = true |
tooltip:Scroll(arg1 < 0) |
tooltip.updating = false |
end) |
local scrollFrame = CreateFrame("ScrollFrame", "Tablet20FrameScrollFrame", tooltip) |
scrollFrame:SetFrameLevel(11) |
local scrollChild = CreateFrame("Frame", "Tablet20FrameScrollChild", scrollFrame) |
scrollChild.tablet = tooltip |
scrollFrame:SetScrollChild(scrollChild) |
tooltip.scrollFrame = scrollFrame |
tooltip.scrollChild = scrollChild |
scrollFrame:SetPoint("TOPLEFT", 5, -5) |
scrollFrame:SetPoint("TOPRIGHT", -5, -5) |
scrollFrame:SetPoint("BOTTOMLEFT", 5, 5) |
scrollFrame:SetPoint("BOTTOMRIGHT", -5, 5) |
scrollChild:SetWidth(1) |
scrollChild:SetHeight(1) |
local slider = CreateFrame("Slider", "Tablet20FrameSlider", scrollFrame) |
tooltip.slider = slider |
slider:SetOrientation("VERTICAL") |
slider:SetMinMaxValues(0, 1) |
slider:SetValueStep(0.001) |
slider:SetValue(0) |
slider:SetWidth(8) |
slider:SetPoint("TOPRIGHT", 0, 0) |
slider:SetPoint("BOTTOMRIGHT", 0, 0) |
slider:SetBackdrop(new( |
'bgFile', "Interface\\Buttons\\UI-SliderBar-Background", |
'edgeFile', "Interface\\Buttons\\UI-SliderBar-Border", |
'tile', true, |
'edgeSize', 8, |
'tileSize', 8, |
'insets', new( |
'left', 3, |
'right', 3, |
'top', 3, |
'bottom', 3 |
) |
)) |
slider:SetThumbTexture("Interface\\Buttons\\UI-SliderBar-Button-Vertical") |
slider:SetScript("OnEnter", tooltip:GetScript("OnEnter")) |
slider:SetScript("OnLeave", tooltip:GetScript("OnLeave")) |
slider.tablet = tooltip |
slider:SetScript("OnValueChanged", function(this) |
local max = this.tablet.scrollChild:GetHeight() - this.tablet:GetHeight() |
local val = this:GetValue() * max |
if math.abs(this.tablet.scrollFrame:GetVerticalScroll() - val) < 1 then |
return |
end |
this.tablet.scrollFrame:SetVerticalScroll(val) |
end) |
NewLine(tooltip) |
function tooltip:SetOwner(o) |
self:Hide(o) |
self.owner = o |
end |
tooltip.SetOwner = wrap(tooltip.SetOwner, "tooltip:SetOwner") |
function tooltip:IsOwned(o) |
return self.owner == o |
end |
tooltip.IsOwned = wrap(tooltip.IsOwned, "tooltip:IsOwned") |
function tooltip:ClearLines(hide) |
CleanCategoryPool(self) |
for i = 1, self.numLines do |
local button = self.buttons[i] |
local check = button.check |
if not button.clicked or hide then |
button:Hide() |
end |
check.shown = false |
check:SetAlpha(0) |
end |
self.numLines = 0 |
end |
tooltip.ClearLines = wrap(tooltip.ClearLines, "tooltip:ClearLines") |
function tooltip:NumLines() |
return self.numLines |
end |
local lastWidth |
local old_tooltip_Hide = tooltip.Hide |
tooltip.__Hide = old_tooltip_Hide |
function tooltip:Hide(newOwner) |
if self == tooltip or newOwner == nil then |
old_tooltip_Hide(self) |
end |
self:ClearLines(true) |
self.owner = nil |
self.lastWidth = nil |
self.tmpHidden = nil |
end |
tooltip.Hide = wrap(tooltip.Hide, "tooltip:Hide") |
local old_tooltip_Show = tooltip.Show |
tooltip.__Show = old_tooltip_Show |
function tooltip:Show(tabletData) |
if self.owner == nil or self.notInUse then |
return |
end |
if not self.tmpHidden then |
old_tooltip_Show(self) |
end |
testString = self.buttons[1].col1 |
local maxWidth = tabletData and tabletData.width or self:GetWidth() - 20 |
local hasWrap = false |
local numColumns |
local height = 20 |
self:SetWidth(maxWidth + 20) |
for i = 1, self.numLines do |
local button = self.buttons[i] |
local col1 = button.col1 |
local col2 = button.col2 |
local check = button.check |
button:SetWidth(maxWidth) |
button:SetHeight(col2 and math.max(col1:GetHeight(), col2:GetHeight()) or col1:GetHeight()) |
height = height + button:GetHeight() + 2 |
if i == 1 then |
button:SetPoint("TOPLEFT", self.scrollChild, "TOPLEFT", 5, -5) |
else |
button:SetPoint("TOPLEFT", self.buttons[i - 1], "BOTTOMLEFT", 0, -2) |
end |
if button.clicked then |
check:SetPoint("TOPLEFT", button, "TOPLEFT", button.indentation * self.fontSizePercent + (check.width - check:GetWidth()) / 2 + 1, -1) |
else |
check:SetPoint("TOPLEFT", button, "TOPLEFT", button.indentation * self.fontSizePercent + (check.width - check:GetWidth()) / 2, 0) |
end |
button:Show() |
end |
self.scrollFrame:SetFrameLevel(11) |
self.scrollChild:SetWidth(maxWidth) |
self.scrollChild:SetHeight(height) |
local maxHeight = GetTooltipHeight(self) |
if height > maxHeight then |
height = maxHeight |
self.slider:Show() |
else |
self.slider:Hide() |
end |
self:SetHeight(height) |
self.scrollFrame:SetScrollChild(self.scrollChild) |
local val = self.scrollFrame:GetVerticalScroll() |
local max = self.scrollChild:GetHeight() - self:GetHeight() |
if val > max then |
val = max |
end |
if val < 0 then |
val = 0 |
end |
self.scrollFrame:SetVerticalScroll(val) |
self.slider:SetValue(val/max) |
end |
tooltip.Show = wrap(tooltip.Show, "tooltip:Show") |
function tooltip:AddLine(info) |
local category = info.category.superCategory |
local maxWidth = category.tabletData.width |
local text = info.blank and "\n" or info.text |
local id = info.id |
local func = info.func |
local checked = info.checked |
local isRadio = info.isRadio |
local checkTexture = info.checkTexture |
local fontSizePercent = self.fontSizePercent |
if not info.font then |
info.font = GameTooltipText |
end |
if not info.size then |
_,info.size = info.font:GetFont() |
end |
local catStart = false |
local columns = category and category.columns or 1 |
local x_total = 0 |
local x1, x2 |
if category then |
for i = 1, category.columns do |
x_total = x_total + category['x' .. i] |
end |
x1, x2 = category.x1, category.x2 |
else |
x1, x2 = 0, 0 |
end |
self.numLines = self.numLines + 1 |
NewLine(self) |
local num = self.numLines |
local button = self.buttons[num] |
button:Show() |
button.col1:Show() |
button.indentation = info.indentation |
local col1 = button.col1 |
local check = button.check |
do -- if columns >= 1 then |
col1:SetWidth(0) |
col1:SetFontObject(info.font) |
local font,_,flags = info.font:GetFont() |
col1:SetFont(font, info.size * fontSizePercent, flags) |
col1:SetText(text) |
col1:SetJustifyH(info.justify) |
col1:Show() |
if info.textR and info.textG and info.textB then |
col1:SetTextColor(info.textR, info.textG, info.textB) |
else |
col1:SetTextColor(1, 0.823529, 0) |
end |
if columns < 2 then |
local i = 2 |
while true do |
local col = button['col' .. i] |
if col then |
button['col' .. i] = delstring(col) |
else |
break |
end |
i = i + 1 |
end |
else |
local i = 2 |
while true do |
local col = button['col' .. i] |
if not col then |
button['col' .. i] = newstring(button) |
col = button['col' .. i] |
end |
col:SetFontObject(info['font' .. i]) |
col:SetText(info['text' .. i]) |
col:Show() |
local r,g,b = info['text' .. i .. 'R'] |
if r then |
g = info['text' .. i .. 'G'] |
if g then |
b = info['text' .. i .. 'B'] |
end |
end |
if b then |
col:SetTextColor(r, g, b) |
else |
col:SetTextColor(1, 0.823529, 0) |
end |
local a,_,b = info.font2:GetFont() |
col:SetFont(a, info['size' .. i] * fontSizePercent, b) |
col:SetJustifyH(info['justify' .. i]) |
if columns == i then |
if i == 2 then |
col:SetPoint("TOPLEFT", col1, "TOPRIGHT", 40 * fontSizePercent, 0) |
col:SetPoint("TOPRIGHT", button, "TOPRIGHT", -5, 0) |
else |
local col2 = button.col2 |
col2:ClearAllPoints() |
col2:SetPoint("TOPLEFT", col1, "TOPRIGHT", (20 - info.indentation) * fontSizePercent, 0) |
end |
i = i + 1 |
while true do |
local col = button['col' .. i] |
if col then |
button['col' .. i] = delstring(col) |
else |
break |
end |
i = i + 1 |
end |
break |
end |
i = i + 1 |
end |
end |
end |
check:SetWidth(info.size * fontSizePercent) |
check:SetHeight(info.size * fontSizePercent) |
check.width = info.size * fontSizePercent |
if info.hasCheck then |
check.shown = true |
check:Show() |
if isRadio then |
check:SetTexture(info.checkIcon or "Interface\\Buttons\\UI-RadioButton") |
if info.checked then |
check:SetAlpha(1) |
check:SetTexCoord(0.25, 0.5, 0, 1) |
else |
check:SetAlpha(self.transparency) |
check:SetTexCoord(0, 0.25, 0, 1) |
end |
check:SetVertexColor(1, 1, 1) |
else |
if info.checkIcon then |
check:SetTexture(info.checkIcon) |
check:SetTexCoord(info.checkCoordLeft, info.checkCoordRight, info.checkCoordTop, info.checkCoordBottom) |
check:SetVertexColor(info.checkColorR, info.checkColorG, info.checkColorB) |
else |
check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check") |
check:SetWidth(info.size * fontSizePercent * 1.5) |
check:SetHeight(info.size * fontSizePercent * 1.5) |
check.width = info.size * fontSizePercent * 1.2 |
check:SetTexCoord(0, 1, 0, 1) |
check:SetVertexColor(1, 1, 1) |
end |
check:SetAlpha(info.checked and 1 or 0) |
end |
col1:SetPoint("TOPLEFT", check, "TOPLEFT", check.width, 0) |
else |
col1:SetPoint("TOPLEFT", check, "TOPLEFT") |
end |
local col2 = button.col2 |
if columns == 1 then |
col1:SetWidth(maxWidth) |
elseif columns == 2 then |
if info.wrap then |
col1:SetWidth(maxWidth - col2:GetWidth() - 40 * fontSizePercent) |
col2:SetWidth(0) |
elseif info.wrap2 then |
col1:SetWidth(0) |
col2:SetWidth(maxWidth - col1:GetWidth() - 40 * fontSizePercent) |
else |
col1:SetWidth(0) |
col2:SetWidth(0) |
end |
col2:ClearAllPoints() |
col2:SetPoint("TOPRIGHT", button, "TOPRIGHT", 0, 0) |
if not info.text2 then |
col1:SetJustifyH(info.justify or "LEFT") |
end |
else |
col1:SetWidth(x1 - info.checkWidth) |
col2:SetWidth(x2) |
local num = (category.tabletData.width - x_total) / (columns - 1) |
col2:SetPoint("TOPLEFT", col1, "TOPRIGHT", num - info.indentation * fontSizePercent, 0) |
local last = col2 |
for i = 3, category.columns do |
local col = button['col' .. i] |
col:SetWidth(category['x' .. i]) |
col:SetPoint("TOPLEFT", last, "TOPRIGHT", num, 0) |
last = col |
end |
end |
button.func = nil |
button.onEnterFunc = nil |
button.onLeaveFunc = nil |
if not self.locked or IsAltKeyDown() then |
local func = info.func |
if func then |
if type(func) == "string" then |
if type(info.arg1) ~= "table" then |
Tablet:error("Cannot call method " .. info.func .. " on a non-table") |
end |
func = info.arg1[func] |
if type(func) ~= "function" then |
Tablet:error("Method " .. info.func .. " nonexistant") |
end |
else |
if type(func) ~= "function" then |
Tablet:error("func must be a function or method") |
end |
end |
button.func = func |
local i = 1 |
while true do |
local k = 'arg' .. i |
if button[k] ~= nil then |
button[k] = nil |
else |
break |
end |
i = i + 1 |
end |
i = 1 |
while true do |
local k = 'arg' .. i |
local v = info[k] |
if v == nil then |
break |
end |
button[k] = v |
i = i + 1 |
end |
local onEnterFunc = info.onEnterFunc |
if onEnterFunc then |
if type(onEnterFunc) == "string" then |
if type(info.onEnterArg1) ~= "table" then |
Tablet:error("Cannot call method " .. info.onEnterFunc .. " on a non-table") |
end |
onEventFunc = info.onEnterArg1[onEnterFunc] |
if type(onEnterFunc) ~= "function" then |
Tablet:error("Method " .. info.onEnterFunc .. " nonexistant") |
end |
else |
if type(onEnterFunc) ~= "function" then |
Tablet:error("func must be a function or method") |
end |
end |
button.onEnterFunc = onEnterFunc |
local i = 1 |
while true do |
local k = 'onEnterArg' .. i |
if button[k] ~= nil then |
button[k] = nil |
else |
break |
end |
i = i + 1 |
end |
i = 1 |
while true do |
local k = 'onEnterArg' .. i |
local v = info[k] |
if v == nil then |
break |
end |
button[k] = v |
i = i + 1 |
end |
end |
local onLeaveFunc = info.onLeaveFunc |
if onLeaveFunc then |
if type(onLeaveFunc) == "string" then |
if type(info.onLeaveArg1) ~= "table" then |
Tablet:error("Cannot call method " .. info.onLeaveFunc .. " on a non-table") |
end |
onLeaveFunc = info.onLeaveArg1[onLeaveFunc] |
if type(onLeaveFunc) ~= "function" then |
Tablet:error("Method " .. info.onLeaveFunc .. " nonexistant") |
end |
else |
if type(onLeaveFunc) ~= "function" then |
Tablet:error("func must be a function or method") |
end |
end |
button.onLeaveFunc = onLeaveFunc |
local i = 1 |
while true do |
local k = 'onLeaveArg' .. i |
if button[k] ~= nil then |
button[k] = nil |
else |
break |
end |
i = i + 1 |
end |
i = 1 |
while true do |
local k = 'onLeaveArg' .. i |
local v = info[k] |
if v == nil then |
break |
end |
button[k] = v |
i = i + 1 |
end |
end |
button.self = self |
button:SetScript("OnMouseUp", button_OnMouseUp) |
button:SetScript("OnMouseDown", button_OnMouseDown) |
button:RegisterForDrag("LeftButton") |
button:SetScript("OnDragStart", button_OnDragStart) |
button:SetScript("OnDragStop", button_OnDragStop) |
button:SetScript("OnClick", button_OnClick) |
if button.clicked then |
button:SetButtonState("PUSHED") |
end |
button:EnableMouse(true) |
else |
button:SetScript("OnMouseDown", nil) |
button:SetScript("OnMouseUp", nil) |
button:RegisterForDrag() |
button:SetScript("OnDragStart", nil) |
button:SetScript("OnDragStop", nil) |
button:SetScript("OnClick", nil) |
button:EnableMouse(false) |
end |
else |
button:SetScript("OnMouseDown", nil) |
button:SetScript("OnMouseUp", nil) |
button:RegisterForDrag() |
button:SetScript("OnDragStart", nil) |
button:SetScript("OnDragStop", nil) |
button:SetScript("OnClick", nil) |
button:EnableMouse(false) |
end |
end |
tooltip.AddLine = wrap(tooltip.AddLine, "tooltip:AddLine") |
function tooltip:SetFontSizePercent(percent) |
local data, detachedData = self.data, self.detachedData |
if detachedData and detachedData.detached then |
data = detachedData |
end |
local lastSize = self.fontSizePercent |
percent = tonumber(percent) or 1 |
if percent < 0.25 then |
percent = 0.25 |
elseif percent > 4 then |
percent = 4 |
end |
self.fontSizePercent = percent |
if data then |
data.fontSizePercent = percent |
end |
local ratio = self.fontSizePercent / lastSize |
for i = 1, self.numLines do |
local button = self.buttons[i] |
local j = 1 |
while true do |
local col = button['col' .. j] |
if not col then |
break |
end |
local font, size, flags = col:GetFont() |
col:SetFont(font, size * ratio, flags) |
j = j + 1 |
end |
local check = button.check |
check.width = check.width * ratio |
check:SetWidth(check:GetWidth() * ratio) |
check:SetHeight(check:GetHeight() * ratio) |
end |
self:SetWidth((self:GetWidth() - 51) * ratio + 51) |
self:SetHeight((self:GetHeight() - 51) * ratio + 51) |
if self:IsShown() and self.children then |
self:children() |
self:Show() |
end |
end |
tooltip.SetFontSizePercent = wrap(tooltip.SetFontSizePercent, "tooltip:SetFontSizePercent") |
function tooltip:GetFontSizePercent() |
return self.fontSizePercent |
end |
function tooltip:SetTransparency(alpha) |
local data, detachedData = self.data, self.detachedData |
if detachedData and detachedData.detached then |
data = detachedData |
end |
self.transparency = alpha |
if data then |
data.transparency = alpha ~= 0.75 and alpha or nil |
end |
self:SetBackdropColor(self.r or 0, self.g or 0, self.b or 0, alpha) |
self:SetBackdropBorderColor(1, 1, 1, alpha) |
self.slider:SetBackdropColor(self.r or 0, self.g or 0, self.b or 0, alpha) |
self.slider:SetBackdropBorderColor(1, 1, 1, alpha) |
end |
tooltip.SetTransparency = wrap(tooltip.SetTransparency, "tooltip:SetTransparency") |
function tooltip:GetTransparency() |
return self.transparency |
end |
function tooltip:SetColor(r, g, b) |
local data, detachedData = self.data, self.detachedData |
if detachedData and detachedData.detached then |
data = detachedData |
end |
self.r = r |
self.g = g |
self.b = b |
if data then |
data.r = r ~= 0 and r or nil |
data.g = g ~= 0 and g or nil |
data.b = b ~= 0 and b or nil |
end |
self:SetBackdropColor(r or 0, g or 0, b or 0, self.transparency) |
self:SetBackdropBorderColor(1, 1, 1, self.transparency) |
end |
tooltip.SetColor = wrap(tooltip.SetColor, "tooltip:SetColor") |
function tooltip:GetColor() |
return self.r, self.g, self.b |
end |
function tooltip:Scroll(down) |
local val |
local max = self.scrollChild:GetHeight() - self:GetHeight() |
if down then |
if IsShiftKeyDown() then |
val = max |
else |
val = self.scrollFrame:GetVerticalScroll() + 36 |
if val > max then |
val = max |
end |
end |
else |
if IsShiftKeyDown() then |
val = 0 |
else |
val = self.scrollFrame:GetVerticalScroll() - 36 |
if val < 0 then |
val = 0 |
end |
end |
end |
self.scrollFrame:SetVerticalScroll(val) |
self.slider:SetValue(val/max) |
end |
tooltip.Scroll = wrap(tooltip.Scroll, "tooltip:Scroll") |
function tooltip.Detach(tooltip) |
local owner = tooltip.owner |
tooltip:Hide() |
if not tooltip.detachedData then |
self:error("You cannot detach if detachedData is not present") |
end |
tooltip.detachedData.detached = true |
local detached = AcquireDetachedFrame(self, tooltip.registration, tooltip.data, tooltip.detachedData) |
detached.menu, tooltip.menu = tooltip.menu, nil |
detached.runChildren = tooltip.runChildren |
detached.children = tooltip.children |
detached.minWidth = tooltip.minWidth |
tooltip.runChildren = nil |
tooltip.children = nil |
tooltip.minWidth = nil |
detached:SetOwner(owner) |
detached:children() |
detached:Show() |
end |
tooltip.Detach = wrap(tooltip.Detach, "tooltip:Detach") |
end |
tooltip.registration = registration |
registration.tooltip = tooltip |
return tooltip |
end |
AcquireFrame = wrap(AcquireFrame, "AcquireFrame") |
function ReleaseDetachedFrame(self, data, detachedData) |
if not detachedData then |
detachedData = data |
end |
for _, detached in ipairs(detachedTooltips) do |
if detached.detachedData == detachedData then |
detached.notInUse = true |
detached:Hide() |
detached.registration.tooltip = nil |
detached.registration = nil |
detached.detachedData = nil |
end |
end |
end |
ReleaseDetachedFrame = wrap(ReleaseDetachedFrame, "ReleaseDetachedFrame") |
local StartCheckingAlt, StopCheckingAlt |
do |
local frame |
function StartCheckingAlt(func) |
if not frame then |
frame = CreateFrame("Frame") |
frame:SetScript("OnEvent", function(this, _, modifier) |
if modifier == "ALT" then |
this.func() |
end |
end) |
end |
frame:RegisterEvent("MODIFIER_STATE_CHANGED") |
frame.func = func |
end |
function StopCheckingAlt() |
if frame then |
frame:UnregisterEvent("MODIFIER_STATE_CHANGED") |
end |
end |
end |
function AcquireDetachedFrame(self, registration, data, detachedData) |
if not detachedData then |
detachedData = data |
end |
for _, detached in ipairs(detachedTooltips) do |
if detached.notInUse then |
detached.data = data |
detached.detachedData = detachedData |
detached.notInUse = nil |
local fontSizePercent = detachedData.fontSizePercent or 1 |
local transparency = detachedData.transparency or 0.75 |
local r = detachedData.r or 0 |
local g = detachedData.g or 0 |
local b = detachedData.b or 0 |
detached:SetFontSizePercent(fontSizePercent) |
detached:SetTransparency(transparency) |
detached:SetColor(r, g, b) |
detached:ClearAllPoints() |
detached:SetWidth(0) |
detached:SetHeight(0) |
if not registration.strata then |
detached:SetFrameStrata("BACKGROUND") |
end |
if not registration.frameLevel then |
detached:SetFrameLevel(10) |
for _,frame in fake_ipairs(detached:GetChildren()) do |
frame:SetFrameLevel(12) |
end |
end |
detached:SetParent(registration.parent or GetMainFrame()) |
if registration.strata then |
detached:SetFrameStrata(registration.strata) |
end |
if registration.frameLevel then |
detached:SetFrameLevel(registration.frameLevel) |
for _,frame in fake_ipairs(detached:GetChildren()) do |
frame:SetFrameLevel(registration.frameLevel+2) |
end |
end |
detached.height_ = nil |
if registration.positionFunc then |
registration.positionFunc(detached) |
RecalculateTabletHeight(detached) |
else |
detached:SetPoint(detachedData.anchor or "CENTER", GetMainFrame(), detachedData.anchor or "CENTER", detachedData.offsetx or 0, detachedData.offsety or 0) |
end |
detached.registration = registration |
registration.tooltip = detached |
if registration.movable == false then |
detached:RegisterForDrag() |
else |
detached:RegisterForDrag("LeftButton") |
end |
return detached |
end |
end |
if not Dewdrop and AceLibrary:HasInstance("Dewdrop-2.0") then |
Dewdrop = AceLibrary("Dewdrop-2.0") |
end |
StartCheckingAlt(function() |
for _, detached in ipairs(detachedTooltips) do |
if detached:IsShown() and detached.locked then |
detached:EnableMouse(IsAltKeyDown()) |
detached:children() |
if detached.moving then |
local a1 = arg1 |
arg1 = "LeftButton" |
if type(detached:GetScript("OnMouseUp")) == "function" then |
detached:GetScript("OnMouseUp")(detached, arg1) |
end |
arg1 = a1 |
end |
end |
end |
end) |
if not tooltip then |
AcquireFrame(self, {}) |
end |
local detached = CreateFrame("Frame", "Tablet20DetachedFrame" .. (#detachedTooltips + 1), GetMainFrame()) |
detachedTooltips[#detachedTooltips+1] = detached |
detached.notInUse = true |
detached:EnableMouse(not data.locked) |
detached:EnableMouseWheel(true) |
detached:SetMovable(true) |
detached:SetPoint(data.anchor or "CENTER", GetMainFrame(), data.anchor or "CENTER", data.offsetx or 0, data.offsety or 0) |
detached.numLines = 0 |
detached.owner = nil |
detached.fontSizePercent = 1 |
detached.maxLines = 0 |
detached.buttons = {} |
detached.transparency = 0.75 |
detached.r = 0 |
detached.g = 0 |
detached.b = 0 |
detached:SetFrameStrata(registration.strata or "BACKGROUND") |
detached:SetBackdrop(tmp.a( |
'bgFile', "Interface\\Buttons\\WHITE8X8", |
'edgeFile', "Interface\\Tooltips\\UI-Tooltip-Border", |
'tile', true, |
'tileSize', 16, |
'edgeSize', 16, |
'insets', tmp.b( |
'left', 5, |
'right', 5, |
'top', 5, |
'bottom', 5 |
) |
)) |
detached.locked = detachedData.locked |
detached:EnableMouse(not detached.locked) |
local width = GetScreenWidth() |
local height = GetScreenHeight() |
if registration.movable == false then |
detached:RegisterForDrag() |
else |
detached:RegisterForDrag("LeftButton") |
end |
detached:SetScript("OnDragStart", function(this) |
detached:StartMoving() |
detached.moving = true |
end) |
detached:SetScript("OnDragStop", function(this) |
detached:StopMovingOrSizing() |
detached.moving = nil |
local anchor |
local offsetx |
local offsety |
if detached:GetTop() + detached:GetBottom() < height then |
anchor = "BOTTOM" |
offsety = detached:GetBottom() |
if offsety < 0 then |
offsety = 0 |
end |
if offsety < MainMenuBar:GetTop() and MainMenuBar:IsVisible() then |
offsety = MainMenuBar:GetTop() |
end |
local top = 0 |
if FuBar then |
for i = 1, FuBar:GetNumPanels() do |
local panel = FuBar:GetPanel(i) |
if panel:GetAttachPoint() == "BOTTOM" then |
if panel.frame:GetTop() > top then |
top = panel.frame:GetTop() |
break |
end |
end |
end |
end |
if offsety < top then |
offsety = top |
end |
else |
anchor = "TOP" |
offsety = detached:GetTop() - height |
if offsety > 0 then |
offsety = 0 |
end |
local bottom = GetScreenHeight() |
if FuBar then |
for i = 1, FuBar:GetNumPanels() do |
local panel = FuBar:GetPanel(i) |
if panel:GetAttachPoint() == "TOP" then |
if panel.frame:GetBottom() < bottom then |
bottom = panel.frame:GetBottom() |
break |
end |
end |
end |
end |
bottom = bottom - GetScreenHeight() |
if offsety > bottom then |
offsety = bottom |
end |
end |
if detached:GetLeft() + detached:GetRight() < width * 2 / 3 then |
anchor = anchor .. "LEFT" |
offsetx = detached:GetLeft() |
if offsetx < 0 then |
offsetx = 0 |
end |
elseif detached:GetLeft() + detached:GetRight() < width * 4 / 3 then |
if anchor == "" then |
anchor = "CENTER" |
end |
offsetx = (detached:GetLeft() + detached:GetRight() - GetScreenWidth()) / 2 |
else |
anchor = anchor .. "RIGHT" |
offsetx = detached:GetRight() - width |
if offsetx > 0 then |
offsetx = 0 |
end |
end |
detached:ClearAllPoints() |
detached:SetPoint(anchor, GetMainFrame(), anchor, offsetx, offsety) |
local t = detached.detachedData |
if t.anchor ~= anchor or math.abs(t.offsetx - offsetx) > 8 or math.abs(t.offsety - offsety) > 8 then |
detached.preventClick = GetTime() + 0.05 |
end |
t.anchor = anchor |
t.offsetx = offsetx |
t.offsety = offsety |
detached:Show() |
end) |
if Dewdrop then |
Dewdrop:Register(detached, |
'children', function(level, value) |
if not detached.registration then |
return |
end |
if detached.menu then |
detached.menu(level, value) |
if level == 1 then |
Dewdrop:AddLine() |
end |
end |
if level == 1 then |
if not detached.registration.cantAttach then |
Dewdrop:AddLine( |
'text', DETACH, |
'tooltipTitle', DETACH, |
'tooltipText', DETACH_DESC, |
'checked', true, |
'arg1', detached, |
'func', "Attach", |
'closeWhenClicked', true |
) |
end |
if not detached.registration.positionFunc then |
Dewdrop:AddLine( |
'text', LOCK, |
'tooltipTitle', LOCK, |
'tooltipText', LOCK_DESC, |
'checked', detached:IsLocked(), |
'arg1', detached, |
'func', "Lock", |
'closeWhenClicked', not detached:IsLocked() |
) |
end |
Dewdrop:AddLine( |
'text', COLOR, |
'tooltipTitle', COLOR, |
'tooltipText', COLOR_DESC, |
'hasColorSwatch', true, |
'r', detached.r, |
'g', detached.g, |
'b', detached.b, |
'hasOpacity', true, |
'opacity', detached.transparency, |
'colorFunc', function(r, g, b, a) |
detached:SetColor(r, g, b) |
detached:SetTransparency(a) |
end |
) |
Dewdrop:AddLine( |
'text', SIZE, |
'tooltipTitle', SIZE, |
'tooltipText', SIZE_DESC, |
'hasArrow', true, |
'hasSlider', true, |
'sliderFunc', function(value) |
detached:SetFontSizePercent(value) |
end, |
'sliderMax', 2, |
'sliderMin', 0.5, |
'sliderStep', 0.05, |
'sliderIsPercent', true, |
'sliderValue', detached:GetFontSizePercent() |
) |
Dewdrop:AddLine( |
'text', CLOSE_MENU, |
'tooltipTitle', CLOSE_MENU, |
'tooltipText', CLOSE_MENU_DESC, |
'func', function() |
Dewdrop:Close() |
end |
) |
end |
end, |
'point', function() |
local x, y = detached:GetCenter() |
if x < GetScreenWidth() / 2 then |
if y < GetScreenHeight() / 2 then |
return "BOTTOMLEFT", "BOTTOMRIGHT" |
else |
return "TOPLEFT", "TOPRIGHT" |
end |
else |
if y < GetScreenHeight() / 2 then |
return "BOTTOMRIGHT", "BOTTOMLEFT" |
else |
return "TOPRIGHT", "TOPLEFT" |
end |
end |
end |
) |
end |
local scrollFrame = CreateFrame("ScrollFrame", detached:GetName() .. "ScrollFrame", detached) |
local scrollChild = CreateFrame("Frame", detached:GetName() .. "ScrollChild", scrollFrame) |
scrollFrame:SetFrameLevel(11) |
scrollFrame:SetScrollChild(scrollChild) |
scrollChild.tablet = detached |
detached.scrollFrame = scrollFrame |
detached.scrollChild = scrollChild |
scrollFrame:SetPoint("TOPLEFT", 5, -5) |
scrollFrame:SetPoint("BOTTOMRIGHT", -5, 5) |
scrollChild:SetWidth(1) |
scrollChild:SetHeight(1) |
local slider = CreateFrame("Slider", detached:GetName() .. "Slider", scrollFrame) |
detached.slider = slider |
slider:SetOrientation("VERTICAL") |
slider:SetMinMaxValues(0, 1) |
slider:SetValueStep(0.001) |
slider:SetValue(0) |
slider:SetWidth(8) |
slider:SetPoint("TOPRIGHT", 0, 0) |
slider:SetPoint("BOTTOMRIGHT", 0, 0) |
slider:SetBackdrop(new( |
'bgFile', "Interface\\Buttons\\UI-SliderBar-Background", |
'edgeFile', "Interface\\Buttons\\UI-SliderBar-Border", |
'tile', true, |
'edgeSize', 8, |
'tileSize', 8, |
'insets', new( |
'left', 3, |
'right', 3, |
'top', 3, |
'bottom', 3 |
) |
)) |
slider:SetThumbTexture("Interface\\Buttons\\UI-SliderBar-Button-Vertical") |
slider:SetScript("OnEnter", detached:GetScript("OnEnter")) |
slider:SetScript("OnLeave", detached:GetScript("OnLeave")) |
slider.tablet = detached |
slider:SetScript("OnValueChanged", Tablet20FrameSlider:GetScript("OnValueChanged")) |
NewLine(detached) |
detached:SetScript("OnMouseWheel", function(this, arg1) |
detached:Scroll(arg1 < 0) |
end) |
detached.SetTransparency = tooltip.SetTransparency |
detached.GetTransparency = tooltip.GetTransparency |
detached.SetColor = tooltip.SetColor |
detached.GetColor = tooltip.GetColor |
detached.SetFontSizePercent = tooltip.SetFontSizePercent |
detached.GetFontSizePercent = tooltip.GetFontSizePercent |
detached.SetOwner = tooltip.SetOwner |
detached.IsOwned = tooltip.IsOwned |
detached.ClearLines = tooltip.ClearLines |
detached.NumLines = tooltip.NumLines |
detached.__Hide = detached.Hide |
detached.__Show = detached.Show |
detached.Hide = tooltip.Hide |
detached.Show = tooltip.Show |
local old_IsShown = detached.IsShown |
function detached:IsShown() |
if self.tmpHidden then |
return true |
else |
return old_IsShown(self) |
end |
end |
detached.AddLine = tooltip.AddLine |
detached.Scroll = tooltip.Scroll |
function detached:IsLocked() |
return self.locked |
end |
function detached:Lock() |
self:EnableMouse(self.locked) |
self.locked = not self.locked |
self.detachedData.locked = self.locked or nil |
self:children() |
end |
function detached.Attach(detached) |
if not detached then |
self:error("Detached tooltip not given.") |
end |
if not detached.AddLine then |
self:error("detached argument not a Tooltip.") |
end |
if not detached.owner then |
self:error("Detached tooltip has no owner.") |
end |
if detached.notInUse then |
self:error("Detached tooltip not in use.") |
end |
detached.menu = nil |
detached.detachedData.detached = nil |
detached:SetOwner(nil) |
detached.notInUse = true |
end |
return AcquireDetachedFrame(self, registration, data, detachedData) |
end |
AcquireDetachedFrame = wrap(AcquireDetachedFrame, "AcquireDetachedFrame") |
function Tablet:Close(parent) |
if not parent then |
if tooltip and tooltip:IsShown() then |
tooltip:Hide() |
tooltip.registration.tooltip = nil |
tooltip.registration = nil |
tooltip.enteredFrame = false |
end |
return |
else |
self:argCheck(parent, 2, "table", "string") |
end |
local info = self.registry[parent] |
if not info then |
self:error("You cannot close a tablet with an unregistered parent frame.") |
end |
local data = info.data |
local detachedData = info.detachedData |
if detachedData and detachedData.detached then |
ReleaseDetachedFrame(self, data, detachedData) |
elseif tooltip.data == data then |
tooltip:Hide() |
if tooltip.registration then |
tooltip.registration.tooltip = nil |
tooltip.registration = nil |
end |
end |
tooltip.enteredFrame = false |
end |
Tablet.Close = wrap(Tablet.Close, "Tablet:Close") |
function Tablet:Open(fakeParent, parent) |
self:argCheck(fakeParent, 2, "table", "string") |
self:argCheck(parent, 3, "nil", "table", "string") |
if not parent then |
parent = fakeParent |
end |
local info = self.registry[parent] |
if not info then |
self:error("You cannot open a tablet with an unregistered parent frame.") |
end |
local detachedData = info.detachedData |
if detachedData then |
for _, detached in ipairs(detachedTooltips) do |
if not detached.notInUse and detached.detachedData == detachedData then |
return |
end |
end |
end |
local data = info.data |
local children = info.children |
if not children then |
return |
end |
local frame = AcquireFrame(self, info, data, detachedData) |
frame.clickable = info.clickable |
frame.menu = info.menu |
frame.runChildren = info.children |
frame.minWidth = info.minWidth |
if not frame.children or not frame.childrenVer or frame.childrenVer < MINOR_VERSION then |
frame.childrenVer = MINOR_VERSION |
function frame:children() |
if not self.preventRefresh and self:GetParent():IsShown() then |
Tablet.currentFrame = self |
Tablet.currentTabletData = TabletData:new(self) |
Tablet.currentTabletData.minWidth = self.minWidth |
self:ClearLines() |
if self.runChildren then |
self.runChildren() |
end |
Tablet.currentTabletData:Display(Tablet.currentFrame) |
self:Show(Tablet.currentTabletData) |
Tablet.currentTabletData:del() |
Tablet.currentTabletData = nil |
Tablet.currentFrame = nil |
end |
end |
end |
frame:SetOwner(fakeParent) |
frame:children() |
local point = info.point |
local relativePoint = info.relativePoint |
if type(point) == "function" then |
local b |
point, b = point(fakeParent) |
if b then |
relativePoint = b |
end |
end |
if type(relativePoint) == "function" then |
relativePoint = relativePoint(fakeParent) |
end |
if not point then |
point = "CENTER" |
end |
if not relativePoint then |
relativePoint = point |
end |
frame:ClearAllPoints() |
if type(parent) ~= "string" then |
frame:SetPoint(point, fakeParent, relativePoint) |
end |
local offsetx = 0 |
local offsety = 0 |
if frame:GetBottom() and frame:GetLeft() then |
if frame:GetRight() > GetScreenWidth() then |
offsetx = frame:GetRight() - GetScreenWidth() |
elseif frame:GetLeft() < 0 then |
offsetx = -frame:GetLeft() |
end |
local ratio = GetScreenWidth() / GetScreenHeight() |
if ratio >= 2.4 and frame:GetRight() > GetScreenWidth() / 2 and frame:GetLeft() < GetScreenWidth() / 2 then |
if frame:GetCenter() < GetScreenWidth() / 2 then |
offsetx = frame:GetRight() - GetScreenWidth() / 2 |
else |
offsetx = frame:GetLeft() - GetScreenWidth() / 2 |
end |
end |
if frame:GetBottom() < 0 then |
offsety = frame:GetBottom() |
elseif frame:GetTop() and frame:GetTop() > GetScreenHeight() then |
offsety = frame:GetTop() - GetScreenHeight() |
end |
if MainMenuBar:IsVisible() and frame:GetBottom() < MainMenuBar:GetTop() and offsety < frame:GetBottom() - MainMenuBar:GetTop() then |
offsety = frame:GetBottom() - MainMenuBar:GetTop() |
end |
if FuBar then |
local top = 0 |
if FuBar then |
for i = 1, FuBar:GetNumPanels() do |
local panel = FuBar:GetPanel(i) |
if panel:GetAttachPoint() == "BOTTOM" then |
if panel.frame:GetTop() and panel.frame:GetTop() > top then |
top = panel.frame:GetTop() |
break |
end |
end |
end |
end |
if frame:GetBottom() < top and offsety < frame:GetBottom() - top then |
offsety = frame:GetBottom() - top |
end |
local bottom = GetScreenHeight() |
if FuBar then |
for i = 1, FuBar:GetNumPanels() do |
local panel = FuBar:GetPanel(i) |
if panel:GetAttachPoint() == "TOP" then |
if panel.frame:GetBottom() and panel.frame:GetBottom() < bottom then |
bottom = panel.frame:GetBottom() |
break |
end |
end |
end |
end |
if frame:GetTop() > bottom and offsety < frame:GetTop() - bottom then |
offsety = frame:GetTop() - bottom |
end |
end |
end |
if type(fakeParent) ~= "string" then |
frame:SetPoint(point, fakeParent, relativePoint, -offsetx, -offsety) |
end |
if detachedData and (info.cantAttach or detachedData.detached) and frame == tooltip then |
detachedData.detached = false |
frame:Detach() |
end |
if (not detachedData or not detachedData.detached) and GetMouseFocus() == fakeParent then |
self.tooltip.enteredFrame = true |
end |
overFrame = type(fakeParent) == "table" and MouseIsOver(fakeParent) and fakeParent |
end |
Tablet.Open = wrap(Tablet.Open, "Tablet:Open") |
function Tablet:Register(parent, ...) |
self:argCheck(parent, 2, "table", "string") |
if self.registry[parent] then |
self:Unregister(parent) |
end |
local info |
local k1 = ... |
if type(k1) == "table" and k1[0] then |
if type(self.registry[k1]) ~= "table" then |
self:error("Other parent not registered") |
end |
info = copy(self.registry[k1]) |
local v1 = select(2, ...) |
if type(v1) == "function" then |
info.point = v1 |
info.relativePoint = nil |
end |
else |
info = new(...) |
end |
self.registry[parent] = info |
info.data = info.data or info.detachedData or {} |
info.detachedData = info.detachedData or info.data |
local data = info.data |
local detachedData = info.detachedData |
if not self.onceRegistered[parent] and type(parent) == "table" and type(parent.SetScript) == "function" and not info.dontHook then |
if not Dewdrop and AceLibrary:HasInstance("Dewdrop-2.0") then |
Dewdrop = AceLibrary("Dewdrop-2.0") |
end |
local script = parent:GetScript("OnEnter") |
parent:SetScript("OnEnter", function(...) |
if script then |
script(...) |
end |
if self.registry[parent] then |
if (not data or not detachedData.detached) and (Dewdrop and not Dewdrop:IsOpen(parent)) then |
self:Open(parent) |
end |
end |
end) |
if parent:HasScript("OnMouseDown") then |
local script = parent:GetScript("OnMouseDown") |
parent:SetScript("OnMouseDown", function(...) |
if script then |
script(...) |
end |
if self.registry[parent] and self.registry[parent].tooltip and self.registry[parent].tooltip == self.tooltip then |
self.tooltip:Hide() |
end |
end) |
end |
if parent:HasScript("OnMouseWheel") then |
local script = parent:GetScript("OnMouseWheel") |
parent:SetScript("OnMouseWheel", function(...) |
if script then |
script(...) |
end |
if self.registry[parent] and self.registry[parent].tooltip then |
self.registry[parent].tooltip:Scroll(arg1 < 0) |
end |
end) |
end |
end |
self.onceRegistered[parent] = true |
if GetMouseFocus() == parent then |
self:Open(parent) |
end |
end |
Tablet.Register = wrap(Tablet.Register, "Tablet:Register") |
function Tablet:Unregister(parent) |
self:argCheck(parent, 2, "table", "string") |
if not self.registry[parent] then |
self:error("You cannot unregister a parent frame if it has not been registered already.") |
end |
self.registry[parent] = nil |
end |
Tablet.Unregister = wrap(Tablet.Unregister, "Tablet:Unregister") |
function Tablet:IsRegistered(parent) |
self:argCheck(parent, 2, "table", "string") |
return self.registry[parent] and true |
end |
Tablet.IsRegistered = wrap(Tablet.IsRegistered, "Tablet:IsRegistered") |
local _id = 0 |
local addedCategory |
local depth = 0 |
local categoryPool = {} |
function CleanCategoryPool(self) |
for k,v in pairs(categoryPool) do |
del(v) |
categoryPool[k] = nil |
end |
_id = 0 |
end |
function Tablet:AddCategory(...) |
if not self.currentFrame then |
self:error("You must add categories in within a registration.") |
end |
local info = new(...) |
local cat = self.currentTabletData:AddCategory(info) |
info = del(info) |
return cat |
end |
Tablet.AddCategory = wrap(Tablet.AddCategory, "Tablet:AddCategory") |
function Tablet:SetHint(text) |
if not self.currentFrame then |
self:error("You must set hint within a registration.") |
end |
self.currentTabletData:SetHint(text) |
end |
Tablet.SetHint = wrap(Tablet.SetHint, "Tablet:SetHint") |
function Tablet:SetTitle(text) |
if not self.currentFrame then |
self:error("You must set title within a registration.") |
end |
self.currentTabletData:SetTitle(text) |
end |
Tablet.SetTitle = wrap(Tablet.SetTitle, "Tablet:SetTitle") |
function Tablet:SetTitleColor(r, g, b) |
if not self.currentFrame then |
self:error("You must set title color within a registration.") |
end |
self:argCheck(r, 2, "number") |
self:argCheck(g, 3, "number") |
self:argCheck(b, 4, "number") |
self.currentTabletData:SetTitleColor(r, g, b) |
end |
Tablet.SetTitleColor = wrap(Tablet.SetTitleColor, "Tablet:SetTitleColor") |
function Tablet:GetNormalFontSize() |
return normalSize |
end |
function Tablet:GetHeaderFontSize() |
return headerSize |
end |
function Tablet:GetNormalFontObject() |
return GameTooltipText |
end |
function Tablet:GetHeaderFontObject() |
return GameTooltipHeaderText |
end |
function Tablet:SetFontSizePercent(parent, percent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if info then |
if info.tooltip then |
info.tooltip:SetFontSizePercent(percent) |
else |
local data = info.data |
local detachedData = info.detachedData |
if detachedData.detached then |
detachedData.fontSizePercent = percent |
else |
data.fontSizePercent = percent |
end |
end |
elseif type(parent) == "table" then |
parent.fontSizePercent = percent |
else |
self:error("You cannot change font size with an unregistered parent frame.") |
end |
end |
Tablet.SetFontSizePercent = wrap(Tablet.SetFontSizePercent, "Tablet:SetFontSizePercent") |
function Tablet:GetFontSizePercent(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if info then |
local data = info.data |
local detachedData = info.detachedData |
if detachedData.detached then |
return detachedData.fontSizePercent or 1 |
else |
return data.fontSizePercent or 1 |
end |
elseif type(parent) == "table" then |
return parent.fontSizePercent or 1 |
else |
self:error("You cannot check font size with an unregistered parent frame.") |
end |
end |
Tablet.GetFontSizePercent = wrap(Tablet.GetFontSizePercent, "Tablet:GetFontSizePercent") |
function Tablet:SetTransparency(parent, percent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if info then |
if info.tooltip then |
info.tooltip:SetTransparency(percent) |
else |
local data = info.data |
local detachedData = info.detachedData |
if detachedData.detached then |
detachedData.transparency = percent |
elseif data then |
data.transparency = percent |
end |
end |
elseif type(parent) == "table" then |
parent.transparency = percent |
else |
self:error("You cannot change transparency with an unregistered parent frame.") |
end |
end |
Tablet.SetTransparency = wrap(Tablet.SetTransparency, "Tablet:SetTransparency") |
function Tablet:GetTransparency(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if info then |
local data = info.data |
local detachedData = info.detachedData |
if detachedData.detached then |
return detachedData.transparency or 0.75 |
else |
return data.transparency or 0.75 |
end |
elseif type(parent) == "table" then |
return parent.transparency or 0.75 |
else |
self:error("You cannot get transparency with an unregistered parent frame.") |
end |
end |
Tablet.GetTransparency = wrap(Tablet.GetTransparency, "Tablet:GetTransparency") |
function Tablet:SetColor(parent, r, g, b) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if info then |
if info.tooltip then |
info.tooltip:SetColor(r, g, b) |
else |
local data = info.data |
local detachedData = info.detachedData |
if detachedData.detached then |
detachedData.r = r |
detachedData.g = g |
detachedData.b = b |
else |
data.r = r |
data.g = g |
data.b = b |
end |
end |
elseif type(parent) == "table" then |
parent.r = r |
parent.g = g |
parent.b = b |
else |
self:error("You cannot change color with an unregistered parent frame.") |
end |
end |
Tablet.SetColor = wrap(Tablet.SetColor, "Tablet:SetColor") |
function Tablet:GetColor(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if info then |
local data = info.data |
local detachedData = info.detachedData |
if detachedData.detached then |
return detachedData.r or 0, detachedData.g or 0, detachedData.b or 0 |
else |
return data.r or 0, data.g or 0, data.b or 0 |
end |
elseif type(parent) == "table" then |
return parent.r or 0, parent.g or 0, parent.b or 0 |
else |
self:error("You must provide a registered parent frame to check color") |
end |
end |
Tablet.GetColor = wrap(Tablet.GetColor, "Tablet:GetColor") |
function Tablet:Detach(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if not info then |
self:error("You cannot detach tablet with an unregistered parent frame.") |
end |
if not info.detachedData then |
self:error("You cannot detach tablet without a data field.") |
end |
if info.tooltip and info.tooltip == tooltip then |
tooltip:Detach() |
else |
info.detachedData.detached = true |
local detached = AcquireDetachedFrame(self, info, info.data, info.detachedData) |
detached.menu = info.menu |
detached.runChildren = info.children |
detached.minWidth = info.minWidth |
if not detached.children or not detached.childrenVer or detached.childrenVer < MINOR_VERSION then |
detached.childrenVer = MINOR_VERSION |
function detached:children() |
if not self.preventRefresh then |
Tablet.currentFrame = self |
Tablet.currentTabletData = TabletData:new(self) |
Tablet.currentTabletData.minWidth = self.minWidth |
self:ClearLines() |
if self.runChildren then |
self.runChildren() |
end |
Tablet.currentTabletData:Display(Tablet.currentFrame) |
self:Show(Tablet.currentTabletData) |
Tablet.currentTabletData:del() |
Tablet.currentTabletData = nil |
Tablet.currentFrame = nil |
end |
end |
end |
detached:SetOwner(parent) |
detached:children() |
end |
end |
Tablet.Detach = wrap(Tablet.Detach, "Tablet:Detach") |
function Tablet:Attach(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if not info then |
self:error("You cannot detach tablet with an unregistered parent frame.") |
end |
if not info.detachedData then |
self:error("You cannot attach tablet without a data field.") |
end |
if info.tooltip and info.tooltip ~= tooltip then |
info.tooltip:Attach() |
else |
info.detachedData.detached = false |
end |
end |
Tablet.Attach = wrap(Tablet.Attach, "Tablet:Attach") |
function Tablet:IsAttached(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if not info then |
self:error("You cannot check tablet with an unregistered parent frame.") |
end |
return not info.detachedData or not info.detachedData.detached |
end |
Tablet.IsAttached = wrap(Tablet.IsAttached, "Tablet:IsAttached") |
function Tablet:Refresh(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if not info then |
self:error("You cannot refresh tablet with an unregistered parent frame.") |
end |
local tt = info.tooltip |
if tt and not tt.preventRefresh and tt:IsShown() then |
tt.updating = true |
tt:children() |
tt.updating = false |
end |
end |
Tablet.Refresh = wrap(Tablet.Refresh, "Tablet:Refresh") |
function Tablet:IsLocked(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if not info then |
self:error("You cannot check tablet with an unregistered parent frame.") |
end |
return info.detachedData and info.detachedData.locked |
end |
Tablet.IsLocked = wrap(Tablet.IsLocked, "Tablet:IsLocked") |
function Tablet:ToggleLocked(parent) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if not info then |
self:error("You cannot lock tablet with an unregistered parent frame.") |
end |
if info.tooltip and info.tooltip ~= tooltip then |
info.tooltip:Lock() |
elseif info.detachedData then |
info.detachedData.locked = info.detachedData.locked |
end |
end |
Tablet.ToggleLocked = wrap(Tablet.ToggleLocked, "Tablet:ToggleLocked") |
function Tablet:UpdateDetachedData(parent, detachedData) |
self:argCheck(parent, 2, "table", "string") |
local info = self.registry[parent] |
if not info then |
self:error("You cannot update tablet with an unregistered parent frame.") |
end |
self:argCheck(detachedData, 3, "table") |
if info.data == info.detachedData then |
info.data = detachedData |
end |
info.detachedData = detachedData |
if info.detachedData.detached then |
self:Detach(parent) |
elseif info.tooltip and info.tooltip.owner then |
self:Attach(parent) |
end |
end |
Tablet.UpdateDetachedData = wrap(Tablet.UpdateDetachedData, "Tablet:UpdateDetachedData") |
if DEBUG then |
function Tablet:ListProfileInfo() |
local duration, times, memories = GetProfileInfo() |
if not duration or not time or not memories then |
self:error("Problems") |
end |
local t = new() |
for method in pairs(memories) do |
t[#t+1] = method |
end |
table.sort(t, function(alpha, bravo) |
if memories[alpha] ~= memories[bravo] then |
return memories[alpha] < memories[bravo] |
elseif times[alpha] ~= times[bravo] then |
return times[alpha] < times[bravo] |
else |
return alpha < bravo |
end |
end) |
local memory = 0 |
local time = 0 |
for _,method in ipairs(t) do |
DEFAULT_CHAT_FRAME:AddMessage(format("%s || %.3f s || %.3f%% || %d KiB", method, times[method], times[method] / duration * 100, memories[method])) |
memory = memory + memories[method] |
time = time + times[method] |
end |
DEFAULT_CHAT_FRAME:AddMessage(format("%s || %.3f s || %.3f%% || %d KiB", "Total", time, time / duration * 100, memory)) |
del(t) |
end |
SLASH_TABLET1 = "/tablet" |
SLASH_TABLET2 = "/tabletlib" |
SlashCmdList["TABLET"] = function(msg) |
TabletLib:GetInstance(MAJOR_VERSION):ListProfileInfo() |
end |
end |
local function activate(self, oldLib, oldDeactivate) |
Tablet = self |
if oldLib then |
self.registry = oldLib.registry |
self.onceRegistered = oldLib.onceRegistered |
self.tooltip = oldLib.tooltip |
self.currentFrame = oldLib.currentFrame |
self.currentTabletData = oldLib.currentTabletData |
else |
self.registry = {} |
self.onceRegistered = {} |
end |
tooltip = self.tooltip |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
local function deactivate(self) |
StopCheckingAlt() |
end |
AceLibrary:Register(Tablet, MAJOR_VERSION, MINOR_VERSION, activate, deactivate) |
--[[ |
Name: AceConsole-2.0 |
Revision: $Rev: 30624 $ |
Developed by: The Ace Development Team (http://www.wowace.com/index.php/The_Ace_Development_Team) |
Inspired By: Ace 1.x by Turan (turan@gryphon.com) |
Website: http://www.wowace.com/ |
Documentation: http://www.wowace.com/index.php/AceConsole-2.0 |
SVN: http://svn.wowace.com/wowace/trunk/Ace2/AceConsole-2.0 |
Description: Mixin to allow for input/output capabilities. This uses the |
AceOptions data table format to determine input. |
http://www.wowace.com/index.php/AceOptions_data_table |
Dependencies: AceLibrary, AceOO-2.0 |
License: LGPL v2.1 |
]] |
local MAJOR_VERSION = "AceConsole-2.0" |
local MINOR_VERSION = "$Revision: 30624 $" |
if not AceLibrary then error(MAJOR_VERSION .. " requires AceLibrary.") end |
if not AceLibrary:IsNewVersion(MAJOR_VERSION, MINOR_VERSION) then return end |
if not AceLibrary:HasInstance("AceOO-2.0") then error(MAJOR_VERSION .. " requires AceOO-2.0.") end |
local MAP_ONOFF, USAGE, IS_CURRENTLY_SET_TO, IS_NOW_SET_TO, IS_NOT_A_VALID_OPTION_FOR, IS_NOT_A_VALID_VALUE_FOR, NO_OPTIONS_AVAILABLE, OPTION_HANDLER_NOT_FOUND, OPTION_HANDLER_NOT_VALID, OPTION_IS_DISABLED, KEYBINDING_USAGE, DEFAULT_CONFIRM_MESSAGE |
if GetLocale() == "deDE" then |
MAP_ONOFF = { [false] = "|cffff0000Aus|r", [true] = "|cff00ff00An|r" } |
USAGE = "Benutzung" |
IS_CURRENTLY_SET_TO = "|cffffff7f%s|r steht momentan auf |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOW_SET_TO = "|cffffff7f%s|r ist nun auf |cffffff7f[|r%s|cffffff7f]|r gesetzt" |
IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] ist keine g\195\188ltige Option f\195\188r |cffffff7f%s|r" |
IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] ist kein g\195\188ltiger Wert f\195\188r |cffffff7f%s|r" |
NO_OPTIONS_AVAILABLE = "Keine Optionen verfügbar" |
OPTION_HANDLER_NOT_FOUND = "Optionen handler |cffffff7f%q|r nicht gefunden." |
OPTION_HANDLER_NOT_VALID = "Optionen handler nicht g\195\188ltig." |
OPTION_IS_DISABLED = "Option |cffffff7f%s|r deaktiviert." |
KEYBINDING_USAGE = "<ALT-CTRL-SHIFT-KEY>" -- fix |
DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" -- fix |
elseif GetLocale() == "frFR" then |
MAP_ONOFF = { [false] = "|cffff0000Inactif|r", [true] = "|cff00ff00Actif|r" } |
USAGE = "Utilisation" |
IS_CURRENTLY_SET_TO = "|cffffff7f%s|r est actuellement positionn\195\169 sur |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOW_SET_TO = "|cffffff7f%s|r est maintenant positionn\195\169 sur |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] n'est pas une option valide pour |cffffff7f%s|r" |
IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] n'est pas une valeur valide pour |cffffff7f%s|r" |
NO_OPTIONS_AVAILABLE = "Pas d'options disponibles" |
OPTION_HANDLER_NOT_FOUND = "Le gestionnaire d'option |cffffff7f%q|r n'a pas \195\169t\195\169 trouv\195\169." |
OPTION_HANDLER_NOT_VALID = "Le gestionnaire d'option n'est pas valide." |
OPTION_IS_DISABLED = "L'option |cffffff7f%s|r est d\195\169sactiv\195\169e." |
KEYBINDING_USAGE = "<ALT-CTRL-SHIFT-KEY>" -- fix |
DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" -- fix |
elseif GetLocale() == "koKR" then |
MAP_ONOFF = { [false] = "|cffff0000ë|r", [true] = "|cff00ff00켬|r" } |
USAGE = "ì¬ì©ë²" |
IS_CURRENTLY_SET_TO = "|cffffff7f%s|r|1ì;ë; íì¬ ìíë |cffffff7f[|r%s|cffffff7f]|r|1ì¼ë¡;ë¡; ì¤ì ëì´ ììµëë¤" |
IS_NOW_SET_TO = "|cffffff7f%s|r|1ì;를; |cffffff7f[|r%s|cffffff7f]|r ìíë¡ ë³ê²½í©ëë¤" |
IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r]|1ì;ë; |cffffff7f%s|rìì ì¬ì©ë¶ê°ë¥í ì¤ì ì ëë¤" |
IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r]|1ì;ë; |cffffff7f%s|rìì ì¬ì©ë¶ê°ë¥í ì¤ì ê°ì ëë¤" |
NO_OPTIONS_AVAILABLE = "ê°ë¥í ì¤ì ì´ ììµëë¤" |
OPTION_HANDLER_NOT_FOUND = "ì¤ì ì¡°ì ê°ì¸ |cffffff7f%q|r|1ì;를; ì°¾ì§ ëª»íìµëë¤." |
OPTION_HANDLER_NOT_VALID = "ì¤ì ì¡°ì ê°ì´ ì¬ë°ë¥´ì§ ììµëë¤." |
OPTION_IS_DISABLED = "|cffffff7f%s|r ì¤ì ì ì¬ì©í ì ììµëë¤." |
KEYBINDING_USAGE = "<ALT-CTRL-SHIFT-KEY>" -- fix |
DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" -- fix |
elseif GetLocale() == "zhCN" then |
MAP_ONOFF = { [false] = "|cffff0000\229\133\179\233\151\173|r", [true] = "|cff00ff00\229\188\128\229\144\175|r" } |
USAGE = "\231\148\168\230\179\149" |
IS_CURRENTLY_SET_TO = "|cffffff7f%s|r \229\189\147\229\137\141\232\162\171\232\174\190\231\189\174 |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOW_SET_TO = "|cffffff7f%s|r \231\142\176\229\156\168\232\162\171\232\174\190\231\189\174\228\184\186 |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] \228\184\141\230\152\175\228\184\128\228\184\170\230\156\137\230\149\136\231\154\132\233\128\137\233\161\185 \228\184\186 |cffffff7f%s|r" |
IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] \228\184\141\230\152\175\228\184\128\228\184\170\230\156\137\230\149\136\229\128\188 \228\184\186 |cffffff7f%s|r" |
NO_OPTIONS_AVAILABLE = "\230\178\161\230\156\137\233\128\137\233\161\185\229\143\175\231\148\168" |
OPTION_HANDLER_NOT_FOUND = "\233\128\137\233\161\185\229\164\132\231\144\134\231\168\139\229\186\143 |cffffff7f%q|r \230\178\161\230\159\165\230\137\190." |
OPTION_HANDLER_NOT_VALID = "\233\128\137\233\161\185\229\164\132\231\144\134\231\168\139\229\186\143 \230\151\160\230\149\136." |
OPTION_IS_DISABLED = "\233\128\137\233\161\185 |cffffff7f%s|r \228\184\141\229\174\140\230\149\180." |
KEYBINDING_USAGE = "<ALT-CTRL-SHIFT-KEY>" -- fix |
DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" -- fix |
elseif GetLocale() == "zhTW" then |
MAP_ONOFF = { [false] = "|cffff0000éé|r", [true] = "|cff00ff00éå|r" } |
USAGE = "ç¨æ³" |
IS_CURRENTLY_SET_TO = "|cffffff7f%s|r ç®åçè¨å®çº |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOW_SET_TO = "|cffffff7f%s|r ç¾å¨è¢«è¨å®çº |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] æ¯ä¸åä¸ç¬¦åè¦å®çé¸é ï¼å° |cffffff7f%s|r" |
IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] æ¯ä¸åä¸ç¬¦åè¦å®çæ¸å¼ï¼å° |cffffff7f%s|r" |
NO_OPTIONS_AVAILABLE = "æ²æå¯ç¨çé¸é èçå¨ã" |
OPTION_HANDLER_NOT_FOUND = "æ¾ä¸å° |cffffff7f%q|r é¸é èçå¨ã" |
OPTION_HANDLER_NOT_VALID = "é¸é èçå¨ä¸ç¬¦åè¦å®ã" |
OPTION_IS_DISABLED = "|cffffff7f%s|r 已被åç¨ã" |
KEYBINDING_USAGE = "<ALT-CTRL-SHIFT-KEY>" -- fix |
DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" -- fix |
elseif GetLocale() == "esES" then |
MAP_ONOFF = { [false] = "|cffff0000Desactivado|r", [true] = "|cff00ff00Activado|r" } |
USAGE = "Uso" |
IS_CURRENTLY_SET_TO = "|cffffff7f%s|r est\195\161 establecido actualmente a |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOW_SET_TO = "|cffffff7f%s|r se ha establecido a |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] no es una opci\195\179n valida para |cffffff7f%s|r" |
IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] no es un valor v\195\161lido para |cffffff7f%s|r" |
NO_OPTIONS_AVAILABLE = "No hay opciones disponibles" |
OPTION_HANDLER_NOT_FOUND = "Gestor de opciones |cffffff7f%q|r no encontrado." |
OPTION_HANDLER_NOT_VALID = "Gestor de opciones no v\195\161lido." |
OPTION_IS_DISABLED = "La opci\195\179n |cffffff7f%s|r est\195\161 desactivada." |
KEYBINDING_USAGE = "<ALT-CTRL-SHIFT-KEY>" |
DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" -- fix |
else -- enUS |
MAP_ONOFF = { [false] = "|cffff0000Off|r", [true] = "|cff00ff00On|r" } |
USAGE = "Usage" |
IS_CURRENTLY_SET_TO = "|cffffff7f%s|r is currently set to |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOW_SET_TO = "|cffffff7f%s|r is now set to |cffffff7f[|r%s|cffffff7f]|r" |
IS_NOT_A_VALID_OPTION_FOR = "[|cffffff7f%s|r] is not a valid option for |cffffff7f%s|r" |
IS_NOT_A_VALID_VALUE_FOR = "[|cffffff7f%s|r] is not a valid value for |cffffff7f%s|r" |
NO_OPTIONS_AVAILABLE = "No options available" |
OPTION_HANDLER_NOT_FOUND = "Option handler |cffffff7f%q|r not found." |
OPTION_HANDLER_NOT_VALID = "Option handler not valid." |
OPTION_IS_DISABLED = "Option |cffffff7f%s|r is disabled." |
KEYBINDING_USAGE = "<ALT-CTRL-SHIFT-KEY>" |
DEFAULT_CONFIRM_MESSAGE = "Are you sure you want to perform `%s'?" |
end |
local NONE = NONE or "None" |
local AceOO = AceLibrary("AceOO-2.0") |
local AceEvent |
local AceConsole = AceOO.Mixin { "Print", "PrintComma", "PrintLiteral", "CustomPrint", "RegisterChatCommand" } |
local Dewdrop |
local _G = getfenv(0) |
local function print(text, name, r, g, b, frame, delay) |
if not text or text:len() == 0 then |
text = " " |
end |
if not name or name == AceConsole then |
else |
text = "|cffffff78" .. tostring(name) .. ":|r " .. text |
end |
local last_color |
for t in text:gmatch("[^\n]+") do |
(frame or DEFAULT_CHAT_FRAME):AddMessage(last_color and "|cff" .. last_color .. t or t, r, g, b, nil, delay or 5) |
if not last_color or t:find("|r") or t:find("|c") then |
last_color = t:match(".*|c[fF][fF](%x%x%x%x%x%x)[^|]-$") |
end |
end |
return text |
end |
local real_tostring = tostring |
local function tostring(t) |
if type(t) == "table" then |
if type(rawget(t, 0)) == "userdata" and type(t.GetObjectType) == "function" then |
return ("<%s:%s>"):format(t:GetObjectType(), t:GetName() or "(anon)") |
end |
end |
return real_tostring(t) |
end |
local getkeystring |
local function isList(t) |
local n = #t |
for k,v in pairs(t) do |
if type(k) ~= "number" then |
return false |
elseif k < 1 or k > n then |
return false |
end |
end |
return true |
end |
local findGlobal = setmetatable({}, {__index=function(self, t) |
for k,v in pairs(_G) do |
if v == t then |
k = tostring(k) |
self[v] = k |
return k |
end |
end |
self[t] = false |
return false |
end}) |
local recurse = {} |
local timeToEnd |
local GetTime = GetTime |
local type = type |
local new, del |
do |
local cache = setmetatable({},{__mode='k'}) |
function new() |
local t = next(cache) |
if t then |
cache[t] = nil |
return t |
else |
return {} |
end |
end |
function del(t) |
for k in pairs(t) do |
t[k] = nil |
end |
cache[t] = true |
return nil |
end |
end |
local function ignoreCaseSort(alpha, bravo) |
if not alpha or not bravo then |
return false |
end |
return tostring(alpha):lower() < tostring(bravo):lower() |
end |
local function specialSort(alpha, bravo) |
if alpha == nil or bravo == nil then |
return false |
end |
local type_alpha, type_bravo = type(alpha), type(bravo) |
if type_alpha ~= type_bravo then |
return type_alpha < type_bravo |
end |
if type_alpha == "string" then |
return alpha:lower() < bravo:lower() |
elseif type_alpha == "number" then |
return alpha < bravo |
elseif type_alpha == "table" then |
return #alpha < #bravo |
elseif type_alpha == "boolean" then |
return not alpha |
else |
return false |
end |
end |
local function escapeChar(c) |
return ("\\%03d"):format(c:byte()) |
end |
local function literal_tostring_prime(t, depth) |
if type(t) == "string" then |
return ("|cff00ff00%q|r"):format((t:gsub("|", "||"))):gsub("[\001-\012\014-\031\128-\255]", escapeChar) |
elseif type(t) == "table" then |
if t == _G then |
return "|cffffea00_G|r" |
end |
if type(rawget(t, 0)) == "userdata" and type(t.GetObjectType) == "function" then |
return ("|cffffea00<%s:%s>|r"):format(t:GetObjectType(), t:GetName() or "(anon)") |
end |
if recurse[t] then |
local g = findGlobal[t] |
if g then |
return ("|cff9f9f9f<Recursion _G[%q]>|r"):format(g) |
else |
return ("|cff9f9f9f<Recursion %s>|r"):format(real_tostring(t):gsub("|", "||")) |
end |
elseif GetTime() > timeToEnd then |
local g = findGlobal[t] |
if g then |
return ("|cff9f9f9f<Timeout _G[%q]>|r"):format(g) |
else |
return ("|cff9f9f9f<Timeout %s>|r"):format(real_tostring(t):gsub("|", "||")) |
end |
elseif depth >= 2 then |
local g = findGlobal[t] |
if g then |
return ("|cff9f9f9f<_G[%q]>|r"):format(g) |
else |
return ("|cff9f9f9f<%s>|r"):format(real_tostring(t):gsub("|", "||")) |
end |
end |
recurse[t] = true |
if next(t) == nil then |
return "{}" |
elseif next(t, (next(t))) == nil then |
local k, v = next(t) |
if k == 1 then |
return "{ " .. literal_tostring_prime(v, depth+1) .. " }" |
else |
return "{ " .. getkeystring(k, depth+1) .. " = " .. literal_tostring_prime(v, depth+1) .. " }" |
end |
end |
local s |
local g = findGlobal[t] |
if g then |
s = ("{ |cff9f9f9f-- _G[%q]|r\n"):format(g) |
else |
s = "{ |cff9f9f9f-- " .. real_tostring(t):gsub("|", "||") .. "|r\n" |
end |
if isList(t) then |
for i = 1, #t do |
s = s .. (" "):rep(depth+1) .. literal_tostring_prime(t[i], depth+1) .. (i == #t and "\n" or ",\n") |
end |
else |
local tmp = new() |
for k in pairs(t) do |
tmp[#tmp+1] = k |
end |
table.sort(tmp, specialSort) |
for i,k in ipairs(tmp) do |
tmp[i] = nil |
local v = t[k] |
s = s .. (" "):rep(depth+1) .. getkeystring(k, depth+1) .. " = " .. literal_tostring_prime(v, depth+1) .. (tmp[i+1] == nil and "\n" or ",\n") |
end |
tmp = del(tmp) |
end |
if g then |
s = s .. (" "):rep(depth) .. string.format("} |cff9f9f9f-- _G[%q]|r", g) |
else |
s = s .. (" "):rep(depth) .. "} |cff9f9f9f-- " .. real_tostring(t):gsub("|", "||") |
end |
return s |
end |
if type(t) == "number" then |
return "|cffff7fff" .. real_tostring(t) .. "|r" |
elseif type(t) == "boolean" then |
return "|cffff9100" .. real_tostring(t) .. "|r" |
elseif t == nil then |
return "|cffff7f7f" .. real_tostring(t) .. "|r" |
else |
return "|cffffea00" .. real_tostring(t) .. "|r" |
end |
end |
function getkeystring(t, depth) |
if type(t) == "string" then |
if t:find("^[%a_][%a%d_]*$") then |
return "|cff7fd5ff" .. t .. "|r" |
end |
end |
return "[" .. literal_tostring_prime(t, depth) .. "]" |
end |
local get_stringed_args |
do |
local function g(value, ...) |
if select('#', ...) == 0 then |
return literal_tostring_prime(value, 1) |
end |
return literal_tostring_prime(value, 1) .. ", " .. g(...) |
end |
local function f(success, ...) |
if not success then |
return |
end |
return g(...) |
end |
function get_stringed_args(func, ...) |
return f(pcall(func, ...)) |
end |
end |
local function literal_tostring_frame(t) |
local s = ("|cffffea00<%s:%s|r\n"):format(t:GetObjectType(), t:GetName() or "(anon)") |
local __index = getmetatable(t).__index |
local tmp, tmp2, tmp3 = new(), new(), new() |
for k in pairs(t) do |
if k ~= 0 then |
tmp3[k] = true |
tmp2[k] = true |
end |
end |
for k in pairs(__index) do |
tmp2[k] = true |
end |
for k in pairs(tmp2) do |
tmp[#tmp+1] = k |
tmp2[k] = nil |
end |
table.sort(tmp, ignoreCaseSort) |
local first = true |
for i,k in ipairs(tmp) do |
local v = t[k] |
local good = true |
if k == "GetPoint" then |
for i = 1, t:GetNumPoints() do |
if not first then |
s = s .. ",\n" |
else |
first = false |
end |
s = s .. " " .. getkeystring(k, 1) .. "(" .. literal_tostring_prime(i, 1) .. ") => " .. get_stringed_args(v, t, i) |
end |
elseif type(v) == "function" and type(k) == "string" and (k:find("^Is") or k:find("^Get") or k:find("^Can")) then |
local q = get_stringed_args(v, t) |
if q then |
if not first then |
s = s .. ",\n" |
else |
first = false |
end |
s = s .. " " .. getkeystring(k, 1) .. "() => " .. q |
end |
elseif type(v) ~= "function" or (type(v) == "function" and type(k) == "string" and tmp3[k]) then |
if not first then |
s = s .. ",\n" |
else |
first = false |
end |
s = s .. " " .. getkeystring(k, 1) .. " = " .. literal_tostring_prime(v, 1) |
else |
good = false |
end |
end |
tmp, tmp2, tmp3 = del(tmp), del(tmp2), del(tmp3) |
s = s .. "\n|cffffea00>|r" |
return s |
end |
local function literal_tostring(t, only) |
timeToEnd = GetTime() + 0.2 |
local s |
if only and type(t) == "table" and type(rawget(t, 0)) == "userdata" and type(t.GetObjectType) == "function" then |
s = literal_tostring_frame(t) |
else |
s = literal_tostring_prime(t, 0) |
end |
for k,v in pairs(recurse) do |
recurse[k] = nil |
end |
for k,v in pairs(findGlobal) do |
findGlobal[k] = nil |
end |
return s |
end |
local function tostring_args(a1, ...) |
if select('#', ...) < 1 then |
return tostring(a1) |
end |
return tostring(a1), tostring_args(...) |
end |
local function literal_tostring_args(a1, ...) |
if select('#', ...) < 1 then |
return literal_tostring(a1) |
end |
return literal_tostring(a1), literal_tostring_args(...) |
end |
function AceConsole:CustomPrint(r, g, b, frame, delay, connector, a1, ...) |
if connector == true then |
local s |
if select('#', ...) == 0 then |
s = literal_tostring(a1, true) |
else |
s = (", "):join(literal_tostring_args(a1, ...)) |
end |
return print(s, self, r, g, b, frame or self.printFrame, delay) |
elseif tostring(a1):find("%%") and select('#', ...) >= 1 then |
local success, text = pcall(string.format, tostring_args(a1, ...)) |
if success then |
return print(text, self, r, g, b, frame or self.printFrame, delay) |
end |
end |
return print((connector or " "):join(tostring_args(a1, ...)), self, r, g, b, frame or self.printFrame, delay) |
end |
function AceConsole:Print(...) |
return AceConsole.CustomPrint(self, nil, nil, nil, nil, nil, " ", ...) |
end |
function AceConsole:PrintComma(...) |
return AceConsole.CustomPrint(self, nil, nil, nil, nil, nil, ", ", ...) |
end |
function AceConsole:PrintLiteral(...) |
return AceConsole.CustomPrint(self, nil, nil, nil, nil, nil, true, ...) |
end |
local work |
local argwork |
local function findTableLevel(self, options, chat, text, index, passTable) |
if not index then |
index = 1 |
if work then |
for k,v in pairs(work) do |
work[k] = nil |
end |
for k,v in pairs(argwork) do |
argwork[k] = nil |
end |
else |
work = {} |
argwork = {} |
end |
local len = text:len() |
local count |
repeat |
text, count = text:gsub("(|cff%x%x%x%x%x%x|Hitem:%d-:%d-:%d-:%d-|h%[[^%]]-) (.-%]|h|r)", "%1\001%2") |
until count == 0 |
text = text:gsub("(%]|h|r)(|cff%x%x%x%x%x%x|Hitem:%d-:%d-:%d-:%d-|h%[)", "%1 %2") |
for token in text:gmatch("([^%s]+)") do |
local token = token |
local num = tonumber(token) |
if num then |
token = num |
else |
token = token:gsub("\001", " ") |
end |
table.insert(work, token) |
end |
end |
local path = chat |
for i = 1, index - 1 do |
path = path .. " " .. tostring(work[i]) |
end |
if type(options.args) == "table" then |
local disabled, hidden = options.disabled, options.cmdHidden or options.hidden |
if hidden then |
if type(hidden) == "function" then |
hidden = hidden() |
elseif type(hidden) == "string" then |
local handler = options.handler or self |
local f = hidden |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
hidden = handler[f](handler) |
if neg then |
hidden = not hidden |
end |
end |
end |
if hidden then |
disabled = true |
elseif disabled then |
if type(disabled) == "function" then |
disabled = disabled() |
elseif type(disabled) == "string" then |
local handler = options.handler or self |
local f = disabled |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
disabled = handler[f](handler) |
if neg then |
disabled = not disabled |
end |
end |
end |
if not disabled then |
local next = work[index] and tostring(work[index]):lower() |
local next_num = tonumber(next) |
if next then |
for k,v in pairs(options.args) do |
local good = false |
if tostring(k):gsub("%s", "-"):lower() == next then |
good = true |
elseif k == next_num then |
good = true |
elseif type(v.aliases) == "table" then |
for _,alias in ipairs(v.aliases) do |
if alias:gsub("%s", "-"):lower() == next then |
good = true |
break |
end |
end |
elseif type(v.aliases) == "string" and v.aliases:gsub("%s", "-"):lower() == next then |
good = true |
end |
if good then |
return findTableLevel(options.handler or self, v, chat, text, index + 1, options.pass and options or nil) |
end |
end |
end |
end |
end |
for i = index, #work do |
table.insert(argwork, work[i]) |
end |
return options, path, argwork, options.handler or self, passTable, passTable and work[index - 1] |
end |
local function validateOptionsMethods(self, options, position) |
if type(options) ~= "table" then |
return "Options must be a table.", position |
end |
self = options.handler or self |
if options.type == "execute" then |
if options.func and type(options.func) ~= "string" and type(options.func) ~= "function" then |
return "func must be a string or function", position |
end |
if options.func and type(options.func) == "string" and type(self[options.func]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(options.func)), position |
end |
else |
if options.get then |
if type(options.get) ~= "string" and type(options.get) ~= "function" then |
return "get must be a string or function", position |
end |
if type(options.get) == "string" then |
local f = options.get |
if options.type == "toggle" then |
f = f:match("^~(.-)$") or f |
end |
if type(self[f]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(f)), position |
end |
end |
end |
if options.set then |
if type(options.set) ~= "string" and type(options.set) ~= "function" then |
return "set must be a string or function", position |
end |
if type(options.set) == "string" and type(self[options.set]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(options.set)), position |
end |
end |
if options.validate and type(options.validate) ~= "table" and options.validate ~= "keybinding" then |
if type(options.validate) ~= "string" and type(options.validate) ~= "function" then |
return "validate must be a string or function", position |
end |
if type(options.validate) == "string" and type(self[options.validate]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(options.validate)), position |
end |
end |
end |
if options.disabled and type(options.disabled) == "string" then |
local f = options.disabled |
f = f:match("^~(.-)$") or f |
if type(self[f]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(f)), position |
end |
end |
if options.cmdHidden and type(options.cmdHidden) == "string" then |
local f = options.cmdHidden |
f = f:match("^~(.-)$") or f |
if type(self[f]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(f)), position |
end |
end |
if options.guiHidden and type(options.guiHidden) == "string" then |
local f = options.guiHidden |
f = f:match("^~(.-)$") or f |
if type(self[f]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(f)), position |
end |
end |
if options.hidden and type(options.hidden) == "string" then |
local f = options.hidden |
f = f:match("^~(.-)$") or f |
if type(self[f]) ~= "function" then |
return ("%q is not a proper function"):format(tostring(f)), position |
end |
end |
if options.type == "group" and type(options.args) == "table" then |
for k,v in pairs(options.args) do |
if type(v) == "table" then |
local newposition |
if position then |
newposition = position .. ".args." .. k |
else |
newposition = "args." .. k |
end |
local err, pos = validateOptionsMethods(self, v, newposition) |
if err then |
return err, pos |
end |
end |
end |
end |
end |
local function validateOptions(options, position, baseOptions, fromPass) |
if not baseOptions then |
baseOptions = options |
end |
if type(options) ~= "table" then |
return "Options must be a table.", position |
end |
local kind = options.type |
if type(kind) ~= "string" then |
return '"type" must be a string.', position |
elseif kind ~= "group" and kind ~= "range" and kind ~= "text" and kind ~= "execute" and kind ~= "toggle" and kind ~= "color" and kind ~= "header" then |
return '"type" must either be "range", "text", "group", "toggle", "execute", "color", or "header".', position |
end |
if options.aliases then |
if type(options.aliases) ~= "table" and type(options.aliases) ~= "string" then |
return '"alias" must be a table or string', position |
end |
end |
if not fromPass then |
if kind == "execute" then |
if type(options.func) ~= "string" and type(options.func) ~= "function" then |
return '"func" must be a string or function', position |
end |
elseif kind == "range" or kind == "text" or kind == "toggle" then |
if type(options.set) ~= "string" and type(options.set) ~= "function" then |
return '"set" must be a string or function', position |
end |
if kind == "text" and options.get == false then |
elseif type(options.get) ~= "string" and type(options.get) ~= "function" then |
return '"get" must be a string or function', position |
end |
elseif kind == "group" and options.pass then |
if options.pass ~= true then |
return '"pass" must be either nil, true, or false', position |
end |
if not options.func then |
if type(options.set) ~= "string" and type(options.set) ~= "function" then |
return '"set" must be a string or function', position |
end |
if type(options.get) ~= "string" and type(options.get) ~= "function" then |
return '"get" must be a string or function', position |
end |
elseif type(options.func) ~= "string" and type(options.func) ~= "function" then |
return '"func" must be a string or function', position |
end |
end |
else |
if kind == "group" then |
return 'cannot have "type" = "group" as a subgroup of a passing group', position |
end |
end |
if options ~= baseOptions then |
if kind == "header" then |
elseif type(options.desc) ~= "string" then |
return '"desc" must be a string', position |
elseif options.desc:len() == 0 then |
return '"desc" cannot be a 0-length string', position |
end |
end |
if options ~= baseOptions or kind == "range" or kind == "text" or kind == "toggle" or kind == "color" then |
if options.type == "header" and not options.cmdName and not options.name then |
elseif options.cmdName then |
if type(options.cmdName) ~= "string" then |
return '"cmdName" must be a string or nil', position |
elseif options.cmdName:len() == 0 then |
return '"cmdName" cannot be a 0-length string', position |
end |
if type(options.guiName) ~= "string" then |
if not options.guiNameIsMap then |
return '"guiName" must be a string or nil', position |
end |
elseif options.guiName:len() == 0 then |
return '"guiName" cannot be a 0-length string', position |
end |
else |
if type(options.name) ~= "string" then |
return '"name" must be a string', position |
elseif options.name:len() == 0 then |
return '"name" cannot be a 0-length string', position |
end |
end |
end |
if options.guiNameIsMap then |
if type(options.guiNameIsMap) ~= "boolean" then |
return '"guiNameIsMap" must be a boolean or nil', position |
elseif options.type ~= "toggle" then |
return 'if "guiNameIsMap" is true, then "type" must be set to \'toggle\'', position |
elseif type(options.map) ~= "table" then |
return '"map" must be a table', position |
end |
end |
if options.message and type(options.message) ~= "string" then |
return '"message" must be a string or nil', position |
end |
if options.error and type(options.error) ~= "string" then |
return '"error" must be a string or nil', position |
end |
if options.current and type(options.current) ~= "string" then |
return '"current" must be a string or nil', position |
end |
if options.order then |
if type(options.order) ~= "number" or (-1 < options.order and options.order < 0.999) then |
return '"order" must be a non-zero number or nil', position |
end |
end |
if options.disabled then |
if type(options.disabled) ~= "function" and type(options.disabled) ~= "string" and options.disabled ~= true then |
return '"disabled" must be a function, string, or boolean', position |
end |
end |
if options.cmdHidden then |
if type(options.cmdHidden) ~= "function" and type(options.cmdHidden) ~= "string" and options.cmdHidden ~= true then |
return '"cmdHidden" must be a function, string, or boolean', position |
end |
end |
if options.guiHidden then |
if type(options.guiHidden) ~= "function" and type(options.guiHidden) ~= "string" and options.guiHidden ~= true then |
return '"guiHidden" must be a function, string, or boolean', position |
end |
end |
if options.hidden then |
if type(options.hidden) ~= "function" and type(options.hidden) ~= "string" and options.hidden ~= true then |
return '"hidden" must be a function, string, or boolean', position |
end |
end |
if kind == "text" then |
if type(options.validate) == "table" then |
local t = options.validate |
local iTable = nil |
for k,v in pairs(t) do |
if type(k) == "number" then |
if iTable == nil then |
iTable = true |
elseif not iTable then |
return '"validate" must either have all keys be indexed numbers or strings', position |
elseif k < 1 or k > #t then |
return '"validate" numeric keys must be indexed properly. >= 1 and <= #validate', position |
end |
else |
if iTable == nil then |
iTable = false |
elseif iTable then |
return '"validate" must either have all keys be indexed numbers or strings', position |
end |
end |
if type(v) ~= "string" then |
return '"validate" values must all be strings', position |
end |
end |
if options.multiToggle and options.multiToggle ~= true then |
return '"multiToggle" must be a boolean or nil if "validate" is a table', position |
end |
elseif options.validate == "keybinding" then |
else |
if type(options.usage) ~= "string" then |
return '"usage" must be a string', position |
elseif options.validate and type(options.validate) ~= "string" and type(options.validate) ~= "function" then |
return '"validate" must be a string, function, or table', position |
end |
end |
if options.multiToggle and type(options.validate) ~= "table" then |
return '"validate" must be a table if "multiToggle" is true', position |
end |
elseif kind == "range" then |
if options.min or options.max then |
if type(options.min) ~= "number" then |
return '"min" must be a number', position |
elseif type(options.max) ~= "number" then |
return '"max" must be a number', position |
elseif options.min >= options.max then |
return '"min" must be less than "max"', position |
end |
end |
if options.step then |
if type(options.step) ~= "number" then |
return '"step" must be a number', position |
elseif options.step < 0 then |
return '"step" must be nonnegative', position |
end |
end |
if options.isPercent and options.isPercent ~= true then |
return '"isPercent" must either be nil, true, or false', position |
end |
elseif kind == "toggle" then |
if options.map then |
if type(options.map) ~= "table" then |
return '"map" must be a table', position |
elseif type(options.map[true]) ~= "string" then |
return '"map[true]" must be a string', position |
elseif type(options.map[false]) ~= "string" then |
return '"map[false]" must be a string', position |
end |
end |
elseif kind == "color" then |
if options.hasAlpha and options.hasAlpha ~= true then |
return '"hasAlpha" must be nil, true, or false', position |
end |
elseif kind == "group" then |
if options.pass and options.pass ~= true then |
return '"pass" must be nil, true, or false', position |
end |
if type(options.args) ~= "table" then |
return '"args" must be a table', position |
end |
for k,v in pairs(options.args) do |
if type(k) ~= "number" then |
if type(k) ~= "string" then |
return '"args" keys must be strings or numbers', position |
elseif k:len() == 0 then |
return '"args" keys must not be 0-length strings.', position |
end |
end |
if type(v) ~= "table" then |
if type(k) == "number" then |
return '"args" values must be tables', position and position .. "[" .. k .. "]" or "[" .. k .. "]" |
else |
return '"args" values must be tables', position and position .. "." .. k or k |
end |
end |
local newposition |
if type(k) == "number" then |
newposition = position and position .. ".args[" .. k .. "]" or "args[" .. k .. "]" |
else |
newposition = position and position .. ".args." .. k or "args." .. k |
end |
local err, pos = validateOptions(v, newposition, baseOptions, options.pass) |
if err then |
return err, pos |
end |
end |
elseif kind == "execute" then |
if type(options.confirm) ~= "string" and type(options.confirm) ~= "boolean" and type(options.confirm) ~= "nil" then |
return '"confirm" must be a string, boolean, or nil', position |
end |
end |
end |
local colorTable |
local colorFunc |
local colorCancelFunc |
local function keybindingValidateFunc(text) |
if text == nil or text == "NONE" then |
return nil |
end |
text = text:upper() |
local shift, ctrl, alt |
local modifier |
while true do |
if text == "-" then |
break |
end |
modifier, text = strsplit('-', text, 2) |
if text then |
if modifier ~= "SHIFT" and modifier ~= "CTRL" and modifier ~= "ALT" then |
return false |
end |
if modifier == "SHIFT" then |
if shift then |
return false |
end |
shift = true |
end |
if modifier == "CTRL" then |
if ctrl then |
return false |
end |
ctrl = true |
end |
if modifier == "ALT" then |
if alt then |
return false |
end |
alt = true |
end |
else |
text = modifier |
break |
end |
end |
if not text:find("^F%d+$") and text ~= "CAPSLOCK" and text:len() ~= 1 and (text:byte() < 128 or text:len() > 4) and not _G["KEY_" .. text] then |
return false |
end |
local s = text |
if shift then |
s = "SHIFT-" .. s |
end |
if ctrl then |
s = "CTRL-" .. s |
end |
if alt then |
s = "ALT-" .. s |
end |
return s |
end |
AceConsole.keybindingValidateFunc = keybindingValidateFunc |
local order |
local mysort_args |
local mysort |
local function icaseSort(alpha, bravo) |
if type(alpha) == "number" and type(bravo) == "number" then |
return alpha < bravo |
end |
return tostring(alpha):lower() < tostring(bravo):lower() |
end |
local tmp = {} |
local function printUsage(self, handler, realOptions, options, path, args, quiet, filter) |
if filter then |
filter = "^" .. filter:gsub("([%(%)%.%*%+%-%[%]%?%^%$%%])", "%%%1") |
end |
local hidden, disabled = options.cmdHidden or options.hidden, options.disabled |
if hidden then |
if type(hidden) == "function" then |
hidden = hidden() |
elseif type(hidden) == "string" then |
local f = hidden |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
hidden = handler[f](handler) |
if neg then |
hidden = not hidden |
end |
end |
end |
if hidden then |
disabled = true |
elseif disabled then |
if type(disabled) == "function" then |
disabled = disabled() |
elseif type(disabled) == "string" then |
local f = disabled |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
disabled = handler[f](handler) |
if neg then |
disabled = not disabled |
end |
end |
end |
local kind = (options.type or "group"):lower() |
if disabled then |
print(OPTION_IS_DISABLED:format(path), realOptions.cmdName or realOptions.name or self) |
elseif kind == "text" then |
local var |
local multiToggle |
for k in pairs(tmp) do |
tmp[k] = nil |
end |
if passTable then |
multiToggle = passTable.multiToggle |
if not passTable.get then |
elseif type(passTable.get) == "function" then |
if not multiToggle then |
var = passTable.get(passValue) |
else |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = passTable.get(passValue, val) or nil |
end |
end |
else |
local handler = passTable.handler or handler |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
var = handler[passTable.get](handler, passValue) |
if not multiToggle then |
var = handler[passTable.get](handler, passValue) |
else |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = handler[passTable.get](handler, passValue, val) or nil |
end |
end |
end |
else |
multiToggle = options.multiToggle |
if not options.get then |
elseif type(options.get) == "function" then |
if not multiToggle then |
var = options.get() |
else |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = options.get(val) or nil |
end |
end |
else |
local handler = options.handler or handler |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
if not multiToggle then |
var = handler[options.get](handler) |
else |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = handler[options.get](handler, val) or nil |
end |
end |
end |
end |
local usage |
if type(options.validate) == "table" then |
if filter then |
if not order then |
order = {} |
end |
for k,v in pairs(options.validate) do |
if v:find(filter) then |
table.insert(order, v) |
end |
end |
table.sort(order, icaseSort) |
usage = "{" .. table.concat(order, " || ") .. "}" |
for k in pairs(order) do |
order[k] = nil |
end |
else |
if not order then |
order = {} |
end |
for k,v in pairs(options.validate) do |
table.insert(order, v) |
end |
table.sort(order, icaseSort) |
usage = "{" .. table.concat(order, " || ") .. "}" |
for k in pairs(order) do |
order[k] = nil |
end |
end |
if multiToggle then |
if not next(var) then |
var = NONE |
else |
if not order then |
order = {} |
end |
for k in pairs(var) do |
if options.validate[k] then |
order[#order+1] = options.validate[k] |
else |
for _,v in pairs(options.validate) do |
if v == k or (type(v) == "string" and type(k) == "string" and v:lower() == k:lower()) then |
order[#order+1] = v |
break |
end |
end |
end |
end |
table.sort(order, icaseSort) |
var = table.concat(order, ", ") |
for k in pairs(order) do |
order[k] = nil |
end |
end |
else |
var = options.validate[var] or var |
end |
elseif options.validate == "keybinding" then |
usage = KEYBINDING_USAGE |
else |
usage = options.usage or "<value>" |
end |
if not quiet then |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, usage), realOptions.cmdName or realOptions.name or self) |
end |
if (passTable and passTable.get) or options.get then |
print((options.current or IS_CURRENTLY_SET_TO):format(tostring(options.cmdName or options.name), tostring(var or NONE))) |
end |
elseif kind == "range" then |
local var |
if passTable then |
if type(passTable.get) == "function" then |
var = passTable.get(passValue) |
else |
local handler = passTable.handler or handler |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
var = handler[passTable.get](handler, passValue) |
end |
else |
if type(options.get) == "function" then |
var = options.get() |
else |
local handler = options.handler or handler |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
var = handler[options.get](handler) |
end |
end |
local usage |
local min = options.min or 0 |
local max = options.max or 1 |
if options.isPercent then |
min, max = min * 100, max * 100 |
var = tostring(var * 100) .. "%" |
end |
local bit = "-" |
if min < 0 or max < 0 then |
bit = " - " |
end |
usage = ("(%s%s%s)"):format(min, bit, max) |
if not quiet then |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, usage), realOptions.cmdName or realOptions.name or self) |
end |
print((options.current or IS_CURRENTLY_SET_TO):format(tostring(options.cmdName or options.name), tostring(var or NONE))) |
elseif kind == "group" then |
local usage |
if next(options.args) then |
if not order then |
order = {} |
end |
for k,v in pairs(options.args) do |
if v.type ~= "header" then |
local hidden = v.cmdHidden or v.hidden |
if hidden then |
if type(hidden) == "function" then |
hidden = hidden() |
elseif type(hidden) == "string" then |
local f = hidden |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
hidden = handler[f](handler) |
if neg then |
hidden = not hidden |
end |
end |
end |
if not hidden then |
if filter then |
if k:find(filter) then |
table.insert(order, k) |
elseif type(v.aliases) == "table" then |
for _,bit in ipairs(v.aliases) do |
if bit:find(filter) then |
table.insert(order, k) |
break |
end |
end |
elseif type(v.aliases) == "string" then |
if v.aliases:find(filter) then |
table.insert(order, k) |
end |
end |
else |
table.insert(order, k) |
end |
end |
end |
end |
if not mysort then |
mysort = function(a, b) |
local alpha, bravo = mysort_args[a], mysort_args[b] |
local alpha_order = alpha and alpha.order or 100 |
local bravo_order = bravo and bravo.order or 100 |
if alpha_order == bravo_order then |
return tostring(a):lower() < tostring(b):lower() |
else |
if alpha_order < 0 then |
if bravo_order > 0 then |
return false |
end |
else |
if bravo_order < 0 then |
return true |
end |
end |
if alpha_order > 0 and bravo_order > 0 then |
return tostring(a):lower() < tostring(b):lower() |
end |
return alpha_order < bravo_order |
end |
end |
end |
mysort_args = options.args |
table.sort(order, mysort) |
mysort_args = nil |
if not quiet then |
if options == realOptions then |
if options.desc then |
print(tostring(options.desc), realOptions.cmdName or realOptions.name or self) |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, "{" .. table.concat(order, " || ") .. "}")) |
elseif self.description or self.notes then |
print(tostring(self.description or self.notes), realOptions.cmdName or realOptions.name or self) |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, "{" .. table.concat(order, " || ") .. "}")) |
else |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) |
end |
else |
if options.desc then |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) |
print(tostring(options.desc)) |
else |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, "{" .. table.concat(order, " || ") .. "}"), realOptions.cmdName or realOptions.name or self) |
end |
end |
end |
local passTable = options.pass and options or nil |
for _,k in ipairs(order) do |
local passValue = passTable and k |
local real_k = k |
local v = options.args[k] |
if v then |
local v_p = passTable or v |
local k = k:gsub("%s", "-") |
local disabled = v.disabled |
if disabled then |
if type(disabled) == "function" then |
disabled = disabled() |
elseif type(disabled) == "string" then |
local f = disabled |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
disabled = handler[f](handler) |
if neg then |
disabled = not disabled |
end |
end |
end |
if type(v.aliases) == "table" then |
for _,s in ipairs(v.aliases) do |
k = k .. " || " .. s:gsub("%s", "-") |
end |
elseif type(v.aliases) == "string" then |
k = k .. " || " .. v.aliases:gsub("%s", "-") |
end |
if v_p.get then |
local a1,a2,a3,a4 |
local multiToggle = v_p.type == "text" and v_p.multiToggle |
for k in pairs(tmp) do |
tmp[k] = nil |
end |
if type(v_p.get) == "function" then |
if multiToggle then |
a1 = tmp |
for k,v in pairs(v.validate) do |
local val = type(k) ~= "number" and k or v |
if passValue == nil then |
a1[val] = v_p.get(val) or nil |
else |
a1[val] = v_p.get(passValue, val) or nil |
end |
end |
else |
a1,a2,a3,a4 = v_p.get(passValue) |
end |
else |
local handler = v_p.handler or handler |
local f = v_p.get |
local neg |
if v.type == "toggle" then |
neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
if multiToggle then |
a1 = tmp |
for k,v in pairs(v.validate) do |
local val = type(k) ~= "number" and k or v |
if passValue == nil then |
a1[val] = handler[f](handler, val) or nil |
else |
a1[val] = handler[f](handler, passValue, val) or nil |
end |
end |
else |
a1,a2,a3,a4 = handler[f](handler, passValue) |
end |
if neg then |
a1 = not a1 |
end |
end |
local s |
if v.type == "color" then |
if v.hasAlpha then |
if not a1 or not a2 or not a3 or not a4 then |
s = NONE |
else |
s = ("|c%02x%02x%02x%02x%02x%02x%02x%02x|r"):format(a4*255, a1*255, a2*255, a3*255, a4*255, a1*255, a2*255, a3*255) |
end |
else |
if not a1 or not a2 or not a3 then |
s = NONE |
else |
s = ("|cff%02x%02x%02x%02x%02x%02x|r"):format(a1*255, a2*255, a3*255, a1*255, a2*255, a3*255) |
end |
end |
elseif v.type == "toggle" then |
if v.map then |
s = tostring(v.map[a1 and true or false] or NONE) |
else |
s = tostring(MAP_ONOFF[a1 and true or false] or NONE) |
end |
elseif v.type == "range" then |
if v.isPercent then |
s = tostring(a1 * 100) .. "%" |
else |
s = tostring(a1) |
end |
elseif v.type == "text" and type(v.validate) == "table" then |
if multiToggle then |
if not next(a1) then |
s = NONE |
else |
s = '' |
for k in pairs(a1) do |
if v.validate[k] then |
if s == '' then |
s = v.validate[k] |
else |
s = s .. ', ' .. v.validate[k] |
end |
else |
for _,u in pairs(v.validate) do |
if u == k or (type(v) == "string" and type(k) == "string" and v:lower() == k:lower()) then |
if s == '' then |
s = u |
else |
s = s .. ', ' .. u |
end |
break |
end |
end |
end |
end |
end |
else |
s = tostring(v.validate[a1] or a1 or NONE) |
end |
else |
s = tostring(a1 or NONE) |
end |
if disabled then |
local s = s:gsub("|cff%x%x%x%x%x%x(.-)|r", "%1") |
local desc = (v.desc or NONE):gsub("|cff%x%x%x%x%x%x(.-)|r", "%1") |
print(("|cffcfcfcf - %s: [%s] %s|r"):format(k, s, desc)) |
else |
print((" - |cffffff7f%s: [|r%s|cffffff7f]|r %s"):format(k, s, v.desc or NONE)) |
end |
else |
if disabled then |
local desc = (v.desc or NONE):gsub("|cff%x%x%x%x%x%x(.-)|r", "%1") |
print(("|cffcfcfcf - %s: %s"):format(k, desc)) |
else |
print((" - |cffffff7f%s:|r %s"):format(k, v.desc or NONE)) |
end |
end |
end |
end |
for k in pairs(order) do |
order[k] = nil |
end |
else |
if options.desc then |
print(("|cffffff7f%s:|r %s"):format(USAGE, path), realOptions.cmdName or realOptions.name or self) |
print(tostring(options.desc)) |
elseif options == realOptions and (self.description or self.notes) then |
print(tostring(self.description or self.notes), realOptions.cmdName or realOptions.name or self) |
print(("|cffffff7f%s:|r %s"):format(USAGE, path)) |
else |
print(("|cffffff7f%s:|r %s"):format(USAGE, path), realOptions.cmdName or realOptions.name or self) |
end |
print(NO_OPTIONS_AVAILABLE) |
end |
end |
end |
local function confirmPopup(message, func, ...) |
if not StaticPopupDialogs["ACECONSOLE20_CONFIRM_DIALOG"] then |
StaticPopupDialogs["ACECONSOLE20_CONFIRM_DIALOG"] = {} |
end |
local t = StaticPopupDialogs["ACECONSOLE20_CONFIRM_DIALOG"] |
for k in pairs(t) do |
t[k] = nil |
end |
t.text = message |
t.button1 = ACCEPT or "Accept" |
t.button2 = CANCEL or "Cancel" |
t.OnAccept = function() |
func(unpack(t)) |
end |
for i = 1, select('#', ...) do |
t[i] = select(i, ...) |
end |
t.timeout = 0 |
t.whileDead = 1 |
t.hideOnEscape = 1 |
StaticPopup_Show("ACECONSOLE20_CONFIRM_DIALOG") |
end |
local function handlerFunc(self, chat, msg, options) |
if not msg then |
msg = "" |
else |
msg = msg:gsub("^%s*(.-)%s*$", "%1") |
msg = msg:gsub("%s+", " ") |
end |
local realOptions = options |
local options, path, args, handler, passTable, passValue = findTableLevel(self, options, chat, msg) |
local hidden, disabled = options.cmdHidden or options.hidden, options.disabled |
if hidden then |
if type(hidden) == "function" then |
hidden = hidden() |
elseif type(hidden) == "string" then |
local f = hidden |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
hidden = handler[f](handler) |
if neg then |
hidden = not hidden |
end |
end |
end |
if hidden then |
disabled = true |
elseif disabled then |
if type(disabled) == "function" then |
disabled = disabled() |
elseif type(disabled) == "string" then |
local f = disabled |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
disabled = handler[f](handler) |
if neg then |
disabled = not disabled |
end |
end |
end |
local _G_this = this |
local kind = (options.type or "group"):lower() |
if disabled then |
print(OPTION_IS_DISABLED:format(path), realOptions.cmdName or realOptions.name or self) |
elseif kind == "text" then |
if #args > 0 then |
if (type(options.validate) == "table" and #args > 1) or (type(options.validate) ~= "table" and not options.input) then |
local arg = table.concat(args, " ") |
for k,v in pairs(args) do |
args[k] = nil |
end |
args[1] = arg |
end |
if options.validate then |
local good |
if type(options.validate) == "function" then |
good = options.validate(unpack(args)) |
elseif type(options.validate) == "table" then |
local arg = args[1] |
arg = tostring(arg):lower() |
for k,v in pairs(options.validate) do |
if v:lower() == arg then |
args[1] = type(k) == "string" and k or v |
good = true |
break |
end |
end |
if not good and type((next(options.validate))) == "string" then |
for k,v in pairs(options.validate) do |
if type(k) == "string" and k:lower() == arg then |
args[1] = k |
good = true |
break |
end |
end |
end |
elseif options.validate == "keybinding" then |
good = keybindingValidateFunc(unpack(args)) |
if good ~= false then |
args[1] = good |
end |
else |
if type(handler[options.validate]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.validate))) |
end |
good = handler[options.validate](handler, unpack(args)) |
end |
if not good then |
local usage |
if type(options.validate) == "table" then |
if not order then |
order = {} |
end |
for k,v in pairs(options.validate) do |
table.insert(order, v) |
end |
usage = "{" .. table.concat(order, " || ") .. "}" |
for k in pairs(order) do |
order[k] = nil |
end |
elseif options.validate == "keybinding" then |
usage = KEYBINDING_USAGE |
else |
usage = options.usage or "<value>" |
end |
print((options.error or IS_NOT_A_VALID_OPTION_FOR):format(tostring(table.concat(args, " ")), path), realOptions.cmdName or realOptions.name or self) |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, usage)) |
return |
end |
end |
local var |
local multiToggle |
for k in pairs(tmp) do |
tmp[k] = nil |
end |
if passTable then |
multiToggle = passTable.multiToggle |
if not passTable.get then |
elseif type(passTable.get) == "function" then |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = passTable.get(passValue, val) |
end |
else |
var = passTable.get(passValue) |
end |
else |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = handler[passTable.get](handler, passValue, val) |
end |
else |
var = handler[passTable.get](handler, passValue) |
end |
end |
else |
multiToggle = options.multiToggle |
if not options.get then |
elseif type(options.get) == "function" then |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = options.get(val) |
end |
else |
var = options.get() |
end |
else |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = handler[options.get](handler, val) |
end |
else |
var = handler[options.get](handler) |
end |
end |
end |
if multiToggle or var ~= args[1] then |
if multiToggle then |
local current = var[args[1]] |
if current == nil and type(args[1]) == "string" then |
for k in pairs(var) do |
if type(k) == "string" and k:lower() == args[1]:lower() then |
current = true |
break |
end |
end |
end |
args[2] = not current |
end |
if passTable then |
if type(passTable.set) == "function" then |
passTable.set(passValue, unpack(args)) |
else |
if type(handler[passTable.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.set))) |
end |
handler[passTable.set](handler, passTable.set, unpack(args)) |
end |
else |
if type(options.set) == "function" then |
options.set(unpack(args)) |
else |
if type(handler[options.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.set))) |
end |
handler[options.set](handler, unpack(args)) |
end |
end |
end |
end |
if #args > 0 then |
local var |
local multiToggle |
for k in pairs(tmp) do |
tmp[k] = nil |
end |
if passTable then |
multiToggle = passTable.multiToggle |
if not passTable.get then |
elseif type(passTable.get) == "function" then |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = passTable.get(passValue, val) |
end |
else |
var = passTable.get(passValue) |
end |
else |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = handler[passTable.get](handler, passValue, val) |
end |
else |
var = handler[passTable.get](handler, passValue) |
end |
end |
else |
multiToggle = options.multiToggle |
if not options.get then |
elseif type(options.get) == "function" then |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = options.get(val) |
end |
else |
var = options.get() |
end |
else |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
if multiToggle then |
var = tmp |
for k,v in pairs(options.validate) do |
local val = type(k) ~= "number" and k or v |
var[val] = handler[options.get](handler, val) |
end |
else |
var = handler[options.get](handler) |
end |
end |
end |
if multiToggle then |
if not next(var) then |
var = NONE |
else |
if not order then |
order = {} |
end |
for k in pairs(var) do |
if options.validate[k] then |
order[#order+1] = options.validate[k] |
else |
for _,v in pairs(options.validate) do |
if v == k or (type(v) == "string" and type(k) == "string" and v:lower() == k:lower()) then |
order[#order+1] = v |
break |
end |
end |
end |
end |
table.sort(order, icaseSort) |
var = table.concat(order, ", ") |
for k in pairs(order) do |
order[k] = nil |
end |
end |
elseif type(options.validate) == "table" then |
var = options.validate[var] or var |
end |
if (passTable and passTable.get) or options.get then |
print((options.message or IS_NOW_SET_TO):format(tostring(options.cmdName or options.name), tostring(var or NONE)), realOptions.cmdName or realOptions.name or self) |
end |
if var == args[1] then |
return |
end |
else |
printUsage(self, handler, realOptions, options, path, args) |
return |
end |
elseif kind == "execute" then |
local confirm = options.confirm |
if confirm == true then |
confirm = DEFAULT_CONFIRM_MESSAGE:format(options.desc or options.name or UNKNOWN or "Unknown") |
end |
if passTable then |
if type(passTable.func) == "function" then |
if confirm then |
confirmPopup(confirm, set, passValue) |
else |
passTable.func(passValue) |
end |
else |
if type(handler[passTable.func]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.func))) |
end |
if confirm then |
confirmPopup(confirm, handler[passTable.func], handler, passValue) |
else |
handler[passTable.func](handler, passValue) |
end |
end |
else |
local ret, msg |
if type(options.func) == "function" then |
if confirm then |
confirmPopup(confirm, options.func) |
else |
options.func() |
end |
else |
local handler = options.handler or self |
if type(handler[options.func]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.func))) |
end |
if confirm then |
confirmPopup(confirm, handler[options.func], handler) |
else |
handler[options.func](handler) |
end |
end |
end |
elseif kind == "toggle" then |
local var |
if passTable then |
if type(passTable.get) == "function" then |
var = passTable.get(passValue) |
else |
local f = passTable.get |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
var = handler[f](handler, passValue) |
if neg then |
var = not var |
end |
end |
if type(passTable.set) == "function" then |
passTable.set(passValue, not var) |
else |
if type(handler[passTable.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.set))) |
end |
handler[passTable.set](handler, passValue, not var) |
end |
if type(passTable.get) == "function" then |
var = passTable.get(passValue) |
else |
local f = passTable.get |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
var = handler[f](handler, passValue) |
if neg then |
var = not var |
end |
end |
else |
local handler = options.handler or self |
if type(options.get) == "function" then |
var = options.get() |
else |
local f = options.get |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
var = handler[f](handler) |
if neg then |
var = not var |
end |
end |
if type(options.set) == "function" then |
options.set(not var) |
else |
if type(handler[options.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.set))) |
end |
handler[options.set](handler, not var) |
end |
if type(options.get) == "function" then |
var = options.get() |
else |
local f = options.get |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
var = handler[f](handler) |
if neg then |
var = not var |
end |
end |
end |
print((options.message or IS_NOW_SET_TO):format(tostring(options.cmdName or options.name), (options.map or MAP_ONOFF)[var and true or false] or NONE), realOptions.cmdName or realOptions.name or self) |
elseif kind == "range" then |
local arg |
if #args <= 1 then |
arg = args[1] |
else |
arg = table.concat(args, " ") |
end |
if arg then |
local min = options.min or 0 |
local max = options.max or 1 |
local good = false |
if type(arg) == "number" then |
if options.isPercent then |
arg = arg / 100 |
end |
if arg >= min and arg <= max then |
good = true |
end |
if good and type(options.step) == "number" and options.step > 0 then |
local step = options.step |
arg = math.floor((arg - min) / step + 0.5) * step + min |
if arg > max then |
arg = max |
elseif arg < min then |
arg = min |
end |
end |
end |
if not good then |
local usage |
local min = options.min or 0 |
local max = options.max or 1 |
if options.isPercent then |
min, max = min * 100, max * 100 |
end |
local bit = "-" |
if min < 0 or max < 0 then |
bit = " - " |
end |
usage = ("(%s%s%s)"):format(min, bit, max) |
print((options.error or IS_NOT_A_VALID_VALUE_FOR):format(tostring(arg), path), realOptions.cmdName or realOptions.name or self) |
print(("|cffffff7f%s:|r %s %s"):format(USAGE, path, usage)) |
return |
end |
local var |
if passTable then |
if type(passTable.get) == "function" then |
var = passTable.get(passValue) |
else |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
var = handler[passTable.get](handler, passValue) |
end |
else |
if type(options.get) == "function" then |
var = options.get() |
else |
local handler = options.handler or self |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
var = handler[options.get](handler) |
end |
end |
if var ~= arg then |
if passTable then |
if type(passTable.set) == "function" then |
passTable.set(passValue, arg) |
else |
if type(handler[passTable.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.set))) |
end |
handler[passTable.set](handler, passValue, arg) |
end |
else |
if type(options.set) == "function" then |
options.set(arg) |
else |
local handler = options.handler or self |
if type(handler[options.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.set))) |
end |
handler[options.set](handler, arg) |
end |
end |
end |
end |
if arg then |
local var |
if passTable then |
if type(passTable.get) == "function" then |
var = passTable.get(passValue) |
else |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
var = handler[passTable.get](handler, passValue) |
end |
else |
if type(options.get) == "function" then |
var = options.get() |
else |
local handler = options.handler or self |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
var = handler[options.get](handler) |
end |
end |
if var and options.isPercent then |
var = tostring(var * 100) .. "%" |
end |
print((options.message or IS_NOW_SET_TO):format(tostring(options.cmdName or options.name), tostring(var or NONE)), realOptions.cmdName or realOptions.name or self) |
if var == arg then |
return |
end |
else |
printUsage(self, handler, realOptions, options, path, args) |
return |
end |
elseif kind == "color" then |
if #args > 0 then |
local r,g,b,a |
if #args == 1 then |
local arg = tostring(args[1]) |
if options.hasAlpha then |
if arg:len() == 8 and arg:find("^%x*$") then |
r,g,b,a = tonumber(arg:sub(1, 2), 16) / 255, tonumber(arg:sub(3, 4), 16) / 255, tonumber(arg:sub(5, 6), 16) / 255, tonumber(arg:sub(7, 8), 16) / 255 |
end |
else |
if arg:len() == 6 and arg:find("^%x*$") then |
r,g,b = tonumber(arg:sub(1, 2), 16) / 255, tonumber(arg:sub(3, 4), 16) / 255, tonumber(arg:sub(5, 6), 16) / 255 |
end |
end |
elseif #args == 4 and options.hasAlpha then |
local a1,a2,a3,a4 = args[1], args[2], args[3], args[4] |
if type(a1) == "number" and type(a2) == "number" and type(a3) == "number" and type(a4) == "number" and a1 <= 1 and a2 <= 1 and a3 <= 1 and a4 <= 1 then |
r,g,b,a = a1,a2,a3,a4 |
elseif (type(a1) == "number" or a1:len() == 2) and a1:find("^%x*$") and (type(a2) == "number" or a2:len() == 2) and a2:find("^%x*$") and (type(a3) == "number" or a3:len() == 2) and a3:find("^%x*$") and (type(a4) == "number" or a4:len() == 2) and a4:find("^%x*$") then |
r,g,b,a = tonumber(a1, 16) / 255, tonumber(a2, 16) / 255, tonumber(a3, 16) / 255, tonumber(a4, 16) / 255 |
end |
elseif #args == 3 and not options.hasAlpha then |
local a1,a2,a3 = args[1], args[2], args[3] |
if type(a1) == "number" and type(a2) == "number" and type(a3) == "number" and a1 <= 1 and a2 <= 1 and a3 <= 1 then |
r,g,b = a1,a2,a3 |
elseif (type(a1) == "number" or a1:len() == 2) and a1:find("^%x*$") and (type(a2) == "number" or a2:len() == 2) and a2:find("^%x*$") and (type(a3) == "number" or a3:len() == 2) and a3:find("^%x*$") then |
r,g,b = tonumber(a1, 16) / 255, tonumber(a2, 16) / 255, tonumber(a3, 16) / 255 |
end |
end |
if not r then |
print((options.error or IS_NOT_A_VALID_OPTION_FOR):format(table.concat(args, ' '), path), realOptions.cmdName or realOptions.name or self) |
print(("|cffffff7f%s:|r %s {0-1} {0-1} {0-1}%s"):format(USAGE, path, options.hasAlpha and " {0-1}" or "")) |
return |
end |
if passTable then |
if type(passTable.set) == "function" then |
passTable.set(passValue, r,g,b,a) |
else |
if type(handler[passTable.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.set))) |
end |
handler[passTable.set](handler, passValue, r,g,b,a) |
end |
else |
if type(options.set) == "function" then |
options.set(r,g,b,a) |
else |
if type(handler[options.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.set))) |
end |
handler[options.set](handler, r,g,b,a) |
end |
end |
local r,g,b,a |
if passTable then |
if type(passTable.get) == "function" then |
r,g,b,a = passTable.get(passValue) |
else |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
r,g,b,a = handler[passTable.get](handler, passValue) |
end |
else |
if type(options.get) == "function" then |
r,g,b,a = options.get() |
else |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
r,g,b,a = handler[options.get](handler) |
end |
end |
local s |
if type(r) == "number" and type(g) == "number" and type(b) == "number" then |
if options.hasAlpha and type(a) == "number" then |
s = ("|c%02x%02x%02x%02x%02x%02x%02x%02x|r"):format(a*255, r*255, g*255, b*255, r*255, g*255, b*255, a*255) |
else |
s = ("|cff%02x%02x%02x%02x%02x%02x|r"):format(r*255, g*255, b*255, r*255, g*255, b*255) |
end |
else |
s = NONE |
end |
print((options.message or IS_NOW_SET_TO):format(tostring(options.cmdName or options.name), s), realOptions.cmdName or realOptions.name or self) |
else |
local r,g,b,a |
if passTable then |
if type(passTable.get) == "function" then |
r,g,b,a = passTable.get(passValue) |
else |
if type(handler[passTable.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(passTable.get))) |
end |
r,g,b,a = handler[passTable.get](handler, passValue) |
end |
else |
if type(options.get) == "function" then |
r,g,b,a = options.get() |
else |
if type(handler[options.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(options.get))) |
end |
r,g,b,a = handler[options.get](handler) |
end |
end |
if not colorTable then |
colorTable = {} |
local t = colorTable |
if ColorPickerOkayButton then |
local ColorPickerOkayButton_OnClick = ColorPickerOkayButton:GetScript("OnClick") |
ColorPickerOkayButton:SetScript("OnClick", function() |
if ColorPickerOkayButton_OnClick then |
ColorPickerOkayButton_OnClick() |
end |
if t.active then |
ColorPickerFrame.cancelFunc = nil |
ColorPickerFrame.func = nil |
ColorPickerFrame.opacityFunc = nil |
local r,g,b,a |
if t.passValue then |
if type(t.get) == "function" then |
r,g,b,a = t.get(t.passValue) |
else |
if type(t.handler[t.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(t.get))) |
end |
r,g,b,a = t.handler[t.get](t.handler, t.passValue) |
end |
else |
if type(t.get) == "function" then |
r,g,b,a = t.get() |
else |
if type(t.handler[t.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(t.get))) |
end |
r,g,b,a = t.handler[t.get](t.handler) |
end |
end |
if r ~= t.r or g ~= t.g or b ~= t.b or (t.hasAlpha and a ~= t.a) then |
local s |
if type(r) == "number" and type(g) == "number" and type(b) == "number" then |
if t.hasAlpha and type(a) == "number" then |
s = ("|c%02x%02x%02x%02x%02x%02x%02x%02x|r"):format(a*255, r*255, g*255, b*255, r*255, g*255, b*255, a*255) |
else |
s = ("|cff%02x%02x%02x%02x%02x%02x|r"):format(r*255, g*255, b*255, r*255, g*255, b*255) |
end |
else |
s = NONE |
end |
print(t.message:format(tostring(t.name), s), t.realOptions.cmdName or t.realOptions.name or self) |
end |
for k,v in pairs(t) do |
t[k] = nil |
end |
end |
end) |
end |
else |
for k,v in pairs(colorTable) do |
colorTable[k] = nil |
end |
end |
if type(r) ~= "number" or type(g) ~= "number" or type(b) ~= "number" then |
r,g,b = 1, 1, 1 |
end |
if type(a) ~= "number" then |
a = 1 |
end |
local t = colorTable |
t.r = r |
t.g = g |
t.b = b |
if hasAlpha then |
t.a = a |
end |
t.realOptions = realOptions |
t.hasAlpha = options.hasAlpha |
t.handler = handler |
t.set = passTable and passTable.set or options.set |
t.get = passTable and passTable.get or options.get |
t.name = options.cmdName or options.name |
t.message = options.message or IS_NOW_SET_TO |
t.passValue = passValue |
t.active = true |
if not colorFunc then |
colorFunc = function() |
local r,g,b = ColorPickerFrame:GetColorRGB() |
if t.hasAlpha then |
local a = 1 - OpacitySliderFrame:GetValue() |
if type(t.set) == "function" then |
if t.passValue then |
t.set(t.passValue, r,g,b,a) |
else |
t.set(r,g,b,a) |
end |
else |
if type(t.handler[t.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(t.set))) |
end |
if t.passValue then |
t.handler[t.set](t.handler, t.passValue, r,g,b,a) |
else |
t.handler[t.set](t.handler, r,g,b,a) |
end |
end |
else |
if type(t.set) == "function" then |
if t.passValue then |
t.set(t.passValue, r,g,b) |
else |
t.set(r,g,b) |
end |
else |
if type(t.handler[t.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(t.set))) |
end |
if t.passValue then |
t.handler[t.set](t.handler, t.passValue, r,g,b) |
else |
t.handler[t.set](t.handler, r,g,b) |
end |
end |
end |
end |
end |
ColorPickerFrame.func = colorFunc |
ColorPickerFrame.hasOpacity = options.hasAlpha |
if options.hasAlpha then |
ColorPickerFrame.opacityFunc = ColorPickerFrame.func |
ColorPickerFrame.opacity = 1 - a |
end |
ColorPickerFrame:SetColorRGB(r,g,b) |
if not colorCancelFunc then |
colorCancelFunc = function() |
if t.hasAlpha then |
if type(t.set) == "function" then |
if t.passValue then |
t.set(t.passValue, t.r,t.g,t.b,t.a) |
else |
t.set(t.r,t.g,t.b,t.a) |
end |
else |
if type(t.handler[t.get]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(t.get))) |
end |
if t.passValue then |
t.handler[t.set](t.handler, t.passValue, t.r,t.g,t.b,t.a) |
else |
t.handler[t.set](t.handler, t.r,t.g,t.b,t.a) |
end |
end |
else |
if type(t.set) == "function" then |
if t.passValue then |
t.set(t.passValue, t.r,t.g,t.b) |
else |
t.set(t.r,t.g,t.b) |
end |
else |
if type(t.handler[t.set]) ~= "function" then |
AceConsole:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(t.set))) |
end |
if t.passValue then |
t.handler[t.set](t.handler, t.passValue, t.r,t.g,t.b) |
else |
t.handler[t.set](t.handler, t.r,t.g,t.b) |
end |
end |
end |
for k,v in pairs(t) do |
t[k] = nil |
end |
ColorPickerFrame.cancelFunc = nil |
ColorPickerFrame.func = nil |
ColorPickerFrame.opacityFunc = nil |
end |
end |
ColorPickerFrame.cancelFunc = colorCancelFunc |
ShowUIPanel(ColorPickerFrame) |
end |
return |
elseif kind == "group" then |
if #args == 0 then |
printUsage(self, handler, realOptions, options, path, args) |
else |
-- invalid argument |
print((options.error or IS_NOT_A_VALID_OPTION_FOR):format(args[1], path), realOptions.cmdName or realOptions.name or self) |
end |
return |
end |
this = _G_this |
if Dewdrop then |
Dewdrop:Refresh(1) |
Dewdrop:Refresh(2) |
Dewdrop:Refresh(3) |
Dewdrop:Refresh(4) |
Dewdrop:Refresh(5) |
end |
end |
local external |
function AceConsole:RegisterChatCommand(slashCommands, options, name) |
if type(slashCommands) ~= "table" and slashCommands ~= false then |
AceConsole:error("Bad argument #2 to `RegisterChatCommand' (expected table, got %s)", type(slashCommands)) |
end |
if not slashCommands and type(name) ~= "string" then |
AceConsole:error("Bad argument #4 to `RegisterChatCommand' (expected string, got %s)", type(name)) |
end |
if type(options) ~= "table" and type(options) ~= "function" and options ~= nil then |
AceConsole:error("Bad argument #3 to `RegisterChatCommand' (expected table, function, or nil, got %s)", type(options)) |
end |
if name then |
if type(name) ~= "string" then |
AceConsole:error("Bad argument #4 to `RegisterChatCommand' (expected string or nil, got %s)", type(name)) |
elseif not name:find("^%w+$") or name:upper() ~= name or name:len() == 0 then |
AceConsole:error("Argument #4 must be an uppercase, letters-only string with at least 1 character") |
end |
end |
if slashCommands then |
if #slashCommands == 0 then |
AceConsole:error("Argument #2 to `RegisterChatCommand' must include at least one string") |
end |
for k,v in pairs(slashCommands) do |
if type(k) ~= "number" then |
AceConsole:error("All keys in argument #2 to `RegisterChatCommand' must be numbers") |
end |
if type(v) ~= "string" then |
AceConsole:error("All values in argument #2 to `RegisterChatCommand' must be strings") |
elseif not v:find("^/[A-Za-z][A-Za-z0-9_]*$") then |
AceConsole:error("All values in argument #2 to `RegisterChatCommand' must be in the form of \"/word\"") |
end |
end |
end |
if not options then |
options = { |
type = 'group', |
args = {}, |
handler = self |
} |
end |
if type(options) == "table" then |
local err, position = validateOptions(options) |
if err then |
if position then |
AceConsole:error(position .. ": " .. err) |
else |
AceConsole:error(err) |
end |
end |
if not options.handler then |
options.handler = self |
end |
if options.handler == self and options.type:lower() == "group" and self.class then |
AceConsole:InjectAceOptionsTable(self, options) |
end |
end |
local chat |
if slashCommands then |
chat = slashCommands[1] |
else |
chat = _G["SLASH_"..name..1] |
end |
local handler |
if type(options) == "function" then |
handler = options |
for k,v in pairs(_G) do |
if handler == v then |
local k = k |
handler = function(msg) |
return _G[k](msg) |
end |
end |
end |
else |
function handler(msg) |
handlerFunc(self, chat, msg, options) |
end |
end |
if not _G.SlashCmdList then |
_G.SlashCmdList = {} |
end |
if not name and type(slashCommands) == "table" and type(slashCommands[1]) == "string" then |
name = slashCommands[1]:gsub("%A", ""):upper() |
end |
if not name then |
local A = ('A'):byte() |
repeat |
name = string.char(math.random(26) + A - 1) .. string.char(math.random(26) + A - 1) .. string.char(math.random(26) + A - 1) .. string.char(math.random(26) + A - 1) .. string.char(math.random(26) + A - 1) .. string.char(math.random(26) + A - 1) .. string.char(math.random(26) + A - 1) .. string.char(math.random(26) + A - 1) |
until not _G.SlashCmdList[name] |
end |
if slashCommands then |
if _G.SlashCmdList[name] then |
local i = 0 |
while true do |
i = i + 1 |
if _G["SLASH_"..name..i] then |
_G["SLASH_"..name..i] = nil |
else |
break |
end |
end |
end |
local i = 0 |
for _,command in ipairs(slashCommands) do |
local good = true |
for k in pairs(_G.SlashCmdList) do |
local j = 0 |
while true do |
j = j + 1 |
local cmd = _G["SLASH_" .. k .. j] |
if not cmd then |
break |
end |
if command:lower() == cmd:lower() then |
good = false |
break |
end |
end |
if not good then |
break |
end |
end |
if good then |
i = i + 1 |
_G["SLASH_"..name..i] = command |
if command:lower() ~= command then |
i = i + 1 |
_G["SLASH_"..name..i] = command:lower() |
end |
end |
end |
end |
_G.SlashCmdList[name] = handler |
if self ~= AceConsole and self.slashCommand == nil then |
self.slashCommand = chat |
end |
if not AceEvent and AceLibrary:HasInstance("AceEvent-2.0") then |
external(AceConsole, "AceEvent-2.0", AceLibrary("AceEvent-2.0")) |
end |
if AceEvent then |
if not AceConsole.nextAddon then |
AceConsole.nextAddon = {} |
end |
if type(options) == "table" then |
AceConsole.nextAddon[self] = options |
if not self.playerLogin then |
AceConsole:RegisterEvent("PLAYER_LOGIN", "PLAYER_LOGIN", true) |
end |
end |
end |
AceConsole.registry[name] = options |
end |
function AceConsole:InjectAceOptionsTable(handler, options) |
self:argCheck(handler, 2, "table") |
self:argCheck(options, 3, "table") |
if options.type:lower() ~= "group" then |
self:error('Cannot inject into options table argument #3 if its type is not "group"') |
end |
if options.handler ~= nil and options.handler ~= handler then |
self:error("Cannot inject into options table argument #3 if it has a different handler than argument #2") |
end |
options.handler = handler |
local class = handler.class |
if not class then |
self:error("Cannot retrieve AceOptions tables from a non-object argument #2") |
end |
while class and class ~= AceOO.Class do |
if type(class.GetAceOptionsDataTable) == "function" then |
local t = class:GetAceOptionsDataTable(handler) |
for k,v in pairs(t) do |
if type(options.args) ~= "table" then |
options.args = {} |
end |
if options.args[k] == nil then |
options.args[k] = v |
end |
end |
end |
local mixins = class.mixins |
if mixins then |
for mixin in pairs(mixins) do |
if type(mixin.GetAceOptionsDataTable) == "function" then |
local t = mixin:GetAceOptionsDataTable(handler) |
for k,v in pairs(t) do |
if type(options.args) ~= "table" then |
options.args = {} |
end |
if options.args[k] == nil then |
options.args[k] = v |
end |
end |
end |
end |
end |
class = class.super |
end |
return options |
end |
function AceConsole:PLAYER_LOGIN() |
self.playerLogin = true |
for addon, options in pairs(self.nextAddon) do |
local err, position = validateOptionsMethods(addon, options) |
if err then |
if position then |
geterrorhandler()(tostring(addon) .. ": AceConsole: " .. position .. ": " .. err) |
else |
geterrorhandler()(tostring(addon) .. ": AceConsole: " .. err) |
end |
end |
self.nextAddon[addon] = nil |
end |
end |
function AceConsole:TabCompleteInfo(cmdpath) |
local cmd = cmdpath:match("(/%S+)") |
if not cmd then |
return |
end |
local path = cmdpath:sub(cmd:len() + 2) |
for name in pairs(SlashCmdList) do --global |
if AceConsole.registry[name] then |
local i = 0 |
while true do |
i = i + 1 |
local scmd = _G["SLASH_"..name..i] |
if not scmd then break end |
if cmd == scmd then |
return name, cmd, path |
end |
end |
end |
end |
end |
function external(self, major, instance) |
if major == "AceEvent-2.0" then |
if not AceEvent then |
AceEvent = instance |
AceEvent:embed(self) |
end |
elseif major == "AceTab-2.0" then |
instance:RegisterTabCompletion("AceConsole", "%/.*", function(t, cmdpath, pos) |
local name, cmd, path = self:TabCompleteInfo(cmdpath:sub(1, pos)) |
if not self.registry[name] then |
return false |
else |
local validArgs, _, _, handler = findTableLevel(self, self.registry[name], cmd, path or "") |
if validArgs.args then |
for arg, v in pairs(validArgs.args) do |
local hidden = v.hidden |
local handler = v.handler or handler |
if hidden then |
if type(hidden) == "function" then |
hidden = hidden() |
elseif type(hidden) == "string" then |
local f = hidden |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
self:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
hidden = handler[f](handler) |
if neg then |
hidden = not hidden |
end |
end |
end |
local disabled = hidden or v.disabled |
if disabled then |
if type(disabled) == "function" then |
disabled = disabled() |
elseif type(disabled) == "string" then |
local f = disabled |
local neg = f:match("^~(.-)$") |
if neg then |
f = neg |
end |
if type(handler[f]) ~= "function" then |
self:error("%s: %s", handler, OPTION_HANDLER_NOT_FOUND:format(tostring(f))) |
end |
disabled = handler[f](handler) |
if neg then |
disabled = not disabled |
end |
end |
end |
if not hidden and not disabled and v.type ~= "header" then |
table.insert(t, (tostring(arg):gsub("%s", "-"))) |
end |
end |
end |
end |
end, function(u, matches, gcs, cmdpath) |
local name, cmd, path = self:TabCompleteInfo(cmdpath) |
if self.registry[name] then |
local validArgs, path2, argwork, handler = findTableLevel(self, self.registry[name], cmd, path) |
printUsage(self, validArgs.handler or handler, self.registry[name], validArgs, path2, argwork, not gcs or gcs ~= "", gcs) |
end |
end) |
elseif major == "Dewdrop-2.0" then |
Dewdrop = instance |
end |
end |
local function activate(self, oldLib, oldDeactivate) |
AceConsole = self |
if oldLib then |
self.registry = oldLib.registry |
self.nextAddon = oldLib.nextAddon |
end |
if not self.registry then |
self.registry = {} |
else |
for name,options in pairs(self.registry) do |
self:RegisterChatCommand(false, options, name) |
end |
end |
self:RegisterChatCommand({ "/reload", "/rl", "/reloadui" }, function() ReloadUI() end, "RELOAD") |
self:RegisterChatCommand({ "/gm" }, function() ToggleHelpFrame() end, "GM") |
local t = { "/print", "/echo" } |
local _,_,_,enabled,loadable = GetAddOnInfo("DevTools") |
if not enabled and not loadable then |
table.insert(t, "/dump") |
end |
self:RegisterChatCommand(t, function(text) |
text = text:trim():match("^(.-);*$") |
local f, err = loadstring("AceLibrary('AceConsole-2.0'):PrintLiteral(" .. text .. ")") |
if not f then |
self:Print("|cffff0000Error:|r", err) |
else |
f() |
end |
end, "PRINT") |
self:activate(oldLib, oldDeactivate) |
if oldDeactivate then |
oldDeactivate(oldLib) |
end |
end |
AceLibrary:Register(AceConsole, MAJOR_VERSION, MINOR_VERSION, activate, nil, external) |
------------------------------------------------------------------------ |
r30568 | prandur | 2007-03-19 22:48:32 -0400 (Mon, 19 Mar 2007) | 1 line |
Changed paths: |
M /trunk/FuBar_RecapFu/RecapFu.lua |
FuBar_RecapFu: update for Hawksy Recap 3.61 |
------------------------------------------------------------------------ |