WoWInterface SVN RecapFu

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 1 to Rev 2
    Reverse comparison

Rev 1 → Rev 2

FuBar_RecapFu/Changelog-FuBar_RecapFu-r30568.xml New file
0,0 → 1,7
------------------------------------------------------------------------
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
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/RecapFu_Locale_enUS.lua New file
0,0 → 1,31
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)
\ No newline at end of file Property changes : Added: svn:eol-style + native
FuBar_RecapFu/RecapFu.lua New file
0,0 → 1,339
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
\ No newline at end of file Property changes : Added: svn:eol-style + native
FuBar_RecapFu/FuBar_RecapFu.toc New file
0,0 → 1,33
## 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
\ No newline at end of file Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-AceOO-2.0-r25921.xml New file
0,0 → 1,2449
<?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>
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/FuBarPlugin-2.0/FuBarPlugin-2.0.lua New file
0,0 → 1,1684
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/AceLibrary/AceLibrary.lua New file
0,0 → 1,722
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-FuBarPlugin-2.0-r29795.xml New file
0,0 → 1,14
------------------------------------------------------------------------
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
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-Crayon-2.0-r25921.xml New file
0,0 → 1,2449
<?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>
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-AceLibrary-r29796.xml New file
0,0 → 1,27
------------------------------------------------------------------------
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
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-AceDebug-2.0-r25921.xml New file
0,0 → 1,2449
<?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>
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/AceOO-2.0/AceOO-2.0.lua New file
0,0 → 1,986
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-AceDB-2.0-r29174.xml New file
0,0 → 1,28
------------------------------------------------------------------------
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.
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-AceAddon-2.0-r28672.xml New file
0,0 → 1,1241
------------------------------------------------------------------------
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/
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-Dewdrop-2.0-r30385.xml New file
0,0 → 1,26
------------------------------------------------------------------------
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
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Crayon-2.0/Crayon-2.0.lua New file
0,0 → 1,228
--[[
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
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-AceConsole-2.0-r30624.xml New file
0,0 → 1,44
------------------------------------------------------------------------
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.
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/AceDB-2.0/AceDB-2.0.lua New file
0,0 → 1,2095
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/AceAddon-2.0/AceAddon-2.0.lua New file
0,0 → 1,1120
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/AceDebug-2.0/AceDebug-2.0.lua New file
0,0 → 1,204
--[[
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)
 
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Dewdrop-2.0/Dewdrop-2.0.lua New file
0,0 → 1,3107
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-Tablet-2.0-r30695.xml New file
0,0 → 1,87
------------------------------------------------------------------------
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.
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Changelog-AceLocale-2.2-r27198.xml New file
0,0 → 1,2459
<?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>
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/AceLocale-2.2/AceLocale-2.2.lua New file
0,0 → 1,561
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/Tablet-2.0/Tablet-2.0.lua New file
0,0 → 1,2914
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/libs/AceConsole-2.0/AceConsole-2.0.lua New file
0,0 → 1,2752
--[[
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)
Property changes : Added: svn:eol-style + native
FuBar_RecapFu/changelog-r30568.txt New file
0,0 → 1,7
------------------------------------------------------------------------
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
------------------------------------------------------------------------
Property changes : Added: svn:eol-style + native